Mingjie Shen
9218afedbe
C++: exclude uninitialized uses that are cast to void
...
This eliminates FPs caused by casting a variable explicitly to
void type. Developers use this cast to suppress compiler warnings
on unused variables, e.g.
(void) x;
2023-07-06 17:43:42 -04:00
Mathias Vorreiter Pedersen
95ddc01ccb
Merge pull request #13502 from rvermeulen/rvermeulen/compare-using-integer-precision
...
C++: Account for the signedness of the lesser operand in `cpp/comparison-with-wider-type`
2023-06-30 17:44:28 +01:00
Mathias Vorreiter Pedersen
32045f87f1
Merge pull request #13635 from MathiasVP/dont-barrier-on-valid-state-config
...
C++: Revert parts of #13623
2023-06-30 14:33:21 +01:00
Mathias Vorreiter Pedersen
518a3729ca
C++: Accept test changes.
2023-06-30 12:51:55 +01:00
Mathias Vorreiter Pedersen
42356a899a
Merge pull request #13603 from MathiasVP/implement-is-unreachable-in-call-2
2023-06-30 12:00:15 +01:00
Mathias Vorreiter Pedersen
a4d03371e5
Update cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp
...
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com >
2023-06-30 11:10:15 +01:00
Mathias Vorreiter Pedersen
67e3ef7b09
C++: Revert the barrier added in #13623 .
2023-06-30 09:39:37 +01:00
Remco Vermeulen
a6469e4588
Add changenote
2023-06-29 12:38:05 -07:00
Mathias Vorreiter Pedersen
97916407c2
C++: Accept test changes.
2023-06-29 16:51:08 +01:00
Mathias Vorreiter Pedersen
59d9c6e3f2
C++: Use the pruning stage in the product-flow configuration.
2023-06-29 16:50:57 +01:00
Mathias Vorreiter Pedersen
90336705e1
C++: Accept test changes after merge.
2023-06-29 14:48:17 +01:00
Jeroen Ketema
f8b1dc9f59
Merge pull request #13617 from jketema/pointer-deref-barrier-fps
...
C++: Add more `cpp/invalid-pointer-deref` FP test cases
2023-06-29 15:48:15 +02:00
Mathias Vorreiter Pedersen
e4126ae6d4
Merge branch 'main' into implement-is-unreachable-in-call-2
2023-06-29 14:46:28 +01:00
Robert Marsh
e428502f4b
Merge pull request #13598 from MathiasVP/add-constant-size-array-fp
...
C++: Add `cpp/constant-array-overflow` FPs
2023-06-29 09:44:04 -04:00
Jeroen Ketema
2c8d4724d5
C++: Add more cpp/invalid-pointer-deref FP test cases
2023-06-29 14:45:09 +02:00
Jeroen Ketema
527b908bda
C++: Fix test annotation for cpp/invalid-pointer-deref test
2023-06-28 17:54:12 +02:00
Jeroen Ketema
43a8119091
Merge pull request #13591 from jketema/pointer-deref-barrier
...
C++: Add barrier to `InvalidPointerToDerefConfig` in `cpp/invalid-pointer-deref`
2023-06-28 17:46:41 +02:00
Mathias Vorreiter Pedersen
34abab031b
Merge pull request #13596 from MathiasVP/fix-join-in-argumentnode
...
C++: Fix join in `argumentOf`
2023-06-28 14:57:54 +01:00
Mathias Vorreiter Pedersen
655f1feac0
C++: Accept test changes.
2023-06-28 14:40:50 +01:00
Mathias Vorreiter Pedersen
9e82ce8a13
C++: Implement 'isUnreachableInCall'.
2023-06-28 14:37:35 +01:00
Mathias Vorreiter Pedersen
25be9d48bc
C++: Add tests with FPs that need call contexts.
2023-06-28 14:37:04 +01:00
Jeroen Ketema
14609a9795
C++: Add barrier to InvalidPointerToDerefConfig in cpp/invalid-pointer-deref
2023-06-28 14:04:45 +02:00
Mathias Vorreiter Pedersen
ae098822c3
C++: Add 'cpp/constant-array-overflow' FP.
2023-06-28 11:22:53 +01:00
Mathias Vorreiter Pedersen
78f2fe8d5e
C++: Fix join in 'argumentOf'.
...
Before:
```
[2023-06-28 09:29:51] Evaluated non-recursive predicate DataFlowImplCommon#59e7a193::Cached::argumentNode#3#fff@8606bd35 in 1945ms (size: 1366058).
Evaluated relational algebra for predicate DataFlowImplCommon#59e7a193::Cached::argumentNode#3#fff@8606bd35 with tuple counts:
764401 ~0% {3} r1 = JOIN DataFlowPrivate#fbdd7bd7::DirectPosition#ff_10#join_rhs WITH Instruction#577b6a83::CallInstruction::getArgumentOperand#fff_102#join_rhs ON FIRST 1 OUTPUT Rhs.2, Lhs.1, Rhs.1
764401 ~0% {3} r2 = JOIN r1 WITH DataFlowPrivate#fbdd7bd7::PrimaryArgumentNode#fff_20#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1
65 ~0% {3} r3 = SCAN DataFlowPrivate#fbdd7bd7::IndirectionPosition#fff OUTPUT In.2, In.0, In.1
180518864 ~0% {3} r4 = JOIN r3 WITH project#DataFlowPrivate#fbdd7bd7::IndirectOperands::IndirectOperand::hasOperandAndIndirectionIndex#2#dispred#fff#3_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.2, Lhs.1
601657 ~1% {2} r5 = JOIN r4 WITH project#DataFlowUtil#47741e1f::SideEffectOperandNode#fff#2 ON FIRST 2 OUTPUT Lhs.0, Lhs.2
601657 ~0% {3} r6 = JOIN r5 WITH project#DataFlowUtil#47741e1f::SideEffectOperandNode#fff#3 ON FIRST 1 OUTPUT Lhs.0, Rhs.1, Lhs.1
1366058 ~0% {3} r7 = r2 UNION r6
return r7
```
After:
```
Tuple counts for DataFlowImplCommon#59e7a193::Cached::argumentNode#3#fff/3@d2b091vc after 1.1s:
764381 ~2% {3} r1 = JOIN DataFlowPrivate#fbdd7bd7::DirectPosition#ff_10#join_rhs WITH Instruction#577b6a83::CallInstruction::getArgumentOperand#fff_102#join_rhs ON FIRST 1 OUTPUT Rhs.2, Lhs.1 'pos', Rhs.1 'call'
764381 ~0% {3} r2 = JOIN r1 WITH DataFlowPrivate#fbdd7bd7::PrimaryArgumentNode#fff_20#join_rhs ON FIRST 1 OUTPUT Rhs.1 'n', Lhs.2 'call', Lhs.1 'pos'
65 ~3% {3} r3 = SCAN num#DataFlowPrivate#fbdd7bd7::TIndirectionPosition#fff OUTPUT In.0, In.2 'pos', In.1
1798930 ~1% {3} r4 = JOIN r3 WITH project#DataFlowUtil#47741e1f::SideEffectOperandNode#fff#2_10#join_rhs ON FIRST 1 OUTPUT Rhs.1 'n', Lhs.2, Lhs.1 'pos'
601641 ~1% {2} r5 = JOIN r4 WITH project#DataFlowPrivate#fbdd7bd7::IndirectOperands::IndirectOperand::hasOperandAndIndirectionIndex#2#dispred#fff#3 ON FIRST 2 OUTPUT Lhs.0 'n', Lhs.2 'pos'
601641 ~0% {3} r6 = JOIN r5 WITH project#DataFlowUtil#47741e1f::SideEffectOperandNode#fff#3 ON FIRST 1 OUTPUT Lhs.0 'n', Rhs.1 'call', Lhs.1 'pos'
1366022 ~1% {3} r7 = r2 UNION r6
return r7
```
2023-06-28 10:13:03 +01:00
Mathias Vorreiter Pedersen
2c99009c1a
Merge pull request #13117 from rdmarsh2/rdmarsh2/cpp/cobo-handle-array-casts
...
C++: handle cast arrays properly in off-by-one query
2023-06-28 09:25:12 +01:00
Robert Marsh
e90153fc47
C++: fix irreducible control flow logic
2023-06-27 16:52:45 -04:00
Kasper Svendsen
656b4fc1aa
Merge pull request #13574 from kaspersv/kaspersv/cpp-remaining-implicit-this
...
CPP: Enable implicit this warnings for remaining packs
2023-06-27 16:56:28 +02:00
Kasper Svendsen
d1979197c7
CPP: Enable implicit this warnings for remaining packs
2023-06-27 14:44:24 +02:00
Mathias Vorreiter Pedersen
51176bdff3
C++: Add Geoffrey's testcases.
2023-06-27 12:59:22 +01:00
Jeroen Ketema
b1ae3a0a7b
Merge remote-tracking branch 'upstream/main' into clears-content
2023-06-27 13:45:33 +02:00
Mathias Vorreiter Pedersen
f2cbbab419
Merge branch 'main' into rdmarsh2/cpp/cobo-handle-array-casts
2023-06-27 12:03:42 +01:00
Mathias Vorreiter Pedersen
985650cb04
Merge pull request #13559 from MathiasVP/add-barrier-to-invalid-deref-query
...
C++: Add barriers to `cpp/invalid-pointer-deref`
2023-06-27 11:56:58 +01:00
Jeroen Ketema
2628552ef4
C++: Fix join-order problem in clearsContent
2023-06-27 11:59:26 +02:00
Mathias Vorreiter Pedersen
06bc460868
Merge pull request #13528 from rdmarsh2/rdmarsh2/cpp/range-analysis-back-edge
...
C++: fix range analysis back edge detection for irreducible CFGs
2023-06-27 09:14:44 +01:00
Robert Marsh
dcb349434c
C++: fix comment formatting
2023-06-26 15:52:32 -04:00
Robert Marsh
aff4066020
C++: improve irreducible back edge detection
2023-06-26 15:39:09 -04:00
Robert Marsh
757f40c0cb
Merge pull request #13116 from rdmarsh2/rdmarsh2/cpp/cobo-array-vars
...
C++: include stack-allocated arrays in off-by-one query
2023-06-26 15:26:45 -04:00
Mathias Vorreiter Pedersen
ef383a135d
C++: Prune the set of interesting pointer-arithmetic instructions by another flow.
2023-06-26 19:09:43 +01:00
Jeroen Ketema
54632cd474
C++: Replace not exists by forex in clearsContent
2023-06-26 20:05:35 +02:00
Jeroen Ketema
527b537fee
Apply suggestions from code review
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2023-06-26 12:57:43 +02:00
Mathias Vorreiter Pedersen
d68b0605cd
C++: Use 'arrayTypeCand' in 'isSourceImpl' instead of checking for array size explicitly.
2023-06-26 11:37:35 +01:00
Mathias Vorreiter Pedersen
3b4f2b22d6
C++: Fix Code Scanning errors.
2023-06-26 11:36:56 +01:00
Mathias Vorreiter Pedersen
b87bf46c30
C++: Fix joins.
2023-06-26 11:28:32 +01:00
Jeroen Ketema
c7e5dc2e9e
C++: Fix QLDoc issues
2023-06-26 12:18:05 +02:00
Jeroen Ketema
458522a656
C++: Implement clearsContent for IR dataflow
2023-06-26 12:11:03 +02:00
Mathias Vorreiter Pedersen
e32f7d84a5
C++: Speed up analysis on 'Samate' by avoiding the 'Variable' column in the dataflow stages of the query.
2023-06-25 00:35:43 +01:00
Mathias Vorreiter Pedersen
e0f5c584b9
C++: Fix Code Scanning error.
2023-06-24 19:38:22 +01:00
Mathias Vorreiter Pedersen
c1077fe75d
C++: Accept test changes.
2023-06-24 19:12:03 +01:00
Mathias Vorreiter Pedersen
9d5b8cff2e
C++: Add a barrier to the 'cpp/invalid-pointer-deref' query.
2023-06-24 19:12:03 +01:00
Mathias Vorreiter Pedersen
fba753ce61
C++: Add more test cases to 'cpp/invalid-pointer-deref'.
2023-06-24 18:59:25 +01:00