Commit Graph

13802 Commits

Author SHA1 Message Date
Simon Friis Vindum
68d4240c26 C++: Add change note 2025-10-16 15:56:11 +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
99103a5741 C++: Add additional test for range analysis 2025-10-16 15:05:45 +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
70a8c4f37f C++: Add range analysis examples that explode 2025-10-15 11:42:17 +02:00
Simon Friis Vindum
8aaf9f696a C++: Factor out widening of bounds 2025-10-15 11:11:45 +02:00
github-actions[bot]
6dd07790ac Post-release preparation for codeql-cli-2.23.3 2025-10-14 11:16:33 +00:00
Henry Mercer
17352a101d Rephrase C++ BMN changelog note 2025-10-14 11:13:23 +01:00
Henry Mercer
9466279909 Prefer code quotes for BMN 2025-10-14 11:10:42 +01:00
github-actions[bot]
33542f7d40 Release preparation for version 2.23.3 2025-10-14 09:30:24 +00:00
Ian Lynagh
791a92b146 C++: Add a changenote for C/C++ BMN GA 2025-10-07 17:32:36 +01:00
Nicolas Will
378eb18db5 Merge branch 'main' into jca_signature_extensions 2025-10-06 14:50:15 +02:00
REDMOND\brodes
f4fea6d635 Crypto: Fix consistency update with "other" vs "unknown" naming convetions for openssl. 2025-10-03 12:10:48 -04:00
Jeroen Ketema
7807804f4d Merge pull request #20573 from MathiasVP/fix-bad-magic-on-get-file
C++: Fix bad magic on `Element.getFile`
2025-10-03 01:21:32 +02:00
Nicolas Will
4901cdf929 Crypto: Refactor and change casts to super 2025-10-02 18:43:38 +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
Ben Rodes
d251b3f9f7 Merge branch 'main' into signature_model_refactor 2025-10-02 09:02:34 -04:00
Mathias Vorreiter Pedersen
b0e9238ddf Merge branch 'main' into use-shared-guards-library 2025-10-01 11:59:17 +01:00
Mathias Vorreiter Pedersen
353ee8baa0 C++: Port a test from the experimental directory to show that it works in the non-experimental "new" range analysis. 2025-10-01 11:33:47 +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
github-actions[bot]
a7a4e43991 Post-release preparation for codeql-cli-2.23.2 2025-09-29 15:10:19 +00:00
github-actions[bot]
d2130a589b Release preparation for version 2.23.2 2025-09-29 10:28:45 +00:00
Jeroen Ketema
9dfd87c284 Merge pull request #20514 from jketema/permissive
C++: Update tests after extractor changes
2025-09-28 16:56:31 +02: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
Jeroen Ketema
e41b5f2bc0 C++: Update tests after extractor changes 2025-09-25 09:52:22 +02: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
26a8a4b3d2 C++: Add failing test demonstrating broken wrapper barrier guards. 2025-09-24 19:54:05 +01:00
Mathias Vorreiter Pedersen
b2269fb5f5 C++: Add more tests. 2025-09-24 19:06:02 +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
13cde4d700 C++: Add testcase demonstrating that a ConstantValue IPA branch representing a gcc case range is a bad idea. 2025-09-24 15:34:35 +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
c481be8ea7 C++: Accept test changes for tests that select all types of an expression. 2025-09-18 12:16:28 +01:00
Mathias Vorreiter Pedersen
a4dbee3b13 C++: Add change note. 2025-09-18 12:16:26 +01: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
5e82eb9b24 C++: Fixup queries which assumes that a guard is always an expression. 2025-09-18 12:16:21 +01:00
Mathias Vorreiter Pedersen
fbd877a118 C++: Delete a test. This is no longer useful when every expression is a guard condition. 2025-09-18 12:16:20 +01:00
Mathias Vorreiter Pedersen
2dc783d91f C++: Accept test changes. 2025-09-18 12:16:16 +01:00
Mathias Vorreiter Pedersen
0b81fbbb2b C++: Fixup tests. 2025-09-18 12:16:11 +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