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 |
|
Robert Marsh
|
69ee615119
|
Merge pull request #13515 from MathiasVP/dataflow-fix-for-self-iterators
C++: Dataflow fix for the self-iterators issue
|
2023-06-23 13:50:23 -04:00 |
|
Mathias Vorreiter Pedersen
|
600c60af8b
|
Merge branch 'main' into rdmarsh2/cpp/cobo-array-vars
|
2023-06-23 10:54:46 +01:00 |
|
Mathias Vorreiter Pedersen
|
79fb6a6079
|
C++: Accept test changes.
|
2023-06-22 19:34:05 +01:00 |
|
Mathias Vorreiter Pedersen
|
0839c1aad1
|
C++: Allow self-flow through indirect parameters.
|
2023-06-22 19:33:18 +01:00 |
|
Mathias Vorreiter Pedersen
|
da54751d85
|
C++: Add testcase that demonstrate the need for self-flow out of indirect parameters.
|
2023-06-22 19:33:13 +01:00 |
|
Mathias Vorreiter Pedersen
|
fe97572f70
|
C++: Fix strncpy model.
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
273e5bc21f
|
C++: Add testcase demonstrating that the model for 'strncpy' is broken.
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
ff3c76c1fa
|
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowUtil.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
4f1b2c6194
|
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
a8a04c8588
|
Update cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll
Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com>
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
6528985a27
|
C++: Add QLDoc to 'hasAddressOperandAndIndirectionIndex'.
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
c7cff373de
|
C++: Add another testcase with conflation.
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
3365ff0d95
|
C++: Ensure that 'PrintIR' for dataflow still compiles.
|
2023-06-22 10:59:12 +01:00 |
|
Mathias Vorreiter Pedersen
|
6543da9990
|
C++: Accept test changes.
|
2023-06-22 10:59:11 +01:00 |
|
Mathias Vorreiter Pedersen
|
3b0a286d8e
|
C++: Adjust the rest of the library to the new API.
|
2023-06-22 10:59:11 +01:00 |
|
Mathias Vorreiter Pedersen
|
6034eb07af
|
C++: Change the API for indirect operands and indirection instructions to not allow pointer conflation.
|
2023-06-22 10:59:11 +01:00 |
|
Mathias Vorreiter Pedersen
|
9e9c811eb3
|
C++: Fix conflation bug in 'getIRRepresentationOfIndirectInstruction'.
|
2023-06-22 10:59:11 +01:00 |
|
Mathias Vorreiter Pedersen
|
5816f177c9
|
C++: Add failing test.
|
2023-06-22 10:59:11 +01:00 |
|
Robert Marsh
|
ba7cb8f4ae
|
C++: fix range analysis back edge detection for irreducible CFGs
|
2023-06-21 17:54:52 -04:00 |
|
Henry Mercer
|
5afdaf8fe1
|
Merge pull request #13525 from github/rc/3.10
Merge `rc/3.10` back to `main`
|
2023-06-21 17:13:36 +01:00 |
|
Remco Vermeulen
|
c0884432e8
|
Format query
|
2023-06-20 10:38:08 -07:00 |
|