Simon Friis Vindum
2c9bee6208
Rust: Only add data flow edge to SSA write definitions from their underlying CFG node
2024-11-19 14:32:31 +01:00
Geoffrey White
49eefccde1
Rust: Autoformat.
2024-11-19 11:49:02 +00:00
Simon Friis Vindum
23bfa8a9bc
Rust: Add local data flow edge for SSA definitons
2024-11-19 12:19:47 +01:00
Geoffrey White
c7c6924fda
Rust: Implement query, source/sink/barrier classes and concepts. All of this is framework, nothing is concretely modelled yet.
2024-11-19 11:09:43 +00:00
Simon Friis Vindum
b3668f8183
Merge pull request #17971 from paldepind/rust-df-patterns
...
Rust: Include patterns as data flow nodes
2024-11-19 11:12:12 +01:00
Simon Friis Vindum
2307df41ed
Merge pull request #18010 from paldepind/rust-df-viable-callable
...
Rust: Include method calls in DataFlowCall and implement simple call target resolution
2024-11-19 11:10:34 +01:00
Tom Hvitved
bb8d0b4881
Rust: Handle early returns in async blocks in CFG
2024-11-19 10:33:25 +01:00
Tom Hvitved
74b5ebe4bf
Rust: Improve CFG for let expressions
2024-11-18 15:51:16 +01:00
Simon Friis Vindum
58a1b004ab
Rust: Include method calls in DataFlowCall and implement simple call
...
target resolution
2024-11-18 15:27:21 +01:00
Simon Friis Vindum
1a198bfb3a
Merge branch 'main' into rust-df-patterns
2024-11-18 10:06:01 +01:00
Simon Friis Vindum
0e025abd13
Rust: Add custom toString predicate for path expression
2024-11-18 09:09:03 +01:00
Simon Friis Vindum
9bf53f50fa
Rust: Get CFG scope and update expected results
2024-11-15 10:00:43 +01:00
Simon Friis Vindum
d3f5b479f6
Merge branch 'main' into rust-df-patterns
2024-11-13 16:22:07 +01:00
Simon Friis Vindum
78edafc94c
Rust: Include patterns as data flow nodes
2024-11-12 18:43:06 +01:00
Simon Friis Vindum
274d9421a7
Rust: Cache getEnclosingCfgScope
2024-11-12 13:15:20 +01:00
Simon Friis Vindum
03292310b6
Merge branch 'main' into rust-async-blocks
2024-11-12 09:36:04 +01:00
Simon Friis Vindum
63d84edfae
Rust: Fix minor issues from PR feedback
2024-11-12 08:37:56 +01:00
Simon Friis Vindum
aebce746df
Rust: Create data flow nodes for parameters in the CFG
...
Before data flow nodes where created for all parameters in the AST. But
some AST parameters does not lead to any data flow (for instance
parameters in function pointer types).
2024-11-11 11:46:10 +01:00
Simon Friis Vindum
6a3d417836
Rust: Implement enclosing callable for additional classes
2024-11-11 11:11:29 +01:00
Simon Friis Vindum
9f0fba16cd
Rust: Fix grammar and add documentation comments
2024-11-11 09:46:47 +01:00
Simon Friis Vindum
55796badaf
Rust: Mark SSA data flow nodes in output and hide them in paths
2024-11-11 08:48:48 +01:00
Simon Friis Vindum
a5e13ee71b
Rust: Handle async blocks in SSA analysis
2024-11-10 11:59:37 +01:00
Simon Friis Vindum
8e6844e4da
Merge branch 'main' into rust-async-blocks
2024-11-10 09:28:14 +01:00
Simon Friis Vindum
d52a2d67a2
Rust: Create CFG scope for async blocks
2024-11-08 15:00:02 +01:00
Paolo Tranquilli
26839f5e15
Merge pull request #17882 from github/redsun82/rust-resolve
...
Rust: extract some resolved paths
2024-11-08 13:33:41 +01:00
Geoffrey White
fc444f1f9a
Merge branch 'main' into unusedvar8
2024-11-08 11:20:12 +00:00
Simon Friis Vindum
22835c28ff
Rust: Make a return node the last node before function exit
2024-11-07 15:21:11 +01:00
Simon Friis Vindum
1a000ecb46
Rust: Make minor data flow changes based on PR feedback
2024-11-07 13:04:54 +01:00
Geoffrey White
18ce8be302
Update rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll
...
Co-authored-by: Simon Friis Vindum <paldepind@github.com >
2024-11-06 19:00:10 +00:00
Simon Friis Vindum
dadc6059a8
Rust: Implement enclosing callable
2024-11-06 16:23:24 +01:00
Simon Friis Vindum
ff80b249ca
Merge pull request #17917 from paldepind/rust-df-types
...
Rust: Fix unique type data flow inconsistency
2024-11-06 14:02:00 +01:00
Simon Friis Vindum
60986d8c9b
Rust: Fix unique type data flow inconsistency
2024-11-06 13:48:10 +01:00
Tom Hvitved
f8058e40af
Merge pull request #17915 from hvitved/rust/pat-literal-cfg
...
Rust: Include literals in the CFG for literal patterns
2024-11-06 13:09:49 +01:00
Geoffrey White
8a35e151d1
Rust: Move the function pointer parameter exclusion into VariableImpl.qll.
2024-11-06 10:51:41 +00:00
Tom Hvitved
9392bf796a
Rust: Include literals in the CFG for literal patterns
2024-11-06 09:21:52 +01:00
Simon Friis Vindum
6054855edb
Merge pull request #17888 from paldepind/rust-data-flow-consistency
...
Rust: Data flow additions
2024-11-05 21:29:18 +01:00
Simon Friis Vindum
262a9f0cfa
Rust: Make fixes in data flow based on PR feedback
2024-11-05 15:37:44 +01:00
Simon Friis Vindum
c7b4e7c30a
Rust: Small improvements to data flow
...
The predicate `ssaDefAssigns` was definitely broken before
2024-11-04 20:01:58 +01:00
Simon Friis Vindum
8d59b9289b
Rust: Make improvements to data flow based on PR feedback
2024-11-04 16:42:05 +01:00
Simon Friis Vindum
2818893010
Rust: Refactor AstCfgNode to use a field
...
Co-authored-by: Tom Hvitved <hvitved@github.com >
2024-11-04 15:01:25 +01:00
Simon Friis Vindum
a3c7d5a469
Merge branch 'main' into rust-data-flow-consistency
2024-11-04 11:10:48 +01:00
Simon Friis Vindum
633bac633c
Rust: CFG classes are in expression module iff they correspond to expressions
2024-11-04 10:34:08 +01:00
Simon Friis Vindum
82076ee0b8
Rust: Propagate data flow through a few expression types
2024-11-03 16:12:59 +01:00
Simon Friis Vindum
01141ccdc9
Rust: Integrate SSA into data flow
2024-11-03 16:12:56 +01:00
Paolo Tranquilli
cee2ed0ec4
Rust: extract some resolved paths
2024-10-31 14:19:15 +01:00
Tom Hvitved
2b340b18dd
Rust: Exclude results inside macro expansions from unused entity queries
2024-10-31 11:42:43 +01:00
Simon Friis Vindum
00b8a29da7
Rust: Add predicate for speculative taint step
2024-10-31 09:09:39 +01:00
Simon Friis Vindum
b96698aee3
Merge pull request #17871 from paldepind/rust-data-flow-skeleton
...
Rust: Add basic skeleton setup for data flow
2024-10-31 08:26:11 +01:00
Paolo Tranquilli
7e8a09aea1
Merge pull request #17825 from github/redsun82/rust-canonical-path
...
Rust: add `extended_canonical_path` and `crate_origin` to `Item`
2024-10-30 18:13:05 +01:00
Simon Friis Vindum
efa59fd2b6
Rust: Make changes based on PR feedback
2024-10-30 16:01:26 +01:00