Commit Graph

2639 Commits

Author SHA1 Message Date
yoff
b263132ab2 Merge pull request #17998 from yoff/shared/locations-in-range-analysis 2025-01-09 14:05:54 +01:00
Jeroen Ketema
17127356e8 C++: Handle template variable specializations 2025-01-09 13:23:21 +01:00
Jeroen Ketema
ac05bfcf4e C++: Remove some redundant toStrings 2025-01-09 11:04:07 +01:00
Jeroen Ketema
6325dd2ce1 C++: Simplify toString 2025-01-09 11:03:41 +01:00
Jeroen Ketema
033f35fe42 C++: Improve PrintAST for concept ids
If a type would be used in multiple places in the AST, rendering of the
AST would be broken. Hence, we cannot directly use types as AST nodes.
2025-01-09 00:44:37 +01:00
Jeroen Ketema
c48fcf1fb2 C++: Support concept id expressions 2025-01-09 00:44:26 +01:00
yoff
21e7a0e828 Merge branch 'main' into shared/locations-in-range-analysis 2025-01-08 16:40:59 +01:00
Jeroen Ketema
0258ce70a4 Merge pull request #18362 from github/jketema/template-parameters-4
C++: Support concept templates
2025-01-07 16:42:56 +01:00
Jeroen Ketema
06f6bac169 C++: Silence alerts coming from CMake test compilation files 2025-01-07 14:12:55 +01:00
Jeroen Ketema
a2d66ee155 C++: Extend the dbscheme with concept templates 2025-01-07 11:26:16 +01:00
Mathias Vorreiter Pedersen
d935e9fb0f C++: Also resolve typedefs nested inside arrays. 2025-01-06 14:50:37 +00:00
Mathias Vorreiter Pedersen
493e75728c Merge pull request #18386 from MathiasVP/more-robust-param-name-matching
C++: Resolve `typedef`s when matching MaD parameters
2025-01-06 14:40:17 +00:00
Mathias Vorreiter Pedersen
99ad184f57 Update cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-01-06 13:32:11 +00:00
Mathias Vorreiter Pedersen
75a3b6b613 Update cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-01-06 13:32:04 +00:00
Mathias Vorreiter Pedersen
f3085fc865 Update cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-01-06 13:30:59 +00:00
Mathias Vorreiter Pedersen
bfd18bc3e3 Update cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll
Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com>
2025-01-06 13:30:50 +00:00
Jeroen Ketema
01a7a5323b Merge pull request #18360 from github/jketema/template-parameters-3
C++: Support arguments and instantiations of template template parameters
2025-01-06 13:41:45 +01:00
Jeroen Ketema
0942945fa1 Update cpp/ql/lib/semmle/code/cpp/TemplateParameter.qll
Co-authored-by: Calum Grant <42069085+calumgrant@users.noreply.github.com>
2025-01-06 13:30:43 +01:00
Tom Hvitved
1b31c90d26 Implement FlowSummaryImpl stubs 2025-01-06 13:26:51 +01:00
Mathias Vorreiter Pedersen
9672af333a C++: Cache 'interpretElement'. This reduces DIL size of 'cpp/unbounded-write' by about 8%. 2025-01-03 10:46:57 +01:00
Jeroen Ketema
84775b71c3 C++: Support arguments and instantiations of template template parameters 2025-01-02 17:59:06 +01:00
Mathias Vorreiter Pedersen
3d3feb6354 C++: Also resolve typedefs when parsing MaD model parameter names. 2025-01-02 16:06:46 +01:00
Mathias Vorreiter Pedersen
f23e56bdca Merge pull request #18261 from MathiasVP/add-more-atl-string-models
C++: Add more MaD models for ATL string classes
2025-01-02 15:06:04 +00:00
Jeroen Ketema
ecf3c53eba C++: Introduce SizeofPackOperator subclasses for expressions and types
Note that template template parameters are considered types in this context.
2024-12-20 13:51:45 +01:00
Jeroen Ketema
84b60d2676 Merge pull request #18320 from jketema/template-parameters
C++: Support non-type template parameters
2024-12-19 16:21:49 +01:00
Jeroen Ketema
87f12ac801 C++: Add NonTypeTemplateParameter class 2024-12-18 17:37:15 +01:00
Mathias Vorreiter Pedersen
927d359cfa Merge pull request #18310 from MathiasVP/fix-recursion-through-forex-in-sign-analysis
C++: Fix `forex` recursion in sign analysis
2024-12-18 12:19:33 +00:00
Mathias Vorreiter Pedersen
4ffe70dd3b C++: Respond to review comments. 2024-12-18 11:26:41 +00:00
Jeroen Ketema
66b2b5df8d Merge pull request #18308 from jketema/template-parameters
C++: Introduce a new base class for template parameters
2024-12-18 10:38:03 +01:00
Jeroen Ketema
ccd3681f83 C++: Expand QLDoc of TemplateParameterBase 2024-12-18 09:45:51 +01:00
Mathias Vorreiter Pedersen
0b2b341283 C++: Work around suboptimal codegen for recursive 'forex'. 2024-12-17 23:58:57 +00:00
Jeroen Ketema
b7d1da8741 C++: Introduce a new base class for template parameters
This will enable us to support non-type template parameters, which we
currently do not support, and error template parameters, which might
become relevant in the `build-mode: none` context.
2024-12-17 20:25:41 +01:00
Mathias Vorreiter Pedersen
2cc6ffbd28 C++: Fix ql-for-ql findings. 2024-12-17 16:55:52 +00:00
Mathias Vorreiter Pedersen
5ed0222b1a C++: Sync identical files. 2024-12-17 15:28:04 +00:00
Mathias Vorreiter Pedersen
f351558547 C++: While here, let's avoid materializing 'ensuresEq' and 'ensuresLt' when computing unreachable nodes in dataflow. 2024-12-17 15:27:54 +00:00
Mathias Vorreiter Pedersen
9b6f39c1fe C++: Apply similar join order fixes to the other cases. 2024-12-17 15:26:49 +00:00
Mathias Vorreiter Pedersen
eea7804b62 C++: Join with value number only after joining with 'controls'. 2024-12-17 15:25:16 +00:00
Mathias Vorreiter Pedersen
913357b70d C++: Fix incorrect QLDoc. 2024-12-16 14:02:50 +00:00
Mathias Vorreiter Pedersen
5327847744 C++: No need to exclude static and global initializers now that we inline the predicates. 2024-12-16 14:02:46 +00:00
Mathias Vorreiter Pedersen
3bdfdd0573 C++: Change all the 'ensures' and (and most 'compares') predicates to be inlined to prevent explosions. Also remove the caching since this is't necessary now that the main recursion is cached. 2024-12-16 14:02:44 +00:00
Mathias Vorreiter Pedersen
404dd33498 C++: Move the main recursion into to a cached module. 2024-12-16 14:02:42 +00:00
Mathias Vorreiter Pedersen
6f73aa552d C++: Convert IRGuards to use final abstract classes. 2024-12-16 14:02:40 +00:00
Mathias Vorreiter Pedersen
20dfbdc5cc Revert "Merge pull request #18057 from jketema/codeql-cli-2.19.4"
This reverts commit ed922f6519, reversing
changes made to aa4cc72f30.
2024-12-16 14:02:38 +00:00
Jeroen Ketema
f9bfd969a9 C++: Address review comments 2024-12-12 16:49:24 +01:00
Jeroen Ketema
35403d4299 C++: Fix IR printing when multiple edges point to the same block 2024-12-12 13:46:45 +01:00
Jeroen Ketema
e43f7fbb48 C++: Fix AST printing for OverloadedArrayExpr 2024-12-12 13:44:24 +01:00
Mathias Vorreiter Pedersen
c5bb907fe0 C++: Also handle varargs in MaD parsing. 2024-12-10 18:25:56 +00:00
Mathias Vorreiter Pedersen
0f5786e4e6 Merge pull request #18251 from MathiasVP/fix-uncertain-array-writes
C++: Consider writes to arrays as uncertain
2024-12-10 12:38:47 +00:00
Mathias Vorreiter Pedersen
1266b244f5 Merge pull request #18136 from MathiasVP/model-active-template-library
C++: Model Microsoft's "Active Template Library"
2024-12-09 16:05:19 +00:00
Mathias Vorreiter Pedersen
9bcdfb6d01 C++: VariableAddressInstructions with array types are not single-object types. 2024-12-09 15:06:22 +00:00