Mathias Vorreiter Pedersen
|
bc0b87632d
|
C++: Fix bad magic on Element.getFile when running on InconsistentCheckReturnNull.qll:
Evaluated non-recursive predicate Element::Element.getFile/0#dispred#536cb5f3#bb@f6f5329i in 182326ms (size: 50437).
Evaluated relational algebra for predicate Element::Element.getFile/0#dispred#536cb5f3#bb@f6f5329i with tuple counts:
2029351 ~0% {2} r1 = SCAN `Expr::Expr.getLocation/0#dispred#0a3d90c6` OUTPUT In.1, In.0
2029351 ~0% {2} | JOIN WITH `Location::Location.getStartLine/0#d54f9e6c` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
1168789 ~0% {2} | JOIN WITH `InconsistentCheckReturnNull::assertInvocation/2#b2a4c9e3_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
5533128288 ~0% {3} | JOIN WITH `Location::Location.getContainer/0#9edabfb6_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0
50413 ~0% {2} | JOIN WITH `Element::Element.getLocation/0#dispred#6c3f5b09#bf` ON FIRST 2 OUTPUT Lhs.0, Lhs.2
3043 ~0% {2} r2 = JOIN `project#InconsistentCheckReturnNull::relevantFunctionCall/2#d18cd566` WITH `Expr::Expr.getLocation/0#dispred#0a3d90c6` ON FIRST 1 OUTPUT Rhs.1, Lhs.0
3043 ~0% {2} r3 = JOIN r2 WITH locations_default ON FIRST 1 OUTPUT Rhs.4, Lhs.1
1945 ~3% {2} | JOIN WITH `InconsistentCheckReturnNull::assertInvocation/2#b2a4c9e3_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
9106248 ~2% {3} | JOIN WITH `Location::Location.getContainer/0#9edabfb6_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0
0 ~0% {2} | JOIN WITH `Element::Element.getLocation/0#dispred#6c3f5b09#bf` ON FIRST 2 OUTPUT Lhs.0, Lhs.2
3043 ~0% {3} r4 = JOIN r2 WITH locations_default ON FIRST 1 OUTPUT _, Lhs.1, Rhs.4
3043 ~0% {2} | REWRITE WITH Tmp.0 := 1, Out.0 := (In.2 + Tmp.0) KEEPING 2
2013 ~0% {2} | JOIN WITH `InconsistentCheckReturnNull::assertInvocation/2#b2a4c9e3_10#join_rhs` ON FIRST 1 OUTPUT Rhs.1, Lhs.1
9621327 ~0% {3} | JOIN WITH `Location::Location.getContainer/0#9edabfb6_10#join_rhs` ON FIRST 1 OUTPUT Lhs.1, Rhs.1, Lhs.0
24 ~3% {2} | JOIN WITH `Element::Element.getLocation/0#dispred#6c3f5b09#bf` ON FIRST 2 OUTPUT Lhs.0, Lhs.2
50437 ~0% {2} r5 = r1 UNION r3 UNION r4
return r5
|
2025-10-02 17:36:21 +01:00 |
|
Mathias Vorreiter Pedersen
|
b0e9238ddf
|
Merge branch 'main' into use-shared-guards-library
|
2025-10-01 11:59:17 +01:00 |
|
Mathias Vorreiter Pedersen
|
ca53a8e787
|
C++: Update QLDoc.
|
2025-09-30 14:15:55 +01:00 |
|
Mathias Vorreiter Pedersen
|
1b2bd30a29
|
Update cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com>
|
2025-09-30 14:14:19 +01:00 |
|
Mathias Vorreiter Pedersen
|
c1c1f60241
|
C++: Delete incorrect comment and add a bunch of barrier guard tests.
|
2025-09-25 12:56:46 +01:00 |
|
Mathias Vorreiter Pedersen
|
04ce4057e1
|
C++: Add more comments to describe the constant expression hack.
|
2025-09-25 12:43:57 +01:00 |
|
Mathias Vorreiter Pedersen
|
5b5c1de05b
|
C++: Fix fan-out.
|
2025-09-25 12:33:44 +01:00 |
|
Mathias Vorreiter Pedersen
|
b169ccf29a
|
C++: Fully delete TRange.
|
2025-09-25 08:30:42 +01:00 |
|
Mathias Vorreiter Pedersen
|
a07d03f49b
|
C++: Use the 'StoreInstruction' instead of the 'ReturnValueInstruction' when detecting return expressions.
|
2025-09-24 20:09:35 +01:00 |
|
Mathias Vorreiter Pedersen
|
d15e388f5c
|
C++: Get rid of the case range constant value with and instead implement 'rangeGuard'.
|
2025-09-24 15:52:10 +01:00 |
|
Mathias Vorreiter Pedersen
|
d10d5fd05e
|
C++: Rename in the name of consistency.
|
2025-09-24 15:34:03 +01:00 |
|
Mathias Vorreiter Pedersen
|
99e1a07b8e
|
C++: Add a comment to the 'ConditionalBranchInstruction' case in 'additionalImpliesStep.
|
2025-09-24 10:58:47 +01:00 |
|
Mathias Vorreiter Pedersen
|
2b47ac83e8
|
C++: Remove superfluous inference logic.
|
2025-09-24 10:51:45 +01:00 |
|
Mathias Vorreiter Pedersen
|
b3cbdb5c1a
|
C++: Add QLDoc to TRange.
|
2025-09-24 10:39:27 +01:00 |
|
Simon Friis Vindum
|
7d6e2060e5
|
Adapt all languages to changes in shared library
|
2025-09-22 14:18:58 +02:00 |
|
Mathias Vorreiter Pedersen
|
e22d6656fe
|
C++: Fix barrier guards.
|
2025-09-18 12:16:25 +01:00 |
|
Mathias Vorreiter Pedersen
|
d8f34dba17
|
C++: Do not use the deprecated predicate in queries.
|
2025-09-18 12:16:23 +01:00 |
|
Mathias Vorreiter Pedersen
|
9ed8b75c5d
|
C++: Add a few helper predicates on 'Definition' which the guards library needs.
|
2025-09-18 11:05:55 +01:00 |
|
Mathias Vorreiter Pedersen
|
ac5233d19c
|
C++: Lots of renamings.
|
2025-09-18 11:05:54 +01:00 |
|
Mathias Vorreiter Pedersen
|
840097f121
|
C++: Instantiate the shared guards library.
|
2025-09-18 11:05:52 +01:00 |
|
Mathias Vorreiter Pedersen
|
3a8f77d6f4
|
C++: Qualified import of cpp.
|
2025-09-18 11:05:50 +01:00 |
|
Mathias Vorreiter Pedersen
|
2b0b8402ce
|
C++: Delete a bunch of predicates. Also set up things so that they work after instantiating the shared guards library.
|
2025-09-18 11:05:49 +01:00 |
|
Mathias Vorreiter Pedersen
|
f0f4311b65
|
C++: Sync identical files.
|
2025-09-18 11:05:47 +01:00 |
|
Mathias Vorreiter Pedersen
|
70a8364a38
|
C++: Add another convenience predicate on 'BinaryInstruction'.
|
2025-09-18 11:05:45 +01:00 |
|
Mathias Vorreiter Pedersen
|
19b8e0db9c
|
C++: Add a few subclasses to 'EdgeKind'.
|
2025-09-18 11:05:43 +01:00 |
|
Mathias Vorreiter Pedersen
|
be8195ab7d
|
C++: Do not rely on dataflow nodes when implement 'getAUse' and 'getAnIndirectUse'. This will solve a non-monotonic recursion issue later.
|
2025-09-18 11:05:39 +01:00 |
|
Mathias Vorreiter Pedersen
|
f47dd2bbc6
|
C++: Add a 'hasInputFromBlock' predicate.
|
2025-09-18 11:05:38 +01:00 |
|
Mathias Vorreiter Pedersen
|
f55ace8311
|
C++: Make the return type a bit more precise.
|
2025-09-18 10:10:07 +01:00 |
|
Mathias Vorreiter Pedersen
|
417e79c3c0
|
Merge pull request #20382 from MathiasVP/simplify-ssl-result-not-checked
C++: Simplify `cpp/certificate-not-checked`
|
2025-09-09 12:23:39 +01:00 |
|
Mathias Vorreiter Pedersen
|
702d6d80c4
|
Update cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
2025-09-08 16:19:33 +01:00 |
|
Mathias Vorreiter Pedersen
|
9f47996448
|
C++: Lift a few more predicates to expression guards.
|
2025-09-08 12:28:18 +01:00 |
|
Mathias Vorreiter Pedersen
|
4645bd766a
|
C++: Sync identical files.
|
2025-09-04 19:27:31 +01:00 |
|
Mathias Vorreiter Pedersen
|
a551a55ca0
|
C++: Get rid of a parenthesis pair.
|
2025-09-04 19:27:23 +01:00 |
|
Mathias Vorreiter Pedersen
|
3c35e1e6ee
|
C++: Require a unique IRFunction for each value number case and assign instructions with a non-unique IRFUnction a unique value number.
|
2025-09-04 19:26:42 +01:00 |
|
Mathias Vorreiter Pedersen
|
76f2c6a9f1
|
C++: Remove the IRFunction column from the TUniqueValueNumber branch. The next commits will protect the recursion from instructions which has multiple IRFunctions and assign such instructions a unique value number so it won't make sense for them to have an IRFunction column.
|
2025-09-04 19:10:22 +01:00 |
|
Michael Nebel
|
64d68feab3
|
Merge pull request #20325 from michaelnebel/cpp/ql4ql
C++: Fix some Ql4Ql violations.
|
2025-09-04 14:17:11 +02:00 |
|
Michael Nebel
|
61e8ad264f
|
C++: Address review comments.
|
2025-09-04 12:52:46 +02:00 |
|
Michael Nebel
|
83d53baf82
|
C++: Fix some Ql4Ql violations.
|
2025-09-03 08:19:18 +02:00 |
|
Jeroen Ketema
|
ab3ad20a1e
|
Merge pull request #20319 from jketema/ir-vla-sizeof
C++: Support `sizeof` VLAs in the IR
|
2025-09-02 17:29:18 +02:00 |
|
Jeroen Ketema
|
8de1ed0d85
|
C++: Address review comments
|
2025-09-02 17:03:48 +02:00 |
|
Jeroen Ketema
|
f4df3881f8
|
C++: Handle *& sequences in sizeof VLA expressions
|
2025-09-02 12:29:24 +02:00 |
|
Jeroen Ketema
|
438cc961da
|
C++: Document TranslatedSizeofExpr
|
2025-09-02 12:29:21 +02:00 |
|
Jeroen Ketema
|
f68d3477d4
|
C++: Output necessary conversions in the sizeof VLA IR
|
2025-09-02 12:29:17 +02:00 |
|
Jeroen Ketema
|
f0f66c6d58
|
C++: Minor refactor
* Introduce new instruction tag for the base size
* Introduce some convenience predicates on `VlaDeclStmt`
|
2025-09-02 12:29:15 +02:00 |
|
Jeroen Ketema
|
6a9324fab0
|
C++: Fix obtaining the base type of a VLA
|
2025-09-02 12:29:13 +02:00 |
|
Jeroen Ketema
|
6e8f44da42
|
C++: Handle sizeof VLAs with typedefs
|
2025-09-02 12:29:09 +02:00 |
|
Jeroen Ketema
|
fdab63fd5f
|
C++: Handle ArrayExprs in sizeof VLAs
|
2025-09-02 12:29:04 +02:00 |
|
Jeroen Ketema
|
d9320b3c16
|
C++: Support sizeof VLAs in the IR
|
2025-09-02 12:28:59 +02:00 |
|
Anders Schack-Mulligen
|
144e34c669
|
Shared: Use shared SuccessorType in shared Cfg and BasicBlock libs.
|
2025-09-01 13:43:32 +02:00 |
|
Anders Schack-Mulligen
|
09b2c5abf0
|
BasicBlock: Replace entryBlock predicate with subclass.
|
2025-09-01 11:48:44 +02:00 |
|