Jeroen Ketema
1671805598
Merge pull request #20831 from jketema/expanded
...
C++: Extract the expanded compiler arguments
2025-11-17 13:58:24 +01:00
Jeroen Ketema
1df47cc747
C++: Fix QL-for-QL warning
2025-11-17 11:17:57 +01:00
Jeroen Ketema
ee97d6f461
C++: Expose the expanded compilation arguments
2025-11-17 11:17:53 +01:00
Simon Friis Vindum
792ac7a772
C++: Fix typo
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-11-14 12:59:41 +01:00
Simon Friis Vindum
5da73f3232
C++: Make sure that nrOfBoundsNEPhi is functional
2025-11-14 12:26:23 +01:00
Simon Friis Vindum
69e70d7cbc
Reapply "Merge pull request #20645 from paldepind/cpp/range-analysis-measure"
...
This reverts commit e7c029ae7d .
2025-11-14 12:26:21 +01:00
Mathias Vorreiter Pedersen
7b052e2404
Merge branch 'main' into fix-cp-in-external-flow
2025-11-10 10:44:31 +00:00
Mathias Vorreiter Pedersen
29a294f8d0
C++: Bind the columns inside the predicate instead of relying on 'bindingset's. The repeated inlining caused by 'bindiingset's created some #shared predicates with repeated regex matching.
2025-11-10 10:21:12 +00:00
Mathias Vorreiter Pedersen
267a7f5229
Merge pull request #20779 from MathiasVP/fix-bad-magic
...
C++: Fix bad magic in `IRGuards`
2025-11-10 10:05:18 +00:00
Jeroen Ketema
eb3e86480f
Merge pull request #20784 from jketema/qual-fail
...
C++: Fix named qualifier dataset check error with decltypes
2025-11-10 10:36:47 +01:00
Jeroen Ketema
f9554e1542
C++: Give proper getNames to more types and fix QLdoc
2025-11-10 10:11:01 +01:00
Mathias Vorreiter Pedersen
dfdc2a6a15
C++: Delete an incorrect comment.
2025-11-08 16:45:45 +00:00
Mathias Vorreiter Pedersen
3d6b3a31ac
C++: Also join on the 'namespace'.
2025-11-08 16:45:39 +00:00
Mathias Vorreiter Pedersen
bfe2b7dc44
C++: Use the new predicate to remove a cartesian-like join.
2025-11-08 16:43:43 +00:00
Mathias Vorreiter Pedersen
a922d5099f
C++: Factor out some conjuncts from 'interpretElement0' and into a new predicate.
2025-11-08 16:42:16 +00:00
Mathias Vorreiter Pedersen
74b774eec5
Merge pull request #20769 from MathiasVP/add-more-flow-models
...
C++: Add a few more models
2025-11-08 16:39:29 +00:00
Mathias Vorreiter Pedersen
6a2debba96
C++: Fix bad magic.
2025-11-07 17:38:18 +00:00
Mathias Vorreiter Pedersen
56b9566299
C++: Fix mistakes in models of internal strcat and strcpy functions.
2025-11-07 17:29:48 +00:00
Mathias Vorreiter Pedersen
f163d015d5
C++: Clean up comments.
2025-11-07 17:27:25 +00:00
Enrico Steffinlongo
e7c029ae7d
Revert "Merge pull request #20645 from paldepind/cpp/range-analysis-measure"
...
This reverts commit a0a6f288b5 , reversing
changes made to 32f21d6d49 .
2025-11-07 16:49:47 +00:00
Mathias Vorreiter Pedersen
f0da0d98a2
C++: Add a few more models I noticed while here.
2025-11-06 17:00:19 +00:00
Simon Friis Vindum
d1ea1af945
C++: Make small trivial tweaks
2025-10-24 16:16:57 +02:00
Simon Friis Vindum
5709964fbf
C++: Simplify boundFromGuard
...
The last disjunct in `boundFromGuard` is moved into `linearBoundFromGuard`. This avoids repeating the calculation for `boundValue`.
`getBounds` and `getExprTypeBounds` are turned into predicates with result. Their middle argument was the "output" which was confusing.
2025-10-24 16:12:05 +02:00
Simon Friis Vindum
383e6a44aa
C++: Use or instead of if
...
The proposition in the true branch implied the condition, so `or` is more appropriate. Also eliminated an existentially quantified variable.
2025-10-24 16:08:35 +02:00
Simon Friis Vindum
17e0dec08a
C++: Add toString for RelationStrictness
...
This helps for debugging.
2025-10-24 16:01:38 +02:00
Simon Friis Vindum
a0a6f288b5
Merge pull request #20645 from paldepind/cpp/range-analysis-measure
...
C++: Range analysis measure bounds
2025-10-24 15:30:07 +02:00
Anders Schack-Mulligen
f257c7a570
Guards: Align the SSA signature with the one from shared SSA.
2025-10-23 10:23:22 +02:00
Simon Friis Vindum
0badcfd663
C++: Address review comments
2025-10-21 09:47:58 +02:00
Simon Friis Vindum
979b05cc1a
C++: Apply suggested fixes from review
2025-10-17 09:50:36 +02:00
Simon Friis Vindum
9502d83f2c
C++: Add debug predicates
2025-10-16 15:05:48 +02:00
Simon Friis Vindum
c1f0f3da96
C++: Handle guard phi nodes differently
2025-10-16 15:05:46 +02:00
Simon Friis Vindum
8896a7210b
C++: Add number of bounds test to simple range analysis
2025-10-16 15:05:44 +02:00
Simon Friis Vindum
7eacd87343
C++: Apply widening based on number of bounds measure
2025-10-16 15:05:42 +02:00
Simon Friis Vindum
8aaf9f696a
C++: Factor out widening of bounds
2025-10-15 11:11:45 +02:00
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