Jeroen Ketema
4b5674af32
C++: Update test result after extractor changes
2022-10-20 22:18:32 +02:00
Mathias Vorreiter Pedersen
373c849b18
C++: Accept library-test changes
2022-10-14 10:14:52 +02:00
Mathias Vorreiter Pedersen
41cbef81ec
C++: Replace AST dataflow with IR dataflow.
2022-10-14 10:14:52 +02:00
Mathias Vorreiter Pedersen
cd65e73ade
C++: Fix database inconsistency issue from ODR violation.
2022-09-30 17:04:23 +01:00
Mathias Vorreiter Pedersen
56b5010f6b
C++: Convert the SimpleRangeAnalysis test to an InlineExpectationsTest.
2022-09-30 14:23:18 +01:00
Mathias Vorreiter Pedersen
d14b2c2880
C++: Put quotes around expectation comments with spaces.
2022-09-30 14:23:18 +01:00
Mathias Vorreiter Pedersen
c4c7c95db2
C++: Add SimpleRangeAnalysis test file to the new range-analysis library test directory.
2022-09-30 14:23:14 +01:00
Tom Hvitved
7a694d5da5
C++: Update expected test output
2022-09-22 15:01:40 +02:00
Jeroen Ketema
1140d27bda
C++: Add tests for newly supported builtin operations
2022-09-08 10:06:57 +02:00
Mathias Vorreiter Pedersen
885bf427bd
C++: Accept test changes.
2022-09-05 23:26:03 +01:00
Mathias Vorreiter Pedersen
fc85ef76ed
C++: Introduce 'PseudoDeclarationEntry's to handle missing 'DeclarationEntry's during IR construction.
2022-09-05 22:17:14 +01:00
Mathias Vorreiter Pedersen
2da46ad691
C++: Add two testcases demonstrating malformed IR from missing declaration entries from decl stmts.
2022-09-05 17:49:20 +01:00
erik-krogh
cc7a9ef97a
rename more acronyms
2022-08-25 20:52:27 +02:00
erik-krogh
e89e0eb7fb
make some acronyms camelCase
2022-08-22 21:22:35 +02:00
erik-krogh
ce9f69a639
rename all occurrences of XML to Xml
2022-08-22 14:08:31 +02:00
Jeroen Ketema
4a7ad84d02
C++: Add __func__ and __PRETTY_FUNCTION__ IR tests
2022-08-20 01:09:52 +02:00
Jeroen Ketema
584a0189a8
C++: Update test results after changes
2022-08-19 21:50:45 +02:00
Robert Marsh
9e0c82eabb
Merge pull request #10039 from rdmarsh2/rdmarsh2/cpp/sem-range-analysis-perf
...
C++: Fix missing bounds and performance issues in semantic range analysis
2022-08-16 12:27:02 -04:00
Robert Marsh
818bdcf3ab
C++: autoformat a test
2022-08-16 11:31:28 -04:00
Robert Marsh
5450681ade
C++: Autoformat and fix a test
2022-08-12 13:49:16 -04:00
Jeroen Ketema
4d76fd198e
C++: Handle block assignments in the IR
2022-08-12 18:43:23 +02:00
Jeroen Ketema
5c905b76b4
C++: Expose block assignment operations in the QL library
2022-08-12 18:43:23 +02:00
Jeroen Ketema
ebf8161f1b
C++: Add block assignment expression to the database schema
...
These can under some circumstances be generated by the frontend as part
of compiler generated copy constructors and assignment operators.
2022-08-12 18:43:23 +02:00
Jeroen Ketema
de142b276d
C++: Add IR test that exposes a gap in the extractor output
2022-08-12 18:43:23 +02:00
Jeroen Ketema
8528e6b8e1
C++: Update test results for exposing attribute arguments as proper constants
2022-08-10 21:11:58 +02:00
Jeroen Ketema
ba2cee07a9
Merge pull request #8596 from rdmarsh2/rdmarsh2/dataflow-global-vars
...
C++: IR data flow through global variables
2022-08-05 10:07:00 +02:00
Robert Marsh
3007c96c72
C++: fix a nit
2022-08-01 15:34:03 -04:00
Robert Marsh
6dbaae6bfc
Merge branch 'main' into rdmarsh2/dataflow-global-vars
2022-08-01 14:56:24 -04:00
Robert Marsh
4f8373f577
Merge branch 'main' into rdmarsh2/dataflow-global-vars
2022-08-01 14:55:45 -04:00
Jeroen Ketema
c02e7a4896
C++: Update test for indexing of static template variable template arguments
2022-07-31 09:58:29 +02:00
Jeroen Ketema
20b66eaf34
C++: Support __builtin_shuffle builtin
...
While here write gcc instead of GNU, which is more accurate.
2022-07-29 09:08:56 +02:00
Jeroen Ketema
81e687ea98
C++: Support __builtin_bit_cast builtin
2022-07-29 09:08:56 +02:00
Jeroen Ketema
a85d3f9b7f
C++: Support __has_unique_object_representations builtin
2022-07-29 09:08:56 +02:00
Jeroen Ketema
0c03935437
C++: Support __is_aggregate builtin
...
Fix some whitespace issues while here.
2022-07-29 09:08:56 +02:00
Jeroen Ketema
c4283dd23f
C++: Support __is_assignable builtin
...
While here fix the documentation of `__is_trivially_assignable` and
`__is_nothrow_assignable`.
2022-07-29 09:08:56 +02:00
Jeroen Ketema
23c19311fb
Merge pull request #9700 from jketema/resolve-global-variable
...
C++: Ensure only one `Variable` exists for every global variable
2022-07-22 17:57:21 +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
Jeroen Ketema
82c9b8b494
C++: Ensure only one Variable exists for every global variable
...
Depending on the extraction order, before this change there might be multiple
`GlobalVariable`s per declared global variable. See the tests in
`cpp/ql/test/library-tests/variables/global`. This change ensures that only one
of those `GlobalVariable`s is visible to the user if we can locate a unique
definition. If not, the old situation persists.
Note that an exception needs to be made for templated variables. Here, the
definition refers to the non-instantiated template, while a declaration that
is not a definition refers to an instantiation. In case the instantiation refers
to a template parameter, the mangled names of the template and the instantiation
will be identical. This happens for example in the following case:
```
template <typename T>
T x = T(42); // Uninstantiated templated variable
template <typename T>
class C {
T y = x<T>; // Instantiation using a template parameter
};
```
Since the uninstantiated template and the instantiation are two different
entities, we do not unify them as described above.
2022-06-28 15:32:43 +02:00
Jeroen Ketema
f9e09da604
Merge pull request #9643 from jketema/namespace-variable-test
...
C++: Add variable in namespace test
2022-06-22 15:58:26 +02:00
Mathias Vorreiter Pedersen
1febe87356
Merge pull request #9644 from jketema/class-entry-fix
...
C++: Ensure we can round trip between (forward) class declarations
2022-06-22 14:12:11 +01:00
Jeroen Ketema
b1dd8da587
C++: Fix query formatting
2022-06-22 12:59:49 +02:00
Anders Schack-Mulligen
df6d68b215
Merge pull request #9618 from aschackmull/dataflow/deprecate-barrierguard-class
...
Dataflow: Deprecate BarrierGuard class
2022-06-22 10:44:08 +02:00
Jeroen Ketema
880c785efe
C++: Ensure we can round trip between (forward) class declarations
...
This was already possible when the forward class declaration and the class
definition occurred in the same scope. However, there is a common C++ usage
pattern in which this is not the case (when only a pointer to the class is
needed). In this latter scenario we could not round trip between the (forward)
`DeclarationEntry` and the `Declaration`.
Effectively this changes the code to:
```
if exists(TypeDeclarationEntry e | e.getType() = this)
then result.getType() = this
else ...
```
We use `type_decls` instead to stay close to the original code.
2022-06-22 07:58:45 +02:00
Jeroen Ketema
0f37e4e7b2
C++: Add variable in namespace test
2022-06-22 07:56:27 +02:00
Jeroen Ketema
a8833a0c70
C++: Test showing going from a forward class declaration to a class but not back
2022-06-22 07:53:50 +02:00
Jeroen Ketema
40e0356177
C++: Test that we can go from a DeclarationEntry to a Declaration and back
2022-06-22 07:53:50 +02:00
Jeroen Ketema
1f97f1d931
C++: Add global variable tests
2022-06-21 10:43:40 +02:00
Robert Marsh
d28c39cd73
C++: update test expectations
2022-06-20 15:56:00 -04:00
Robert Marsh
5a3e546bfe
C++: update test expectations
2022-06-20 15:55:50 -04:00