Mathias Vorreiter Pedersen
f5113b1932
C++: Fix internal SCC edges and accept test changes.
2026-05-19 15:39:32 +01:00
Mathias Vorreiter Pedersen
c6ce13a012
C++: Simplify recursion in 'PhiCycle::isCertain' and do not restrict the definition to be a 'PhiNode'.
2026-05-19 15:27:23 +01:00
Mathias Vorreiter Pedersen
d93de54397
C++: Consistent use of 'this.getIndirection()' in 'toString'.
2026-05-19 12:16:37 +01:00
Mathias Vorreiter Pedersen
25c4d9d09b
Potential fix for pull request finding
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-05-13 13:27:04 +01:00
Mathias Vorreiter Pedersen
f40d42c575
C++: Perform an SCC reduction to simulate greatest fixed-point semantics.
2026-05-13 13:14:20 +01:00
Mathias Vorreiter Pedersen
8585bb616d
C++: Some writes are always certain regardless of the address.
2026-05-13 13:14:13 +01:00
Mathias Vorreiter Pedersen
fc80a2472d
C++: Slightly refactor certainty computation with a newtype.
2026-05-13 13:09:12 +01:00
Mathias Vorreiter Pedersen
6d5d57acca
C++: Add missing overrides.
2026-05-13 13:09:10 +01:00
Mathias Vorreiter Pedersen
b753e7d228
C++: Make 'toString' on 'Ssa::Definition' more clear.
2026-05-13 13:09:01 +01:00
Mathias Vorreiter Pedersen
14efb4502b
C++: Fix join in getVariable.
2026-04-23 12:10:09 +01:00
Mathias Vorreiter Pedersen
5db069eb56
C++: Fix more consistency errors.
2026-03-30 12:08:08 +01:00
Mathias Vorreiter Pedersen
599b7a6653
C++: Handle fields in 'getThisType'.
2026-03-30 11:00:40 +01:00
Mathias Vorreiter Pedersen
9cb8edb41a
C++: Change 'Function' to 'Declaration' in a few places to handle enclosing callables being fields.
2026-03-30 11:00:38 +01:00
Mathias Vorreiter Pedersen
eb35fa0d5e
C++: Unify 'isSourceParameterOf' for this parameters with the implementation for positional parameters.
2026-03-30 11:00:37 +01:00
Jeroen Ketema
8349bd50ba
Merge pull request #21391 from jketema/jketema/nsdmi
...
C++: Handle field initialization via NSDMI in IR generation
2026-03-30 11:35:06 +02:00
Mathias Vorreiter Pedersen
56153d583e
C++: Switch to doublyBoundedFastTC when computing virtual dispatch edges and inline pairCand to avoid a giant tuple explosion.
2026-03-26 17:31:18 +00:00
Jeroen Ketema
ef780c15fb
C++: NSDMI fixes
...
* Do not generate IR for field initializers from uninstantiated templates.
* Add forgotten case to `TranslatedDeclarationEntry`
2026-03-25 16:34:02 +01:00
Jeroen Ketema
dad517ff5e
C++: Fix typo
2026-03-24 16:16:14 +01:00
Jeroen Ketema
49c5cc05ac
Update cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedCall.qll
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-24 16:09:33 +01:00
Jeroen Ketema
b554d7dd16
C++: Fix QL-for-QL warnings
2026-03-24 15:33:35 +01:00
Jeroen Ketema
22eda4ef0a
C++: Add call side effects for default field initializations to the IR
2026-03-24 15:33:32 +01:00
Jeroen Ketema
e986d8922a
C++: Call functions for NSDMI initialization
...
Currently missing: side-effect information for the functions
2026-03-24 15:33:30 +01:00
Jeroen Ketema
b91a52a050
C++: Allow getInstructionFunction to yield a declaration
2026-03-24 15:33:29 +01:00
Jeroen Ketema
09f930f4e8
C++: Generate initialization function for each NSDMI
2026-03-24 15:33:25 +01:00
Jeroen Ketema
07603a835a
C++: Rename CallOrAllocationExpr to something more generic
2026-03-24 15:33:20 +01:00
Mathias Vorreiter Pedersen
b5723bd75d
Merge branch 'main' into more-public-dataflow-apis
2026-03-23 13:43:01 +00:00
Mathias Vorreiter Pedersen
1363c54a9f
C++: Add 'asIndirectInstruction' as a public predicate.
2026-03-23 13:28:33 +00:00
Mathias Vorreiter Pedersen
09caeca7e9
C++: Move parameter indirection nodes into the public API.
2026-03-23 13:27:20 +00:00
Jeongsoo Lee
356905ba36
Merge branch 'jeongsoolee09/add-getIndirectionIndex' of github.com:github/codeql into jeongsoolee09/add-getIndirectionIndex
2026-03-19 15:51:37 -07:00
Jeongsoo Lee
dc291ffad7
Address code review
2026-03-19 15:51:00 -07:00
Jeongsoo Lee
d191d09c55
Apply suggestions from code review
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2026-03-19 15:48:47 -07:00
Jeongsoo Lee
3f9ad14473
Factor out common code into an abstract private class
2026-03-16 14:11:34 -07:00
Jeongsoo Lee
d3066af2e2
Create IndirectUninitializedNode and add a bridge from it to LocalVariable
...
This way the changes do not alter the meaning of `UninitializedNode`.
In the meantime, the code still provides a specialized `Node` type
`IndirectUninitializedNode` to access the nodes behind levels of
indirection.
2026-03-13 11:39:57 -07:00
Jeongsoo Lee
8c03136c25
Revert "Expose the indirection index"
...
This reverts commit 6c792e69b3 .
2026-03-13 10:11:40 -07:00
Jeongsoo Lee
6c792e69b3
Expose the indirection index
2026-03-11 13:53:24 -07:00
Mathias Vorreiter Pedersen
db33dadb8e
C++: Add QLDoc. Also actually implement 'uninitializedNode' since there's no reason not to do so.
2026-02-27 17:36:57 +00:00
Mathias Vorreiter Pedersen
1139059d77
C++: Fix imports.
2026-02-27 17:12:00 +00:00
Mathias Vorreiter Pedersen
92f26027e1
C++: Remove outdated comment.
2026-02-27 16:32:04 +00:00
Mathias Vorreiter Pedersen
85875c2879
C++: Remove unnecessary recursion through Node.toString.
2026-02-27 16:32:01 +00:00
Mathias Vorreiter Pedersen
5d75b255a8
C++: Remove IR re-evaluation.
2026-02-27 16:31:56 +00:00
Mathias Vorreiter Pedersen
26e8701ae3
C++: Fix a few qualifiers.
2026-02-27 16:22:51 +00:00
Mathias Vorreiter Pedersen
cdb41588a9
C++: Fix some imports.
2026-02-27 16:22:49 +00:00
Mathias Vorreiter Pedersen
1eccb8ea93
C++: Add a cache module to taint-tracking and ensure they happen in the same stage as the dataflow stage.
2026-02-27 16:22:47 +00:00
Mathias Vorreiter Pedersen
66611323e2
C++: No need to keep this in its own module now.
2026-02-27 16:22:44 +00:00
Mathias Vorreiter Pedersen
d804fc5168
C++: Remove the 'ExprFlowCached' module. Instead we have a single cached module.
2026-02-27 16:22:42 +00:00
Mathias Vorreiter Pedersen
f223c957ba
C++: Cache 'toString' and 'getLocation'.
2026-02-27 16:22:39 +00:00
Mathias Vorreiter Pedersen
86bd0c0dc3
C++: Move a bunch of newtypes and predicates into a cached module.
2026-02-27 16:22:36 +00:00
Mathias Vorreiter Pedersen
6e0c5615fe
C++: Move a bunch non-public dataflow node subtypes.
2026-02-27 16:22:33 +00:00
Mathias Vorreiter Pedersen
edde4149aa
C++: Move 'Node' into the public module.
2026-02-27 16:22:29 +00:00
Mathias Vorreiter Pedersen
87478d016a
C++: Move 'FieldAddress' and 'conversionFlow'.
2026-02-27 16:22:26 +00:00