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
20f501d1c7
C++: Change queries to use 'asExpr' instead of 'asConvertedExpr'.
2023-09-01 15:01:32 +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
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
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
b575747357
C++: Add testcase with invalid IR.
2023-08-31 20:35:33 +01:00
Mathias Vorreiter Pedersen
f5509da4bb
Merge pull request #14038 from alexet/delete-ir
...
CPP: Add delete/delete[] calls to the IR.
2023-08-31 09:22:34 +01:00
Alex Eyers-Taylor
59a77666a6
CPP: Remove uneeded indirection around delete calls in the IR.
2023-08-30 16:31:51 +01:00
Mathias Vorreiter Pedersen
e4a11b86d9
Merge branch 'main' into reuse-even-more-nodes
2023-08-29 15:08:30 +01:00
Mathias Vorreiter Pedersen
99cc4171f8
C++: Fix FPs by making 'isArgumentOfCallable' more robust.
2023-08-29 14:12:09 +01:00
Alex Eyers-Taylor
8b1b1618c4
CPP: Add tests for false positive in memory vulnerability queries.
2023-08-29 11:17:44 +01:00
Alex Eyers-Taylor
3b344c3578
CPP: Handle cases where the deallocator function is determined dynamically.
2023-08-29 11:17:44 +01:00
Alex Eyers-Taylor
689fda43ed
CPP: Add delete/delete[] calls to the IR.
2023-08-29 11:17:43 +01:00
Mathias Vorreiter Pedersen
f65fe34513
C++: Add false positive caused by flowing back into a function after doing reverse reads.
2023-08-28 14:45:16 +01:00
Mathias Vorreiter Pedersen
bb1712b489
Merge branch 'main' into reuse-even-more-nodes
2023-08-26 18:08:58 +01:00
Alex Eyers-Taylor
d699201ad0
CPP: Add a test demonstating when a deallocator call exists.
2023-08-25 15:45:50 +01:00
Alex Eyers-Taylor
a3711e1df0
CPP: Replace getAllocatorCall with getDeallocator call.
2023-08-25 15:45:50 +01:00
Jeroen Ketema
c882945e30
C++: Add IR test case that shows regression after frontend update
2023-08-24 08:36:22 +02:00
Mathias Vorreiter Pedersen
c46f9e4572
C++: Don't consider additional loads when reusing dataflow operands.
2023-08-21 12:51:41 +01:00
Mathias Vorreiter Pedersen
50190efe1c
C++: Don't limit instruction and operand reuse to those cases where we have a result for 'isUseImpl'.
2023-08-21 12:51:00 +01:00
Jeroen Ketema
591565a0db
Merge pull request #13971 from jketema/float
...
C++: Update test after float128 related extractor changes
2023-08-16 13:11:35 +02:00
Mathias Vorreiter Pedersen
986aa74db7
Merge pull request #13972 from MathiasVP/range-analysis-for-sub-expr
...
C++: Support subtraction in the new range analysis
2023-08-16 11:51:11 +01:00
Jeroen Ketema
4ada83c0ba
C++: Update test after float128 related extractor changes
2023-08-15 22:10:05 +02:00
Mathias Vorreiter Pedersen
e145b81f58
C++: Accept test changes.
2023-08-15 16:12:44 +01:00
Mathias Vorreiter Pedersen
3fb024164b
C++: Add a FP caused by bad range analysis for subtraction.
2023-08-15 16:00:35 +01:00
Mathias Vorreiter Pedersen
f662cceb0b
C++: Use value numbering to better detect whether a write is certain.
2023-08-15 11:07:14 +01:00
Mathias Vorreiter Pedersen
cb1076c335
Revert "Merge pull request #13783 from MathiasVP/type-bounds-for-new-range-analysis"
...
This reverts commit e9750af89f , reversing
changes made to 37a546253e .
2023-08-09 13:02:54 +01:00
Mathias Vorreiter Pedersen
e9750af89f
Merge pull request #13783 from MathiasVP/type-bounds-for-new-range-analysis
...
C++: Constant type-bounds in the new range analysis
2023-08-07 15:20:45 +01:00
Mathias Vorreiter Pedersen
467231e469
Merge pull request #13887 from jketema/float128x
...
C++: Remove support for `_Float128x` which is not actually supported by gcc
2023-08-07 13:42:24 +01:00
Jeroen Ketema
ea9f49efa1
C++: Remove support for _Float128x which is not actually supported by gcc
2023-08-04 17:23:11 +02:00
Mathias Vorreiter Pedersen
2d832db883
C++: Accept test changes.
2023-08-04 16:12:00 +02:00
Jeroen Ketema
d80eff330b
C++: Add test for __declspec attribute on a global variable
2023-08-04 10:35:32 +02:00
Jeroen Ketema
f7923d93f1
C++: Add semantic range analysis test as IR test
...
The range analysis test currently fails with the frontend update, because the
generated IR is incorrect after the update.
2023-08-03 10:13:23 +02:00
Mathias Vorreiter Pedersen
d111fa7e94
Merge pull request #13862 from jketema/ir-test
...
C++: Add IR test that shows dataflow regression after frontend update
2023-08-01 10:06:49 +02:00
Jeroen Ketema
ef8d95f87d
C++: Add IR test that shows dataflow regression after frontend update
2023-08-01 09:01:39 +02:00
Jeroen Ketema
0bc75ea9b7
C++: Add forgotten parentheses in ternary IR test
...
Without the parentheses, the expressions are parsed as `a ? x : (y = val)`.
2023-07-29 18:44:28 +02:00
Jeroen Ketema
4fcb576099
Merge branch 'main' into print-global
2023-07-25 14:10:33 +02:00
Jeroen Ketema
645028e219
C++: Add more IR tests for the ternary operator
2023-07-24 11:22:27 +02:00
Jeroen Ketema
4c9c5d8f0c
C++: Add IR SSA test case for the ternary operator
2023-07-21 10:22:34 +02:00
Jeroen Ketema
e76dc4a1f9
C++: Support printing of global and namespace variables in PrintAST
2023-07-20 11:43:55 +02:00
Jeroen Ketema
2a63116fc2
C++: Rename shouldPrintFunction to shouldPrintDeclaration
2023-07-19 16:55:43 +02:00
Anders Schack-Mulligen
ae24d68b5d
C/C++/C#/Java/Python/Ruby/Swift: Adjust expected output.
2023-07-19 11:41:15 +02:00
Jeroen Ketema
aad094bdd0
C++: Handle FunctionAccesses with qualifiers
...
Also fix the IR generation for these and add more IR tests involving value
categories.
2023-07-18 16:35:39 +02:00
Jeroen Ketema
5d8b203112
Merge pull request #13758 from jketema/val-cat-tests
...
C++: Add more IR tests
2023-07-18 11:02:27 +02:00
Jeroen Ketema
e2de94b233
C++: Add more IR tests
...
These show the value categories for more static member calls, and show that
a load occurs when a `volatile` variable is being used in an empty context.
2023-07-18 08:40:54 +02:00
Jeroen Ketema
a426010b06
Merge pull request #13621 from MathiasVP/deprecate-ast-dataflow
...
C++: Deprecate AST dataflow
2023-07-18 08:13:47 +02:00
Mathias Vorreiter Pedersen
8c21699040
C++: Accept test changes.
2023-07-17 10:51:42 +01:00
Jeroen Ketema
de3251a634
C++: Add assignment operation IR test where the result is being used
2023-07-10 17:55:50 +02:00