`DCL53-CPP`: Reports non syntactically ambiguous object declarations
還沒有人認領這個 Issue。
評估
研究方向
從 LocalConstructorInitializedObjectHidesIdentifier.ql 及其現有測試案例開始,然後比較 S1(g1)、S1 g2()、S1 g3、S1 g4{}、S1 g5(1) 和 S1 g6{1} 範例的查詢結果。當 DCL53-CPP 查詢在不包含所列誤報的情況下回報不符合規範的宣告,或記錄剩餘的剖析限制時,工作即完成。
由索引模型根據 Issue 內容生成。
描述
Affected rules
DCL53-CPP
Description
LocalConstructorInitializedObjectHidesIdentifier.ql currently identifies variable declarations that call a constructor and hide an outer scope variable. However, this does not fully capture the cases covered by this vexing parsing situation, which is looking for S1(g1).
The following additions to the query could help address this problem:
v.getInitializer().getExpr().(ConstructorCall).getNumberOfArguments() = 0 and
not v.getInitializer().isBraced()
However this would still flag S1 g3; below - as we don't currently have a record of where the brackets were during parsing.
Example
This modification of the test case highlights the problems:
int g1 = 0;
int g2 = 0;
int g3 = 0;
int g4 = 0;
int g5 = 0;
int g6 = 0;
void f1() {
S1(g1); // NON_COMPLIANT
S1 g2(); // NON_COMPLIANT
S1 g3; // COMPLIANT[FALSE_POSITIVE]
S1 g4{}; // COMPLIANT[FALSE_POSITIVE]
S1 g5(1); // COMPLIANT[FALSE_POSITIVE]
S1 g6{1}; // COMPLIANT[FALSE_POSITIVE]
}
- 主要語言
- CodeQL
- 星號
- 227
- 分支
- 82
- 平均合併
- 6 天 7 小時
- 30 天內合併 PR
- 9
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
github/codeql-coding-standards 的其他 Issue
-
false positive/false negative Stardard-MISRA-C++
難度 2/5 1-3 小時 新手友好度 72/100
github/codeql-coding-standards#1172 ·
-
Difficulty-Low false positive/false negative false-negative Impact-Low Standard-MISRA-C
難度 2/5 1-3 小時 新手友好度 68/100
-
Difficulty-Medium false positive/false negative false-positive Impact-Medium Standard-CERT-C
難度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1200 ·
-
`RULE-0-0-1`: "unreachable statement" false positives due to over-pruning of the control-flow graph 未關閉false positive/false negative
難度 4/5 3-5 天 新手友好度 48/100
github/codeql-coding-standards#1190 ·
-
false positive/false negative
難度 3/5 1-2 天 新手友好度 65/100
github/codeql-coding-standards#1175 ·
查看 github/codeql-coding-standards 的全部 Issue
相似的 Issue
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100
nightscout/nocturne#1424 ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success 未關閉area: repo bug perceived difficulty: 2
難度 2/5 1-3 小時 新手友好度 70/100
-
難度 2/5 1-3 小時 新手友好度 65/100
paritytech/zombienet-sdk#591 ·
-
bug
難度 2/5 1-3 小時 新手友好度 75/100
mruangutai/harness#1897 ·