We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 828d3cb + 6d77a79 commit 7691c0aCopy full SHA for 7691c0a
1 file changed
cpp/ql/src/Likely Bugs/UseInOwnInitializer.ql
@@ -11,10 +11,21 @@
11
12
import cpp
13
14
-from Initializer init, Variable v, VariableAccess va
15
-where init.getDeclaration() = v
16
- and va.getTarget() = v
17
- and va.getParent*() = init
+class VariableAccessInInitializer extends VariableAccess {
+ Variable var;
+ Initializer init;
+ VariableAccessInInitializer() {
18
+ init.getDeclaration() = var and
19
+ init.getExpr().getAChild*() = this
20
+ }
21
+
22
+ predicate initializesItself(Variable v, Initializer i) {
23
+ v = var and i = init and var = this.getTarget()
24
25
+}
26
27
+from Initializer init, Variable v, VariableAccessInInitializer va
28
+where va.initializesItself(v, init)
29
and (
30
va.hasLValueToRValueConversion() or
31
exists (Assignment assn | assn.getLValue() = va) or
0 commit comments