Commit Graph

228 Commits

Author SHA1 Message Date
Mathias Vorreiter Pedersen
7bb2b57394 Merge pull request #15964 from rdmarsh2/rdmarsh2/cpp/temp-destructors-extended
C++: IR translation for destruction of temporaries with extended lifetimes
2024-03-27 11:58:48 +00:00
Mathias Vorreiter Pedersen
9179f0bda6 Merge pull request #15969 from MathiasVP/disable-some-constant-folding
C++: Disable _some_ constant folding in IR
2024-03-20 09:25:06 +00:00
Mathias Vorreiter Pedersen
357a2ba733 C++: Sync identical files. 2024-03-19 16:24:11 +00:00
Mathias Vorreiter Pedersen
458ee13345 C++: Add constant analysis for bitwise operations now that these are no longer constant folded by IR construction. 2024-03-19 16:23:57 +00:00
Robert Marsh
5a30ad162a C++: Add a comment for ReusedExpr IR translation 2024-03-19 15:54:52 +00:00
Robert Marsh
3d4f7d880d C++: unsuppress destructoion of temporaries with extended lifetimes 2024-03-19 15:54:42 +00:00
Robert Marsh
ba10ea8121 C++: ReuseExpr IR translation 2024-03-19 15:50:28 +00:00
Mathias Vorreiter Pedersen
a88d8b260d C++: Only ignore constant folding for certain binary operations. 2024-03-19 13:17:49 +00:00
Mathias Vorreiter Pedersen
a97891cbc1 C++: Add QLDoc to 'getNumberOfBinaryOperands' (and rename it to 'getNumberOfNestedBinaryOperands'). 2024-03-19 12:56:15 +00:00
Mathias Vorreiter Pedersen
4d3076ae7e C++: Don't constant fold small binary operations. 2024-03-19 11:46:51 +00:00
Mathias Vorreiter Pedersen
a21eea4ee0 C++: Generalize more predicates from booleans to abstract values. 2024-03-18 16:07:57 +00:00
Jeroen Ketema
866a3934d4 C++: suppress destructors with reuse expressions until proper support is added 2024-03-13 20:17:00 +01:00
Robert Marsh
fbbd57b34f C++: Suppress epxr destructors in preparation for temporaries 2024-03-05 21:12:12 +00:00
Robert Marsh
28e1e3a13a C++: remove skeleton for IR destructors on expressions 2024-03-04 21:54:18 +00:00
Mathias Vorreiter Pedersen
bba152da13 Merge branch 'main' into ir-for-vacuous-destructor-calls 2024-02-27 15:42:46 +00:00
Mathias Vorreiter Pedersen
9eaa4e19ad C++: Add IR construction for vacuous destructor calls. 2024-02-27 13:53:42 +00:00
Robert Marsh
da5e3d64ac C++: autoformat 2024-02-23 16:20:42 +00:00
Robert Marsh
dd97584eff C++: fix for duplicated parent of ReturnVoid statements 2024-02-23 16:19:34 +00:00
Robert Marsh
942a4ed925 C++: move handlesDestructorsExplicitly up to TranslatedReturnStmt 2024-02-22 16:46:19 +00:00
Robert Marsh
875ab74c28 Merge branch 'main' into rdmarsh2/cpp/ir-synthetic-destructors
Fixes conflicts in C++ IR tests and Stmt.qll
2024-02-21 21:34:49 +00:00
Robert Marsh
66743fb0db C++: refactor TranslatedReturnStmt 2024-02-21 20:50:30 +00:00
Robert Marsh
e0c7849f52 C++: fix incorrect use of getChildInternal 2024-02-21 20:35:58 +00:00
Robert Marsh
2494b7d801 C++: fix for IR CFG problem with return in if 2024-02-16 21:08:21 +00:00
Jeroen Ketema
dd39fa0bde C++: Support C++20 range-based for initializers 2024-02-16 15:20:14 +01:00
Jeroen Ketema
46bc311111 C++: Support constexpr if in the IR 2024-02-14 13:37:56 +01:00
Jeroen Ketema
caf09e0735 C++: Update IR comment that no longer applies 2024-02-13 21:30:58 +01:00
Robert Marsh
128bc99f90 C++: delete some FIXMEs that turned out fine 2024-02-13 15:34:36 +00:00
Robert Marsh
b9785ea7b2 C++: autoformat 2024-02-13 01:07:41 +00:00
Robert Marsh
b6cf64cff3 C++: simplify TranslatedBlock::getLastChild 2024-02-13 00:46:53 +00:00
Robert Marsh
7d8872bb99 C++: Fix for multiple for-loop variables with destructors 2024-02-13 00:40:19 +00:00
Robert Marsh
b94c4a6e1b C++: fix for destructor of while-loop condition 2024-02-13 00:13:22 +00:00
Robert Marsh
d1160f86e1 C++: Autoformat for named destructors in IR 2024-02-09 22:35:12 +00:00
Robert Marsh
174966164d Merge branch 'main' into rdmarsh2/cpp/ir-synthetic-destructors 2024-02-07 18:25:12 +00:00
Mathias Vorreiter Pedersen
edc7903c69 C++: Add a predicate for getting the 0'th child of a 'ConditionDeclExpr' without casting it to a 'VariableAccess' and use it in IR generation. 2024-02-07 11:45:13 +00:00
Mathias Vorreiter Pedersen
7948911415 C++: Delete dead code. 2024-02-06 17:38:22 +00:00
Robert Marsh
40e06b7877 C++: suppress destructor calls on delete in IR generation
This avoids an issue with duplicated qualifiers that was causing broken control flow
2024-02-06 14:55:00 +00:00
Robert Marsh
8013c2a074 C++: QLDoc and naming updates for implicit destructors in IR 2024-02-05 19:14:56 +00:00
Robert Marsh
820f4a5571 C++: custom destructor handling for for loops 2024-02-02 17:39:23 +00:00
Robert Marsh
85d1d079c8 C++: Add implicit named destructosrs to the IR CFG 2024-02-02 17:36:02 +00:00
Robert Marsh
3a404cec67 C++: Add getLastInstruction to IR generation 2024-02-02 17:10:47 +00:00
Robert Marsh
47720e0998 C++: generate instructions for destructor calls in IR 2024-02-02 17:05:40 +00:00
Mathias Vorreiter Pedersen
1dfd32ee5c C++: Model function calls throwing exceptions. 2024-01-30 11:32:50 +00:00
Mathias Vorreiter Pedersen
eb94203f04 C++: Add an 'EdgeKind' column to 'getExceptionSuccessorInstruction'. 2024-01-30 11:32:50 +00:00
Mathias Vorreiter Pedersen
8bb17a7127 C++: Add an 'EdgeKind' column to 'getInitializationSuccessor'. 2024-01-30 11:32:50 +00:00
Mathias Vorreiter Pedersen
4fb20e14f5 C++: Add an 'EdgeKind' column to 'getChildTrueSuccessor' and 'getChildFalseSuccessor'. 2024-01-30 11:32:47 +00:00
Mathias Vorreiter Pedersen
10ae793de5 C++: Add an 'EdgeKind' column to 'getFirstInstruction'. 2024-01-30 11:31:41 +00:00
Mathias Vorreiter Pedersen
d2e8b88b24 C++: Add an 'EdgeKind' column to 'getChildSuccessor'. 2024-01-30 11:26:46 +00:00
erik-krogh
8be7eadace delete outdated deprecations 2024-01-22 09:11:35 +01:00
Mathias Vorreiter Pedersen
a7ef84f2d1 C++: Replace 'strictcount(...) = 1' with 'unique(...)'. 2023-11-30 11:20:00 +00:00
Mathias Vorreiter Pedersen
6f5cfca84c C++: Sync identical files. 2023-11-23 16:53:57 +00:00