Mathias Vorreiter Pedersen
c32c810ae7
C++: Add a test with a 'short' type.
2024-04-30 14:48:21 +01:00
Mathias Vorreiter Pedersen
2939c89f7a
C++: Accept test changes.
2024-04-30 12:04:42 +01:00
Mathias Vorreiter Pedersen
806d42852c
C++: Add test in C file with pointer type guard.
2024-04-30 11:33:22 +01:00
Mathias Vorreiter Pedersen
d18cdee0bc
C++: Accept test changes.
2024-04-26 16:19:33 +01:00
Mathias Vorreiter Pedersen
bf61114284
C++: Add a test with pointer comparisons and float comparisons.
2024-04-26 16:17:45 +01:00
Mathias Vorreiter Pedersen
d6c57de650
C++: Convert one of the tests to also test the 'absolute' versions of the GuardCondition predicates.
2024-04-26 16:11:19 +01:00
Mathias Vorreiter Pedersen
97aa301ac9
C++: Accept more test changes.
2024-03-19 17:33:23 +00:00
Mathias Vorreiter Pedersen
1411ee5b26
C++: Extend tests to also test the new predicates and accept test changes.
2024-03-19 17:09:22 +00:00
Mathias Vorreiter Pedersen
c640bd67e9
C++: Fix tests for guards.
2024-03-19 14:43:16 +00:00
Mathias Vorreiter Pedersen
d7afd7b2e1
C++: Accept test changes.
2024-03-19 10:54:35 +00:00
Mathias Vorreiter Pedersen
40dbc6fdd9
C++: Accept test changes.
2024-03-18 16:27:18 +00:00
Mathias Vorreiter Pedersen
032678a367
C++: Extend tests to also test the new predicates.
2024-03-18 16:27:10 +00:00
Mathias Vorreiter Pedersen
fb218150e1
C++: Change the testcase so that it outputs the controlling values for switch statements as well.
2024-03-15 17:05:42 +00:00
Mathias Vorreiter Pedersen
07ebbb0591
C++: Accept test changes.
2024-03-15 17:04:27 +00:00
Mathias Vorreiter Pedersen
704f1fad46
C++: Add switches as testcases for guard conditions.
2024-03-15 17:02:32 +00:00
Jeroen Ketema
edf178696d
C++: accept test changes for IR Guards replacement
2023-12-06 12:47:20 +01:00
Jeroen Ketema
4390e4cad3
C++: Fix handling of unreached instructions in IRGuards
2023-12-06 10:23:27 +01:00
Jeroen Ketema
d6e30cd828
C++: Add test showing unreachable instructions give spurious blocks in IRGuards
2023-12-06 10:23:27 +01:00
Jeroen Ketema
4d702e2eee
C++: Fix IRGuards ternary behaviour
2023-12-05 12:17:46 +01:00
Jeroen Ketema
d84961571b
C++: Add IRGuards test that shows that ternary behaviour is not quite correct
2023-12-05 12:16:01 +01:00
Mathias Vorreiter Pedersen
98bf748e64
C++: Accept test changes.
2023-11-23 16:53:57 +00:00
Jeroen Ketema
8bc8ef4dda
C++: Support pointer addition and subtraction in the IRGuards library
...
It seems this was something supported by the AST Guards library
2023-07-06 16:54:44 +02:00
Jeroen Ketema
e5eabc4e47
C++: Slightly tweak nullness test and update test results
2022-07-12 15:23:33 +02:00
Jeroen Ketema
6b2154eb8b
C++: Add tests for AnalysedExpr::isNullCheck and AnalysedExpr::isValidCheck
2022-07-11 11:54:48 +02:00
Geoffrey White
2683d011c0
Update cpp/ql/test/library-tests/controlflow/dereferenced/dereferenced.cpp
...
Co-authored-by: Mathias Vorreiter Pedersen <mathiasvp@github.com >
2022-06-14 14:33:37 +01:00
Geoffrey White
512731a38d
C++: Add test for Dereferenced.qll.
2022-06-14 13:53:28 +01:00
Jeroen Ketema
5b0603a5b9
C++: Artificial block insertion for loops and switches has changed in frontend
...
There are now more artificial blocks containing more than one instruction
(artificial blocks containing a single instruction have the extractor only
emit that instruction and not the block). The second instruction in each case
is the label for breaking out of a loop or switch.
2022-04-25 21:13:52 +02:00
Jeroen Ketema
d43ae9b7ed
C++: More artificially inserted blocks carry location information in frontend
2022-04-25 21:13:29 +02:00
Erik Krogh Kristensen
d36c66cfca
remove redundant inline casts in arguments where the type is inferred by the call target
2021-10-29 14:37:56 +02:00
Jonas Jensen
9153f568be
C++: Accept test results with location fixes
2020-05-28 09:42:49 +02:00
Anders Schack-Mulligen
96e4a57edd
C++: Autoformat.
2020-01-29 13:11:50 +01:00
Geoffrey White
912260b3aa
C++: Autoformat tests.
2020-01-24 09:43:58 +00:00
Geoffrey White
795afa8160
CPP: Better location for the StackVariableReachability test.
2020-01-23 17:32:07 +00:00
Jonas Jensen
95a333d28c
C++: Use StackVariable in SSA libraries
...
This means we'll no longer get SSA definitions for thread-local
local-scope variables.
2019-11-19 11:30:59 +01:00
Jonas Jensen
4ef5c9af62
C++: Autoformat everything
...
Some files that will change in #1736 have been spared.
./build -j4 target/jars/qlformat
find ql/cpp/ql -name "*.ql" -print0 | xargs -0 target/jars/qlformat --input
find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input
(cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll')
buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
2019-09-09 11:25:53 +02:00
Jonas Jensen
206a96df94
C++ IR: Rename getters for def/use on Operand
...
This renames `getDefinitionInstruction` to `getAnyDef`, reflecting that
it includes definitions without exact overlap. It renames
`getUseInstruction` to `getUse` for consistency.
perl -p -i -e 's/\bgetUseInstruction\b/getUse/g; s/\bgetDefinitionInstruction\b/getAnyDef/g' \
cpp/ql/src/semmle/code/cpp/ir/**/*.ql* \
cpp/ql/test/**/*.ql* \
cpp/ql/src/semmle/code/cpp/rangeanalysis/**/*.ql*
2019-07-03 10:06:48 +02:00
Jonas Jensen
07bd85e9fa
C++: Function error doesn't always exit
...
The configuration in `DefaultOptions.qll` assumed that a call to any
top-level function named `error` would exit the program. This is not
true.
The assumption was probably about `error(3)`, which is a GNU extension.
It only exits if its first argument it not 0. Furthermore, projects such
as openssh may define their own function named `error` with different
behaviour. Because the GNU `error` function is non-standard, it's
perfectly fine to shadow it with a project-specific definition.
This change removes two FPs from `PointlessComparison.qll` on
https://github.com/openssh/openssh-portable .
2019-02-26 16:31:34 +01:00
Robert Marsh
3c638b5966
C++: add edge-based predicates to IRGuards
...
These predicates currently take a pair of `IRBlock`s - as it stands, at
most one edge can exist from one `IRBlock` to a given other `IRBlock`.
We may need to revisit that assumption and create an `IREdge` IPA type
at some future date
2019-02-07 09:38:54 -08:00
Ian Lynagh
98e8858dc6
C++: Accept test changes
2019-01-03 21:09:49 +00:00
Dave Bartolomeo
a7cb2d6d7c
C++: Ignore Unreached blocks in IR Guards
2018-12-20 11:57:25 -08:00
Dave Bartolomeo
0140cd23d0
C++: Accept correct test output
2018-12-11 17:11:51 -08:00
Dave Bartolomeo
283c1d43c3
C++: Restore previous test expectations
2018-12-11 17:07:25 -08:00
Robert Marsh
59c0e5d39e
C++: update test expectations
2018-12-11 15:07:09 -08:00
Robert Marsh
4fdc992cd9
C++: IRGuards uses Operand; fix CP in SignAnalysis
2018-11-08 14:43:51 -08:00
Dave Bartolomeo
37091953dc
C++: Fix test expectations after rebase
2018-09-30 08:25:42 -07:00
Jonas Jensen
16004facd9
Merge pull request #197 from rdmarsh2/rdmarsh/cpp/ir-guards
...
IR-based guards library
2018-09-28 21:14:08 +02:00
Robert Marsh
93732d8b5a
C++: Combine IR guard tests into one ql file
...
This is motivated by test performance; IR compilation happens separately
for each test and takes a bit over a minute, so combining these 8 tests
saves about 10 minutes of test running.
2018-09-27 13:53:02 -07:00
Robert Marsh
b6cc6a3b23
C++: Fix BinaryLogicalOperators always being guards
2018-09-27 13:09:15 -07:00
Robert Marsh
f323fa1df8
C++: test changes from previous commit
...
The IR for the conversion to bool results in a comparison where the left
hand side is not the result of any expression in the AST, so they can't
be usefully converted back to the AST
2018-09-27 13:06:57 -07:00
Dave Bartolomeo
aa267c8302
C++: Force LF for .c,.cpp,.h,.hpp
2018-09-23 16:23:52 -07:00