Commit Graph

10016 Commits

Author SHA1 Message Date
Mathias Vorreiter Pedersen
b18de9e641 C++: Add a named base case predicate for 'dereferencedByOperation' that can be used in queries. 2023-09-14 17:12:58 +01:00
AlexDenisov
ff7ff6dcfa Merge pull request #14201 from MathiasVP/add-ast-consistency-query
C++: Add AST consistency query
2023-09-14 16:34:20 +02:00
Mathias Vorreiter Pedersen
18fa6f5d64 Merge pull request #14202 from alexet/translated-element-location
CPP: Add a location to TranslatedElement to help with debugging IR creation
2023-09-13 15:19:24 +01:00
Mathias Vorreiter Pedersen
177fcacf38 Merge pull request #14134 from MathiasVP/add-surprising-lifetimes-to-experimental
C++: Copy the Coding Standards' use-after-lifetime-ended query to Experimental
2023-09-13 13:06:18 +01:00
Mathias Vorreiter Pedersen
a0018c92e1 Merge pull request #14193 from MathiasVP/fully-converted-expressions-for-flow-after-free
C++: Use fully converted expressions for `cpp/use-after-free` and `cpp/double-free`
2023-09-13 12:24:23 +01:00
Alex Eyers-Taylor
0c10fa0c87 CPP: Add a location to TranslatedElement to help with debugging IR creation 2023-09-13 12:21:30 +01:00
Mathias Vorreiter Pedersen
0cd4e32ed8 C++: Add AST consistency query. 2023-09-13 12:15:40 +01:00
Mathias Vorreiter Pedersen
af51a0a9ca C++: Respond to review comments. 2023-09-13 11:43:12 +01:00
Mathias Vorreiter Pedersen
81d20be1ee Update cpp/ql/src/experimental/Security/CWE/CWE-416/UseAfterExpiredLifetime.qhelp
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2023-09-13 11:37:32 +01:00
Tom Hvitved
7400b4741e Merge pull request #14108 from hvitved/dataflow/more-consistency-checks
Data flow: Add `ArgumentNode` consistency checks
2023-09-13 11:30:51 +02:00
Mathias Vorreiter Pedersen
05080924de C++: Don't use converted expressions in 'LeapYear.qll'. 2023-09-12 19:48:52 +01:00
Mathias Vorreiter Pedersen
b03054b1ed C++: Make sure some instruction also gives back the 'ParenthesisExpr's. 2023-09-12 19:46:42 +01:00
Mathias Vorreiter Pedersen
71fe6f5d4b C++: Use fully converted expressions in 'cpp/use-after-free' and 'cpp/double-free'. 2023-09-12 19:28:57 +01:00
Tom Hvitved
c9910f5464 C++: Update expected test output 2023-09-12 20:05:12 +02:00
Henning Makholm
bac175e881 C++ tests: fix output of bug-stricken test
The expected output was incorrect and the result of an evaluator bug.
This change should go together with the internal PR that fixes this bug.
2023-09-12 16:28:59 +02:00
Mathias Vorreiter Pedersen
ff28f45058 C++: Accept test changes. 2023-09-12 10:28:46 +01:00
Mathias Vorreiter Pedersen
7d2c12e63d C++: Handle the extent of 'new[]' in 'getConvertedResultExpressionImpl0' and add a few more comments. 2023-09-12 10:28:36 +01:00
Mathias Vorreiter Pedersen
becb469477 Merge branch 'main' into deduplicate-dataflow-results-take-3 2023-09-11 09:55:11 +01:00
Mathias Vorreiter Pedersen
7ff4ebd912 Merge pull request #14102 from alexet/alexet/remove-unreachable-ir
CPP: Remove sucessors of non-returning IR calls transitively.
2023-09-09 14:48:26 +01:00
Alex Eyers-Taylor
5892939488 CPP:Fix chnage note spelling 2023-09-08 17:47:04 +01:00
Alex Eyers-Taylor
5fe44b65b7 CPP: Avoid CP with edgekind in non-returning analysis 2023-09-08 16:55:06 +01:00
Alex Eyers-Taylor
e208a7aed6 CPP: Add change notes for the non-returning function improvements. 2023-09-08 11:26:27 +01:00
Mathias Vorreiter Pedersen
32ed82eecc Merge pull request #14154 from MathiasVP/fix-off-by-one-in-asDefiningArgument 2023-09-07 18:48:57 +01:00
Alex Eyers-Taylor
43a72f2a8e CPP:Add tests for the aliased IR. 2023-09-07 13:42:31 +01:00
Alex Eyers-Taylor
404145dd1b CPP: Update tests 2023-09-07 13:42:31 +01:00
Alex Eyers-Taylor
b44c4587a4 CPP: Remove sucessors of non-returning IR calls. 2023-09-07 12:58:20 +01:00
Alex Eyers-Taylor
e8dfecc4a4 CPP: Fix test result 2023-09-07 12:49:13 +01:00
Alex Eyers-Taylor
d603b7ac3c CPP: Make functions that reach the end return.
This is UB in C++ but not C where it is only bad if the result is used.
2023-09-07 12:39:48 +01:00
Mathias Vorreiter Pedersen
3f6346737c Update 2023-09-06-as-defining-argument-off-by-one-fix.md
Co-authored-by: intrigus-lgtm <60750685+intrigus-lgtm@users.noreply.github.com>
2023-09-06 19:48:48 +01:00
Mathias Vorreiter Pedersen
87925abaa2 C++: Add change note. 2023-09-06 17:26:08 +01:00
Mathias Vorreiter Pedersen
14faa5d020 C++: Fix off-by-one in 'asDefiningArgument' so that the domain of the argument is '[1..]' like 'asIndirectArgument'. 2023-09-06 17:19:44 +01:00
Mathias Vorreiter Pedersen
2bed77de09 Merge branch 'main' into deduplicate-dataflow-results-take-3 2023-09-06 14:12:36 +01:00
Mathias Vorreiter Pedersen
4cbe82353f C++: Accept more test changes. 2023-09-06 13:58:28 +01:00
Mathias Vorreiter Pedersen
b22199982e C++: Add change note. 2023-09-06 13:08:21 +01:00
Mathias Vorreiter Pedersen
3eb2da4c03 C++: No need to remove duplications manually. 2023-09-06 09:29:11 +01:00
Alex Eyers-Taylor
3db384ddc3 CPP: Handle globals flowing into "UnreacheachedInstruction" 2023-09-05 11:50:32 +01:00
Mathias Vorreiter Pedersen
1232120d42 C++: Naively copy the 'surprising lifetimes' query from Coding Standards and add required metadata. 2023-09-04 16:21:28 +01:00
Mathias Vorreiter Pedersen
20f501d1c7 C++: Change queries to use 'asExpr' instead of 'asConvertedExpr'. 2023-09-01 15:01:32 +01:00
Mathias Vorreiter Pedersen
cca6052026 C++: Use 'operandNode' to generate the string for indirect operands. 2023-09-01 14:04:54 +01:00
Mathias Vorreiter Pedersen
f1c4fa2345 C++: When we generate a string for the node we avoid multiple results by only using the 0'th result from the 'asExpr' predicate. However, when we want to convert between nodes and expressions we don't care about which one we get. 2023-09-01 14:04:52 +01:00
Mathias Vorreiter Pedersen
d2bb73ba1f C++: Use the index to to get the 'most converted' and 'least converted' instruction in a bunch of places. 2023-09-01 13:47:06 +01:00
Mathias Vorreiter Pedersen
4dfaf9225c C++: Index 'getConvertedResultExpression' by an integer. 2023-09-01 13:32:29 +01:00
Mathias Vorreiter Pedersen
16d62186c0 C++: Use this new predicate everywhere we need to convert an instruction to an expression. 2023-09-01 13:32:25 +01:00
Mathias Vorreiter Pedersen
60819ad7f2 Add a single predicate that should be used to convert an instruction to an expression. 2023-09-01 13:06:25 +01:00
Mathias Vorreiter Pedersen
72d9812fea C++: Accept more test changes. 2023-08-31 21:56:35 +01:00
Mathias Vorreiter Pedersen
dfefd62089 C++: Accept test changes. 2023-08-31 20:38:46 +01:00
Mathias Vorreiter Pedersen
aed14f2924 C++: Don't insert loads for constants. 2023-08-31 20:38:40 +01:00
Mathias Vorreiter Pedersen
b575747357 C++: Add testcase with invalid IR. 2023-08-31 20:35:33 +01:00
Mathias Vorreiter Pedersen
10548b57d7 Merge pull request #14103 from MathiasVP/non-certain-def-is-a-use
C++: Non-certain definitions should always be uses
2023-08-31 16:15:30 +01:00
Tom Hvitved
73370e7282 Merge pull request #14100 from hvitved/dataflow/consistency-pack
Data flow: Add consistency checks to shared ql pack
2023-08-31 11:47:40 +02:00