Commit Graph

54 Commits

Author SHA1 Message Date
Jeroen Ketema
84775b71c3 C++: Support arguments and instantiations of template template parameters 2025-01-02 17:59:06 +01:00
Jeroen Ketema
51f625b90c C++: Allow sizeof pack in sizeof_bind 2024-12-20 11:49:37 +01:00
Jeroen Ketema
8b626266c4 C++: Support non-type template parameters in the database scheme 2024-12-18 16:53:06 +01:00
Calum Grant
fcf16848d2 Revert "Revert "C++: Implement compilation_build_mode"" 2024-11-22 15:48:50 +00:00
Calum Grant
169671ad93 Revert "C++: Implement compilation_build_mode" 2024-11-22 11:42:39 +00:00
Calum Grant
d3e8292db9 C++: Update dbscheme 2024-11-21 13:45:15 +00:00
Calum Grant
ac4121dd6c C++: Describe compilation_build_mode using a case 2024-11-21 13:45:14 +00:00
Calum Grant
6f3e6edd0e C++: Implement compilation_build_mode 2024-11-21 13:45:13 +00:00
Jeroen Ketema
168f7f5d34 C++: Add support for C++ requires expressions 2024-10-15 13:44:17 +02:00
Jeroen Ketema
723236d15b C++: Add a skeleton class for requires expressions 2024-10-09 02:16:20 +02:00
Jeroen Ketema
8ca52f278a C++: Fix coroutine IR inconsistencies
While here, remove some dead code related to fixed points from the database
scheme.
2024-09-03 18:12:36 +02:00
Jeroen Ketema
4945943732 C++: Support C11 _Generic expressions 2024-08-30 14:24:03 +02:00
Jeroen Ketema
9e861ce717 C++: Add support for more clang builtins 2024-08-28 13:08:42 +02:00
Jeroen Ketema
9744c06933 C++: Expose explicit and explicit(bool) function specifiers 2024-08-02 15:39:18 +02:00
Jeroen Ketema
4dcf67940c C++: Add getTemplateClass to DeductionGuide 2024-08-01 20:54:53 +02:00
Jeroen Ketema
acbca9c108 C++: Support destroying deletes 2024-07-24 08:21:01 +02:00
Alexandre Boulgakov
a0954f15c0 C++: Support using enum declarations. 2024-07-22 17:42:25 +01:00
Jeroen Ketema
3f789bad60 C++: Support more builtin operations 2024-07-10 21:27:09 +02:00
Jeroen Ketema
9eb51a9b9e C++: Add value category column to the expr_reuse relation 2024-03-27 22:49:40 +01:00
Jeroen Ketema
8d5eab401d C++: Introduce re-use expressions in the database scheme 2024-03-13 13:28:27 +01:00
Jeroen Ketema
dd39fa0bde C++: Support C++20 range-based for initializers 2024-02-16 15:20:14 +01:00
Jeroen Ketema
972d86c0a0 C++: Add column to mangled_name table with completeness information 2024-02-01 16:12:53 +01:00
Jeroen Ketema
9c1de5b2b6 C++: Support more function types 2024-01-02 15:13:20 +01:00
Jeroen Ketema
ad2fb7c6d5 C++: Support attribute arguments that are expressions 2023-12-23 10:04:50 +01:00
Nora Dimitrijević
0307354d6e Relax the C++ dbscheme for link_targets/2 2023-12-05 22:03:40 +01:00
Jeroen Ketema
7dec819151 C++: Expose whether a function was prototyped or not 2023-11-28 10:24:43 +01:00
Mathias Vorreiter Pedersen
86fe5b47db C++: Remove 'assignpaddexpr' and 'assignpsubexpr' from the 'assign_bitwise_expr' type. 2023-10-30 16:06:53 +00:00
Jeroen Ketema
903f376620 C++: Define an extractor version table and use in IR generation 2023-10-26 12:07:19 +02:00
Jeroen Ketema
2a64552979 C++: Add support for C23/C++23 floating-point types 2023-10-19 10:45:14 +02:00
Alex Eyers-Taylor
d79a2c7674 CPP:Make __is_trivial a builtin operation. 2023-09-14 12:50:36 +01:00
Jeroen Ketema
7b3bdee5ea C++: Update dbscheme and add upgrade and downgrade scripts 2023-08-04 17:59:03 +02:00
Alexandre Boulgakov
d0a77a8433 C++: Support repeated initializers in dbscheme. 2023-03-31 17:53:12 +01:00
Jeroen Ketema
1bab950023 C++: Introduce (_Complex) _Float16 type which is needed after frontend update 2023-01-10 10:41:43 +01:00
Jeroen Ketema
b9b0c8091f C++: Uncomment cases in dbscheme
Note that the builtin types `__int{8,16,32,64}` are not uncommented,
as these are never and could have never been generated by the
extractor.
2023-01-06 14:26:23 +01:00
Jeroen Ketema
23b9b07f28 C++: Support more builtin operations 2022-09-08 10:06:57 +02:00
Jeroen Ketema
3b81f4860e C++: Add orphaned local variable relation to DB scheme 2022-08-19 15:21:56 +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
553f1c496e C++: Update DB scheme to allow for constant expression as attribute arguments 2022-08-10 21:11:58 +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
38be04461e C++: Introduce relation for tracking braced initializers 2022-05-30 16:26:19 +02:00
Jeroen Ketema
71c019e126 C++: Handle C++17 switch initializers 2022-05-12 12:56:50 +02:00
Jeroen Ketema
ebbd9c5b90 C++: Handle C++17 if initializers 2022-05-12 12:56:50 +02:00
Paolo Tranquilli
34829e92b1 C++: Remove uniqueness constraint from uuid
Different class definitions can have the same uuid. This happens for
example when using `#import <msxml6.dll>` there will be several C++
classes generated in `msxml6.tlh` which will share uuids with
`extern "C"` struct declarations in the system header `msxml.h`.

Notice that as far as the standard cpp QL library and queries go, we
expose `getUuid()` on `UserType` and we never try to invert it, so we
only rely on uniqueness of the `id` column in the `usertype_uuid` table,
not the `uuid` column.

Closes github/codeql-c-team#893
2022-03-10 10:33:37 +01:00
Jeroen Ketema
f358f8f265 C++: Add DB relation identifying structured bindings 2022-02-17 11:44:08 +01:00
Jeroen Ketema
bf6ca7a7be C++: Remove some unused legacy relations from the DB scheme 2022-02-15 10:16:35 +01:00
Mathias Vorreiter Pedersen
ab7850c581 Revert "Merge pull request #7982 from jketema/remove-legacy-relations"
This reverts commit 2b6d57d85b, reversing
changes made to 9b4dbb9dd8.
2022-02-14 09:11:56 +00:00