diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme
new file mode 100644
index 000000000000..d2d611b3fdcc
--- /dev/null
+++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/old.dbscheme
@@ -0,0 +1,2469 @@
+
+/*- Compilations -*/
+
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ */
+ unique int id : @compilation,
+ string cwd : string ref
+);
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--mimic`
+ * 2 | `/usr/bin/gcc`
+ * 3 | `-c`
+ * 4 | f1.c
+ * 5 | f2.c
+ * 6 | f3.c
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * Optionally, record the build mode for each compilation.
+ */
+compilation_build_mode(
+ unique int id : @compilation ref,
+ int mode : int ref
+);
+
+/*
+case @compilation_build_mode.mode of
+ 0 = @build_mode_none
+| 1 = @build_mode_manual
+| 2 = @build_mode_auto
+;
+*/
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | f1.c
+ * 1 | f2.c
+ * 2 | f3.c
+ *
+ * Note that even if those files `#include` headers, those headers
+ * do not appear as rows.
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/*- External data -*/
+
+/**
+ * External data, loaded from CSV files during snapshot creation. See
+ * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data)
+ * for more information.
+ */
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+/*- Source location prefix -*/
+
+/**
+ * The source location of the snapshot.
+ */
+sourceLocationPrefix(string prefix : string ref);
+
+/*- Files and folders -*/
+
+/**
+ * The location of an element.
+ * The location spans column `startcolumn` of line `startline` to
+ * column `endcolumn` of line `endline` in file `file`.
+ * For more information, see
+ * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
+ */
+locations_default(
+ unique int id: @location_default,
+ int file: @file ref,
+ int beginLine: int ref,
+ int beginColumn: int ref,
+ int endLine: int ref,
+ int endColumn: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @file | @folder
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*- Lines of code -*/
+
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+/*- Diagnostic messages -*/
+
+diagnostics(
+ unique int id: @diagnostic,
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/*- C++ dbscheme -*/
+
+extractor_version(
+ string codeql_version: string ref,
+ string frontend_version: string ref
+)
+
+pch_uses(
+ int pch: @pch ref,
+ int compilation: @compilation ref,
+ int id: @file ref
+)
+
+#keyset[pch, compilation]
+pch_creations(
+ int pch: @pch,
+ int compilation: @compilation ref,
+ int from: @file ref
+)
+
+/** An element for which line-count information is available. */
+@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable;
+
+fileannotations(
+ int id: @file ref,
+ int kind: int ref,
+ string name: string ref,
+ string value: string ref
+);
+
+inmacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+affectedbymacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+case @macroinvocation.kind of
+ 1 = @macro_expansion
+| 2 = @other_macro_reference
+;
+
+macroinvocations(
+ unique int id: @macroinvocation,
+ int macro_id: @ppd_define ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+macroparent(
+ unique int id: @macroinvocation ref,
+ int parent_id: @macroinvocation ref
+);
+
+// a macroinvocation may be part of another location
+// the way to find a constant expression that uses a macro
+// is thus to find a constant expression that has a location
+// to which a macro invocation is bound
+macrolocationbind(
+ int id: @macroinvocation ref,
+ int location: @location_default ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_unexpanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_expanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+case @function.kind of
+ 0 = @unknown_function
+| 1 = @normal_function
+| 2 = @constructor
+| 3 = @destructor
+| 4 = @conversion_function
+| 5 = @operator
+// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk
+| 7 = @user_defined_literal
+| 8 = @deduction_guide
+;
+
+functions(
+ unique int id: @function,
+ string name: string ref,
+ int kind: int ref
+);
+
+builtin_functions(
+ int id: @function ref
+)
+
+function_entry_point(
+ int id: @function ref,
+ unique int entry_point: @stmt ref
+);
+
+function_return_type(
+ int id: @function ref,
+ int return_type: @type ref
+);
+
+/**
+ * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits`
+ * instance associated with it, and the variables representing the `handle` and `promise`
+ * for it.
+ */
+coroutine(
+ unique int function: @function ref,
+ int traits: @type ref
+);
+
+/*
+case @coroutine_placeholder_variable.kind of
+ 1 = @handle
+| 2 = @promise
+| 3 = @init_await_resume
+;
+*/
+
+coroutine_placeholder_variable(
+ unique int placeholder_variable: @variable ref,
+ int kind: int ref,
+ int function: @function ref
+)
+
+/** The `new` function used for allocating the coroutine state, if any. */
+coroutine_new(
+ unique int function: @function ref,
+ int new: @function ref
+);
+
+/** The `delete` function used for deallocating the coroutine state, if any. */
+coroutine_delete(
+ unique int function: @function ref,
+ int delete: @function ref
+);
+
+purefunctions(unique int id: @function ref);
+
+function_deleted(unique int id: @function ref);
+
+function_defaulted(unique int id: @function ref);
+
+function_prototyped(unique int id: @function ref)
+
+deduction_guide_for_class(
+ int id: @function ref,
+ int class_template: @usertype ref
+)
+
+member_function_this_type(
+ unique int id: @function ref,
+ int this_type: @type ref
+);
+
+#keyset[id, type_id]
+fun_decls(
+ int id: @fun_decl,
+ int function: @function ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+fun_def(unique int id: @fun_decl ref);
+fun_specialized(unique int id: @fun_decl ref);
+fun_implicit(unique int id: @fun_decl ref);
+fun_decl_specifiers(
+ int id: @fun_decl ref,
+ string name: string ref
+)
+#keyset[fun_decl, index]
+fun_decl_throws(
+ int fun_decl: @fun_decl ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+/* an empty throw specification is different from none */
+fun_decl_empty_throws(unique int fun_decl: @fun_decl ref);
+fun_decl_noexcept(
+ int fun_decl: @fun_decl ref,
+ int constant: @expr ref
+);
+fun_decl_empty_noexcept(int fun_decl: @fun_decl ref);
+fun_decl_typedef_type(
+ unique int fun_decl: @fun_decl ref,
+ int typedeftype_id: @usertype ref
+);
+
+/*
+case @fun_requires.kind of
+ 1 = @template_attached
+| 2 = @function_attached
+;
+*/
+
+fun_requires(
+ int id: @fun_decl ref,
+ int kind: int ref,
+ int constraint: @expr ref
+);
+
+param_decl_bind(
+ unique int id: @var_decl ref,
+ int index: int ref,
+ int fun_decl: @fun_decl ref
+);
+
+#keyset[id, type_id]
+var_decls(
+ int id: @var_decl,
+ int variable: @variable ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+var_def(unique int id: @var_decl ref);
+var_specialized(int id: @var_decl ref);
+var_decl_specifiers(
+ int id: @var_decl ref,
+ string name: string ref
+)
+is_structured_binding(unique int id: @variable ref);
+var_requires(
+ int id: @var_decl ref,
+ int constraint: @expr ref
+);
+
+type_decls(
+ unique int id: @type_decl,
+ int type_id: @type ref,
+ int location: @location_default ref
+);
+type_def(unique int id: @type_decl ref);
+type_decl_top(
+ unique int type_decl: @type_decl ref
+);
+type_requires(
+ int id: @type_decl ref,
+ int constraint: @expr ref
+);
+
+namespace_decls(
+ unique int id: @namespace_decl,
+ int namespace_id: @namespace ref,
+ int location: @location_default ref,
+ int bodylocation: @location_default ref
+);
+
+case @using.kind of
+ 1 = @using_declaration
+| 2 = @using_directive
+| 3 = @using_enum_declaration
+;
+
+usings(
+ unique int id: @using,
+ int element_id: @element ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+/** The element which contains the `using` declaration. */
+using_container(
+ int parent: @element ref,
+ int child: @using ref
+);
+
+static_asserts(
+ unique int id: @static_assert,
+ int condition : @expr ref,
+ string message : string ref,
+ int location: @location_default ref,
+ int enclosing : @element ref
+);
+
+// each function has an ordered list of parameters
+#keyset[id, type_id]
+#keyset[function, index, type_id]
+params(
+ int id: @parameter,
+ int function: @parameterized_element ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+overrides(
+ int new: @function ref,
+ int old: @function ref
+);
+
+#keyset[id, type_id]
+membervariables(
+ int id: @membervariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+globalvariables(
+ int id: @globalvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+localvariables(
+ int id: @localvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+autoderivation(
+ unique int var: @variable ref,
+ int derivation_type: @type ref
+);
+
+orphaned_variables(
+ int var: @localvariable ref,
+ int function: @function ref
+)
+
+enumconstants(
+ unique int id: @enumconstant,
+ int parent: @usertype ref,
+ int index: int ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+
+@variable = @localscopevariable | @globalvariable | @membervariable;
+
+@localscopevariable = @localvariable | @parameter;
+
+/**
+ * Built-in types are the fundamental types, e.g., integral, floating, and void.
+ */
+case @builtintype.kind of
+ 1 = @errortype
+| 2 = @unknowntype
+| 3 = @void
+| 4 = @boolean
+| 5 = @char
+| 6 = @unsigned_char
+| 7 = @signed_char
+| 8 = @short
+| 9 = @unsigned_short
+| 10 = @signed_short
+| 11 = @int
+| 12 = @unsigned_int
+| 13 = @signed_int
+| 14 = @long
+| 15 = @unsigned_long
+| 16 = @signed_long
+| 17 = @long_long
+| 18 = @unsigned_long_long
+| 19 = @signed_long_long
+// ... 20 Microsoft-specific __int8
+// ... 21 Microsoft-specific __int16
+// ... 22 Microsoft-specific __int32
+// ... 23 Microsoft-specific __int64
+| 24 = @float
+| 25 = @double
+| 26 = @long_double
+| 27 = @complex_float // C99-specific _Complex float
+| 28 = @complex_double // C99-specific _Complex double
+| 29 = @complex_long_double // C99-specific _Complex long double
+| 30 = @imaginary_float // C99-specific _Imaginary float
+| 31 = @imaginary_double // C99-specific _Imaginary double
+| 32 = @imaginary_long_double // C99-specific _Imaginary long double
+| 33 = @wchar_t // Microsoft-specific
+| 34 = @decltype_nullptr // C++11
+| 35 = @int128 // __int128
+| 36 = @unsigned_int128 // unsigned __int128
+| 37 = @signed_int128 // signed __int128
+| 38 = @float128 // __float128
+| 39 = @complex_float128 // _Complex __float128
+// ... 40 _Decimal32
+// ... 41 _Decimal64
+// ... 42 _Decimal128
+| 43 = @char16_t
+| 44 = @char32_t
+| 45 = @std_float32 // _Float32
+| 46 = @float32x // _Float32x
+| 47 = @std_float64 // _Float64
+| 48 = @float64x // _Float64x
+| 49 = @std_float128 // _Float128
+// ... 50 _Float128x
+| 51 = @char8_t
+| 52 = @float16 // _Float16
+| 53 = @complex_float16 // _Complex _Float16
+| 54 = @fp16 // __fp16
+| 55 = @std_bfloat16 // __bf16
+| 56 = @std_float16 // std::float16_t
+| 57 = @complex_std_float32 // _Complex _Float32
+| 58 = @complex_float32x // _Complex _Float32x
+| 59 = @complex_std_float64 // _Complex _Float64
+| 60 = @complex_float64x // _Complex _Float64x
+| 61 = @complex_std_float128 // _Complex _Float128
+| 62 = @mfp8 // __mfp8
+| 63 = @scalable_vector_count // __SVCount_t
+| 64 = @complex_fp16 // _Complex __fp16
+| 65 = @complex_std_bfloat16 // _Complex __bf16
+| 66 = @complex_std_float16 // _Complex std::float16_t
+;
+
+builtintypes(
+ unique int id: @builtintype,
+ string name: string ref,
+ int kind: int ref,
+ int size: int ref,
+ int sign: int ref,
+ int alignment: int ref
+);
+
+/**
+ * Derived types are types that are directly derived from existing types and
+ * point to, refer to, transform type data to return a new type.
+ */
+case @derivedtype.kind of
+ 1 = @pointer
+| 2 = @reference
+| 3 = @type_with_specifiers
+| 4 = @array
+| 5 = @gnu_vector
+| 6 = @routineptr
+| 7 = @routinereference
+| 8 = @rvalue_reference // C++11
+// ... 9 type_conforming_to_protocols deprecated
+| 10 = @block
+| 11 = @scalable_vector // Arm SVE
+;
+
+derivedtypes(
+ unique int id: @derivedtype,
+ string name: string ref,
+ int kind: int ref,
+ int type_id: @type ref
+);
+
+pointerishsize(unique int id: @derivedtype ref,
+ int size: int ref,
+ int alignment: int ref);
+
+arraysizes(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref,
+ int bytesize: int ref,
+ int alignment: int ref
+);
+
+tupleelements(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref
+);
+
+typedefbase(
+ unique int id: @usertype ref,
+ int type_id: @type ref
+);
+
+/**
+ * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual`
+ * operator taking an expression as its argument. For example:
+ * ```
+ * int a;
+ * decltype(1+a) b;
+ * typeof(1+a) c;
+ * ```
+ * Here `expr` is `1+a`.
+ *
+ * Sometimes an additional pair of parentheses around the expression
+ * changes the semantics of the decltype, e.g.
+ * ```
+ * struct A { double x; };
+ * const A* a = new A();
+ * decltype( a->x ); // type is double
+ * decltype((a->x)); // type is const double&
+ * ```
+ * (Please consult the C++11 standard for more details).
+ * `parentheses_would_change_meaning` is `true` iff that is the case.
+ */
+
+/*
+case @decltype.kind of
+| 0 = @decltype
+| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+;
+*/
+
+#keyset[id, expr]
+decltypes(
+ int id: @decltype,
+ int expr: @expr ref,
+ int kind: int ref,
+ int base_type: @type ref,
+ boolean parentheses_would_change_meaning: boolean ref
+);
+
+case @type_operator.kind of
+ 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+| 1 = @underlying_type
+| 2 = @bases
+| 3 = @direct_bases
+| 4 = @add_lvalue_reference
+| 5 = @add_pointer
+| 6 = @add_rvalue_reference
+| 7 = @decay
+| 8 = @make_signed
+| 9 = @make_unsigned
+| 10 = @remove_all_extents
+| 11 = @remove_const
+| 12 = @remove_cv
+| 13 = @remove_cvref
+| 14 = @remove_extent
+| 15 = @remove_pointer
+| 16 = @remove_reference_t
+| 17 = @remove_restrict
+| 18 = @remove_volatile
+| 19 = @remove_reference
+;
+
+type_operators(
+ unique int id: @type_operator,
+ int arg_type: @type ref,
+ int kind: int ref,
+ int base_type: @type ref
+)
+
+case @usertype.kind of
+ 0 = @unknown_usertype
+| 1 = @struct
+| 2 = @class
+| 3 = @union
+| 4 = @enum
+// ... 5 = @typedef deprecated // classic C: typedef typedef type name
+// ... 6 = @template deprecated
+| 7 = @template_parameter
+| 8 = @template_template_parameter
+| 9 = @proxy_class // a proxy class associated with a template parameter
+// ... 10 objc_class deprecated
+// ... 11 objc_protocol deprecated
+// ... 12 objc_category deprecated
+| 13 = @scoped_enum
+// ... 14 = @using_alias deprecated // a using name = type style typedef
+| 15 = @template_struct
+| 16 = @template_class
+| 17 = @template_union
+| 18 = @alias
+;
+
+usertypes(
+ unique int id: @usertype,
+ string name: string ref,
+ int kind: int ref
+);
+
+usertypesize(
+ unique int id: @usertype ref,
+ int size: int ref,
+ int alignment: int ref
+);
+
+usertype_final(unique int id: @usertype ref);
+
+usertype_uuid(
+ unique int id: @usertype ref,
+ string uuid: string ref
+);
+
+/*
+case @usertype.alias_kind of
+| 0 = @typedef
+| 1 = @alias
+*/
+
+usertype_alias_kind(
+ int id: @usertype ref,
+ int alias_kind: int ref
+)
+
+nontype_template_parameters(
+ int id: @expr ref
+);
+
+type_template_type_constraint(
+ int id: @usertype ref,
+ int constraint: @expr ref
+);
+
+mangled_name(
+ unique int id: @declaration ref,
+ int mangled_name : @mangledname,
+ boolean is_complete: boolean ref
+);
+
+is_pod_class(unique int id: @usertype ref);
+is_standard_layout_class(unique int id: @usertype ref);
+
+is_complete(unique int id: @usertype ref);
+
+is_class_template(unique int id: @usertype ref);
+class_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+class_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+class_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@user_or_decltype = @usertype | @decltype;
+
+is_proxy_class_for(
+ unique int id: @usertype ref,
+ int templ_param_id: @user_or_decltype ref
+);
+
+type_mentions(
+ unique int id: @type_mention,
+ int type_id: @type ref,
+ int location: @location_default ref,
+ // a_symbol_reference_kind from the frontend.
+ int kind: int ref
+);
+
+is_function_template(unique int id: @function ref);
+function_instantiation(
+ unique int to: @function ref,
+ int from: @function ref
+);
+function_template_argument(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+function_template_argument_value(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+is_variable_template(unique int id: @variable ref);
+variable_instantiation(
+ unique int to: @variable ref,
+ int from: @variable ref
+);
+variable_template_argument(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+variable_template_argument_value(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+template_template_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+template_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+template_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@concept = @concept_template | @concept_id;
+
+concept_templates(
+ unique int concept_id: @concept_template,
+ string name: string ref,
+ int location: @location_default ref
+);
+concept_instantiation(
+ unique int to: @concept_id ref,
+ int from: @concept_template ref
+);
+is_type_constraint(int concept_id: @concept_id ref);
+concept_template_argument(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+concept_template_argument_value(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+routinetypes(
+ unique int id: @routinetype,
+ int return_type: @type ref
+);
+
+routinetypeargs(
+ int routine: @routinetype ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+ptrtomembers(
+ unique int id: @ptrtomember,
+ int type_id: @type ref,
+ int class_id: @type ref
+);
+
+/*
+ specifiers for types, functions, and variables
+
+ "public",
+ "protected",
+ "private",
+
+ "const",
+ "volatile",
+ "static",
+
+ "pure",
+ "virtual",
+ "sealed", // Microsoft
+ "__interface", // Microsoft
+ "inline",
+ "explicit",
+
+ "near", // near far extension
+ "far", // near far extension
+ "__ptr32", // Microsoft
+ "__ptr64", // Microsoft
+ "__sptr", // Microsoft
+ "__uptr", // Microsoft
+ "dllimport", // Microsoft
+ "dllexport", // Microsoft
+ "thread", // Microsoft
+ "naked", // Microsoft
+ "microsoft_inline", // Microsoft
+ "forceinline", // Microsoft
+ "selectany", // Microsoft
+ "nothrow", // Microsoft
+ "novtable", // Microsoft
+ "noreturn", // Microsoft
+ "noinline", // Microsoft
+ "noalias", // Microsoft
+ "restrict", // Microsoft
+*/
+
+specifiers(
+ unique int id: @specifier,
+ unique string str: string ref
+);
+
+typespecifiers(
+ int type_id: @type ref,
+ int spec_id: @specifier ref
+);
+
+funspecifiers(
+ int func_id: @function ref,
+ int spec_id: @specifier ref
+);
+
+varspecifiers(
+ int var_id: @accessible ref,
+ int spec_id: @specifier ref
+);
+
+explicit_specifier_exprs(
+ unique int func_id: @function ref,
+ int constant: @expr ref
+)
+
+attributes(
+ unique int id: @attribute,
+ int kind: int ref,
+ string name: string ref,
+ string name_space: string ref,
+ int location: @location_default ref
+);
+
+case @attribute.kind of
+ 0 = @gnuattribute
+| 1 = @stdattribute
+| 2 = @declspec
+| 3 = @msattribute
+| 4 = @alignas
+// ... 5 @objc_propertyattribute deprecated
+;
+
+attribute_args(
+ unique int id: @attribute_arg,
+ int kind: int ref,
+ int attribute: @attribute ref,
+ int index: int ref,
+ int location: @location_default ref
+);
+
+case @attribute_arg.kind of
+ 0 = @attribute_arg_empty
+| 1 = @attribute_arg_token
+| 2 = @attribute_arg_constant
+| 3 = @attribute_arg_type
+| 4 = @attribute_arg_constant_expr
+| 5 = @attribute_arg_expr
+;
+
+attribute_arg_value(
+ unique int arg: @attribute_arg ref,
+ string value: string ref
+);
+attribute_arg_type(
+ unique int arg: @attribute_arg ref,
+ int type_id: @type ref
+);
+attribute_arg_constant(
+ unique int arg: @attribute_arg ref,
+ int constant: @expr ref
+)
+attribute_arg_expr(
+ unique int arg: @attribute_arg ref,
+ int expr: @expr ref
+)
+attribute_arg_name(
+ unique int arg: @attribute_arg ref,
+ string name: string ref
+);
+
+typeattributes(
+ int type_id: @type ref,
+ int spec_id: @attribute ref
+);
+
+funcattributes(
+ int func_id: @function ref,
+ int spec_id: @attribute ref
+);
+
+varattributes(
+ int var_id: @accessible ref,
+ int spec_id: @attribute ref
+);
+
+namespaceattributes(
+ int namespace_id: @namespace ref,
+ int spec_id: @attribute ref
+);
+
+stmtattributes(
+ int stmt_id: @stmt ref,
+ int spec_id: @attribute ref
+);
+
+@type = @builtintype
+ | @derivedtype
+ | @usertype
+ | @routinetype
+ | @ptrtomember
+ | @decltype
+ | @type_operator;
+
+unspecifiedtype(
+ unique int type_id: @type ref,
+ int unspecified_type_id: @type ref
+);
+
+member(
+ int parent: @type ref,
+ int index: int ref,
+ int child: @member ref
+);
+
+@enclosingfunction_child = @usertype | @variable | @namespace
+
+enclosingfunction(
+ unique int child: @enclosingfunction_child ref,
+ int parent: @function ref
+);
+
+derivations(
+ unique int derivation: @derivation,
+ int sub: @type ref,
+ int index: int ref,
+ int super: @type ref,
+ int location: @location_default ref
+);
+
+derspecifiers(
+ int der_id: @derivation ref,
+ int spec_id: @specifier ref
+);
+
+/**
+ * Contains the byte offset of the base class subobject within the derived
+ * class. Only holds for non-virtual base classes, but see table
+ * `virtual_base_offsets` for offsets of virtual base class subobjects.
+ */
+direct_base_offsets(
+ unique int der_id: @derivation ref,
+ int offset: int ref
+);
+
+/**
+ * Contains the byte offset of the virtual base class subobject for class
+ * `super` within a most-derived object of class `sub`. `super` can be either a
+ * direct or indirect base class.
+ */
+#keyset[sub, super]
+virtual_base_offsets(
+ int sub: @usertype ref,
+ int super: @usertype ref,
+ int offset: int ref
+);
+
+frienddecls(
+ unique int id: @frienddecl,
+ int type_id: @type ref,
+ int decl_id: @declaration ref,
+ int location: @location_default ref
+);
+
+@declaredtype = @usertype ;
+
+@declaration = @function
+ | @declaredtype
+ | @variable
+ | @enumconstant
+ | @frienddecl
+ | @concept_template;
+
+@member = @membervariable
+ | @function
+ | @declaredtype
+ | @enumconstant;
+
+@locatable = @diagnostic
+ | @declaration
+ | @ppd_include
+ | @ppd_define
+ | @macroinvocation
+ /*| @funcall*/
+ | @xmllocatable
+ | @attribute
+ | @attribute_arg;
+
+@namedscope = @namespace | @usertype;
+
+@element = @locatable
+ | @file
+ | @folder
+ | @specifier
+ | @type
+ | @expr
+ | @namespace
+ | @initialiser
+ | @stmt
+ | @derivation
+ | @comment
+ | @preprocdirect
+ | @fun_decl
+ | @var_decl
+ | @type_decl
+ | @namespace_decl
+ | @using
+ | @namequalifier
+ | @specialnamequalifyingelement
+ | @static_assert
+ | @type_mention
+ | @lambdacapture;
+
+@exprparent = @element;
+
+comments(
+ unique int id: @comment,
+ string contents: string ref,
+ int location: @location_default ref
+);
+
+commentbinding(
+ int id: @comment ref,
+ int element: @element ref
+);
+
+exprconv(
+ int converted: @expr ref,
+ unique int conversion: @expr ref
+);
+
+compgenerated(unique int id: @element ref);
+
+/**
+ * `destructor_call` destructs the `i`'th entity that should be
+ * destructed following `element`. Note that entities should be
+ * destructed in reverse construction order, so for a given `element`
+ * these should be called from highest to lowest `i`.
+ */
+#keyset[element, destructor_call]
+#keyset[element, i]
+synthetic_destructor_call(
+ int element: @element ref,
+ int i: int ref,
+ int destructor_call: @routineexpr ref
+);
+
+namespaces(
+ unique int id: @namespace,
+ string name: string ref
+);
+
+namespace_inline(
+ unique int id: @namespace ref
+);
+
+namespacembrs(
+ int parentid: @namespace ref,
+ unique int memberid: @namespacembr ref
+);
+
+@namespacembr = @declaration | @namespace;
+
+exprparents(
+ int expr_id: @expr ref,
+ int child_index: int ref,
+ int parent_id: @exprparent ref
+);
+
+expr_isload(unique int expr_id: @expr ref);
+
+@cast = @c_style_cast
+ | @const_cast
+ | @dynamic_cast
+ | @reinterpret_cast
+ | @static_cast
+ ;
+
+/*
+case @conversion.kind of
+ 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast
+| 1 = @bool_conversion // conversion to 'bool'
+| 2 = @base_class_conversion // a derived-to-base conversion
+| 3 = @derived_class_conversion // a base-to-derived conversion
+| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member
+| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member
+| 6 = @glvalue_adjust // an adjustment of the type of a glvalue
+| 7 = @prvalue_adjust // an adjustment of the type of a prvalue
+;
+*/
+/**
+ * Describes the semantics represented by a cast expression. This is largely
+ * independent of the source syntax of the cast, so it is separate from the
+ * regular expression kind.
+ */
+conversionkinds(
+ unique int expr_id: @cast ref,
+ int kind: int ref
+);
+
+@conversion = @cast
+ | @array_to_pointer
+ | @parexpr
+ | @reference_to
+ | @ref_indirect
+ | @temp_init
+ | @c11_generic
+ ;
+
+/*
+case @funbindexpr.kind of
+ 0 = @normal_call // a normal call
+| 1 = @virtual_call // a virtual call
+| 2 = @adl_call // a call whose target is only found by ADL
+;
+*/
+iscall(
+ unique int caller: @funbindexpr ref,
+ int kind: int ref
+);
+
+numtemplatearguments(
+ unique int expr_id: @expr ref,
+ int num: int ref
+);
+
+specialnamequalifyingelements(
+ unique int id: @specialnamequalifyingelement,
+ unique string name: string ref
+);
+
+@namequalifiableelement = @expr | @namequalifier;
+@namequalifyingelement = @namespace
+ | @specialnamequalifyingelement
+ | @usertype
+ | @decltype;
+
+namequalifiers(
+ unique int id: @namequalifier,
+ unique int qualifiableelement: @namequalifiableelement ref,
+ int qualifyingelement: @namequalifyingelement ref,
+ int location: @location_default ref
+);
+
+varbind(
+ int expr: @varbindexpr ref,
+ int var: @accessible ref
+);
+
+funbind(
+ int expr: @funbindexpr ref,
+ int fun: @function ref
+);
+
+@any_new_expr = @new_expr
+ | @new_array_expr;
+
+@new_or_delete_expr = @any_new_expr
+ | @delete_expr
+ | @delete_array_expr;
+
+@prefix_crement_expr = @preincrexpr | @predecrexpr;
+
+@postfix_crement_expr = @postincrexpr | @postdecrexpr;
+
+@increment_expr = @preincrexpr | @postincrexpr;
+
+@decrement_expr = @predecrexpr | @postdecrexpr;
+
+@crement_expr = @increment_expr | @decrement_expr;
+
+@un_arith_op_expr = @arithnegexpr
+ | @unaryplusexpr
+ | @conjugation
+ | @realpartexpr
+ | @imagpartexpr
+ | @crement_expr
+ ;
+
+@un_bitwise_op_expr = @complementexpr;
+
+@un_log_op_expr = @notexpr;
+
+@un_op_expr = @address_of
+ | @indirect
+ | @un_arith_op_expr
+ | @un_bitwise_op_expr
+ | @builtinaddressof
+ | @vec_fill
+ | @un_log_op_expr
+ | @co_await
+ | @co_yield
+ ;
+
+@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr;
+
+@cmp_op_expr = @eq_op_expr | @rel_op_expr;
+
+@eq_op_expr = @eqexpr | @neexpr;
+
+@rel_op_expr = @gtexpr
+ | @ltexpr
+ | @geexpr
+ | @leexpr
+ | @spaceshipexpr
+ ;
+
+@bin_bitwise_op_expr = @lshiftexpr
+ | @rshiftexpr
+ | @andexpr
+ | @orexpr
+ | @xorexpr
+ ;
+
+@p_arith_op_expr = @paddexpr
+ | @psubexpr
+ | @pdiffexpr
+ ;
+
+@bin_arith_op_expr = @addexpr
+ | @subexpr
+ | @mulexpr
+ | @divexpr
+ | @remexpr
+ | @jmulexpr
+ | @jdivexpr
+ | @fjaddexpr
+ | @jfaddexpr
+ | @fjsubexpr
+ | @jfsubexpr
+ | @minexpr
+ | @maxexpr
+ | @p_arith_op_expr
+ ;
+
+@bin_op_expr = @bin_arith_op_expr
+ | @bin_bitwise_op_expr
+ | @cmp_op_expr
+ | @bin_log_op_expr
+ ;
+
+@op_expr = @un_op_expr
+ | @bin_op_expr
+ | @assign_expr
+ | @conditionalexpr
+ ;
+
+@assign_arith_expr = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ ;
+
+@assign_bitwise_expr = @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ ;
+
+@assign_pointer_expr = @assignpaddexpr
+ | @assignpsubexpr
+ ;
+
+@assign_op_expr = @assign_arith_expr
+ | @assign_bitwise_expr
+ | @assign_pointer_expr
+ ;
+
+@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr
+
+/*
+ Binary encoding of the allocator form.
+
+ case @allocator.form of
+ 0 = plain
+ | 1 = alignment
+ ;
+*/
+
+/**
+ * The allocator function associated with a `new` or `new[]` expression.
+ * The `form` column specified whether the allocation call contains an alignment
+ * argument.
+ */
+expr_allocator(
+ unique int expr: @any_new_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/*
+ Binary encoding of the deallocator form.
+
+ case @deallocator.form of
+ 0 = plain
+ | 1 = size
+ | 2 = alignment
+ | 4 = destroying_delete
+ ;
+*/
+
+/**
+ * The deallocator function associated with a `delete`, `delete[]`, `new`, or
+ * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the
+ * one used to free memory if the initialization throws an exception.
+ * The `form` column specifies whether the deallocation call contains a size
+ * argument, and alignment argument, or both.
+ */
+expr_deallocator(
+ unique int expr: @new_or_delete_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/**
+ * Holds if the `@conditionalexpr` is of the two operand form
+ * `guard ? : false`.
+ */
+expr_cond_two_operand(
+ unique int cond: @conditionalexpr ref
+);
+
+/**
+ * The guard of `@conditionalexpr` `guard ? true : false`
+ */
+expr_cond_guard(
+ unique int cond: @conditionalexpr ref,
+ int guard: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` holds. For the two operand form
+ * `guard ?: false` consider using `expr_cond_guard` instead.
+ */
+expr_cond_true(
+ unique int cond: @conditionalexpr ref,
+ int true: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` does not hold.
+ */
+expr_cond_false(
+ unique int cond: @conditionalexpr ref,
+ int false: @expr ref
+);
+
+/** A string representation of the value. */
+values(
+ unique int id: @value,
+ string str: string ref
+);
+
+/** The actual text in the source code for the value, if any. */
+valuetext(
+ unique int id: @value ref,
+ string text: string ref
+);
+
+valuebind(
+ int val: @value ref,
+ unique int expr: @expr ref
+);
+
+fieldoffsets(
+ unique int id: @variable ref,
+ int byteoffset: int ref,
+ int bitoffset: int ref
+);
+
+bitfield(
+ unique int id: @variable ref,
+ int bits: int ref,
+ int declared_bits: int ref
+);
+
+/* TODO
+memberprefix(
+ int member: @expr ref,
+ int prefix: @expr ref
+);
+*/
+
+/*
+ kind(1) = mbrcallexpr
+ kind(2) = mbrptrcallexpr
+ kind(3) = mbrptrmbrcallexpr
+ kind(4) = ptrmbrptrmbrcallexpr
+ kind(5) = mbrreadexpr // x.y
+ kind(6) = mbrptrreadexpr // p->y
+ kind(7) = mbrptrmbrreadexpr // x.*pm
+ kind(8) = mbrptrmbrptrreadexpr // x->*pm
+ kind(9) = staticmbrreadexpr // static x.y
+ kind(10) = staticmbrptrreadexpr // static p->y
+*/
+/* TODO
+memberaccess(
+ int member: @expr ref,
+ int kind: int ref
+);
+*/
+
+initialisers(
+ unique int init: @initialiser,
+ int var: @accessible ref,
+ unique int expr: @expr ref,
+ int location: @location_default ref
+);
+
+braced_initialisers(
+ int init: @initialiser ref
+);
+
+/**
+ * An ancestor for the expression, for cases in which we cannot
+ * otherwise find the expression's parent.
+ */
+expr_ancestor(
+ int exp: @expr ref,
+ int ancestor: @element ref
+);
+
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+expr_reuse(
+ int reuse: @expr ref,
+ int original: @expr ref,
+ int value_category: int ref
+)
+
+/*
+ case @value.category of
+ 1 = prval
+ | 2 = xval
+ | 3 = lval
+ ;
+*/
+expr_types(
+ int id: @expr ref,
+ int typeid: @type ref,
+ int value_category: int ref
+);
+
+case @expr.kind of
+ 1 = @errorexpr
+| 2 = @address_of // & AddressOfExpr
+| 3 = @reference_to // ReferenceToExpr (implicit?)
+| 4 = @indirect // * PointerDereferenceExpr
+| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?)
+// ...
+| 8 = @array_to_pointer // (???)
+| 9 = @vacuous_destructor_call // VacuousDestructorCall
+// ...
+| 11 = @assume // Microsoft
+| 12 = @parexpr
+| 13 = @arithnegexpr
+| 14 = @unaryplusexpr
+| 15 = @complementexpr
+| 16 = @notexpr
+| 17 = @conjugation // GNU ~ operator
+| 18 = @realpartexpr // GNU __real
+| 19 = @imagpartexpr // GNU __imag
+| 20 = @postincrexpr
+| 21 = @postdecrexpr
+| 22 = @preincrexpr
+| 23 = @predecrexpr
+| 24 = @conditionalexpr
+| 25 = @addexpr
+| 26 = @subexpr
+| 27 = @mulexpr
+| 28 = @divexpr
+| 29 = @remexpr
+| 30 = @jmulexpr // C99 mul imaginary
+| 31 = @jdivexpr // C99 div imaginary
+| 32 = @fjaddexpr // C99 add real + imaginary
+| 33 = @jfaddexpr // C99 add imaginary + real
+| 34 = @fjsubexpr // C99 sub real - imaginary
+| 35 = @jfsubexpr // C99 sub imaginary - real
+| 36 = @paddexpr // pointer add (pointer + int or int + pointer)
+| 37 = @psubexpr // pointer sub (pointer - integer)
+| 38 = @pdiffexpr // difference between two pointers
+| 39 = @lshiftexpr
+| 40 = @rshiftexpr
+| 41 = @andexpr
+| 42 = @orexpr
+| 43 = @xorexpr
+| 44 = @eqexpr
+| 45 = @neexpr
+| 46 = @gtexpr
+| 47 = @ltexpr
+| 48 = @geexpr
+| 49 = @leexpr
+| 50 = @minexpr // GNU minimum
+| 51 = @maxexpr // GNU maximum
+| 52 = @assignexpr
+| 53 = @assignaddexpr
+| 54 = @assignsubexpr
+| 55 = @assignmulexpr
+| 56 = @assigndivexpr
+| 57 = @assignremexpr
+| 58 = @assignlshiftexpr
+| 59 = @assignrshiftexpr
+| 60 = @assignandexpr
+| 61 = @assignorexpr
+| 62 = @assignxorexpr
+| 63 = @assignpaddexpr // assign pointer add
+| 64 = @assignpsubexpr // assign pointer sub
+| 65 = @andlogicalexpr
+| 66 = @orlogicalexpr
+| 67 = @commaexpr
+| 68 = @subscriptexpr // access to member of an array, e.g., a[5]
+// ... 69 @objc_subscriptexpr deprecated
+// ... 70 @cmdaccess deprecated
+// ...
+| 73 = @virtfunptrexpr
+| 74 = @callexpr
+// ... 75 @msgexpr_normal deprecated
+// ... 76 @msgexpr_super deprecated
+// ... 77 @atselectorexpr deprecated
+// ... 78 @atprotocolexpr deprecated
+| 79 = @vastartexpr
+| 80 = @vaargexpr
+| 81 = @vaendexpr
+| 82 = @vacopyexpr
+// ... 83 @atencodeexpr deprecated
+| 84 = @varaccess
+| 85 = @thisaccess
+// ... 86 @objc_box_expr deprecated
+| 87 = @new_expr
+| 88 = @delete_expr
+| 89 = @throw_expr
+| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2)
+| 91 = @braced_init_list
+| 92 = @type_id
+| 93 = @runtime_sizeof
+| 94 = @runtime_alignof
+| 95 = @sizeof_pack
+| 96 = @expr_stmt // GNU extension
+| 97 = @routineexpr
+| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....)
+| 99 = @offsetofexpr // offsetof ::= type and field
+| 100 = @hasassignexpr // __has_assign ::= type
+| 101 = @hascopyexpr // __has_copy ::= type
+| 102 = @hasnothrowassign // __has_nothrow_assign ::= type
+| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type
+| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type
+| 105 = @hastrivialassign // __has_trivial_assign ::= type
+| 106 = @hastrivialconstr // __has_trivial_constructor ::= type
+| 107 = @hastrivialcopy // __has_trivial_copy ::= type
+| 108 = @hasuserdestr // __has_user_destructor ::= type
+| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type
+| 110 = @isabstractexpr // __is_abstract ::= type
+| 111 = @isbaseofexpr // __is_base_of ::= type type
+| 112 = @isclassexpr // __is_class ::= type
+| 113 = @isconvtoexpr // __is_convertible_to ::= type type
+| 114 = @isemptyexpr // __is_empty ::= type
+| 115 = @isenumexpr // __is_enum ::= type
+| 116 = @ispodexpr // __is_pod ::= type
+| 117 = @ispolyexpr // __is_polymorphic ::= type
+| 118 = @isunionexpr // __is_union ::= type
+| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type
+| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof
+// ...
+| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type
+| 123 = @literal
+| 124 = @uuidof
+| 127 = @aggregateliteral
+| 128 = @delete_array_expr
+| 129 = @new_array_expr
+// ... 130 @objc_array_literal deprecated
+// ... 131 @objc_dictionary_literal deprecated
+| 132 = @foldexpr
+// ...
+| 200 = @ctordirectinit
+| 201 = @ctorvirtualinit
+| 202 = @ctorfieldinit
+| 203 = @ctordelegatinginit
+| 204 = @dtordirectdestruct
+| 205 = @dtorvirtualdestruct
+| 206 = @dtorfielddestruct
+// ...
+| 210 = @static_cast
+| 211 = @reinterpret_cast
+| 212 = @const_cast
+| 213 = @dynamic_cast
+| 214 = @c_style_cast
+| 215 = @lambdaexpr
+| 216 = @param_ref
+| 217 = @noopexpr
+// ...
+| 294 = @istriviallyconstructibleexpr
+| 295 = @isdestructibleexpr
+| 296 = @isnothrowdestructibleexpr
+| 297 = @istriviallydestructibleexpr
+| 298 = @istriviallyassignableexpr
+| 299 = @isnothrowassignableexpr
+| 300 = @istrivialexpr
+| 301 = @isstandardlayoutexpr
+| 302 = @istriviallycopyableexpr
+| 303 = @isliteraltypeexpr
+| 304 = @hastrivialmoveconstructorexpr
+| 305 = @hastrivialmoveassignexpr
+| 306 = @hasnothrowmoveassignexpr
+| 307 = @isconstructibleexpr
+| 308 = @isnothrowconstructibleexpr
+| 309 = @hasfinalizerexpr
+| 310 = @isdelegateexpr
+| 311 = @isinterfaceclassexpr
+| 312 = @isrefarrayexpr
+| 313 = @isrefclassexpr
+| 314 = @issealedexpr
+| 315 = @issimplevalueclassexpr
+| 316 = @isvalueclassexpr
+| 317 = @isfinalexpr
+| 319 = @noexceptexpr
+| 320 = @builtinshufflevector
+| 321 = @builtinchooseexpr
+| 322 = @builtinaddressof
+| 323 = @vec_fill
+| 324 = @builtinconvertvector
+| 325 = @builtincomplex
+| 326 = @spaceshipexpr
+| 327 = @co_await
+| 328 = @co_yield
+| 329 = @temp_init
+| 330 = @isassignable
+| 331 = @isaggregate
+| 332 = @hasuniqueobjectrepresentations
+| 333 = @builtinbitcast
+| 334 = @builtinshuffle
+| 335 = @blockassignexpr
+| 336 = @issame
+| 337 = @isfunction
+| 338 = @islayoutcompatible
+| 339 = @ispointerinterconvertiblebaseof
+| 340 = @isarray
+| 341 = @arrayrank
+| 342 = @arrayextent
+| 343 = @isarithmetic
+| 344 = @iscompletetype
+| 345 = @iscompound
+| 346 = @isconst
+| 347 = @isfloatingpoint
+| 348 = @isfundamental
+| 349 = @isintegral
+| 350 = @islvaluereference
+| 351 = @ismemberfunctionpointer
+| 352 = @ismemberobjectpointer
+| 353 = @ismemberpointer
+| 354 = @isobject
+| 355 = @ispointer
+| 356 = @isreference
+| 357 = @isrvaluereference
+| 358 = @isscalar
+| 359 = @issigned
+| 360 = @isunsigned
+| 361 = @isvoid
+| 362 = @isvolatile
+| 363 = @reuseexpr
+| 364 = @istriviallycopyassignable
+| 365 = @isassignablenopreconditioncheck
+| 366 = @referencebindstotemporary
+| 367 = @issameas
+| 368 = @builtinhasattribute
+| 369 = @ispointerinterconvertiblewithclass
+| 370 = @builtinispointerinterconvertiblewithclass
+| 371 = @iscorrespondingmember
+| 372 = @builtiniscorrespondingmember
+| 373 = @isboundedarray
+| 374 = @isunboundedarray
+| 375 = @isreferenceable
+| 378 = @isnothrowconvertible
+| 379 = @referenceconstructsfromtemporary
+| 380 = @referenceconvertsfromtemporary
+| 381 = @isconvertible
+| 382 = @isvalidwinrttype
+| 383 = @iswinclass
+| 384 = @iswininterface
+| 385 = @istriviallyequalitycomparable
+| 386 = @isscopedenum
+| 387 = @istriviallyrelocatable
+| 388 = @datasizeof
+| 389 = @c11_generic
+| 390 = @requires_expr
+| 391 = @nested_requirement
+| 392 = @compound_requirement
+| 393 = @concept_id
+;
+
+@var_args_expr = @vastartexpr
+ | @vaendexpr
+ | @vaargexpr
+ | @vacopyexpr
+ ;
+
+@builtin_op = @var_args_expr
+ | @noopexpr
+ | @offsetofexpr
+ | @intaddrexpr
+ | @hasassignexpr
+ | @hascopyexpr
+ | @hasnothrowassign
+ | @hasnothrowconstr
+ | @hasnothrowcopy
+ | @hastrivialassign
+ | @hastrivialconstr
+ | @hastrivialcopy
+ | @hastrivialdestructor
+ | @hasuserdestr
+ | @hasvirtualdestr
+ | @isabstractexpr
+ | @isbaseofexpr
+ | @isclassexpr
+ | @isconvtoexpr
+ | @isemptyexpr
+ | @isenumexpr
+ | @ispodexpr
+ | @ispolyexpr
+ | @isunionexpr
+ | @typescompexpr
+ | @builtinshufflevector
+ | @builtinconvertvector
+ | @builtinaddressof
+ | @istriviallyconstructibleexpr
+ | @isdestructibleexpr
+ | @isnothrowdestructibleexpr
+ | @istriviallydestructibleexpr
+ | @istriviallyassignableexpr
+ | @isnothrowassignableexpr
+ | @istrivialexpr
+ | @isstandardlayoutexpr
+ | @istriviallycopyableexpr
+ | @isliteraltypeexpr
+ | @hastrivialmoveconstructorexpr
+ | @hastrivialmoveassignexpr
+ | @hasnothrowmoveassignexpr
+ | @isconstructibleexpr
+ | @isnothrowconstructibleexpr
+ | @hasfinalizerexpr
+ | @isdelegateexpr
+ | @isinterfaceclassexpr
+ | @isrefarrayexpr
+ | @isrefclassexpr
+ | @issealedexpr
+ | @issimplevalueclassexpr
+ | @isvalueclassexpr
+ | @isfinalexpr
+ | @builtinchooseexpr
+ | @builtincomplex
+ | @isassignable
+ | @isaggregate
+ | @hasuniqueobjectrepresentations
+ | @builtinbitcast
+ | @builtinshuffle
+ | @issame
+ | @isfunction
+ | @islayoutcompatible
+ | @ispointerinterconvertiblebaseof
+ | @isarray
+ | @arrayrank
+ | @arrayextent
+ | @isarithmetic
+ | @iscompletetype
+ | @iscompound
+ | @isconst
+ | @isfloatingpoint
+ | @isfundamental
+ | @isintegral
+ | @islvaluereference
+ | @ismemberfunctionpointer
+ | @ismemberobjectpointer
+ | @ismemberpointer
+ | @isobject
+ | @ispointer
+ | @isreference
+ | @isrvaluereference
+ | @isscalar
+ | @issigned
+ | @isunsigned
+ | @isvoid
+ | @isvolatile
+ | @istriviallycopyassignable
+ | @isassignablenopreconditioncheck
+ | @referencebindstotemporary
+ | @issameas
+ | @builtinhasattribute
+ | @ispointerinterconvertiblewithclass
+ | @builtinispointerinterconvertiblewithclass
+ | @iscorrespondingmember
+ | @builtiniscorrespondingmember
+ | @isboundedarray
+ | @isunboundedarray
+ | @isreferenceable
+ | @isnothrowconvertible
+ | @referenceconstructsfromtemporary
+ | @referenceconvertsfromtemporary
+ | @isconvertible
+ | @isvalidwinrttype
+ | @iswinclass
+ | @iswininterface
+ | @istriviallyequalitycomparable
+ | @isscopedenum
+ | @istriviallyrelocatable
+ ;
+
+compound_requirement_is_noexcept(
+ int expr: @compound_requirement ref
+);
+
+new_allocated_type(
+ unique int expr: @new_expr ref,
+ int type_id: @type ref
+);
+
+new_array_allocated_type(
+ unique int expr: @new_array_expr ref,
+ int type_id: @type ref
+);
+
+/**
+ * The field being initialized by an initializer expression within an aggregate
+ * initializer for a class/struct/union. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_field_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int field: @membervariable ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+/**
+ * The index of the element being initialized by an initializer expression
+ * within an aggregate initializer for an array. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_array_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int element_index: int ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+@ctorinit = @ctordirectinit
+ | @ctorvirtualinit
+ | @ctorfieldinit
+ | @ctordelegatinginit;
+@dtordestruct = @dtordirectdestruct
+ | @dtorvirtualdestruct
+ | @dtorfielddestruct;
+
+
+condition_decl_bind(
+ unique int expr: @condition_decl ref,
+ unique int decl: @declaration ref
+);
+
+typeid_bind(
+ unique int expr: @type_id ref,
+ int type_id: @type ref
+);
+
+uuidof_bind(
+ unique int expr: @uuidof ref,
+ int type_id: @type ref
+);
+
+@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack;
+
+sizeof_bind(
+ unique int expr: @sizeof_or_alignof ref,
+ int type_id: @type ref
+);
+
+code_block(
+ unique int block: @literal ref,
+ unique int routine: @function ref
+);
+
+lambdas(
+ unique int expr: @lambdaexpr ref,
+ string default_capture: string ref,
+ boolean has_explicit_return_type: boolean ref,
+ boolean has_explicit_parameter_list: boolean ref
+);
+
+lambda_capture(
+ unique int id: @lambdacapture,
+ int lambda: @lambdaexpr ref,
+ int index: int ref,
+ int field: @membervariable ref,
+ boolean captured_by_reference: boolean ref,
+ boolean is_implicit: boolean ref,
+ int location: @location_default ref
+);
+
+@funbindexpr = @routineexpr
+ | @new_expr
+ | @delete_expr
+ | @delete_array_expr
+ | @ctordirectinit
+ | @ctorvirtualinit
+ | @ctordelegatinginit
+ | @dtordirectdestruct
+ | @dtorvirtualdestruct;
+
+@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct;
+@addressable = @function | @variable ;
+@accessible = @addressable | @enumconstant ;
+
+@access = @varaccess | @routineexpr ;
+
+fold(
+ int expr: @foldexpr ref,
+ string operator: string ref,
+ boolean is_left_fold: boolean ref
+);
+
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+case @stmt.kind of
+ 1 = @stmt_expr
+| 2 = @stmt_if
+| 3 = @stmt_while
+| 4 = @stmt_goto
+| 5 = @stmt_label
+| 6 = @stmt_return
+| 7 = @stmt_block
+| 8 = @stmt_end_test_while // do { ... } while ( ... )
+| 9 = @stmt_for
+| 10 = @stmt_switch_case
+| 11 = @stmt_switch
+| 13 = @stmt_asm // "asm" statement or the body of an asm function
+| 15 = @stmt_try_block
+| 16 = @stmt_microsoft_try // Microsoft
+| 17 = @stmt_decl
+| 18 = @stmt_set_vla_size // C99
+| 19 = @stmt_vla_decl // C99
+| 25 = @stmt_assigned_goto // GNU
+| 26 = @stmt_empty
+| 27 = @stmt_continue
+| 28 = @stmt_break
+| 29 = @stmt_range_based_for // C++11
+// ... 30 @stmt_at_autoreleasepool_block deprecated
+// ... 31 @stmt_objc_for_in deprecated
+// ... 32 @stmt_at_synchronized deprecated
+| 33 = @stmt_handler
+// ... 34 @stmt_finally_end deprecated
+| 35 = @stmt_constexpr_if
+| 37 = @stmt_co_return
+| 38 = @stmt_consteval_if
+| 39 = @stmt_not_consteval_if
+| 40 = @stmt_leave
+;
+
+type_vla(
+ int type_id: @type ref,
+ int decl: @stmt_vla_decl ref
+);
+
+variable_vla(
+ int var: @variable ref,
+ int decl: @stmt_vla_decl ref
+);
+
+type_is_vla(unique int type_id: @derivedtype ref)
+
+if_initialization(
+ unique int if_stmt: @stmt_if ref,
+ int init_id: @stmt ref
+);
+
+if_then(
+ unique int if_stmt: @stmt_if ref,
+ int then_id: @stmt ref
+);
+
+if_else(
+ unique int if_stmt: @stmt_if ref,
+ int else_id: @stmt ref
+);
+
+constexpr_if_initialization(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int init_id: @stmt ref
+);
+
+constexpr_if_then(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int then_id: @stmt ref
+);
+
+constexpr_if_else(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int else_id: @stmt ref
+);
+
+@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if;
+
+consteval_if_then(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int then_id: @stmt ref
+);
+
+consteval_if_else(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int else_id: @stmt ref
+);
+
+while_body(
+ unique int while_stmt: @stmt_while ref,
+ int body_id: @stmt ref
+);
+
+do_body(
+ unique int do_stmt: @stmt_end_test_while ref,
+ int body_id: @stmt ref
+);
+
+switch_initialization(
+ unique int switch_stmt: @stmt_switch ref,
+ int init_id: @stmt ref
+);
+
+#keyset[switch_stmt, index]
+switch_case(
+ int switch_stmt: @stmt_switch ref,
+ int index: int ref,
+ int case_id: @stmt_switch_case ref
+);
+
+switch_body(
+ unique int switch_stmt: @stmt_switch ref,
+ int body_id: @stmt ref
+);
+
+@stmt_for_or_range_based_for = @stmt_for
+ | @stmt_range_based_for;
+
+for_initialization(
+ unique int for_stmt: @stmt_for_or_range_based_for ref,
+ int init_id: @stmt ref
+);
+
+for_condition(
+ unique int for_stmt: @stmt_for ref,
+ int condition_id: @expr ref
+);
+
+for_update(
+ unique int for_stmt: @stmt_for ref,
+ int update_id: @expr ref
+);
+
+for_body(
+ unique int for_stmt: @stmt_for ref,
+ int body_id: @stmt ref
+);
+
+@stmtparent = @stmt | @expr_stmt ;
+stmtparents(
+ unique int id: @stmt ref,
+ int index: int ref,
+ int parent: @stmtparent ref
+);
+
+ishandler(unique int block: @stmt_block ref);
+
+@cfgnode = @stmt | @expr | @function | @initialiser ;
+
+stmt_decl_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl: @declaration ref
+);
+
+stmt_decl_entry_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl_entry: @element ref
+);
+
+@parameterized_element = @function | @stmt_block | @requires_expr;
+
+blockscope(
+ unique int block: @stmt_block ref,
+ int enclosing: @parameterized_element ref
+);
+
+@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave;
+
+@jumporlabel = @jump | @stmt_label | @literal;
+
+jumpinfo(
+ unique int id: @jumporlabel ref,
+ string str: string ref,
+ int target: @stmt ref
+);
+
+preprocdirects(
+ unique int id: @preprocdirect,
+ int kind: int ref,
+ int location: @location_default ref
+);
+case @preprocdirect.kind of
+ 0 = @ppd_if
+| 1 = @ppd_ifdef
+| 2 = @ppd_ifndef
+| 3 = @ppd_elif
+| 4 = @ppd_else
+| 5 = @ppd_endif
+| 6 = @ppd_plain_include
+| 7 = @ppd_define
+| 8 = @ppd_undef
+| 9 = @ppd_line
+| 10 = @ppd_error
+| 11 = @ppd_pragma
+| 12 = @ppd_objc_import
+| 13 = @ppd_include_next
+| 14 = @ppd_ms_import
+| 15 = @ppd_elifdef
+| 16 = @ppd_elifndef
+| 18 = @ppd_warning
+;
+
+@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import;
+
+@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef;
+
+preprocpair(
+ int begin : @ppd_branch ref,
+ int elseelifend : @preprocdirect ref
+);
+
+preproctrue(int branch : @ppd_branch ref);
+preprocfalse(int branch : @ppd_branch ref);
+
+preproctext(
+ unique int id: @preprocdirect ref,
+ string head: string ref,
+ string body: string ref
+);
+
+includes(
+ unique int id: @ppd_include ref,
+ int included: @file ref
+);
+
+link_targets(
+ int id: @link_target,
+ int binary: @file ref
+);
+
+link_parent(
+ int element : @element ref,
+ int link_target : @link_target ref
+);
+
+/**
+ * The CLI will automatically emit applicable tuples for this table,
+ * such as `databaseMetadata("isOverlay", "true")` when building an
+ * overlay database.
+ */
+databaseMetadata(
+ string metadataKey: string ref,
+ string value: string ref
+);
+
+/**
+ * The CLI will automatically emit tuples for each new/modified/deleted file
+ * when building an overlay database.
+ */
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*- XML Files -*/
+
+xmlEncoding(
+ unique int id: @file ref,
+ string encoding: string ref
+);
+
+xmlDTDs(
+ unique int id: @xmldtd,
+ string root: string ref,
+ string publicId: string ref,
+ string systemId: string ref,
+ int fileid: @file ref
+);
+
+xmlElements(
+ unique int id: @xmlelement,
+ string name: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlAttrs(
+ unique int id: @xmlattribute,
+ int elementid: @xmlelement ref,
+ string name: string ref,
+ string value: string ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlNs(
+ int id: @xmlnamespace,
+ string prefixName: string ref,
+ string URI: string ref,
+ int fileid: @file ref
+);
+
+xmlHasNs(
+ int elementId: @xmlnamespaceable ref,
+ int nsId: @xmlnamespace ref,
+ int fileid: @file ref
+);
+
+xmlComments(
+ unique int id: @xmlcomment,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int fileid: @file ref
+);
+
+xmlChars(
+ unique int id: @xmlcharacters,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int isCDATA: int ref,
+ int fileid: @file ref
+);
+
+@xmlparent = @file | @xmlelement;
+@xmlnamespaceable = @xmlelement | @xmlattribute;
+
+xmllocations(
+ int xmlElement: @xmllocatable ref,
+ int location: @location_default ref
+);
+
+@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace;
diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme
new file mode 100644
index 000000000000..a42ce5fc9432
--- /dev/null
+++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/semmlecode.cpp.dbscheme
@@ -0,0 +1,2469 @@
+
+/*- Compilations -*/
+
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ */
+ unique int id : @compilation,
+ string cwd : string ref
+);
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--mimic`
+ * 2 | `/usr/bin/gcc`
+ * 3 | `-c`
+ * 4 | f1.c
+ * 5 | f2.c
+ * 6 | f3.c
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * Optionally, record the build mode for each compilation.
+ */
+compilation_build_mode(
+ unique int id : @compilation ref,
+ int mode : int ref
+);
+
+/*
+case @compilation_build_mode.mode of
+ 0 = @build_mode_none
+| 1 = @build_mode_manual
+| 2 = @build_mode_auto
+;
+*/
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | f1.c
+ * 1 | f2.c
+ * 2 | f3.c
+ *
+ * Note that even if those files `#include` headers, those headers
+ * do not appear as rows.
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/*- External data -*/
+
+/**
+ * External data, loaded from CSV files during snapshot creation. See
+ * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data)
+ * for more information.
+ */
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+/*- Source location prefix -*/
+
+/**
+ * The source location of the snapshot.
+ */
+sourceLocationPrefix(string prefix : string ref);
+
+/*- Files and folders -*/
+
+/**
+ * The location of an element.
+ * The location spans column `startcolumn` of line `startline` to
+ * column `endcolumn` of line `endline` in file `file`.
+ * For more information, see
+ * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
+ */
+locations_default(
+ unique int id: @location_default,
+ int file: @file ref,
+ int beginLine: int ref,
+ int beginColumn: int ref,
+ int endLine: int ref,
+ int endColumn: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @file | @folder
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*- Lines of code -*/
+
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+/*- Diagnostic messages -*/
+
+diagnostics(
+ unique int id: @diagnostic,
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/*- C++ dbscheme -*/
+
+extractor_version(
+ string codeql_version: string ref,
+ string frontend_version: string ref
+)
+
+pch_uses(
+ int pch: @pch ref,
+ int compilation: @compilation ref,
+ int id: @file ref
+)
+
+#keyset[pch, compilation]
+pch_creations(
+ int pch: @pch,
+ int compilation: @compilation ref,
+ int from: @file ref
+)
+
+/** An element for which line-count information is available. */
+@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable;
+
+fileannotations(
+ int id: @file ref,
+ int kind: int ref,
+ string name: string ref,
+ string value: string ref
+);
+
+inmacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+affectedbymacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+case @macroinvocation.kind of
+ 1 = @macro_expansion
+| 2 = @other_macro_reference
+;
+
+macroinvocations(
+ unique int id: @macroinvocation,
+ int macro_id: @ppd_define ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+macroparent(
+ unique int id: @macroinvocation ref,
+ int parent_id: @macroinvocation ref
+);
+
+// a macroinvocation may be part of another location
+// the way to find a constant expression that uses a macro
+// is thus to find a constant expression that has a location
+// to which a macro invocation is bound
+macrolocationbind(
+ int id: @macroinvocation ref,
+ int location: @location_default ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_unexpanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_expanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+case @function.kind of
+ 0 = @unknown_function
+| 1 = @normal_function
+| 2 = @constructor
+| 3 = @destructor
+| 4 = @conversion_function
+| 5 = @operator
+// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk
+| 7 = @user_defined_literal
+| 8 = @deduction_guide
+;
+
+functions(
+ unique int id: @function,
+ string name: string ref,
+ int kind: int ref
+);
+
+builtin_functions(
+ int id: @function ref
+)
+
+function_entry_point(
+ int id: @function ref,
+ unique int entry_point: @stmt ref
+);
+
+function_return_type(
+ int id: @function ref,
+ int return_type: @type ref
+);
+
+/**
+ * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits`
+ * instance associated with it, and the variables representing the `handle` and `promise`
+ * for it.
+ */
+coroutine(
+ unique int function: @function ref,
+ int traits: @type ref
+);
+
+/*
+case @coroutine_placeholder_variable.kind of
+ 1 = @handle
+| 2 = @promise
+| 3 = @init_await_resume
+;
+*/
+
+coroutine_placeholder_variable(
+ unique int placeholder_variable: @variable ref,
+ int kind: int ref,
+ int function: @function ref
+)
+
+/** The `new` function used for allocating the coroutine state, if any. */
+coroutine_new(
+ unique int function: @function ref,
+ int new: @function ref
+);
+
+/** The `delete` function used for deallocating the coroutine state, if any. */
+coroutine_delete(
+ unique int function: @function ref,
+ int delete: @function ref
+);
+
+purefunctions(unique int id: @function ref);
+
+function_deleted(unique int id: @function ref);
+
+function_defaulted(unique int id: @function ref);
+
+function_prototyped(unique int id: @function ref)
+
+deduction_guide_for_class(
+ int id: @function ref,
+ int class_template: @usertype ref
+)
+
+member_function_this_type(
+ unique int id: @function ref,
+ int this_type: @type ref
+);
+
+#keyset[id, type_id]
+fun_decls(
+ int id: @fun_decl,
+ int function: @function ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+fun_def(unique int id: @fun_decl ref);
+fun_specialized(unique int id: @fun_decl ref);
+fun_implicit(unique int id: @fun_decl ref);
+fun_decl_specifiers(
+ int id: @fun_decl ref,
+ string name: string ref
+)
+#keyset[fun_decl, index]
+fun_decl_throws(
+ int fun_decl: @fun_decl ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+/* an empty throw specification is different from none */
+fun_decl_empty_throws(unique int fun_decl: @fun_decl ref);
+fun_decl_noexcept(
+ int fun_decl: @fun_decl ref,
+ int constant: @expr ref
+);
+fun_decl_empty_noexcept(int fun_decl: @fun_decl ref);
+fun_decl_typedef_type(
+ unique int fun_decl: @fun_decl ref,
+ int typedeftype_id: @usertype ref
+);
+
+/*
+case @fun_requires.kind of
+ 1 = @template_attached
+| 2 = @function_attached
+;
+*/
+
+fun_requires(
+ int id: @fun_decl ref,
+ int kind: int ref,
+ int constraint: @expr ref
+);
+
+param_decl_bind(
+ unique int id: @var_decl ref,
+ int index: int ref,
+ int fun_decl: @fun_decl ref
+);
+
+#keyset[id, type_id]
+var_decls(
+ int id: @var_decl,
+ int variable: @variable ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+var_def(unique int id: @var_decl ref);
+var_specialized(int id: @var_decl ref);
+var_decl_specifiers(
+ int id: @var_decl ref,
+ string name: string ref
+)
+is_structured_binding(unique int id: @variable ref);
+var_requires(
+ int id: @var_decl ref,
+ int constraint: @expr ref
+);
+
+type_decls(
+ unique int id: @type_decl,
+ int type_id: @type ref,
+ int location: @location_default ref
+);
+type_def(unique int id: @type_decl ref);
+type_decl_top(
+ unique int type_decl: @type_decl ref
+);
+type_requires(
+ int id: @type_decl ref,
+ int constraint: @expr ref
+);
+
+namespace_decls(
+ unique int id: @namespace_decl,
+ int namespace_id: @namespace ref,
+ int location: @location_default ref,
+ int bodylocation: @location_default ref
+);
+
+case @using.kind of
+ 1 = @using_declaration
+| 2 = @using_directive
+| 3 = @using_enum_declaration
+;
+
+usings(
+ unique int id: @using,
+ int element_id: @element ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+/** The element which contains the `using` declaration. */
+using_container(
+ int parent: @element ref,
+ int child: @using ref
+);
+
+static_asserts(
+ unique int id: @static_assert,
+ int condition : @expr ref,
+ string message : string ref,
+ int location: @location_default ref,
+ int enclosing : @element ref
+);
+
+// each function has an ordered list of parameters
+#keyset[id, type_id]
+#keyset[function, index, type_id]
+params(
+ int id: @parameter,
+ int function: @parameterized_element ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+overrides(
+ int new: @function ref,
+ int old: @function ref
+);
+
+#keyset[id, type_id]
+membervariables(
+ int id: @membervariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+globalvariables(
+ int id: @globalvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+localvariables(
+ int id: @localvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+autoderivation(
+ unique int var: @variable ref,
+ int derivation_type: @type ref
+);
+
+orphaned_variables(
+ int var: @localvariable ref,
+ int function: @function ref
+)
+
+enumconstants(
+ unique int id: @enumconstant,
+ int parent: @usertype ref,
+ int index: int ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+
+@variable = @localscopevariable | @globalvariable | @membervariable;
+
+@localscopevariable = @localvariable | @parameter;
+
+/**
+ * Built-in types are the fundamental types, e.g., integral, floating, and void.
+ */
+case @builtintype.kind of
+ 1 = @errortype
+| 2 = @unknowntype
+| 3 = @void
+| 4 = @boolean
+| 5 = @char
+| 6 = @unsigned_char
+| 7 = @signed_char
+| 8 = @short
+| 9 = @unsigned_short
+| 10 = @signed_short
+| 11 = @int
+| 12 = @unsigned_int
+| 13 = @signed_int
+| 14 = @long
+| 15 = @unsigned_long
+| 16 = @signed_long
+| 17 = @long_long
+| 18 = @unsigned_long_long
+| 19 = @signed_long_long
+// ... 20 Microsoft-specific __int8
+// ... 21 Microsoft-specific __int16
+// ... 22 Microsoft-specific __int32
+// ... 23 Microsoft-specific __int64
+| 24 = @float
+| 25 = @double
+| 26 = @long_double
+| 27 = @complex_float // C99-specific _Complex float
+| 28 = @complex_double // C99-specific _Complex double
+| 29 = @complex_long_double // C99-specific _Complex long double
+| 30 = @imaginary_float // C99-specific _Imaginary float
+| 31 = @imaginary_double // C99-specific _Imaginary double
+| 32 = @imaginary_long_double // C99-specific _Imaginary long double
+| 33 = @wchar_t // Microsoft-specific
+| 34 = @decltype_nullptr // C++11
+| 35 = @int128 // __int128
+| 36 = @unsigned_int128 // unsigned __int128
+| 37 = @signed_int128 // signed __int128
+| 38 = @float128 // __float128
+| 39 = @complex_float128 // _Complex __float128
+| 40 = @decimal32 // _Decimal32
+| 41 = @decimal64 // _Decimal64
+| 42 = @decimal128 // _Decimal128
+| 43 = @char16_t
+| 44 = @char32_t
+| 45 = @std_float32 // _Float32
+| 46 = @float32x // _Float32x
+| 47 = @std_float64 // _Float64
+| 48 = @float64x // _Float64x
+| 49 = @std_float128 // _Float128
+// ... 50 _Float128x
+| 51 = @char8_t
+| 52 = @float16 // _Float16
+| 53 = @complex_float16 // _Complex _Float16
+| 54 = @fp16 // __fp16
+| 55 = @std_bfloat16 // __bf16
+| 56 = @std_float16 // std::float16_t
+| 57 = @complex_std_float32 // _Complex _Float32
+| 58 = @complex_float32x // _Complex _Float32x
+| 59 = @complex_std_float64 // _Complex _Float64
+| 60 = @complex_float64x // _Complex _Float64x
+| 61 = @complex_std_float128 // _Complex _Float128
+| 62 = @mfp8 // __mfp8
+| 63 = @scalable_vector_count // __SVCount_t
+| 64 = @complex_fp16 // _Complex __fp16
+| 65 = @complex_std_bfloat16 // _Complex __bf16
+| 66 = @complex_std_float16 // _Complex std::float16_t
+;
+
+builtintypes(
+ unique int id: @builtintype,
+ string name: string ref,
+ int kind: int ref,
+ int size: int ref,
+ int sign: int ref,
+ int alignment: int ref
+);
+
+/**
+ * Derived types are types that are directly derived from existing types and
+ * point to, refer to, transform type data to return a new type.
+ */
+case @derivedtype.kind of
+ 1 = @pointer
+| 2 = @reference
+| 3 = @type_with_specifiers
+| 4 = @array
+| 5 = @gnu_vector
+| 6 = @routineptr
+| 7 = @routinereference
+| 8 = @rvalue_reference // C++11
+// ... 9 type_conforming_to_protocols deprecated
+| 10 = @block
+| 11 = @scalable_vector // Arm SVE
+;
+
+derivedtypes(
+ unique int id: @derivedtype,
+ string name: string ref,
+ int kind: int ref,
+ int type_id: @type ref
+);
+
+pointerishsize(unique int id: @derivedtype ref,
+ int size: int ref,
+ int alignment: int ref);
+
+arraysizes(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref,
+ int bytesize: int ref,
+ int alignment: int ref
+);
+
+tupleelements(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref
+);
+
+typedefbase(
+ unique int id: @usertype ref,
+ int type_id: @type ref
+);
+
+/**
+ * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual`
+ * operator taking an expression as its argument. For example:
+ * ```
+ * int a;
+ * decltype(1+a) b;
+ * typeof(1+a) c;
+ * ```
+ * Here `expr` is `1+a`.
+ *
+ * Sometimes an additional pair of parentheses around the expression
+ * changes the semantics of the decltype, e.g.
+ * ```
+ * struct A { double x; };
+ * const A* a = new A();
+ * decltype( a->x ); // type is double
+ * decltype((a->x)); // type is const double&
+ * ```
+ * (Please consult the C++11 standard for more details).
+ * `parentheses_would_change_meaning` is `true` iff that is the case.
+ */
+
+/*
+case @decltype.kind of
+| 0 = @decltype
+| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+;
+*/
+
+#keyset[id, expr]
+decltypes(
+ int id: @decltype,
+ int expr: @expr ref,
+ int kind: int ref,
+ int base_type: @type ref,
+ boolean parentheses_would_change_meaning: boolean ref
+);
+
+case @type_operator.kind of
+ 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+| 1 = @underlying_type
+| 2 = @bases
+| 3 = @direct_bases
+| 4 = @add_lvalue_reference
+| 5 = @add_pointer
+| 6 = @add_rvalue_reference
+| 7 = @decay
+| 8 = @make_signed
+| 9 = @make_unsigned
+| 10 = @remove_all_extents
+| 11 = @remove_const
+| 12 = @remove_cv
+| 13 = @remove_cvref
+| 14 = @remove_extent
+| 15 = @remove_pointer
+| 16 = @remove_reference_t
+| 17 = @remove_restrict
+| 18 = @remove_volatile
+| 19 = @remove_reference
+;
+
+type_operators(
+ unique int id: @type_operator,
+ int arg_type: @type ref,
+ int kind: int ref,
+ int base_type: @type ref
+)
+
+case @usertype.kind of
+ 0 = @unknown_usertype
+| 1 = @struct
+| 2 = @class
+| 3 = @union
+| 4 = @enum
+// ... 5 = @typedef deprecated // classic C: typedef typedef type name
+// ... 6 = @template deprecated
+| 7 = @template_parameter
+| 8 = @template_template_parameter
+| 9 = @proxy_class // a proxy class associated with a template parameter
+// ... 10 objc_class deprecated
+// ... 11 objc_protocol deprecated
+// ... 12 objc_category deprecated
+| 13 = @scoped_enum
+// ... 14 = @using_alias deprecated // a using name = type style typedef
+| 15 = @template_struct
+| 16 = @template_class
+| 17 = @template_union
+| 18 = @alias
+;
+
+usertypes(
+ unique int id: @usertype,
+ string name: string ref,
+ int kind: int ref
+);
+
+usertypesize(
+ unique int id: @usertype ref,
+ int size: int ref,
+ int alignment: int ref
+);
+
+usertype_final(unique int id: @usertype ref);
+
+usertype_uuid(
+ unique int id: @usertype ref,
+ string uuid: string ref
+);
+
+/*
+case @usertype.alias_kind of
+| 0 = @typedef
+| 1 = @alias
+*/
+
+usertype_alias_kind(
+ int id: @usertype ref,
+ int alias_kind: int ref
+)
+
+nontype_template_parameters(
+ int id: @expr ref
+);
+
+type_template_type_constraint(
+ int id: @usertype ref,
+ int constraint: @expr ref
+);
+
+mangled_name(
+ unique int id: @declaration ref,
+ int mangled_name : @mangledname,
+ boolean is_complete: boolean ref
+);
+
+is_pod_class(unique int id: @usertype ref);
+is_standard_layout_class(unique int id: @usertype ref);
+
+is_complete(unique int id: @usertype ref);
+
+is_class_template(unique int id: @usertype ref);
+class_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+class_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+class_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@user_or_decltype = @usertype | @decltype;
+
+is_proxy_class_for(
+ unique int id: @usertype ref,
+ int templ_param_id: @user_or_decltype ref
+);
+
+type_mentions(
+ unique int id: @type_mention,
+ int type_id: @type ref,
+ int location: @location_default ref,
+ // a_symbol_reference_kind from the frontend.
+ int kind: int ref
+);
+
+is_function_template(unique int id: @function ref);
+function_instantiation(
+ unique int to: @function ref,
+ int from: @function ref
+);
+function_template_argument(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+function_template_argument_value(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+is_variable_template(unique int id: @variable ref);
+variable_instantiation(
+ unique int to: @variable ref,
+ int from: @variable ref
+);
+variable_template_argument(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+variable_template_argument_value(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+template_template_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+template_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+template_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@concept = @concept_template | @concept_id;
+
+concept_templates(
+ unique int concept_id: @concept_template,
+ string name: string ref,
+ int location: @location_default ref
+);
+concept_instantiation(
+ unique int to: @concept_id ref,
+ int from: @concept_template ref
+);
+is_type_constraint(int concept_id: @concept_id ref);
+concept_template_argument(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+concept_template_argument_value(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+routinetypes(
+ unique int id: @routinetype,
+ int return_type: @type ref
+);
+
+routinetypeargs(
+ int routine: @routinetype ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+ptrtomembers(
+ unique int id: @ptrtomember,
+ int type_id: @type ref,
+ int class_id: @type ref
+);
+
+/*
+ specifiers for types, functions, and variables
+
+ "public",
+ "protected",
+ "private",
+
+ "const",
+ "volatile",
+ "static",
+
+ "pure",
+ "virtual",
+ "sealed", // Microsoft
+ "__interface", // Microsoft
+ "inline",
+ "explicit",
+
+ "near", // near far extension
+ "far", // near far extension
+ "__ptr32", // Microsoft
+ "__ptr64", // Microsoft
+ "__sptr", // Microsoft
+ "__uptr", // Microsoft
+ "dllimport", // Microsoft
+ "dllexport", // Microsoft
+ "thread", // Microsoft
+ "naked", // Microsoft
+ "microsoft_inline", // Microsoft
+ "forceinline", // Microsoft
+ "selectany", // Microsoft
+ "nothrow", // Microsoft
+ "novtable", // Microsoft
+ "noreturn", // Microsoft
+ "noinline", // Microsoft
+ "noalias", // Microsoft
+ "restrict", // Microsoft
+*/
+
+specifiers(
+ unique int id: @specifier,
+ unique string str: string ref
+);
+
+typespecifiers(
+ int type_id: @type ref,
+ int spec_id: @specifier ref
+);
+
+funspecifiers(
+ int func_id: @function ref,
+ int spec_id: @specifier ref
+);
+
+varspecifiers(
+ int var_id: @accessible ref,
+ int spec_id: @specifier ref
+);
+
+explicit_specifier_exprs(
+ unique int func_id: @function ref,
+ int constant: @expr ref
+)
+
+attributes(
+ unique int id: @attribute,
+ int kind: int ref,
+ string name: string ref,
+ string name_space: string ref,
+ int location: @location_default ref
+);
+
+case @attribute.kind of
+ 0 = @gnuattribute
+| 1 = @stdattribute
+| 2 = @declspec
+| 3 = @msattribute
+| 4 = @alignas
+// ... 5 @objc_propertyattribute deprecated
+;
+
+attribute_args(
+ unique int id: @attribute_arg,
+ int kind: int ref,
+ int attribute: @attribute ref,
+ int index: int ref,
+ int location: @location_default ref
+);
+
+case @attribute_arg.kind of
+ 0 = @attribute_arg_empty
+| 1 = @attribute_arg_token
+| 2 = @attribute_arg_constant
+| 3 = @attribute_arg_type
+| 4 = @attribute_arg_constant_expr
+| 5 = @attribute_arg_expr
+;
+
+attribute_arg_value(
+ unique int arg: @attribute_arg ref,
+ string value: string ref
+);
+attribute_arg_type(
+ unique int arg: @attribute_arg ref,
+ int type_id: @type ref
+);
+attribute_arg_constant(
+ unique int arg: @attribute_arg ref,
+ int constant: @expr ref
+)
+attribute_arg_expr(
+ unique int arg: @attribute_arg ref,
+ int expr: @expr ref
+)
+attribute_arg_name(
+ unique int arg: @attribute_arg ref,
+ string name: string ref
+);
+
+typeattributes(
+ int type_id: @type ref,
+ int spec_id: @attribute ref
+);
+
+funcattributes(
+ int func_id: @function ref,
+ int spec_id: @attribute ref
+);
+
+varattributes(
+ int var_id: @accessible ref,
+ int spec_id: @attribute ref
+);
+
+namespaceattributes(
+ int namespace_id: @namespace ref,
+ int spec_id: @attribute ref
+);
+
+stmtattributes(
+ int stmt_id: @stmt ref,
+ int spec_id: @attribute ref
+);
+
+@type = @builtintype
+ | @derivedtype
+ | @usertype
+ | @routinetype
+ | @ptrtomember
+ | @decltype
+ | @type_operator;
+
+unspecifiedtype(
+ unique int type_id: @type ref,
+ int unspecified_type_id: @type ref
+);
+
+member(
+ int parent: @type ref,
+ int index: int ref,
+ int child: @member ref
+);
+
+@enclosingfunction_child = @usertype | @variable | @namespace
+
+enclosingfunction(
+ unique int child: @enclosingfunction_child ref,
+ int parent: @function ref
+);
+
+derivations(
+ unique int derivation: @derivation,
+ int sub: @type ref,
+ int index: int ref,
+ int super: @type ref,
+ int location: @location_default ref
+);
+
+derspecifiers(
+ int der_id: @derivation ref,
+ int spec_id: @specifier ref
+);
+
+/**
+ * Contains the byte offset of the base class subobject within the derived
+ * class. Only holds for non-virtual base classes, but see table
+ * `virtual_base_offsets` for offsets of virtual base class subobjects.
+ */
+direct_base_offsets(
+ unique int der_id: @derivation ref,
+ int offset: int ref
+);
+
+/**
+ * Contains the byte offset of the virtual base class subobject for class
+ * `super` within a most-derived object of class `sub`. `super` can be either a
+ * direct or indirect base class.
+ */
+#keyset[sub, super]
+virtual_base_offsets(
+ int sub: @usertype ref,
+ int super: @usertype ref,
+ int offset: int ref
+);
+
+frienddecls(
+ unique int id: @frienddecl,
+ int type_id: @type ref,
+ int decl_id: @declaration ref,
+ int location: @location_default ref
+);
+
+@declaredtype = @usertype ;
+
+@declaration = @function
+ | @declaredtype
+ | @variable
+ | @enumconstant
+ | @frienddecl
+ | @concept_template;
+
+@member = @membervariable
+ | @function
+ | @declaredtype
+ | @enumconstant;
+
+@locatable = @diagnostic
+ | @declaration
+ | @ppd_include
+ | @ppd_define
+ | @macroinvocation
+ /*| @funcall*/
+ | @xmllocatable
+ | @attribute
+ | @attribute_arg;
+
+@namedscope = @namespace | @usertype;
+
+@element = @locatable
+ | @file
+ | @folder
+ | @specifier
+ | @type
+ | @expr
+ | @namespace
+ | @initialiser
+ | @stmt
+ | @derivation
+ | @comment
+ | @preprocdirect
+ | @fun_decl
+ | @var_decl
+ | @type_decl
+ | @namespace_decl
+ | @using
+ | @namequalifier
+ | @specialnamequalifyingelement
+ | @static_assert
+ | @type_mention
+ | @lambdacapture;
+
+@exprparent = @element;
+
+comments(
+ unique int id: @comment,
+ string contents: string ref,
+ int location: @location_default ref
+);
+
+commentbinding(
+ int id: @comment ref,
+ int element: @element ref
+);
+
+exprconv(
+ int converted: @expr ref,
+ unique int conversion: @expr ref
+);
+
+compgenerated(unique int id: @element ref);
+
+/**
+ * `destructor_call` destructs the `i`'th entity that should be
+ * destructed following `element`. Note that entities should be
+ * destructed in reverse construction order, so for a given `element`
+ * these should be called from highest to lowest `i`.
+ */
+#keyset[element, destructor_call]
+#keyset[element, i]
+synthetic_destructor_call(
+ int element: @element ref,
+ int i: int ref,
+ int destructor_call: @routineexpr ref
+);
+
+namespaces(
+ unique int id: @namespace,
+ string name: string ref
+);
+
+namespace_inline(
+ unique int id: @namespace ref
+);
+
+namespacembrs(
+ int parentid: @namespace ref,
+ unique int memberid: @namespacembr ref
+);
+
+@namespacembr = @declaration | @namespace;
+
+exprparents(
+ int expr_id: @expr ref,
+ int child_index: int ref,
+ int parent_id: @exprparent ref
+);
+
+expr_isload(unique int expr_id: @expr ref);
+
+@cast = @c_style_cast
+ | @const_cast
+ | @dynamic_cast
+ | @reinterpret_cast
+ | @static_cast
+ ;
+
+/*
+case @conversion.kind of
+ 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast
+| 1 = @bool_conversion // conversion to 'bool'
+| 2 = @base_class_conversion // a derived-to-base conversion
+| 3 = @derived_class_conversion // a base-to-derived conversion
+| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member
+| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member
+| 6 = @glvalue_adjust // an adjustment of the type of a glvalue
+| 7 = @prvalue_adjust // an adjustment of the type of a prvalue
+;
+*/
+/**
+ * Describes the semantics represented by a cast expression. This is largely
+ * independent of the source syntax of the cast, so it is separate from the
+ * regular expression kind.
+ */
+conversionkinds(
+ unique int expr_id: @cast ref,
+ int kind: int ref
+);
+
+@conversion = @cast
+ | @array_to_pointer
+ | @parexpr
+ | @reference_to
+ | @ref_indirect
+ | @temp_init
+ | @c11_generic
+ ;
+
+/*
+case @funbindexpr.kind of
+ 0 = @normal_call // a normal call
+| 1 = @virtual_call // a virtual call
+| 2 = @adl_call // a call whose target is only found by ADL
+;
+*/
+iscall(
+ unique int caller: @funbindexpr ref,
+ int kind: int ref
+);
+
+numtemplatearguments(
+ unique int expr_id: @expr ref,
+ int num: int ref
+);
+
+specialnamequalifyingelements(
+ unique int id: @specialnamequalifyingelement,
+ unique string name: string ref
+);
+
+@namequalifiableelement = @expr | @namequalifier;
+@namequalifyingelement = @namespace
+ | @specialnamequalifyingelement
+ | @usertype
+ | @decltype;
+
+namequalifiers(
+ unique int id: @namequalifier,
+ unique int qualifiableelement: @namequalifiableelement ref,
+ int qualifyingelement: @namequalifyingelement ref,
+ int location: @location_default ref
+);
+
+varbind(
+ int expr: @varbindexpr ref,
+ int var: @accessible ref
+);
+
+funbind(
+ int expr: @funbindexpr ref,
+ int fun: @function ref
+);
+
+@any_new_expr = @new_expr
+ | @new_array_expr;
+
+@new_or_delete_expr = @any_new_expr
+ | @delete_expr
+ | @delete_array_expr;
+
+@prefix_crement_expr = @preincrexpr | @predecrexpr;
+
+@postfix_crement_expr = @postincrexpr | @postdecrexpr;
+
+@increment_expr = @preincrexpr | @postincrexpr;
+
+@decrement_expr = @predecrexpr | @postdecrexpr;
+
+@crement_expr = @increment_expr | @decrement_expr;
+
+@un_arith_op_expr = @arithnegexpr
+ | @unaryplusexpr
+ | @conjugation
+ | @realpartexpr
+ | @imagpartexpr
+ | @crement_expr
+ ;
+
+@un_bitwise_op_expr = @complementexpr;
+
+@un_log_op_expr = @notexpr;
+
+@un_op_expr = @address_of
+ | @indirect
+ | @un_arith_op_expr
+ | @un_bitwise_op_expr
+ | @builtinaddressof
+ | @vec_fill
+ | @un_log_op_expr
+ | @co_await
+ | @co_yield
+ ;
+
+@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr;
+
+@cmp_op_expr = @eq_op_expr | @rel_op_expr;
+
+@eq_op_expr = @eqexpr | @neexpr;
+
+@rel_op_expr = @gtexpr
+ | @ltexpr
+ | @geexpr
+ | @leexpr
+ | @spaceshipexpr
+ ;
+
+@bin_bitwise_op_expr = @lshiftexpr
+ | @rshiftexpr
+ | @andexpr
+ | @orexpr
+ | @xorexpr
+ ;
+
+@p_arith_op_expr = @paddexpr
+ | @psubexpr
+ | @pdiffexpr
+ ;
+
+@bin_arith_op_expr = @addexpr
+ | @subexpr
+ | @mulexpr
+ | @divexpr
+ | @remexpr
+ | @jmulexpr
+ | @jdivexpr
+ | @fjaddexpr
+ | @jfaddexpr
+ | @fjsubexpr
+ | @jfsubexpr
+ | @minexpr
+ | @maxexpr
+ | @p_arith_op_expr
+ ;
+
+@bin_op_expr = @bin_arith_op_expr
+ | @bin_bitwise_op_expr
+ | @cmp_op_expr
+ | @bin_log_op_expr
+ ;
+
+@op_expr = @un_op_expr
+ | @bin_op_expr
+ | @assign_expr
+ | @conditionalexpr
+ ;
+
+@assign_arith_expr = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ ;
+
+@assign_bitwise_expr = @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ ;
+
+@assign_pointer_expr = @assignpaddexpr
+ | @assignpsubexpr
+ ;
+
+@assign_op_expr = @assign_arith_expr
+ | @assign_bitwise_expr
+ | @assign_pointer_expr
+ ;
+
+@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr
+
+/*
+ Binary encoding of the allocator form.
+
+ case @allocator.form of
+ 0 = plain
+ | 1 = alignment
+ ;
+*/
+
+/**
+ * The allocator function associated with a `new` or `new[]` expression.
+ * The `form` column specified whether the allocation call contains an alignment
+ * argument.
+ */
+expr_allocator(
+ unique int expr: @any_new_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/*
+ Binary encoding of the deallocator form.
+
+ case @deallocator.form of
+ 0 = plain
+ | 1 = size
+ | 2 = alignment
+ | 4 = destroying_delete
+ ;
+*/
+
+/**
+ * The deallocator function associated with a `delete`, `delete[]`, `new`, or
+ * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the
+ * one used to free memory if the initialization throws an exception.
+ * The `form` column specifies whether the deallocation call contains a size
+ * argument, and alignment argument, or both.
+ */
+expr_deallocator(
+ unique int expr: @new_or_delete_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/**
+ * Holds if the `@conditionalexpr` is of the two operand form
+ * `guard ? : false`.
+ */
+expr_cond_two_operand(
+ unique int cond: @conditionalexpr ref
+);
+
+/**
+ * The guard of `@conditionalexpr` `guard ? true : false`
+ */
+expr_cond_guard(
+ unique int cond: @conditionalexpr ref,
+ int guard: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` holds. For the two operand form
+ * `guard ?: false` consider using `expr_cond_guard` instead.
+ */
+expr_cond_true(
+ unique int cond: @conditionalexpr ref,
+ int true: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` does not hold.
+ */
+expr_cond_false(
+ unique int cond: @conditionalexpr ref,
+ int false: @expr ref
+);
+
+/** A string representation of the value. */
+values(
+ unique int id: @value,
+ string str: string ref
+);
+
+/** The actual text in the source code for the value, if any. */
+valuetext(
+ unique int id: @value ref,
+ string text: string ref
+);
+
+valuebind(
+ int val: @value ref,
+ unique int expr: @expr ref
+);
+
+fieldoffsets(
+ unique int id: @variable ref,
+ int byteoffset: int ref,
+ int bitoffset: int ref
+);
+
+bitfield(
+ unique int id: @variable ref,
+ int bits: int ref,
+ int declared_bits: int ref
+);
+
+/* TODO
+memberprefix(
+ int member: @expr ref,
+ int prefix: @expr ref
+);
+*/
+
+/*
+ kind(1) = mbrcallexpr
+ kind(2) = mbrptrcallexpr
+ kind(3) = mbrptrmbrcallexpr
+ kind(4) = ptrmbrptrmbrcallexpr
+ kind(5) = mbrreadexpr // x.y
+ kind(6) = mbrptrreadexpr // p->y
+ kind(7) = mbrptrmbrreadexpr // x.*pm
+ kind(8) = mbrptrmbrptrreadexpr // x->*pm
+ kind(9) = staticmbrreadexpr // static x.y
+ kind(10) = staticmbrptrreadexpr // static p->y
+*/
+/* TODO
+memberaccess(
+ int member: @expr ref,
+ int kind: int ref
+);
+*/
+
+initialisers(
+ unique int init: @initialiser,
+ int var: @accessible ref,
+ unique int expr: @expr ref,
+ int location: @location_default ref
+);
+
+braced_initialisers(
+ int init: @initialiser ref
+);
+
+/**
+ * An ancestor for the expression, for cases in which we cannot
+ * otherwise find the expression's parent.
+ */
+expr_ancestor(
+ int exp: @expr ref,
+ int ancestor: @element ref
+);
+
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+expr_reuse(
+ int reuse: @expr ref,
+ int original: @expr ref,
+ int value_category: int ref
+)
+
+/*
+ case @value.category of
+ 1 = prval
+ | 2 = xval
+ | 3 = lval
+ ;
+*/
+expr_types(
+ int id: @expr ref,
+ int typeid: @type ref,
+ int value_category: int ref
+);
+
+case @expr.kind of
+ 1 = @errorexpr
+| 2 = @address_of // & AddressOfExpr
+| 3 = @reference_to // ReferenceToExpr (implicit?)
+| 4 = @indirect // * PointerDereferenceExpr
+| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?)
+// ...
+| 8 = @array_to_pointer // (???)
+| 9 = @vacuous_destructor_call // VacuousDestructorCall
+// ...
+| 11 = @assume // Microsoft
+| 12 = @parexpr
+| 13 = @arithnegexpr
+| 14 = @unaryplusexpr
+| 15 = @complementexpr
+| 16 = @notexpr
+| 17 = @conjugation // GNU ~ operator
+| 18 = @realpartexpr // GNU __real
+| 19 = @imagpartexpr // GNU __imag
+| 20 = @postincrexpr
+| 21 = @postdecrexpr
+| 22 = @preincrexpr
+| 23 = @predecrexpr
+| 24 = @conditionalexpr
+| 25 = @addexpr
+| 26 = @subexpr
+| 27 = @mulexpr
+| 28 = @divexpr
+| 29 = @remexpr
+| 30 = @jmulexpr // C99 mul imaginary
+| 31 = @jdivexpr // C99 div imaginary
+| 32 = @fjaddexpr // C99 add real + imaginary
+| 33 = @jfaddexpr // C99 add imaginary + real
+| 34 = @fjsubexpr // C99 sub real - imaginary
+| 35 = @jfsubexpr // C99 sub imaginary - real
+| 36 = @paddexpr // pointer add (pointer + int or int + pointer)
+| 37 = @psubexpr // pointer sub (pointer - integer)
+| 38 = @pdiffexpr // difference between two pointers
+| 39 = @lshiftexpr
+| 40 = @rshiftexpr
+| 41 = @andexpr
+| 42 = @orexpr
+| 43 = @xorexpr
+| 44 = @eqexpr
+| 45 = @neexpr
+| 46 = @gtexpr
+| 47 = @ltexpr
+| 48 = @geexpr
+| 49 = @leexpr
+| 50 = @minexpr // GNU minimum
+| 51 = @maxexpr // GNU maximum
+| 52 = @assignexpr
+| 53 = @assignaddexpr
+| 54 = @assignsubexpr
+| 55 = @assignmulexpr
+| 56 = @assigndivexpr
+| 57 = @assignremexpr
+| 58 = @assignlshiftexpr
+| 59 = @assignrshiftexpr
+| 60 = @assignandexpr
+| 61 = @assignorexpr
+| 62 = @assignxorexpr
+| 63 = @assignpaddexpr // assign pointer add
+| 64 = @assignpsubexpr // assign pointer sub
+| 65 = @andlogicalexpr
+| 66 = @orlogicalexpr
+| 67 = @commaexpr
+| 68 = @subscriptexpr // access to member of an array, e.g., a[5]
+// ... 69 @objc_subscriptexpr deprecated
+// ... 70 @cmdaccess deprecated
+// ...
+| 73 = @virtfunptrexpr
+| 74 = @callexpr
+// ... 75 @msgexpr_normal deprecated
+// ... 76 @msgexpr_super deprecated
+// ... 77 @atselectorexpr deprecated
+// ... 78 @atprotocolexpr deprecated
+| 79 = @vastartexpr
+| 80 = @vaargexpr
+| 81 = @vaendexpr
+| 82 = @vacopyexpr
+// ... 83 @atencodeexpr deprecated
+| 84 = @varaccess
+| 85 = @thisaccess
+// ... 86 @objc_box_expr deprecated
+| 87 = @new_expr
+| 88 = @delete_expr
+| 89 = @throw_expr
+| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2)
+| 91 = @braced_init_list
+| 92 = @type_id
+| 93 = @runtime_sizeof
+| 94 = @runtime_alignof
+| 95 = @sizeof_pack
+| 96 = @expr_stmt // GNU extension
+| 97 = @routineexpr
+| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....)
+| 99 = @offsetofexpr // offsetof ::= type and field
+| 100 = @hasassignexpr // __has_assign ::= type
+| 101 = @hascopyexpr // __has_copy ::= type
+| 102 = @hasnothrowassign // __has_nothrow_assign ::= type
+| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type
+| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type
+| 105 = @hastrivialassign // __has_trivial_assign ::= type
+| 106 = @hastrivialconstr // __has_trivial_constructor ::= type
+| 107 = @hastrivialcopy // __has_trivial_copy ::= type
+| 108 = @hasuserdestr // __has_user_destructor ::= type
+| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type
+| 110 = @isabstractexpr // __is_abstract ::= type
+| 111 = @isbaseofexpr // __is_base_of ::= type type
+| 112 = @isclassexpr // __is_class ::= type
+| 113 = @isconvtoexpr // __is_convertible_to ::= type type
+| 114 = @isemptyexpr // __is_empty ::= type
+| 115 = @isenumexpr // __is_enum ::= type
+| 116 = @ispodexpr // __is_pod ::= type
+| 117 = @ispolyexpr // __is_polymorphic ::= type
+| 118 = @isunionexpr // __is_union ::= type
+| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type
+| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof
+// ...
+| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type
+| 123 = @literal
+| 124 = @uuidof
+| 127 = @aggregateliteral
+| 128 = @delete_array_expr
+| 129 = @new_array_expr
+// ... 130 @objc_array_literal deprecated
+// ... 131 @objc_dictionary_literal deprecated
+| 132 = @foldexpr
+// ...
+| 200 = @ctordirectinit
+| 201 = @ctorvirtualinit
+| 202 = @ctorfieldinit
+| 203 = @ctordelegatinginit
+| 204 = @dtordirectdestruct
+| 205 = @dtorvirtualdestruct
+| 206 = @dtorfielddestruct
+// ...
+| 210 = @static_cast
+| 211 = @reinterpret_cast
+| 212 = @const_cast
+| 213 = @dynamic_cast
+| 214 = @c_style_cast
+| 215 = @lambdaexpr
+| 216 = @param_ref
+| 217 = @noopexpr
+// ...
+| 294 = @istriviallyconstructibleexpr
+| 295 = @isdestructibleexpr
+| 296 = @isnothrowdestructibleexpr
+| 297 = @istriviallydestructibleexpr
+| 298 = @istriviallyassignableexpr
+| 299 = @isnothrowassignableexpr
+| 300 = @istrivialexpr
+| 301 = @isstandardlayoutexpr
+| 302 = @istriviallycopyableexpr
+| 303 = @isliteraltypeexpr
+| 304 = @hastrivialmoveconstructorexpr
+| 305 = @hastrivialmoveassignexpr
+| 306 = @hasnothrowmoveassignexpr
+| 307 = @isconstructibleexpr
+| 308 = @isnothrowconstructibleexpr
+| 309 = @hasfinalizerexpr
+| 310 = @isdelegateexpr
+| 311 = @isinterfaceclassexpr
+| 312 = @isrefarrayexpr
+| 313 = @isrefclassexpr
+| 314 = @issealedexpr
+| 315 = @issimplevalueclassexpr
+| 316 = @isvalueclassexpr
+| 317 = @isfinalexpr
+| 319 = @noexceptexpr
+| 320 = @builtinshufflevector
+| 321 = @builtinchooseexpr
+| 322 = @builtinaddressof
+| 323 = @vec_fill
+| 324 = @builtinconvertvector
+| 325 = @builtincomplex
+| 326 = @spaceshipexpr
+| 327 = @co_await
+| 328 = @co_yield
+| 329 = @temp_init
+| 330 = @isassignable
+| 331 = @isaggregate
+| 332 = @hasuniqueobjectrepresentations
+| 333 = @builtinbitcast
+| 334 = @builtinshuffle
+| 335 = @blockassignexpr
+| 336 = @issame
+| 337 = @isfunction
+| 338 = @islayoutcompatible
+| 339 = @ispointerinterconvertiblebaseof
+| 340 = @isarray
+| 341 = @arrayrank
+| 342 = @arrayextent
+| 343 = @isarithmetic
+| 344 = @iscompletetype
+| 345 = @iscompound
+| 346 = @isconst
+| 347 = @isfloatingpoint
+| 348 = @isfundamental
+| 349 = @isintegral
+| 350 = @islvaluereference
+| 351 = @ismemberfunctionpointer
+| 352 = @ismemberobjectpointer
+| 353 = @ismemberpointer
+| 354 = @isobject
+| 355 = @ispointer
+| 356 = @isreference
+| 357 = @isrvaluereference
+| 358 = @isscalar
+| 359 = @issigned
+| 360 = @isunsigned
+| 361 = @isvoid
+| 362 = @isvolatile
+| 363 = @reuseexpr
+| 364 = @istriviallycopyassignable
+| 365 = @isassignablenopreconditioncheck
+| 366 = @referencebindstotemporary
+| 367 = @issameas
+| 368 = @builtinhasattribute
+| 369 = @ispointerinterconvertiblewithclass
+| 370 = @builtinispointerinterconvertiblewithclass
+| 371 = @iscorrespondingmember
+| 372 = @builtiniscorrespondingmember
+| 373 = @isboundedarray
+| 374 = @isunboundedarray
+| 375 = @isreferenceable
+| 378 = @isnothrowconvertible
+| 379 = @referenceconstructsfromtemporary
+| 380 = @referenceconvertsfromtemporary
+| 381 = @isconvertible
+| 382 = @isvalidwinrttype
+| 383 = @iswinclass
+| 384 = @iswininterface
+| 385 = @istriviallyequalitycomparable
+| 386 = @isscopedenum
+| 387 = @istriviallyrelocatable
+| 388 = @datasizeof
+| 389 = @c11_generic
+| 390 = @requires_expr
+| 391 = @nested_requirement
+| 392 = @compound_requirement
+| 393 = @concept_id
+;
+
+@var_args_expr = @vastartexpr
+ | @vaendexpr
+ | @vaargexpr
+ | @vacopyexpr
+ ;
+
+@builtin_op = @var_args_expr
+ | @noopexpr
+ | @offsetofexpr
+ | @intaddrexpr
+ | @hasassignexpr
+ | @hascopyexpr
+ | @hasnothrowassign
+ | @hasnothrowconstr
+ | @hasnothrowcopy
+ | @hastrivialassign
+ | @hastrivialconstr
+ | @hastrivialcopy
+ | @hastrivialdestructor
+ | @hasuserdestr
+ | @hasvirtualdestr
+ | @isabstractexpr
+ | @isbaseofexpr
+ | @isclassexpr
+ | @isconvtoexpr
+ | @isemptyexpr
+ | @isenumexpr
+ | @ispodexpr
+ | @ispolyexpr
+ | @isunionexpr
+ | @typescompexpr
+ | @builtinshufflevector
+ | @builtinconvertvector
+ | @builtinaddressof
+ | @istriviallyconstructibleexpr
+ | @isdestructibleexpr
+ | @isnothrowdestructibleexpr
+ | @istriviallydestructibleexpr
+ | @istriviallyassignableexpr
+ | @isnothrowassignableexpr
+ | @istrivialexpr
+ | @isstandardlayoutexpr
+ | @istriviallycopyableexpr
+ | @isliteraltypeexpr
+ | @hastrivialmoveconstructorexpr
+ | @hastrivialmoveassignexpr
+ | @hasnothrowmoveassignexpr
+ | @isconstructibleexpr
+ | @isnothrowconstructibleexpr
+ | @hasfinalizerexpr
+ | @isdelegateexpr
+ | @isinterfaceclassexpr
+ | @isrefarrayexpr
+ | @isrefclassexpr
+ | @issealedexpr
+ | @issimplevalueclassexpr
+ | @isvalueclassexpr
+ | @isfinalexpr
+ | @builtinchooseexpr
+ | @builtincomplex
+ | @isassignable
+ | @isaggregate
+ | @hasuniqueobjectrepresentations
+ | @builtinbitcast
+ | @builtinshuffle
+ | @issame
+ | @isfunction
+ | @islayoutcompatible
+ | @ispointerinterconvertiblebaseof
+ | @isarray
+ | @arrayrank
+ | @arrayextent
+ | @isarithmetic
+ | @iscompletetype
+ | @iscompound
+ | @isconst
+ | @isfloatingpoint
+ | @isfundamental
+ | @isintegral
+ | @islvaluereference
+ | @ismemberfunctionpointer
+ | @ismemberobjectpointer
+ | @ismemberpointer
+ | @isobject
+ | @ispointer
+ | @isreference
+ | @isrvaluereference
+ | @isscalar
+ | @issigned
+ | @isunsigned
+ | @isvoid
+ | @isvolatile
+ | @istriviallycopyassignable
+ | @isassignablenopreconditioncheck
+ | @referencebindstotemporary
+ | @issameas
+ | @builtinhasattribute
+ | @ispointerinterconvertiblewithclass
+ | @builtinispointerinterconvertiblewithclass
+ | @iscorrespondingmember
+ | @builtiniscorrespondingmember
+ | @isboundedarray
+ | @isunboundedarray
+ | @isreferenceable
+ | @isnothrowconvertible
+ | @referenceconstructsfromtemporary
+ | @referenceconvertsfromtemporary
+ | @isconvertible
+ | @isvalidwinrttype
+ | @iswinclass
+ | @iswininterface
+ | @istriviallyequalitycomparable
+ | @isscopedenum
+ | @istriviallyrelocatable
+ ;
+
+compound_requirement_is_noexcept(
+ int expr: @compound_requirement ref
+);
+
+new_allocated_type(
+ unique int expr: @new_expr ref,
+ int type_id: @type ref
+);
+
+new_array_allocated_type(
+ unique int expr: @new_array_expr ref,
+ int type_id: @type ref
+);
+
+/**
+ * The field being initialized by an initializer expression within an aggregate
+ * initializer for a class/struct/union. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_field_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int field: @membervariable ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+/**
+ * The index of the element being initialized by an initializer expression
+ * within an aggregate initializer for an array. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_array_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int element_index: int ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+@ctorinit = @ctordirectinit
+ | @ctorvirtualinit
+ | @ctorfieldinit
+ | @ctordelegatinginit;
+@dtordestruct = @dtordirectdestruct
+ | @dtorvirtualdestruct
+ | @dtorfielddestruct;
+
+
+condition_decl_bind(
+ unique int expr: @condition_decl ref,
+ unique int decl: @declaration ref
+);
+
+typeid_bind(
+ unique int expr: @type_id ref,
+ int type_id: @type ref
+);
+
+uuidof_bind(
+ unique int expr: @uuidof ref,
+ int type_id: @type ref
+);
+
+@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack;
+
+sizeof_bind(
+ unique int expr: @sizeof_or_alignof ref,
+ int type_id: @type ref
+);
+
+code_block(
+ unique int block: @literal ref,
+ unique int routine: @function ref
+);
+
+lambdas(
+ unique int expr: @lambdaexpr ref,
+ string default_capture: string ref,
+ boolean has_explicit_return_type: boolean ref,
+ boolean has_explicit_parameter_list: boolean ref
+);
+
+lambda_capture(
+ unique int id: @lambdacapture,
+ int lambda: @lambdaexpr ref,
+ int index: int ref,
+ int field: @membervariable ref,
+ boolean captured_by_reference: boolean ref,
+ boolean is_implicit: boolean ref,
+ int location: @location_default ref
+);
+
+@funbindexpr = @routineexpr
+ | @new_expr
+ | @delete_expr
+ | @delete_array_expr
+ | @ctordirectinit
+ | @ctorvirtualinit
+ | @ctordelegatinginit
+ | @dtordirectdestruct
+ | @dtorvirtualdestruct;
+
+@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct;
+@addressable = @function | @variable ;
+@accessible = @addressable | @enumconstant ;
+
+@access = @varaccess | @routineexpr ;
+
+fold(
+ int expr: @foldexpr ref,
+ string operator: string ref,
+ boolean is_left_fold: boolean ref
+);
+
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+case @stmt.kind of
+ 1 = @stmt_expr
+| 2 = @stmt_if
+| 3 = @stmt_while
+| 4 = @stmt_goto
+| 5 = @stmt_label
+| 6 = @stmt_return
+| 7 = @stmt_block
+| 8 = @stmt_end_test_while // do { ... } while ( ... )
+| 9 = @stmt_for
+| 10 = @stmt_switch_case
+| 11 = @stmt_switch
+| 13 = @stmt_asm // "asm" statement or the body of an asm function
+| 15 = @stmt_try_block
+| 16 = @stmt_microsoft_try // Microsoft
+| 17 = @stmt_decl
+| 18 = @stmt_set_vla_size // C99
+| 19 = @stmt_vla_decl // C99
+| 25 = @stmt_assigned_goto // GNU
+| 26 = @stmt_empty
+| 27 = @stmt_continue
+| 28 = @stmt_break
+| 29 = @stmt_range_based_for // C++11
+// ... 30 @stmt_at_autoreleasepool_block deprecated
+// ... 31 @stmt_objc_for_in deprecated
+// ... 32 @stmt_at_synchronized deprecated
+| 33 = @stmt_handler
+// ... 34 @stmt_finally_end deprecated
+| 35 = @stmt_constexpr_if
+| 37 = @stmt_co_return
+| 38 = @stmt_consteval_if
+| 39 = @stmt_not_consteval_if
+| 40 = @stmt_leave
+;
+
+type_vla(
+ int type_id: @type ref,
+ int decl: @stmt_vla_decl ref
+);
+
+variable_vla(
+ int var: @variable ref,
+ int decl: @stmt_vla_decl ref
+);
+
+type_is_vla(unique int type_id: @derivedtype ref)
+
+if_initialization(
+ unique int if_stmt: @stmt_if ref,
+ int init_id: @stmt ref
+);
+
+if_then(
+ unique int if_stmt: @stmt_if ref,
+ int then_id: @stmt ref
+);
+
+if_else(
+ unique int if_stmt: @stmt_if ref,
+ int else_id: @stmt ref
+);
+
+constexpr_if_initialization(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int init_id: @stmt ref
+);
+
+constexpr_if_then(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int then_id: @stmt ref
+);
+
+constexpr_if_else(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int else_id: @stmt ref
+);
+
+@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if;
+
+consteval_if_then(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int then_id: @stmt ref
+);
+
+consteval_if_else(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int else_id: @stmt ref
+);
+
+while_body(
+ unique int while_stmt: @stmt_while ref,
+ int body_id: @stmt ref
+);
+
+do_body(
+ unique int do_stmt: @stmt_end_test_while ref,
+ int body_id: @stmt ref
+);
+
+switch_initialization(
+ unique int switch_stmt: @stmt_switch ref,
+ int init_id: @stmt ref
+);
+
+#keyset[switch_stmt, index]
+switch_case(
+ int switch_stmt: @stmt_switch ref,
+ int index: int ref,
+ int case_id: @stmt_switch_case ref
+);
+
+switch_body(
+ unique int switch_stmt: @stmt_switch ref,
+ int body_id: @stmt ref
+);
+
+@stmt_for_or_range_based_for = @stmt_for
+ | @stmt_range_based_for;
+
+for_initialization(
+ unique int for_stmt: @stmt_for_or_range_based_for ref,
+ int init_id: @stmt ref
+);
+
+for_condition(
+ unique int for_stmt: @stmt_for ref,
+ int condition_id: @expr ref
+);
+
+for_update(
+ unique int for_stmt: @stmt_for ref,
+ int update_id: @expr ref
+);
+
+for_body(
+ unique int for_stmt: @stmt_for ref,
+ int body_id: @stmt ref
+);
+
+@stmtparent = @stmt | @expr_stmt ;
+stmtparents(
+ unique int id: @stmt ref,
+ int index: int ref,
+ int parent: @stmtparent ref
+);
+
+ishandler(unique int block: @stmt_block ref);
+
+@cfgnode = @stmt | @expr | @function | @initialiser ;
+
+stmt_decl_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl: @declaration ref
+);
+
+stmt_decl_entry_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl_entry: @element ref
+);
+
+@parameterized_element = @function | @stmt_block | @requires_expr;
+
+blockscope(
+ unique int block: @stmt_block ref,
+ int enclosing: @parameterized_element ref
+);
+
+@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave;
+
+@jumporlabel = @jump | @stmt_label | @literal;
+
+jumpinfo(
+ unique int id: @jumporlabel ref,
+ string str: string ref,
+ int target: @stmt ref
+);
+
+preprocdirects(
+ unique int id: @preprocdirect,
+ int kind: int ref,
+ int location: @location_default ref
+);
+case @preprocdirect.kind of
+ 0 = @ppd_if
+| 1 = @ppd_ifdef
+| 2 = @ppd_ifndef
+| 3 = @ppd_elif
+| 4 = @ppd_else
+| 5 = @ppd_endif
+| 6 = @ppd_plain_include
+| 7 = @ppd_define
+| 8 = @ppd_undef
+| 9 = @ppd_line
+| 10 = @ppd_error
+| 11 = @ppd_pragma
+| 12 = @ppd_objc_import
+| 13 = @ppd_include_next
+| 14 = @ppd_ms_import
+| 15 = @ppd_elifdef
+| 16 = @ppd_elifndef
+| 18 = @ppd_warning
+;
+
+@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import;
+
+@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef;
+
+preprocpair(
+ int begin : @ppd_branch ref,
+ int elseelifend : @preprocdirect ref
+);
+
+preproctrue(int branch : @ppd_branch ref);
+preprocfalse(int branch : @ppd_branch ref);
+
+preproctext(
+ unique int id: @preprocdirect ref,
+ string head: string ref,
+ string body: string ref
+);
+
+includes(
+ unique int id: @ppd_include ref,
+ int included: @file ref
+);
+
+link_targets(
+ int id: @link_target,
+ int binary: @file ref
+);
+
+link_parent(
+ int element : @element ref,
+ int link_target : @link_target ref
+);
+
+/**
+ * The CLI will automatically emit applicable tuples for this table,
+ * such as `databaseMetadata("isOverlay", "true")` when building an
+ * overlay database.
+ */
+databaseMetadata(
+ string metadataKey: string ref,
+ string value: string ref
+);
+
+/**
+ * The CLI will automatically emit tuples for each new/modified/deleted file
+ * when building an overlay database.
+ */
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*- XML Files -*/
+
+xmlEncoding(
+ unique int id: @file ref,
+ string encoding: string ref
+);
+
+xmlDTDs(
+ unique int id: @xmldtd,
+ string root: string ref,
+ string publicId: string ref,
+ string systemId: string ref,
+ int fileid: @file ref
+);
+
+xmlElements(
+ unique int id: @xmlelement,
+ string name: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlAttrs(
+ unique int id: @xmlattribute,
+ int elementid: @xmlelement ref,
+ string name: string ref,
+ string value: string ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlNs(
+ int id: @xmlnamespace,
+ string prefixName: string ref,
+ string URI: string ref,
+ int fileid: @file ref
+);
+
+xmlHasNs(
+ int elementId: @xmlnamespaceable ref,
+ int nsId: @xmlnamespace ref,
+ int fileid: @file ref
+);
+
+xmlComments(
+ unique int id: @xmlcomment,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int fileid: @file ref
+);
+
+xmlChars(
+ unique int id: @xmlcharacters,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int isCDATA: int ref,
+ int fileid: @file ref
+);
+
+@xmlparent = @file | @xmlelement;
+@xmlnamespaceable = @xmlelement | @xmlattribute;
+
+xmllocations(
+ int xmlElement: @xmllocatable ref,
+ int location: @location_default ref
+);
+
+@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace;
diff --git a/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties
new file mode 100644
index 000000000000..233ff863eca3
--- /dev/null
+++ b/cpp/downgrades/d2d611b3fdcc7c4fe370f0d115200a3aa6ad5837/upgrade.properties
@@ -0,0 +1,2 @@
+description: Remove _Decimal{32,64,128} types
+compatibility: full
diff --git a/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md
new file mode 100644
index 000000000000..09c367512620
--- /dev/null
+++ b/cpp/ql/lib/change-notes/2026-01-02-decimal-removal.md
@@ -0,0 +1,4 @@
+---
+category: minorAnalysis
+---
+* The `_Decimal32`, `_Decimal64`, and `_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases.
diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll
index d9a61865c968..fa2d2d605d87 100644
--- a/cpp/ql/lib/semmle/code/cpp/Type.qll
+++ b/cpp/ql/lib/semmle/code/cpp/Type.qll
@@ -802,15 +802,6 @@ private predicate floatingPointTypeMapping(
// _Complex __float128
kind = 39 and base = 2 and domain = TComplexDomain() and realKind = 38 and extended = false
or
- // _Decimal32
- kind = 40 and base = 10 and domain = TRealDomain() and realKind = 40 and extended = false
- or
- // _Decimal64
- kind = 41 and base = 10 and domain = TRealDomain() and realKind = 41 and extended = false
- or
- // _Decimal128
- kind = 42 and base = 10 and domain = TRealDomain() and realKind = 42 and extended = false
- or
// _Float32
kind = 45 and base = 2 and domain = TRealDomain() and realKind = 45 and extended = false
or
@@ -871,9 +862,8 @@ private predicate floatingPointTypeMapping(
/**
* The C/C++ floating point types. See 4.5. This includes `float`, `double` and `long double`, the
- * fixed-size floating-point types like `_Float32`, the extended-precision floating-point types like
- * `_Float64x`, and the decimal floating-point types like `_Decimal32`. It also includes the complex
- * and imaginary versions of all of these types.
+ * fixed-size floating-point types like `_Float32`, and the extended-precision floating-point types
+ * like `_Float64x`. It also includes the complex and imaginary versions of all of these types.
*/
class FloatingPointType extends ArithmeticType {
final int base;
@@ -991,42 +981,6 @@ class Float128Type extends RealNumberType, BinaryFloatingPointType {
override string getAPrimaryQlClass() { result = "Float128Type" }
}
-/**
- * The GNU C `_Decimal32` primitive type. This is not standard C/C++.
- * ```
- * _Decimal32 d32;
- * ```
- */
-class Decimal32Type extends RealNumberType, DecimalFloatingPointType {
- Decimal32Type() { builtintypes(underlyingElement(this), _, 40, _, _, _) }
-
- override string getAPrimaryQlClass() { result = "Decimal32Type" }
-}
-
-/**
- * The GNU C `_Decimal64` primitive type. This is not standard C/C++.
- * ```
- * _Decimal64 d64;
- * ```
- */
-class Decimal64Type extends RealNumberType, DecimalFloatingPointType {
- Decimal64Type() { builtintypes(underlyingElement(this), _, 41, _, _, _) }
-
- override string getAPrimaryQlClass() { result = "Decimal64Type" }
-}
-
-/**
- * The GNU C `_Decimal128` primitive type. This is not standard C/C++.
- * ```
- * _Decimal128 d128;
- * ```
- */
-class Decimal128Type extends RealNumberType, DecimalFloatingPointType {
- Decimal128Type() { builtintypes(underlyingElement(this), _, 42, _, _, _) }
-
- override string getAPrimaryQlClass() { result = "Decimal128Type" }
-}
-
/**
* The C/C++ `void` type. See 4.7.
* ```
diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme
index a42ce5fc9432..d2d611b3fdcc 100644
--- a/cpp/ql/lib/semmlecode.cpp.dbscheme
+++ b/cpp/ql/lib/semmlecode.cpp.dbscheme
@@ -617,9 +617,9 @@ case @builtintype.kind of
| 37 = @signed_int128 // signed __int128
| 38 = @float128 // __float128
| 39 = @complex_float128 // _Complex __float128
-| 40 = @decimal32 // _Decimal32
-| 41 = @decimal64 // _Decimal64
-| 42 = @decimal128 // _Decimal128
+// ... 40 _Decimal32
+// ... 41 _Decimal64
+// ... 42 _Decimal128
| 43 = @char16_t
| 44 = @char32_t
| 45 = @std_float32 // _Float32
diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
index 4ff7d2dd67b5..541a5f64b779 100644
--- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
+++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats
@@ -2,7 +2,7 @@
@compilation
- 12641
+ 12592
@externalDataElement
@@ -10,35 +10,35 @@
@file
- 65204
+ 64949
@folder
- 12388
+ 12339
@diagnostic
- 359
+ 357
- @pch
- 249
+ @location_default
+ 46837418
- @location_default
- 46943825
+ @pch
+ 248
@macro_expansion
- 40272429
+ 40306114
@other_macro_reference
- 300698
+ 300641
@normal_function
- 2737949
+ 2734630
@unknown_function
@@ -46,51 +46,51 @@
@constructor
- 698692
+ 694355
@destructor
- 86200
+ 85993
@conversion_function
- 10354
+ 10329
@operator
- 652427
+ 650865
@user_defined_literal
- 997
+ 995
@deduction_guide
- 5863
+ 5849
@fun_decl
- 4202854
+ 4193414
@var_decl
- 9383101
+ 9367981
@type_decl
- 1633438
+ 1629528
@namespace_decl
- 407918
+ 407977
@using_declaration
- 268041
+ 266984
@using_directive
- 6472
+ 6431
@using_enum_declaration
@@ -98,27 +98,27 @@
@static_assert
- 172982
+ 172749
@parameter
- 7019643
+ 7011799
@membervariable
- 1499494
+ 1500528
@globalvariable
- 488384
+ 492566
@localvariable
- 726016
+ 724687
@enumconstant
- 347930
+ 347955
@errortype
@@ -260,18 +260,6 @@
@complex_float128
124
-
- @decimal32
- 124
-
-
- @decimal64
- 124
-
-
- @decimal128
- 124
-
@char16_t
124
@@ -366,35 +354,35 @@
@pointer
- 452457
+ 451498
@type_with_specifiers
- 693219
+ 691560
@array
- 90316
+ 90100
@routineptr
- 684282
+ 679868
@reference
- 967288
+ 964973
@gnu_vector
- 675
+ 673
@routinereference
- 374
+ 372
@rvalue_reference
- 291034
+ 290338
@block
@@ -406,15 +394,15 @@
@decltype
- 102350
+ 101757
@typeof
- 816
+ 811
@underlying_type
- 623
+ 622
@bases
@@ -458,7 +446,7 @@
@remove_cv
- 2062
+ 2059
@remove_cvref
@@ -486,27 +474,27 @@
@remove_reference
- 5715
+ 5706
@struct
- 979799
+ 976646
@union
- 20957
+ 20907
@enum
- 41551
+ 41554
@template_parameter
- 866985
+ 864462
@alias
- 1762169
+ 1755835
@unknown_usertype
@@ -514,55 +502,55 @@
@class
- 324966
+ 324188
@template_template_parameter
- 6114
+ 6091
@proxy_class
- 48433
+ 48244
@scoped_enum
- 11601
+ 11573
@template_struct
- 212057
+ 211187
@template_class
- 29315
+ 29245
@template_union
- 1372
+ 1368
@mangledname
- 6364346
+ 6349608
@type_mention
- 5907630
+ 5911108
@concept_template
- 3609
+ 3603
@routinetype
- 604495
+ 600596
@ptrtomember
- 9726
+ 9678
@specifier
- 7734
+ 7715
@gnuattribute
@@ -570,11 +558,11 @@
@stdattribute
- 352784
+ 351940
@declspec
- 330286
+ 330310
@msattribute
@@ -582,19 +570,19 @@
@alignas
- 2164
+ 2160
@attribute_arg_token
- 16693
+ 16585
@attribute_arg_constant_expr
- 71889
+ 71524
@attribute_arg_expr
- 1404
+ 1587
@attribute_arg_empty
@@ -606,23 +594,23 @@
@attribute_arg_type
- 460
+ 459
@derivation
- 476878
+ 473802
@frienddecl
- 700430
+ 695912
@comment
- 11233100
+ 11208574
@namespace
- 8649
+ 8615
@specialnamequalifyingelement
@@ -630,15 +618,15 @@
@namequalifier
- 3037638
+ 3042587
@value
- 13474772
+ 13541399
@initialiser
- 2247637
+ 2244826
@address_of
@@ -646,131 +634,131 @@
@indirect
- 404158
+ 402174
@array_to_pointer
- 1953767
+ 1953951
@parexpr
- 4915249
+ 4915710
@arithnegexpr
- 586539
+ 586594
@unaryplusexpr
- 4068
+ 4060
@complementexpr
- 38200
+ 38188
@notexpr
- 355767
+ 355800
@postincrexpr
- 84572
+ 84579
@postdecrexpr
- 57395
+ 57400
@preincrexpr
- 96715
+ 96724
@predecrexpr
- 35821
+ 35824
@conditionalexpr
- 897887
+ 897971
@addexpr
- 571560
+ 580446
@subexpr
- 466803
+ 466847
@mulexpr
- 435798
+ 445092
@divexpr
- 52388
+ 52392
@remexpr
- 16011
+ 15908
@paddexpr
- 118671
+ 118632
@psubexpr
- 68017
+ 68022
@pdiffexpr
- 43910
+ 43805
@lshiftexpr
- 551703
+ 552166
@rshiftexpr
- 200557
+ 201276
@andexpr
- 481224
+ 483234
@orexpr
- 194058
+ 193911
@xorexpr
- 73953
+ 73958
@eqexpr
- 643380
+ 643439
@neexpr
- 411874
+ 411912
@gtexpr
- 111150
+ 111161
@ltexpr
- 139430
+ 139443
@geexpr
- 81359
+ 81365
@leexpr
- 292039
+ 291944
@assignexpr
- 1281160
+ 1281279
@assignaddexpr
@@ -778,11 +766,11 @@
@assignsubexpr
- 15307
+ 15309
@assignmulexpr
- 11184
+ 11140
@assigndivexpr
@@ -790,7 +778,7 @@
@assignremexpr
- 873
+ 871
@assignlshiftexpr
@@ -806,15 +794,15 @@
@assignorexpr
- 19607
+ 19609
@assignxorexpr
- 29910
+ 29900
@assignpaddexpr
- 18628
+ 18630
@assignpsubexpr
@@ -822,27 +810,27 @@
@andlogicalexpr
- 346593
+ 346625
@orlogicalexpr
- 1103536
+ 1103652
@commaexpr
- 168283
+ 167880
@subscriptexpr
- 435148
+ 435188
@callexpr
- 239767
+ 238864
@vastartexpr
- 4970
+ 4964
@vaargexpr
@@ -854,75 +842,75 @@
@vacopyexpr
- 136
+ 135
@varaccess
- 8254733
+ 8255500
@runtime_sizeof
- 402052
+ 401408
@runtime_alignof
- 49874
+ 49553
@expr_stmt
- 148366
+ 147518
@routineexpr
- 5729912
+ 5726205
@type_operand
- 1405380
+ 1405527
@offsetofexpr
- 149026
+ 148427
@typescompexpr
- 701943
+ 702016
@literal
- 7966268
+ 7984513
@aggregateliteral
- 1397522
+ 1397523
@c_style_cast
- 6026987
+ 6027719
@temp_init
- 990622
+ 980435
@errorexpr
- 45480
+ 45186
@reference_to
- 1903214
+ 1880596
@ref_indirect
- 2107218
+ 2094134
@vacuous_destructor_call
- 7835
+ 7785
@assume
- 4143
+ 4138
@conjugation
@@ -974,35 +962,35 @@
@thisaccess
- 1555764
+ 1553672
@new_expr
- 46195
+ 45897
@delete_expr
- 11480
+ 11406
@throw_expr
- 24214
+ 23891
@condition_decl
- 408340
+ 407684
@braced_init_list
- 2146
+ 2125
@type_id
- 47899
+ 47590
@sizeof_pack
- 1737
+ 1726
@hasassignexpr
@@ -1046,7 +1034,7 @@
@isabstractexpr
- 68
+ 67
@isbaseofexpr
@@ -1054,23 +1042,23 @@
@isclassexpr
- 2384
+ 2380
@isconvtoexpr
- 249
+ 248
@isemptyexpr
- 8857
+ 8835
@isenumexpr
- 2993
+ 2986
@ispodexpr
- 834
+ 831
@ispolyexpr
@@ -1086,75 +1074,75 @@
@hastrivialdestructor
- 2793
+ 2775
@uuidof
- 26695
+ 26691
@delete_array_expr
- 1246
+ 1241
@new_array_expr
- 6641
+ 6632
@foldexpr
- 1246
+ 1244
@ctordirectinit
- 112831
+ 112104
@ctorvirtualinit
- 4019
+ 3994
@ctorfieldinit
- 206206
+ 205713
@ctordelegatinginit
- 3617
+ 3609
@dtordirectdestruct
- 39450
+ 39195
@dtorvirtualdestruct
- 3985
+ 3960
@dtorfielddestruct
- 39825
+ 39568
@static_cast
- 348044
+ 347211
@reinterpret_cast
- 40018
+ 39964
@const_cast
- 24460
+ 24302
@dynamic_cast
- 792
+ 788
@lambdaexpr
- 19023
+ 18998
@param_ref
- 163867
+ 162117
@noopexpr
@@ -1162,7 +1150,7 @@
@istriviallyconstructibleexpr
- 3742
+ 3733
@isdestructibleexpr
@@ -1174,19 +1162,19 @@
@istriviallydestructibleexpr
- 997
+ 995
@istriviallyassignableexpr
- 3742
+ 3733
@isnothrowassignableexpr
- 5114
+ 5102
@istrivialexpr
- 3375
+ 3327
@isstandardlayoutexpr
@@ -1194,7 +1182,7 @@
@istriviallycopyableexpr
- 1372
+ 1368
@isliteraltypeexpr
@@ -1214,11 +1202,11 @@
@isconstructibleexpr
- 3617
+ 3609
@isnothrowconstructibleexpr
- 20708
+ 20658
@hasfinalizerexpr
@@ -1254,11 +1242,11 @@
@isfinalexpr
- 9402
+ 9342
@noexceptexpr
- 28463
+ 28127
@builtinshufflevector
@@ -1266,11 +1254,11 @@
@builtinchooseexpr
- 20701
+ 20593
@builtinaddressof
- 15468
+ 15431
@vec_fill
@@ -1286,7 +1274,7 @@
@spaceshipexpr
- 1310
+ 1308
@co_await
@@ -1298,7 +1286,7 @@
@isassignable
- 408
+ 407
@isaggregate
@@ -1310,11 +1298,11 @@
@builtinbitcast
- 249
+ 248
@builtinshuffle
- 612
+ 610
@blockassignexpr
@@ -1322,7 +1310,7 @@
@issame
- 4533
+ 4526
@isfunction
@@ -1430,7 +1418,7 @@
@reuseexpr
- 845836
+ 844479
@istriviallycopyassignable
@@ -1526,95 +1514,95 @@
@c11_generic
- 30117
+ 29943
@requires_expr
- 16479
+ 16453
@nested_requirement
- 687
+ 686
@compound_requirement
- 10936
+ 10918
@concept_id
- 90305
+ 90160
@lambdacapture
- 31909
+ 31866
@stmt_expr
- 2031639
+ 2031828
@stmt_if
- 990227
+ 990318
@stmt_while
- 39648
+ 39652
@stmt_goto
- 157889
+ 157272
@stmt_label
- 78015
+ 77731
@stmt_return
- 1241800
+ 1238182
@stmt_block
- 1728620
+ 1724482
@stmt_end_test_while
- 233644
+ 232290
@stmt_for
- 84390
+ 84398
@stmt_switch_case
- 834964
+ 833624
@stmt_switch
- 411283
+ 410623
@stmt_asm
- 64199
+ 63827
@stmt_decl
- 771066
+ 770029
@stmt_empty
- 428794
+ 428127
@stmt_continue
- 28091
+ 28094
@stmt_break
- 137691
+ 137506
@stmt_try_block
- 26771
+ 26422
@stmt_microsoft_try
@@ -1630,19 +1618,19 @@
@stmt_assigned_goto
- 12427
+ 12423
@stmt_range_based_for
- 6372
+ 6308
@stmt_handler
- 43779
+ 43261
@stmt_constexpr_if
- 106035
+ 105781
@stmt_co_return
@@ -1662,51 +1650,51 @@
@ppd_if
- 590926
+ 589512
@ppd_ifdef
- 214366
+ 214386
@ppd_ifndef
- 160378
+ 160444
@ppd_elif
- 21914
+ 21828
@ppd_else
- 234898
+ 234336
@ppd_endif
- 888947
+ 886819
@ppd_plain_include
- 318524
+ 317280
@ppd_define
- 2750049
+ 2743341
@ppd_undef
- 100421
+ 100181
@ppd_pragma
- 406176
+ 405204
@ppd_include_next
- 170
+ 169
@ppd_line
- 18805
+ 18770
@ppd_error
@@ -1762,60 +1750,13 @@
-
- databaseMetadata
- 1
-
-
- metadataKey
- 1
-
-
- value
- 1
-
-
-
-
- metadataKey
- value
-
-
- 12
-
-
-
-
-
- value
- metadataKey
-
-
- 12
-
-
-
-
-
-
-
- overlayChangedFiles
- 50
-
-
- path
- 50
-
-
-
-
compilations
- 12641
+ 12592
id
- 12641
+ 12592
cwd
@@ -1833,7 +1774,7 @@
1
2
- 12641
+ 12592
@@ -1859,19 +1800,19 @@
compilation_args
- 1012084
+ 1008133
id
- 12641
+ 12592
num
- 1467
+ 1462
arg
- 29264
+ 29150
@@ -1885,77 +1826,77 @@
36
42
- 1003
+ 999
42
43
- 1098
+ 1094
43
44
- 718
+ 715
44
45
- 506
+ 504
45
51
- 950
+ 946
51
70
- 485
+ 483
71
72
- 707
+ 704
72
90
- 897
+ 894
94
96
- 390
+ 389
98
99
- 1341
+ 1336
100
102
- 95
+ 94
103
104
- 1996
+ 1988
104
119
- 1066
+ 1062
120
138
- 929
+ 925
139
140
- 454
+ 452
@@ -1971,67 +1912,67 @@
34
38
- 591
+ 589
38
39
- 1499
+ 1493
39
40
- 982
+ 978
40
42
- 1087
+ 1083
42
53
- 601
+ 599
53
54
- 707
+ 704
54
63
- 897
+ 894
64
67
- 401
+ 399
67
68
- 1404
+ 1399
68
70
- 971
+ 967
70
71
- 1404
+ 1399
73
79
- 950
+ 946
79
89
- 1130
+ 1125
89
@@ -2057,7 +1998,7 @@
90
108
- 116
+ 115
108
@@ -2067,7 +2008,7 @@
198
422
- 116
+ 115
422
@@ -2082,17 +2023,17 @@
605
749
- 116
+ 115
750
778
- 116
+ 115
781
883
- 116
+ 115
930
@@ -2102,7 +2043,7 @@
1197
1198
- 380
+ 378
@@ -2123,7 +2064,7 @@
5
7
- 116
+ 115
9
@@ -2133,17 +2074,17 @@
12
15
- 116
+ 115
15
18
- 95
+ 94
18
22
- 116
+ 115
22
@@ -2158,7 +2099,7 @@
29
34
- 116
+ 115
34
@@ -2168,17 +2109,17 @@
45
63
- 116
+ 115
67
94
- 116
+ 115
94
164
- 116
+ 115
171
@@ -2199,22 +2140,22 @@
1
2
- 13402
+ 13349
2
3
- 12683
+ 12634
3
103
- 2196
+ 2188
104
1198
- 982
+ 978
@@ -2230,17 +2171,17 @@
1
2
- 19379
+ 19304
2
3
- 8723
+ 8689
3
62
- 1161
+ 1157
@@ -2250,19 +2191,19 @@
compilation_expanded_args
- 1012084
+ 1008133
id
- 12641
+ 12592
num
- 1467
+ 1462
arg
- 29264
+ 29150
@@ -2276,77 +2217,77 @@
36
42
- 1003
+ 999
42
43
- 1098
+ 1094
43
44
- 718
+ 715
44
45
- 506
+ 504
45
51
- 950
+ 946
51
70
- 485
+ 483
71
72
- 707
+ 704
72
90
- 897
+ 894
94
96
- 390
+ 389
98
99
- 1341
+ 1336
100
102
- 95
+ 94
103
104
- 1996
+ 1988
104
119
- 1066
+ 1062
120
138
- 929
+ 925
139
140
- 454
+ 452
@@ -2362,67 +2303,67 @@
34
38
- 591
+ 589
38
39
- 1499
+ 1493
39
40
- 982
+ 978
40
42
- 1087
+ 1083
42
53
- 601
+ 599
53
54
- 707
+ 704
54
63
- 897
+ 894
64
67
- 401
+ 399
67
68
- 1404
+ 1399
68
70
- 971
+ 967
70
71
- 1404
+ 1399
73
79
- 950
+ 946
79
89
- 1130
+ 1125
89
@@ -2448,7 +2389,7 @@
90
108
- 116
+ 115
108
@@ -2458,7 +2399,7 @@
198
422
- 116
+ 115
422
@@ -2473,17 +2414,17 @@
605
749
- 116
+ 115
750
778
- 116
+ 115
781
883
- 116
+ 115
930
@@ -2493,7 +2434,7 @@
1197
1198
- 380
+ 378
@@ -2514,7 +2455,7 @@
5
7
- 116
+ 115
9
@@ -2524,17 +2465,17 @@
12
15
- 116
+ 115
15
18
- 95
+ 94
18
22
- 116
+ 115
22
@@ -2549,7 +2490,7 @@
29
34
- 116
+ 115
34
@@ -2559,17 +2500,17 @@
45
63
- 116
+ 115
67
94
- 116
+ 115
94
164
- 116
+ 115
171
@@ -2590,22 +2531,22 @@
1
2
- 13402
+ 13349
2
3
- 12683
+ 12634
3
103
- 2196
+ 2188
104
1198
- 982
+ 978
@@ -2621,17 +2562,17 @@
1
2
- 19379
+ 19304
2
3
- 8723
+ 8689
3
62
- 1161
+ 1157
@@ -2689,19 +2630,19 @@
compilation_compiling_files
- 15738
+ 15739
id
- 2722
+ 2723
num
- 4519
+ 4520
file
- 13668
+ 13669
@@ -2889,7 +2830,7 @@
1
2
- 12307
+ 12308
2
@@ -2915,7 +2856,7 @@
1
2
- 12525
+ 12526
2
@@ -2935,15 +2876,15 @@
compilation_time
- 62953
+ 62957
id
- 2722
+ 2723
num
- 4519
+ 4520
kind
@@ -2951,7 +2892,7 @@
seconds
- 18352
+ 20423
@@ -3016,7 +2957,7 @@
4
5
- 2722
+ 2723
@@ -3032,52 +2973,47 @@
3
4
- 653
+ 925
4
5
- 707
+ 435
- 6
- 9
+ 5
+ 8
217
- 9
+ 8
10
108
10
11
- 163
+ 272
11
- 12
- 217
-
-
- 15
- 17
+ 14
163
- 17
- 21
+ 16
+ 18
217
- 21
- 51
+ 18
+ 26
217
- 118
- 119
- 54
+ 45
+ 128
+ 163
@@ -3129,7 +3065,7 @@
4
5
- 4519
+ 4520
@@ -3142,55 +3078,45 @@
12
-
- 2
- 3
- 54
-
3
4
- 1252
+ 1524
4
5
- 1089
+ 871
5
6
- 163
+ 108
6
7
- 544
+ 599
7
- 8
- 272
-
-
- 8
9
- 326
+ 381
9
- 17
+ 10
381
- 23
- 53
+ 11
+ 27
381
- 98
- 99
- 54
+ 30
+ 96
+ 272
@@ -3238,21 +3164,16 @@
4
5
- 54
-
-
- 5
- 6
- 54
+ 108
- 195
- 196
+ 210
+ 211
54
- 197
- 198
+ 214
+ 215
54
@@ -3269,22 +3190,22 @@
1
2
- 12198
+ 15249
2
3
- 4084
+ 3376
3
- 4
- 1415
+ 6
+ 1579
- 4
- 44
- 653
+ 10
+ 39
+ 217
@@ -3300,12 +3221,12 @@
1
2
- 10891
+ 14486
2
3
- 4465
+ 2995
3
@@ -3314,8 +3235,8 @@
4
- 71
- 1415
+ 64
+ 1361
@@ -3331,12 +3252,12 @@
1
2
- 14866
+ 17318
2
3
- 3485
+ 3104
@@ -3346,15 +3267,15 @@
diagnostic_for
- 506
+ 504
diagnostic
- 359
+ 357
compilation
- 190
+ 189
file_number
@@ -3376,7 +3297,7 @@
1
2
- 211
+ 210
2
@@ -3397,7 +3318,7 @@
1
2
- 359
+ 357
@@ -3413,7 +3334,7 @@
1
2
- 359
+ 357
@@ -3455,7 +3376,7 @@
1
2
- 190
+ 189
@@ -3612,19 +3533,19 @@
compilation_finished
- 12641
+ 12592
id
- 12641
+ 12592
cpu_seconds
- 9409
+ 9509
elapsed_seconds
- 200
+ 220
@@ -3638,7 +3559,7 @@
1
2
- 12641
+ 12592
@@ -3654,7 +3575,7 @@
1
2
- 12641
+ 12592
@@ -3670,17 +3591,17 @@
1
2
- 7846
+ 8047
2
3
- 1130
+ 1115
3
- 35
- 433
+ 34
+ 347
@@ -3696,12 +3617,12 @@
1
2
- 8744
+ 8868
2
3
- 665
+ 641
@@ -3717,81 +3638,61 @@
1
2
- 42
+ 52
2
3
- 10
-
-
- 3
- 4
- 10
+ 21
- 4
- 5
+ 5
+ 6
10
9
10
- 10
-
-
- 10
- 11
- 10
-
-
- 11
- 12
- 10
-
-
- 12
- 13
- 10
+ 52
- 14
- 15
+ 15
+ 16
10
- 19
- 20
+ 16
+ 17
10
- 32
- 33
+ 33
+ 34
10
- 57
- 58
+ 62
+ 63
10
- 154
- 155
+ 185
+ 186
10
- 251
- 252
+ 220
+ 221
10
- 306
- 307
+ 283
+ 284
10
- 309
- 310
+ 324
+ 325
10
@@ -3808,81 +3709,61 @@
1
2
- 42
+ 52
2
3
- 10
-
-
- 3
- 4
- 10
+ 21
- 4
- 5
+ 5
+ 6
10
9
10
- 10
-
-
- 10
- 11
- 10
-
-
- 11
- 12
- 10
-
-
- 12
- 13
- 10
+ 52
- 14
- 15
+ 15
+ 16
10
- 18
- 19
+ 16
+ 17
10
- 29
- 30
+ 33
+ 34
10
- 54
- 55
+ 60
+ 61
10
- 149
- 150
+ 166
+ 167
10
- 152
- 153
+ 174
+ 175
10
- 228
- 229
+ 208
+ 209
10
- 255
- 256
+ 234
+ 235
10
@@ -4120,31 +4001,31 @@
locations_default
- 46943825
+ 46837418
id
- 46943825
+ 46837418
file
- 40917
+ 40819
beginLine
- 7500418
+ 7483209
beginColumn
- 21955
+ 21902
endLine
- 7501541
+ 7484205
endColumn
- 53391
+ 53263
@@ -4158,7 +4039,7 @@
1
2
- 46943825
+ 46837418
@@ -4174,7 +4055,7 @@
1
2
- 46943825
+ 46837418
@@ -4190,7 +4071,7 @@
1
2
- 46943825
+ 46837418
@@ -4206,7 +4087,7 @@
1
2
- 46943825
+ 46837418
@@ -4222,7 +4103,7 @@
1
2
- 46943825
+ 46837418
@@ -4238,67 +4119,67 @@
1
15
- 3118
+ 3111
15
41
- 3118
+ 3111
42
72
- 3118
+ 3111
72
114
- 3368
+ 3360
114
142
- 3118
+ 3111
143
211
- 3118
+ 3111
213
307
- 3118
+ 3111
310
430
- 3118
+ 3111
437
596
- 3118
+ 3111
607
- 827
- 3118
+ 829
+ 3111
839
1298
- 3118
+ 3111
- 1300
+ 1303
2855
- 3118
+ 3111
3114
30788
- 3118
+ 3111
57880
@@ -4319,67 +4200,67 @@
1
13
- 3368
+ 3360
13
31
- 3368
+ 3360
31
47
- 3118
+ 3111
47
64
- 3118
+ 3111
64
84
- 3118
+ 3111
85
115
- 3118
+ 3111
116
160
- 3243
+ 3235
160
206
- 3118
+ 3111
206
291
- 3118
+ 3111
298
388
- 3118
+ 3111
395
527
- 3118
+ 3111
561
1339
- 3118
+ 3111
1375
57764
- 2869
+ 2862
@@ -4395,67 +4276,67 @@
1
5
- 3742
+ 3733
5
9
- 3118
+ 3111
9
15
- 3243
+ 3235
15
20
- 3243
+ 3235
20
28
- 3243
+ 3235
28
36
- 3243
+ 3235
36
42
- 3118
+ 3111
42
53
- 3368
+ 3360
53
62
- 3243
+ 3235
62
81
- 3118
+ 3111
81
95
- 3118
+ 3111
95
111
- 3118
+ 3111
112
156
- 1995
+ 1991
@@ -4471,67 +4352,67 @@
1
13
- 3368
+ 3360
13
31
- 3368
+ 3360
31
46
- 3118
+ 3111
46
63
- 3118
+ 3111
63
84
- 3118
+ 3111
84
114
- 3118
+ 3111
118
160
- 3243
+ 3235
160
206
- 3118
+ 3111
207
291
- 3118
+ 3111
300
390
- 3118
+ 3111
395
562
- 3118
+ 3111
564
1350
- 3118
+ 3111
1420
57764
- 2869
+ 2862
@@ -4547,67 +4428,67 @@
1
12
- 3368
+ 3360
13
26
- 3492
+ 3484
26
34
- 3243
+ 3235
34
42
- 3243
+ 3235
42
50
- 3243
+ 3235
50
61
- 3118
+ 3111
61
67
- 3243
+ 3235
67
76
- 3492
+ 3484
76
88
- 3243
+ 3235
89
102
- 3118
+ 3111
102
116
- 3492
+ 3484
116
133
- 3118
+ 3111
136
363
- 1496
+ 1493
@@ -4623,32 +4504,32 @@
1
2
- 4957324
+ 4945830
2
3
- 779045
+ 778673
3
4
- 543897
+ 542719
4
12
- 570343
+ 566862
12
- 97
- 563357
+ 96
+ 561386
- 97
- 637
- 86449
+ 96
+ 638
+ 87736
@@ -4664,27 +4545,27 @@
1
2
- 5019323
+ 5008054
2
3
- 1221273
+ 1216856
3
6
- 639952
+ 638669
6
- 57
- 563233
+ 56
+ 562133
- 57
+ 56
329
- 56635
+ 57495
@@ -4700,27 +4581,27 @@
1
2
- 5641187
+ 5629550
2
3
- 483145
+ 483108
3
7
- 582069
+ 577316
7
25
- 565229
+ 564995
25
94
- 228786
+ 228238
@@ -4736,12 +4617,12 @@
1
2
- 7034363
+ 7018145
2
85
- 466055
+ 465063
@@ -4757,32 +4638,32 @@
1
2
- 5026309
+ 5014276
2
3
- 739375
+ 741090
3
4
- 539780
+ 535377
4
12
- 586935
+ 584783
12
- 72
- 564106
+ 71
+ 561760
- 72
+ 71
250
- 43910
+ 45921
@@ -4798,67 +4679,67 @@
1
2
- 1746
+ 1742
2
6
- 1995
+ 1991
6
12
- 1871
+ 1866
12
40
- 1746
+ 1742
49
128
- 1746
+ 1742
129
253
- 1746
+ 1742
316
707
- 1746
+ 1742
791
1267
- 1746
+ 1742
- 1281
+ 1280
1943
- 1746
+ 1742
- 2017
- 2398
- 1746
+ 2016
+ 2400
+ 1742
- 2493
+ 2483
3212
- 1746
+ 1742
- 3260
- 7915
- 1746
+ 3264
+ 8088
+ 1742
11053
- 121029
- 623
+ 121030
+ 622
@@ -4874,67 +4755,67 @@
1
2
- 1995
+ 1991
2
4
- 1746
+ 1742
4
7
- 1746
+ 1742
7
18
- 1871
+ 1866
19
43
- 1746
+ 1742
44
60
- 1746
+ 1742
66
93
- 1746
+ 1742
96
117
- 1746
+ 1742
117
150
- 1746
+ 1742
150
169
- 1746
+ 1742
169
181
- 1746
+ 1742
182
217
- 1871
+ 1866
243
329
- 498
+ 497
@@ -4950,67 +4831,67 @@
1
2
- 1871
+ 1866
2
5
- 1871
+ 1866
5
11
- 1746
+ 1742
11
36
- 1746
+ 1742
36
101
- 1746
+ 1742
108
- 217
- 1746
+ 218
+ 1742
- 225
+ 226
543
- 1746
+ 1742
- 633
- 1059
- 1746
+ 634
+ 1057
+ 1742
- 1071
- 1410
- 1746
+ 1074
+ 1407
+ 1742
- 1414
- 1610
- 1746
+ 1408
+ 1603
+ 1742
- 1613
- 1807
- 1746
+ 1611
+ 1810
+ 1742
- 1834
- 3791
- 1746
+ 1835
+ 3794
+ 1742
- 3837
- 59554
- 748
+ 3838
+ 59550
+ 746
@@ -5026,67 +4907,67 @@
1
2
- 1871
+ 1866
2
5
- 1871
+ 1866
5
11
- 1746
+ 1742
11
36
- 1746
+ 1742
36
102
- 1746
+ 1742
109
- 218
- 1746
+ 219
+ 1742
- 224
+ 225
545
- 1746
+ 1742
- 631
- 1057
- 1746
+ 632
+ 1056
+ 1742
- 1073
- 1407
- 1746
+ 1076
+ 1404
+ 1742
- 1423
- 1609
- 1746
+ 1417
+ 1602
+ 1742
- 1612
- 1805
- 1746
+ 1610
+ 1808
+ 1742
- 1835
- 3774
- 1746
+ 1836
+ 3771
+ 1742
- 3830
- 59562
- 748
+ 3831
+ 59557
+ 746
@@ -5102,67 +4983,67 @@
1
2
- 2120
+ 2115
2
5
- 1496
+ 1493
5
8
- 1621
+ 1617
8
13
- 1746
+ 1742
13
23
- 1995
+ 1991
23
33
- 1871
+ 1866
34
44
- 1746
+ 1742
45
57
- 1746
+ 1742
58
- 73
- 1496
+ 74
+ 1991
- 73
- 83
- 1746
+ 74
+ 86
+ 1866
- 83
- 92
- 1746
+ 86
+ 99
+ 1866
- 92
- 144
- 1746
+ 100
+ 259
+ 1742
- 147
+ 298
299
- 873
+ 124
@@ -5178,32 +5059,32 @@
1
2
- 4955203
+ 4943590
2
3
- 781540
+ 782034
3
4
- 544770
+ 541973
4
12
- 567848
+ 565493
12
95
- 563482
+ 562382
95
- 620
- 88695
+ 621
+ 88731
@@ -5219,27 +5100,27 @@
1
2
- 5016454
+ 5005067
2
3
- 1223768
+ 1220465
3
6
- 633340
+ 631078
6
- 52
- 564106
+ 51
+ 562009
- 52
+ 51
329
- 63870
+ 65584
@@ -5255,12 +5136,12 @@
1
2
- 7051453
+ 7035319
2
15
- 450087
+ 448885
@@ -5276,27 +5157,27 @@
1
2
- 5640314
+ 5628181
2
3
- 480525
+ 481615
3
7
- 587059
+ 581547
7
25
- 568846
+ 568356
25
89
- 224794
+ 224505
@@ -5312,32 +5193,32 @@
1
2
- 5024937
+ 5012783
2
3
- 743742
+ 746317
3
4
- 539531
+ 533759
4
12
- 587558
+ 586774
12
72
- 562734
+ 561635
72
250
- 43037
+ 42934
@@ -5353,52 +5234,52 @@
1
2
- 15718
+ 15680
2
3
- 5613
+ 5600
3
7
- 4241
+ 4231
7
17
- 4116
+ 4106
17
33
- 4116
+ 4106
33
106
- 4116
+ 4106
114
689
- 4116
+ 4106
- 721
- 2460
- 4116
+ 722
+ 2461
+ 4106
2595
- 4737
- 4116
+ 4749
+ 4106
4759
33780
- 3118
+ 3111
@@ -5414,52 +5295,52 @@
1
2
- 18587
+ 18542
2
3
- 5613
+ 5600
3
5
- 3617
+ 3609
5
7
- 3742
+ 3733
7
16
- 4366
+ 4231
16
- 80
- 4116
+ 75
+ 4106
- 81
- 152
- 4241
+ 79
+ 142
+ 4106
- 158
- 212
- 4241
+ 151
+ 208
+ 4106
- 212
- 265
- 4116
+ 210
+ 262
+ 4231
- 265
+ 262
329
- 748
+ 995
@@ -5475,52 +5356,52 @@
1
2
- 15967
+ 15929
2
3
- 5987
+ 5973
3
8
- 4241
+ 4231
8
18
- 4366
+ 4355
18
- 42
- 4116
+ 40
+ 4106
- 43
- 218
- 4116
+ 41
+ 217
+ 4106
- 234
+ 235
758
- 4116
+ 4106
- 767
- 2176
- 4116
+ 768
+ 2172
+ 4106
2206
- 2882
- 4116
+ 2884
+ 4106
- 2890
+ 2887
30763
- 2245
+ 2240
@@ -5536,52 +5417,52 @@
1
2
- 17215
+ 17173
2
3
- 6237
+ 6222
3
4
- 3243
+ 3235
4
7
- 4241
+ 4231
7
14
- 4241
+ 4231
14
28
- 4490
+ 4480
28
46
- 4116
+ 4106
46
70
- 4116
+ 4106
70
82
- 4241
+ 4231
82
117
- 1247
+ 1244
@@ -5597,52 +5478,52 @@
1
2
- 15967
+ 15929
2
3
- 5987
+ 5973
3
8
- 4241
+ 4231
8
18
- 4366
+ 4355
18
- 41
- 4116
+ 40
+ 4106
- 43
- 217
- 4116
+ 40
+ 216
+ 4106
- 232
+ 233
755
- 4116
+ 4106
- 768
- 2176
- 4116
+ 769
+ 2172
+ 4106
2206
2862
- 4116
+ 4106
- 2867
+ 2864
30757
- 2245
+ 2240
@@ -5652,15 +5533,15 @@
files
- 65204
+ 64949
id
- 65204
+ 64949
name
- 65204
+ 64949
@@ -5674,7 +5555,7 @@
1
2
- 65204
+ 64949
@@ -5690,7 +5571,7 @@
1
2
- 65204
+ 64949
@@ -5700,15 +5581,15 @@
folders
- 12388
+ 12339
id
- 12388
+ 12339
name
- 12388
+ 12339
@@ -5722,7 +5603,7 @@
1
2
- 12388
+ 12339
@@ -5738,7 +5619,7 @@
1
2
- 12388
+ 12339
@@ -5748,15 +5629,15 @@
containerparent
- 77571
+ 77268
parent
- 12388
+ 12339
child
- 77571
+ 77268
@@ -5770,42 +5651,42 @@
1
2
- 6030
+ 6006
2
3
- 1520
+ 1514
3
4
- 665
+ 662
4
6
- 1003
+ 999
6
10
- 971
+ 967
10
16
- 1003
+ 999
16
44
- 929
+ 925
44
151
- 264
+ 262
@@ -5821,7 +5702,7 @@
1
2
- 77571
+ 77268
@@ -5831,23 +5712,23 @@
numlines
- 807862
+ 805928
element_id
- 806739
+ 804808
num_lines
- 39420
+ 39325
num_code
- 34055
+ 33974
num_comment
- 18337
+ 18293
@@ -5861,12 +5742,12 @@
1
2
- 805616
+ 803688
2
3
- 1122
+ 1120
@@ -5882,12 +5763,12 @@
1
2
- 805616
+ 803688
2
3
- 1122
+ 1120
@@ -5903,12 +5784,12 @@
1
2
- 806489
+ 804559
2
3
- 249
+ 248
@@ -5924,27 +5805,27 @@
1
2
- 26695
+ 26631
2
3
- 3742
+ 3733
3
5
- 3368
+ 3360
5
35
- 2993
+ 2986
39
1983
- 2619
+ 2613
@@ -5960,27 +5841,27 @@
1
2
- 27194
+ 27129
2
3
- 4116
+ 4106
3
4
- 2494
+ 2488
4
7
- 3492
+ 3484
7
12
- 2120
+ 2115
@@ -5996,27 +5877,27 @@
1
2
- 26820
+ 26756
2
3
- 4116
+ 4106
3
4
- 2370
+ 2364
4
6
- 3243
+ 3235
6
10
- 2869
+ 2862
@@ -6032,32 +5913,32 @@
1
2
- 21830
+ 21778
2
3
- 3617
+ 3609
3
4
- 2370
+ 2364
4
13
- 2869
+ 2862
14
198
- 2619
+ 2613
204
2092
- 748
+ 746
@@ -6073,32 +5954,32 @@
1
2
- 22204
+ 22151
2
3
- 3617
+ 3609
3
4
- 2120
+ 2115
4
6
- 1871
+ 1866
6
9
- 2744
+ 2737
9
13
- 1496
+ 1493
@@ -6114,27 +5995,27 @@
1
2
- 21955
+ 21902
2
3
- 4241
+ 4231
3
5
- 2869
+ 2862
5
8
- 3118
+ 3111
8
12
- 1871
+ 1866
@@ -6150,32 +6031,32 @@
1
2
- 11351
+ 11324
2
3
- 1995
+ 1991
3
4
- 1122
+ 1120
4
7
- 1496
+ 1493
8
22
- 1496
+ 1493
42
3651
- 873
+ 871
@@ -6191,32 +6072,32 @@
1
2
- 11351
+ 11324
2
3
- 1995
+ 1991
3
4
- 1122
+ 1120
4
7
- 1621
+ 1617
8
27
- 1496
+ 1493
30
48
- 748
+ 746
@@ -6232,32 +6113,32 @@
1
2
- 11351
+ 11324
2
3
- 1995
+ 1991
3
4
- 1372
+ 1368
4
8
- 1496
+ 1493
8
31
- 1496
+ 1493
35
42
- 623
+ 622
@@ -6267,11 +6148,11 @@
diagnostics
- 359
+ 357
id
- 359
+ 357
severity
@@ -6287,11 +6168,11 @@
full_error_message
- 179
+ 178
location
- 179
+ 178
@@ -6305,7 +6186,7 @@
1
2
- 359
+ 357
@@ -6321,7 +6202,7 @@
1
2
- 359
+ 357
@@ -6337,7 +6218,7 @@
1
2
- 359
+ 357
@@ -6353,7 +6234,7 @@
1
2
- 359
+ 357
@@ -6369,7 +6250,7 @@
1
2
- 359
+ 357
@@ -6673,7 +6554,7 @@
1
2
- 116
+ 115
2
@@ -6694,7 +6575,7 @@
1
2
- 116
+ 115
2
@@ -6736,7 +6617,7 @@
1
2
- 179
+ 178
@@ -6752,7 +6633,7 @@
1
2
- 179
+ 178
@@ -6768,7 +6649,7 @@
1
2
- 179
+ 178
@@ -6784,7 +6665,7 @@
1
2
- 179
+ 178
@@ -6821,7 +6702,7 @@
1
2
- 179
+ 178
@@ -6837,7 +6718,7 @@
1
2
- 179
+ 178
@@ -6853,7 +6734,7 @@
1
2
- 179
+ 178
@@ -6869,7 +6750,7 @@
1
2
- 179
+ 178
@@ -6927,19 +6808,19 @@
pch_uses
- 4127
+ 4121
pch
- 162
+ 161
compilation
- 4127
+ 4121
id
- 4127
+ 4121
@@ -7135,7 +7016,7 @@
1
2
- 4127
+ 4121
@@ -7151,7 +7032,7 @@
1
2
- 4127
+ 4121
@@ -7167,7 +7048,7 @@
1
2
- 4127
+ 4121
@@ -7183,7 +7064,7 @@
1
2
- 4127
+ 4121
@@ -7193,19 +7074,19 @@
pch_creations
- 249
+ 248
pch
- 249
+ 248
compilation
- 249
+ 248
from
- 249
+ 248
@@ -7219,7 +7100,7 @@
1
2
- 249
+ 248
@@ -7235,7 +7116,7 @@
1
2
- 249
+ 248
@@ -7251,7 +7132,7 @@
1
2
- 249
+ 248
@@ -7267,7 +7148,7 @@
1
2
- 249
+ 248
@@ -7283,7 +7164,7 @@
1
2
- 249
+ 248
@@ -7299,7 +7180,7 @@
1
2
- 249
+ 248
@@ -7309,11 +7190,11 @@
fileannotations
- 4200019
+ 4183618
id
- 5766
+ 5743
kind
@@ -7321,11 +7202,11 @@
name
- 58709
+ 58480
value
- 39509
+ 39354
@@ -7339,12 +7220,12 @@
1
2
- 200
+ 199
2
3
- 5565
+ 5543
@@ -7360,62 +7241,62 @@
1
86
- 433
+ 431
88
206
- 433
+ 431
212
291
- 443
+ 441
291
359
- 433
+ 431
362
401
- 433
+ 431
402
479
- 433
+ 431
480
549
- 253
+ 252
550
551
- 1330
+ 1325
553
628
- 433
+ 431
631
753
- 454
+ 452
753
1231
- 443
+ 441
1234
2155
- 242
+ 241
@@ -7431,32 +7312,32 @@
1
98
- 433
+ 431
102
244
- 433
+ 431
244
351
- 433
+ 431
352
434
- 443
+ 441
434
490
- 443
+ 441
490
628
- 433
+ 431
632
@@ -7466,27 +7347,27 @@
706
707
- 1330
+ 1325
710
939
- 433
+ 431
939
1038
- 433
+ 431
1066
1853
- 433
+ 431
1853
3292
- 433
+ 431
3423
@@ -7570,62 +7451,62 @@
1
2
- 11025
+ 10982
2
3
- 4361
+ 4344
3
5
- 5058
+ 5039
5
7
- 4097
+ 4081
7
9
- 4594
+ 4576
9
16
- 4330
+ 4313
16
19
- 4889
+ 4870
19
27
- 4256
+ 4239
27
47
- 4837
+ 4818
47
128
- 4921
+ 4902
128
459
- 4625
+ 4607
459
546
- 1710
+ 1704
@@ -7641,7 +7522,7 @@
1
2
- 58709
+ 58480
@@ -7657,57 +7538,57 @@
1
2
- 11585
+ 11540
2
3
- 7688
+ 7658
3
4
- 4097
+ 4081
4
6
- 4066
+ 4050
6
8
- 3421
+ 3408
8
11
- 4741
+ 4723
11
17
- 5396
+ 5375
17
23
- 4699
+ 4681
23
41
- 4678
+ 4660
41
95
- 4467
+ 4449
95
1726
- 3865
+ 3850
@@ -7723,72 +7604,72 @@
1
2
- 3358
+ 3345
2
4
- 1636
+ 1630
4
5
- 3189
+ 3177
5
8
- 2460
+ 2451
8
14
- 2967
+ 2956
14
17
- 1932
+ 1925
17
24
- 3041
+ 3029
24
51
- 3537
+ 3524
51
58
- 3031
+ 3019
58
80
- 2978
+ 2966
81
151
- 3083
+ 3071
151
334
- 2978
+ 2966
334
473
- 2999
+ 2987
473
547
- 2312
+ 2303
@@ -7804,7 +7685,7 @@
1
2
- 39498
+ 39344
2
@@ -7825,72 +7706,72 @@
1
2
- 3400
+ 3387
2
4
- 1911
+ 1904
4
5
- 3052
+ 3040
5
8
- 2481
+ 2472
8
14
- 3485
+ 3471
14
18
- 3453
+ 3440
18
28
- 3200
+ 3187
28
34
- 3147
+ 3134
34
41
- 3200
+ 3187
41
66
- 2988
+ 2977
66
92
- 3073
+ 3061
92
113
- 2988
+ 2977
113
145
- 3031
+ 3019
145
172
- 95
+ 94
@@ -7900,15 +7781,15 @@
inmacroexpansion
- 149997296
+ 150011383
id
- 24671176
+ 24673494
inv
- 3705372
+ 3705720
@@ -7922,37 +7803,37 @@
1
3
- 2209512
+ 2209721
3
5
- 1474990
+ 1475128
5
6
- 1620382
+ 1620535
6
7
- 6582599
+ 6583218
7
8
- 8719073
+ 8719891
8
9
- 3557078
+ 3557412
9
22
- 507539
+ 507586
@@ -7968,32 +7849,32 @@
1
2
- 531711
+ 531761
2
3
- 743239
+ 743308
3
4
- 481516
+ 481561
4
7
- 275305
+ 275331
7
8
- 282155
+ 282181
8
9
- 330249
+ 330280
9
@@ -8003,22 +7884,22 @@
10
11
- 444654
+ 444695
11
337
- 307801
+ 307829
339
423
- 281757
+ 281784
423
7616
- 23935
+ 23937
@@ -8028,15 +7909,15 @@
affectedbymacroexpansion
- 48736245
+ 48740821
id
- 7044800
+ 7045462
inv
- 3803153
+ 3803510
@@ -8050,37 +7931,37 @@
1
2
- 3846743
+ 3847104
2
3
- 766311
+ 766383
3
4
- 361844
+ 361878
4
5
- 772743
+ 772815
5
12
- 535164
+ 535215
12
50
- 556272
+ 556324
50
9900
- 205721
+ 205740
@@ -8096,67 +7977,67 @@
1
4
- 313251
+ 313280
4
7
- 316610
+ 316639
7
9
- 301090
+ 301118
9
12
- 342941
+ 342973
12
13
- 456008
+ 456051
13
14
- 226101
+ 226122
14
15
- 408042
+ 408080
15
16
- 166430
+ 166446
16
17
- 377681
+ 377716
17
18
- 200638
+ 200657
18
20
- 344258
+ 344290
20
25
- 285395
+ 285422
25
207
- 64702
+ 64709
@@ -8166,19 +8047,19 @@
macroinvocations
- 40354061
+ 40387480
id
- 40354061
+ 40387480
macro_id
- 182487
+ 182555
location
- 5919829
+ 5925540
kind
@@ -8196,7 +8077,7 @@
1
2
- 40354061
+ 40387480
@@ -8212,7 +8093,7 @@
1
2
- 40354061
+ 40387480
@@ -8228,7 +8109,7 @@
1
2
- 40354061
+ 40387480
@@ -8244,17 +8125,17 @@
1
2
- 61156
+ 61106
2
3
- 27610
+ 27666
3
4
- 17971
+ 17972
4
@@ -8264,27 +8145,27 @@
5
7
- 13777
+ 13833
7
13
- 14703
+ 14704
13
33
- 13777
+ 13724
33
182
- 13723
+ 13724
185
- 72152
- 9747
+ 72208
+ 9803
@@ -8300,42 +8181,42 @@
1
2
- 77656
+ 77607
2
3
- 30605
+ 30661
3
4
- 14322
+ 14377
4
5
- 10292
+ 10293
5
8
- 14104
+ 14051
8
18
- 14213
+ 14214
18
90
- 13723
+ 13778
90
- 12187
- 7569
+ 12205
+ 7570
@@ -8351,12 +8232,12 @@
1
2
- 177859
+ 178035
2
3
- 4628
+ 4520
@@ -8372,17 +8253,17 @@
1
2
- 5256860
+ 5261598
2
4
- 428528
+ 429484
4
- 72152
- 234440
+ 72208
+ 234457
@@ -8398,12 +8279,12 @@
1
2
- 5897665
+ 5903374
2
37
- 22164
+ 22165
@@ -8419,7 +8300,7 @@
1
2
- 5919829
+ 5925540
@@ -8433,13 +8314,13 @@
12
- 1499
- 1500
+ 1494
+ 1495
54
- 739517
- 739518
+ 740082
+ 740083
54
@@ -8454,13 +8335,13 @@
12
- 291
- 292
+ 289
+ 290
54
- 3145
- 3146
+ 3146
+ 3147
54
@@ -8475,13 +8356,13 @@
12
- 1078
- 1079
+ 1076
+ 1077
54
- 107627
- 107628
+ 107726
+ 107727
54
@@ -8492,15 +8373,15 @@
macroparent
- 33658318
+ 33684444
id
- 33658318
+ 33684444
parent_id
- 15929108
+ 15941262
@@ -8514,7 +8395,7 @@
1
2
- 33658318
+ 33684444
@@ -8530,27 +8411,27 @@
1
2
- 7809240
+ 7815088
2
3
- 1595503
+ 1595836
3
4
- 4703025
+ 4707395
4
5
- 1295331
+ 1296896
5
205
- 526007
+ 526045
@@ -8560,15 +8441,15 @@
macrolocationbind
- 6033959
+ 6022278
id
- 4217710
+ 4208237
location
- 2276069
+ 2272394
@@ -8582,27 +8463,27 @@
1
2
- 3292783
+ 3284816
2
3
- 490566
+ 489028
3
4
- 7885
+ 8602
4
5
- 413303
+ 412639
5
17
- 13170
+ 13149
@@ -8618,27 +8499,27 @@
1
2
- 1335114
+ 1332220
2
3
- 481456
+ 481413
3
4
- 7799
+ 7786
4
5
- 427613
+ 426926
5
522
- 24085
+ 24047
@@ -8648,19 +8529,19 @@
macro_argument_unexpanded
- 82486758
+ 82172786
invocation
- 26280952
+ 26182328
argument_index
- 697
+ 694
text
- 343226
+ 341886
@@ -8674,22 +8555,22 @@
1
2
- 9680186
+ 9642934
2
3
- 9769396
+ 9734025
3
4
- 5001631
+ 4982774
4
67
- 1829739
+ 1822594
@@ -8705,22 +8586,22 @@
1
2
- 9862798
+ 9824833
2
3
- 9786938
+ 9751541
3
4
- 4844988
+ 4826700
4
67
- 1786227
+ 1779252
@@ -8736,7 +8617,7 @@
46457
46458
- 612
+ 610
46659
@@ -8744,8 +8625,8 @@
52
- 646840
- 2488458
+ 646904
+ 2488838
31
@@ -8762,7 +8643,7 @@
2
3
- 612
+ 610
13
@@ -8788,57 +8669,57 @@
1
2
- 39699
+ 39544
2
3
- 62321
+ 62077
3
4
- 21027
+ 20934
4
5
- 34577
+ 34442
5
6
- 39245
+ 39091
6
9
- 30870
+ 30749
9
15
- 28979
+ 28877
15
26
- 25885
+ 25773
26
57
- 27142
+ 27025
57
517
- 25990
+ 25910
518
- 486610
- 7487
+ 486643
+ 7458
@@ -8854,17 +8735,17 @@
1
2
- 243149
+ 242199
2
3
- 89864
+ 89513
3
9
- 10212
+ 10172
@@ -8874,19 +8755,19 @@
macro_argument_expanded
- 82486758
+ 82172786
invocation
- 26280952
+ 26182328
argument_index
- 697
+ 694
text
- 207906
+ 207063
@@ -8900,22 +8781,22 @@
1
2
- 9680186
+ 9642934
2
3
- 9769396
+ 9734025
3
4
- 5001631
+ 4982774
4
67
- 1829739
+ 1822594
@@ -8931,22 +8812,22 @@
1
2
- 12638489
+ 12590853
2
3
- 8427402
+ 8396588
3
4
- 4224795
+ 4208487
4
9
- 990265
+ 986398
@@ -8962,7 +8843,7 @@
46457
46458
- 612
+ 610
46659
@@ -8970,8 +8851,8 @@
52
- 646840
- 2488458
+ 646904
+ 2488838
31
@@ -8988,7 +8869,7 @@
1
2
- 601
+ 599
2
@@ -8997,7 +8878,7 @@
950
- 16176
+ 16173
42
@@ -9014,57 +8895,57 @@
1
2
- 21829
+ 21744
2
3
- 26856
+ 26752
3
4
- 43490
+ 43299
4
5
- 15905
+ 15842
5
6
- 3263
+ 3250
6
7
- 18397
+ 18325
7
10
- 18967
+ 18883
10
19
- 18323
+ 18252
19
51
- 15778
+ 15695
51
- 252
- 15598
+ 251
+ 15548
- 252
- 1169361
- 9494
+ 251
+ 1169569
+ 9467
@@ -9080,17 +8961,17 @@
1
2
- 105072
+ 104630
2
3
- 88903
+ 88556
3
66
- 13930
+ 13875
@@ -9100,19 +8981,19 @@
functions
- 4049290
+ 4043205
id
- 4049290
+ 4043205
name
- 1693316
+ 1689263
kind
- 873
+ 871
@@ -9126,7 +9007,7 @@
1
2
- 4049290
+ 4043205
@@ -9142,7 +9023,7 @@
1
2
- 4049290
+ 4043205
@@ -9158,17 +9039,17 @@
1
2
- 1447190
+ 1441361
2
4
- 138968
+ 140377
4
3162
- 107157
+ 107523
@@ -9184,12 +9065,12 @@
1
2
- 1690447
+ 1686400
2
3
- 2869
+ 2862
@@ -9223,8 +9104,8 @@
124
- 4453
- 4454
+ 4456
+ 4457
124
@@ -9233,8 +9114,8 @@
124
- 21948
- 21949
+ 21974
+ 21975
124
@@ -9291,26 +9172,26 @@
builtin_functions
- 30923
+ 30802
id
- 30923
+ 30802
function_entry_point
- 1141776
+ 1134682
id
- 1138028
+ 1130959
entry_point
- 1141776
+ 1134682
@@ -9324,12 +9205,12 @@
1
2
- 1134826
+ 1127777
2
17
- 3202
+ 3181
@@ -9345,7 +9226,7 @@
1
2
- 1141776
+ 1134682
@@ -9355,15 +9236,15 @@
function_return_type
- 4066754
+ 4060504
id
- 4049290
+ 4043205
return_type
- 619244
+ 617762
@@ -9377,12 +9258,12 @@
1
2
- 4031825
+ 4025907
2
3
- 17464
+ 17298
@@ -9398,27 +9279,27 @@
1
2
- 309871
+ 309005
2
3
- 213691
+ 213180
3
5
- 48027
+ 48037
5
365
- 46530
+ 46419
432
- 9944
- 1122
+ 9958
+ 1120
@@ -9698,59 +9579,59 @@
purefunctions
- 131626
+ 131546
id
- 131626
+ 131546
function_deleted
- 87963
+ 87800
id
- 87963
+ 87800
function_defaulted
- 51609
+ 51526
id
- 51609
+ 51526
function_prototyped
- 4047793
+ 4041712
id
- 4047793
+ 4041712
deduction_guide_for_class
- 5863
+ 5849
id
- 5863
+ 5849
class_template
- 2245
+ 2240
@@ -9764,7 +9645,7 @@
1
2
- 5863
+ 5849
@@ -9780,12 +9661,12 @@
1
2
- 1122
+ 1120
2
3
- 374
+ 373
3
@@ -9795,7 +9676,7 @@
4
5
- 249
+ 248
5
@@ -9805,7 +9686,7 @@
8
9
- 249
+ 248
@@ -9815,15 +9696,15 @@
member_function_this_type
- 674133
+ 672519
id
- 674133
+ 672519
this_type
- 176018
+ 175596
@@ -9837,7 +9718,7 @@
1
2
- 674133
+ 672519
@@ -9853,37 +9734,37 @@
1
2
- 47154
+ 47041
2
3
- 36925
+ 36836
3
4
- 32683
+ 32605
4
5
- 20084
+ 20036
5
6
- 12848
+ 12818
6
10
- 14470
+ 14436
10
65
- 11850
+ 11822
@@ -9893,27 +9774,27 @@
fun_decls
- 4208841
+ 4199388
id
- 4202854
+ 4193414
function
- 4024715
+ 4018689
type_id
- 611260
+ 609797
name
- 1691819
+ 1687769
location
- 2813171
+ 2806436
@@ -9927,7 +9808,7 @@
1
2
- 4202854
+ 4193414
@@ -9943,12 +9824,12 @@
1
2
- 4196866
+ 4187441
2
3
- 5987
+ 5973
@@ -9964,7 +9845,7 @@
1
2
- 4202854
+ 4193414
@@ -9980,7 +9861,7 @@
1
2
- 4202854
+ 4193414
@@ -9996,12 +9877,12 @@
1
2
- 3861171
+ 3858524
2
5
- 163543
+ 160165
@@ -10017,12 +9898,12 @@
1
2
- 4006252
+ 4000395
2
3
- 18462
+ 18293
@@ -10038,7 +9919,7 @@
1
2
- 4024715
+ 4018689
@@ -10054,12 +9935,12 @@
1
2
- 3881630
+ 3878435
2
4
- 143084
+ 140253
@@ -10075,27 +9956,27 @@
1
2
- 295151
+ 294445
2
3
- 220552
+ 220024
3
5
- 48401
+ 48285
5
364
- 45906
+ 45797
364
- 10292
- 1247
+ 10294
+ 1244
@@ -10111,27 +9992,27 @@
1
2
- 305256
+ 304400
2
3
- 211820
+ 211313
3
5
- 48027
+ 48037
5
1163
- 45906
+ 45797
- 1483
- 9893
- 249
+ 1485
+ 9907
+ 248
@@ -10147,22 +10028,22 @@
1
2
- 491503
+ 490326
2
3
- 52892
+ 52766
3
7
- 50148
+ 50028
7
2238
- 16716
+ 16676
@@ -10178,22 +10059,22 @@
1
2
- 454952
+ 453863
2
3
- 69484
+ 69317
3
6
- 56011
+ 55877
6
4756
- 30812
+ 30738
@@ -10209,22 +10090,22 @@
1
2
- 1331300
+ 1328362
2
3
- 194480
+ 193392
3
11
- 129487
+ 129550
11
3169
- 36550
+ 36463
@@ -10240,17 +10121,17 @@
1
2
- 1446691
+ 1440864
2
4
- 139467
+ 140875
4
3162
- 105660
+ 106030
@@ -10266,12 +10147,12 @@
1
2
- 1602002
+ 1598166
2
1596
- 89817
+ 89602
@@ -10287,17 +10168,17 @@
1
2
- 1367228
+ 1363955
2
3
- 208327
+ 207828
3
1592
- 116264
+ 115985
@@ -10313,17 +10194,17 @@
1
2
- 2420218
+ 2413304
2
3
- 251490
+ 252008
3
211
- 141463
+ 141124
@@ -10339,17 +10220,17 @@
1
2
- 2438930
+ 2431971
2
3
- 233277
+ 233838
3
211
- 140964
+ 140626
@@ -10365,12 +10246,12 @@
1
2
- 2698778
+ 2692317
2
211
- 114393
+ 114119
@@ -10386,12 +10267,12 @@
1
2
- 2774000
+ 2767360
2
8
- 39170
+ 39076
@@ -10401,22 +10282,22 @@
fun_def
- 1422241
+ 1418836
id
- 1422241
+ 1418836
fun_specialized
- 7922
+ 7911
id
- 7922
+ 7911
@@ -10434,15 +10315,15 @@
fun_decl_specifiers
- 4279573
+ 4269577
id
- 1748205
+ 1744269
name
- 1372
+ 1368
@@ -10456,22 +10337,22 @@
1
2
- 362889
+ 362269
2
3
- 262218
+ 261590
3
4
- 1100144
+ 1097510
4
5
- 22953
+ 22898
@@ -10515,8 +10396,8 @@
124
- 1032
- 1033
+ 1034
+ 1035
124
@@ -10668,26 +10549,26 @@
fun_decl_empty_throws
- 421168
+ 420764
fun_decl
- 421168
+ 420764
fun_decl_noexcept
- 141823
+ 140908
fun_decl
- 141823
+ 140908
constant
- 141346
+ 140468
@@ -10701,7 +10582,7 @@
1
2
- 141823
+ 140908
@@ -10717,12 +10598,12 @@
1
2
- 140903
+ 140028
2
- 4
- 442
+ 3
+ 440
@@ -10732,26 +10613,26 @@
fun_decl_empty_noexcept
- 1163640
+ 1160855
fun_decl
- 1163640
+ 1160855
fun_decl_typedef_type
- 2760
+ 2755
fun_decl
- 2760
+ 2755
typedeftype_id
- 124
+ 123
@@ -10765,7 +10646,7 @@
1
2
- 2760
+ 2755
@@ -10781,57 +10662,57 @@
1
2
- 40
+ 39
2
3
- 12
+ 11
3
4
- 12
+ 11
5
13
- 8
+ 7
16
17
- 12
+ 11
17
18
- 4
+ 3
21
22
- 8
+ 7
25
43
- 8
+ 7
46
55
- 8
+ 7
89
128
- 8
+ 7
158
159
- 4
+ 3
@@ -10841,11 +10722,11 @@
fun_requires
- 29070
+ 29023
id
- 10098
+ 10082
kind
@@ -10853,7 +10734,7 @@
constraint
- 28834
+ 28787
@@ -10867,7 +10748,7 @@
1
2
- 10033
+ 10017
2
@@ -10888,27 +10769,27 @@
1
2
- 7262
+ 7250
2
3
- 494
+ 493
3
6
- 859
+ 858
6
13
- 322
+ 321
13
14
- 1138
+ 1136
19
@@ -10971,12 +10852,12 @@
1
2
- 28597
+ 28551
2
3
- 236
+ 235
@@ -10992,7 +10873,7 @@
1
2
- 28834
+ 28787
@@ -11002,19 +10883,19 @@
param_decl_bind
- 7310179
+ 7294670
id
- 7310179
+ 7294670
index
- 7983
+ 7964
fun_decl
- 3531589
+ 3524006
@@ -11028,7 +10909,7 @@
1
2
- 7310179
+ 7294670
@@ -11044,7 +10925,7 @@
1
2
- 7310179
+ 7294670
@@ -11060,31 +10941,31 @@
2
3
- 3991
+ 3982
6
7
- 1995
+ 1991
16
20
- 623
+ 622
25
147
- 623
+ 622
343
- 16215
- 623
+ 16218
+ 622
- 28310
- 28311
+ 28317
+ 28318
124
@@ -11101,31 +10982,31 @@
2
3
- 3991
+ 3982
6
7
- 1995
+ 1991
16
20
- 623
+ 622
25
147
- 623
+ 622
343
- 16215
- 623
+ 16218
+ 622
- 28310
- 28311
+ 28317
+ 28318
124
@@ -11142,27 +11023,27 @@
1
2
- 1508940
+ 1505826
2
3
- 976270
+ 973933
3
4
- 602029
+ 600712
4
5
- 290660
+ 290089
5
65
- 153688
+ 153444
@@ -11178,27 +11059,27 @@
1
2
- 1508940
+ 1505826
2
3
- 976270
+ 973933
3
4
- 602029
+ 600712
4
5
- 290660
+ 290089
5
65
- 153688
+ 153444
@@ -11208,27 +11089,27 @@
var_decls
- 9389962
+ 9374452
id
- 9383101
+ 9367981
variable
- 9034682
+ 9027366
type_id
- 1456422
+ 1452935
name
- 852521
+ 850480
location
- 6274404
+ 6259508
@@ -11242,7 +11123,7 @@
1
2
- 9383101
+ 9367981
@@ -11258,12 +11139,12 @@
1
2
- 9376240
+ 9361510
2
3
- 6861
+ 6471
@@ -11279,7 +11160,7 @@
1
2
- 9383101
+ 9367981
@@ -11295,7 +11176,7 @@
1
2
- 9383101
+ 9367981
@@ -11311,12 +11192,12 @@
1
2
- 8703728
+ 8704173
2
5
- 330954
+ 323192
@@ -11332,12 +11213,12 @@
1
2
- 8981166
+ 8974351
2
3
- 53516
+ 53015
@@ -11353,12 +11234,12 @@
1
2
- 8929271
+ 8922207
2
4
- 105411
+ 105158
@@ -11374,12 +11255,12 @@
1
2
- 8783068
+ 8783073
2
4
- 251614
+ 244292
@@ -11395,27 +11276,27 @@
1
2
- 849901
+ 847867
2
3
- 284049
+ 283244
3
5
- 127366
+ 127186
5
11
- 113145
+ 112874
11
- 2944
- 81958
+ 2949
+ 81762
@@ -11431,27 +11312,27 @@
1
2
- 870734
+ 868525
2
3
- 269079
+ 268435
3
5
- 122751
+ 122581
5
11
- 113020
+ 112501
11
- 2860
- 80836
+ 2872
+ 80891
@@ -11467,22 +11348,22 @@
1
2
- 1119480
+ 1116800
2
3
- 192609
+ 192148
3
7
- 115266
+ 114990
7
1038
- 29066
+ 28996
@@ -11498,27 +11379,27 @@
1
2
- 985377
+ 983018
2
3
- 219055
+ 218531
3
6
- 133604
+ 133284
6
95
- 109278
+ 109016
97
2622
- 9106
+ 9084
@@ -11534,32 +11415,32 @@
1
2
- 465930
+ 464690
2
3
- 165788
+ 164894
3
4
- 59629
+ 59361
4
7
- 65866
+ 66206
7
25
- 64120
+ 64090
25
- 27139
- 31186
+ 27137
+ 31236
@@ -11575,32 +11456,32 @@
1
2
- 478904
+ 475766
2
3
- 165040
+ 164894
3
4
- 54639
+ 55130
4
8
- 71604
+ 72180
8
- 45
- 64244
+ 44
+ 63842
- 45
+ 44
26704
- 18088
+ 18667
@@ -11616,22 +11497,22 @@
1
2
- 654672
+ 653105
2
3
- 110775
+ 110510
3
11
- 65492
+ 65335
11
3463
- 21581
+ 21529
@@ -11647,27 +11528,27 @@
1
2
- 493748
+ 492442
2
3
- 183253
+ 182939
3
4
- 51645
+ 51521
4
8
- 64993
+ 64837
8
22619
- 58880
+ 58739
@@ -11683,17 +11564,17 @@
1
2
- 5774667
+ 5758603
2
- 21
- 472292
+ 20
+ 470788
- 21
- 2943
- 27444
+ 20
+ 2941
+ 30116
@@ -11709,12 +11590,12 @@
1
2
- 5855503
+ 5839245
2
2935
- 418900
+ 420262
@@ -11730,12 +11611,12 @@
1
2
- 5975884
+ 5961703
2
2555
- 298519
+ 297805
@@ -11751,12 +11632,12 @@
1
2
- 6262054
+ 6247187
2
5
- 12349
+ 12320
@@ -11766,37 +11647,37 @@
var_def
- 3766862
+ 3763196
id
- 3766862
+ 3763196
var_specialized
- 644
+ 643
id
- 644
+ 643
var_decl_specifiers
- 489881
+ 488709
id
- 489881
+ 488709
name
- 498
+ 497
@@ -11810,7 +11691,7 @@
1
2
- 489881
+ 488709
@@ -11851,11 +11732,11 @@
is_structured_binding
- 945
+ 943
id
- 945
+ 943
@@ -11920,19 +11801,19 @@
type_decls
- 1633438
+ 1629528
id
- 1633438
+ 1629528
type_id
- 1614476
+ 1610611
location
- 1547362
+ 1543658
@@ -11946,7 +11827,7 @@
1
2
- 1633438
+ 1629528
@@ -11962,7 +11843,7 @@
1
2
- 1633438
+ 1629528
@@ -11978,12 +11859,12 @@
1
2
- 1598134
+ 1594309
2
10
- 16341
+ 16302
@@ -11999,12 +11880,12 @@
1
2
- 1598259
+ 1594433
2
10
- 16217
+ 16178
@@ -12020,12 +11901,12 @@
1
2
- 1525282
+ 1521631
2
64
- 22080
+ 22027
@@ -12041,12 +11922,12 @@
1
2
- 1525407
+ 1521755
2
64
- 21955
+ 21902
@@ -12056,37 +11937,37 @@
type_def
- 1095528
+ 1092906
id
- 1095528
+ 1092906
type_decl_top
- 675276
+ 675760
type_decl
- 675276
+ 675760
type_requires
- 7670
+ 7658
id
- 2041
+ 2037
constraint
- 7648
+ 7636
@@ -12100,7 +11981,7 @@
1
2
- 1009
+ 1008
2
@@ -12110,7 +11991,7 @@
5
6
- 601
+ 600
6
@@ -12136,7 +12017,7 @@
1
2
- 7627
+ 7615
2
@@ -12151,23 +12032,23 @@
namespace_decls
- 407918
+ 407977
id
- 407918
+ 407977
namespace_id
- 1840
+ 1838
location
- 407918
+ 407977
bodylocation
- 407918
+ 407977
@@ -12181,7 +12062,7 @@
1
2
- 407918
+ 407977
@@ -12197,7 +12078,7 @@
1
2
- 407918
+ 407977
@@ -12213,7 +12094,7 @@
1
2
- 407918
+ 407977
@@ -12229,7 +12110,7 @@
1
2
- 389
+ 388
2
@@ -12244,7 +12125,7 @@
6
15
- 154
+ 153
15
@@ -12264,22 +12145,22 @@
86
144
- 162
+ 153
- 151
- 264
+ 153
+ 232
145
- 270
- 1870
+ 263
+ 1509
145
- 2205
- 12488
- 32
+ 1882
+ 12507
+ 40
@@ -12295,7 +12176,7 @@
1
2
- 389
+ 388
2
@@ -12310,7 +12191,7 @@
6
15
- 154
+ 153
15
@@ -12330,22 +12211,22 @@
86
144
- 162
+ 153
- 151
- 264
+ 153
+ 232
145
- 270
- 1870
+ 263
+ 1509
145
- 2205
- 12488
- 32
+ 1882
+ 12507
+ 40
@@ -12361,7 +12242,7 @@
1
2
- 389
+ 388
2
@@ -12376,7 +12257,7 @@
6
15
- 154
+ 153
15
@@ -12396,22 +12277,22 @@
86
144
- 162
+ 153
- 151
- 264
+ 153
+ 232
145
- 270
- 1870
+ 263
+ 1509
145
- 2205
- 12488
- 32
+ 1882
+ 12507
+ 40
@@ -12427,7 +12308,7 @@
1
2
- 407918
+ 407977
@@ -12443,7 +12324,7 @@
1
2
- 407918
+ 407977
@@ -12459,7 +12340,7 @@
1
2
- 407918
+ 407977
@@ -12475,7 +12356,7 @@
1
2
- 407918
+ 407977
@@ -12491,7 +12372,7 @@
1
2
- 407918
+ 407977
@@ -12507,7 +12388,7 @@
1
2
- 407918
+ 407977
@@ -12517,19 +12398,19 @@
usings
- 272192
+ 271118
id
- 272192
+ 271118
element_id
- 59184
+ 58943
location
- 26846
+ 26741
kind
@@ -12547,7 +12428,7 @@
1
2
- 272192
+ 271118
@@ -12563,7 +12444,7 @@
1
2
- 272192
+ 271118
@@ -12579,7 +12460,7 @@
1
2
- 272192
+ 271118
@@ -12595,17 +12476,17 @@
1
2
- 51453
+ 51242
2
5
- 5386
+ 5365
5
134
- 2344
+ 2335
@@ -12621,17 +12502,17 @@
1
2
- 51453
+ 51242
2
5
- 5386
+ 5365
5
134
- 2344
+ 2335
@@ -12647,7 +12528,7 @@
1
2
- 59184
+ 58943
@@ -12663,22 +12544,22 @@
1
2
- 21175
+ 21092
2
4
- 2291
+ 2293
4
132
- 1953
+ 1935
145
371
- 1425
+ 1420
@@ -12694,22 +12575,22 @@
1
2
- 21175
+ 21092
2
4
- 2291
+ 2293
4
132
- 1953
+ 1935
145
371
- 1425
+ 1420
@@ -12725,7 +12606,7 @@
1
2
- 26846
+ 26741
@@ -12744,8 +12625,8 @@
10
- 25380
- 25381
+ 25379
+ 25380
10
@@ -12765,8 +12646,8 @@
10
- 5390
- 5391
+ 5389
+ 5390
10
@@ -12798,15 +12679,15 @@
using_container
- 580229
+ 577953
parent
- 21914
+ 21828
child
- 272192
+ 271118
@@ -12820,42 +12701,42 @@
1
2
- 10371
+ 10330
2
3
- 1615
+ 1609
3
6
- 1858
+ 1851
6
7
- 2312
+ 2303
7
28
- 1668
+ 1662
28
136
- 781
+ 778
145
146
- 2619
+ 2608
146
437
- 686
+ 683
@@ -12871,27 +12752,27 @@
1
2
- 96729
+ 96341
2
3
- 120270
+ 119800
3
4
- 20097
+ 20019
4
5
- 26709
+ 26604
5
65
- 8385
+ 8352
@@ -12901,27 +12782,27 @@
static_asserts
- 172982
+ 172749
id
- 172982
+ 172749
condition
- 172982
+ 172749
message
- 38704
+ 38652
location
- 22616
+ 22585
enclosing
- 6819
+ 6810
@@ -12935,7 +12816,7 @@
1
2
- 172982
+ 172749
@@ -12951,7 +12832,7 @@
1
2
- 172982
+ 172749
@@ -12967,7 +12848,7 @@
1
2
- 172982
+ 172749
@@ -12983,7 +12864,7 @@
1
2
- 172982
+ 172749
@@ -12999,7 +12880,7 @@
1
2
- 172982
+ 172749
@@ -13015,7 +12896,7 @@
1
2
- 172982
+ 172749
@@ -13031,7 +12912,7 @@
1
2
- 172982
+ 172749
@@ -13047,7 +12928,7 @@
1
2
- 172982
+ 172749
@@ -13063,32 +12944,32 @@
1
2
- 28454
+ 28416
2
3
- 640
+ 639
3
4
- 3624
+ 3619
4
12
- 2084
+ 2081
12
17
- 3130
+ 3125
17
513
- 770
+ 769
@@ -13104,32 +12985,32 @@
1
2
- 28454
+ 28416
2
3
- 640
+ 639
3
4
- 3624
+ 3619
4
12
- 2084
+ 2081
12
17
- 3130
+ 3125
17
513
- 770
+ 769
@@ -13145,12 +13026,12 @@
1
2
- 35866
+ 35818
2
33
- 2838
+ 2834
@@ -13166,7 +13047,7 @@
1
2
- 30263
+ 30222
2
@@ -13176,17 +13057,17 @@
3
4
- 3389
+ 3385
4
12
- 1905
+ 1903
12
43
- 2797
+ 2793
@@ -13202,17 +13083,17 @@
1
2
- 4273
+ 4267
2
3
- 3722
+ 3717
3
4
- 1743
+ 1741
4
@@ -13222,7 +13103,7 @@
5
6
- 4727
+ 4721
6
@@ -13232,7 +13113,7 @@
14
15
- 2643
+ 2640
16
@@ -13242,7 +13123,7 @@
17
18
- 4387
+ 4381
19
@@ -13263,17 +13144,17 @@
1
2
- 4273
+ 4267
2
3
- 3722
+ 3717
3
4
- 1743
+ 1741
4
@@ -13283,7 +13164,7 @@
5
6
- 4727
+ 4721
6
@@ -13293,7 +13174,7 @@
14
15
- 2643
+ 2640
16
@@ -13303,7 +13184,7 @@
17
18
- 4387
+ 4381
19
@@ -13324,22 +13205,22 @@
1
2
- 6949
+ 6940
2
3
- 7663
+ 7652
3
4
- 7768
+ 7758
4
7
- 235
+ 234
@@ -13355,32 +13236,32 @@
1
2
- 5060
+ 5053
2
3
- 8084
+ 8073
3
4
- 1483
+ 1481
4
5
- 4751
+ 4745
5
13
- 494
+ 493
13
14
- 2643
+ 2640
16
@@ -13401,17 +13282,17 @@
1
2
- 5716
+ 5709
2
3
- 527
+ 526
3
228
- 527
+ 526
229
@@ -13432,17 +13313,17 @@
1
2
- 5716
+ 5709
2
3
- 527
+ 526
3
228
- 527
+ 526
229
@@ -13463,7 +13344,7 @@
1
2
- 5870
+ 5863
2
@@ -13489,12 +13370,12 @@
1
2
- 5854
+ 5846
2
3
- 535
+ 534
3
@@ -13509,23 +13390,23 @@
params
- 7060560
+ 7052244
id
- 7019643
+ 7011799
function
- 3404846
+ 3400305
index
- 7983
+ 7964
type_id
- 1220275
+ 1217354
@@ -13539,7 +13420,7 @@
1
2
- 7019643
+ 7011799
@@ -13555,7 +13436,7 @@
1
2
- 7019643
+ 7011799
@@ -13571,12 +13452,12 @@
1
2
- 6978726
+ 6971353
2
3
- 40917
+ 40445
@@ -13592,27 +13473,27 @@
1
2
- 1473138
+ 1470856
2
3
- 926247
+ 924776
3
4
- 578701
+ 578187
4
5
- 280805
+ 280506
5
65
- 145954
+ 145978
@@ -13628,27 +13509,27 @@
1
2
- 1473138
+ 1470856
2
3
- 926247
+ 924776
3
4
- 578701
+ 578187
4
5
- 280805
+ 280506
5
65
- 145954
+ 145978
@@ -13664,22 +13545,22 @@
1
2
- 1781637
+ 1778617
2
3
- 1030660
+ 1029313
3
4
- 437488
+ 437436
4
11
- 155060
+ 154938
@@ -13695,31 +13576,31 @@
2
3
- 3991
+ 3982
6
7
- 1995
+ 1991
14
18
- 623
+ 622
23
138
- 623
+ 622
- 320
- 15486
- 623
+ 322
+ 15505
+ 622
- 27294
- 27295
+ 27323
+ 27324
124
@@ -13736,31 +13617,31 @@
2
3
- 3991
+ 3982
6
7
- 1995
+ 1991
14
18
- 623
+ 622
23
138
- 623
+ 622
- 320
- 15486
- 623
+ 322
+ 15505
+ 622
- 27294
- 27295
+ 27323
+ 27324
124
@@ -13777,27 +13658,27 @@
1
2
- 3991
+ 3982
2
3
- 1995
+ 1991
4
7
- 623
+ 622
9
55
- 623
+ 622
116
2703
- 623
+ 622
7497
@@ -13818,27 +13699,27 @@
1
2
- 737504
+ 735614
2
3
- 240387
+ 239687
3
5
- 93186
+ 93087
5
13
- 93809
+ 93709
13
2574
- 55387
+ 55255
@@ -13854,27 +13735,27 @@
1
2
- 819588
+ 817501
2
3
- 179635
+ 179081
3
6
- 106159
+ 106154
6
27
- 92188
+ 91967
27
2562
- 22703
+ 22649
@@ -13890,17 +13771,17 @@
1
2
- 995107
+ 992725
2
3
- 166786
+ 166387
3
65
- 58381
+ 58241
@@ -13910,15 +13791,15 @@
overrides
- 159497
+ 159153
new
- 150804
+ 150382
old
- 17961
+ 17799
@@ -13932,12 +13813,12 @@
1
2
- 142119
+ 141620
2
4
- 8684
+ 8762
@@ -13953,32 +13834,32 @@
1
2
- 9828
+ 9685
2
3
- 2432
+ 2405
3
4
- 1629
+ 1643
4
6
- 1483
+ 1481
6
- 18
- 1354
+ 17
+ 1336
- 18
+ 17
230
- 1232
+ 1247
@@ -13988,19 +13869,19 @@
membervariables
- 1501944
+ 1502979
id
- 1499494
+ 1500528
type_id
- 457553
+ 457641
name
- 642220
+ 642756
@@ -14014,7 +13895,7 @@
1
2
- 1497152
+ 1498186
2
@@ -14035,7 +13916,7 @@
1
2
- 1499494
+ 1500528
@@ -14051,17 +13932,17 @@
1
2
- 339380
+ 339459
2
3
- 72592
+ 72597
3
10
- 35451
+ 35454
10
@@ -14082,17 +13963,17 @@
1
2
- 356970
+ 357050
2
3
- 64750
+ 64754
3
57
- 34362
+ 34365
60
@@ -14113,22 +13994,22 @@
1
2
- 421557
+ 422023
2
3
- 122421
+ 122484
3
5
- 58051
+ 58056
5
664
- 40189
+ 40192
@@ -14144,17 +14025,17 @@
1
2
- 524482
+ 525010
2
3
- 73191
+ 73196
3
668
- 44546
+ 44549
@@ -14164,19 +14045,19 @@
globalvariables
- 488384
+ 492566
id
- 488384
+ 492566
type_id
- 10354
+ 10329
name
- 112521
+ 112252
@@ -14190,7 +14071,7 @@
1
2
- 488384
+ 492566
@@ -14206,7 +14087,7 @@
1
2
- 488384
+ 492566
@@ -14222,32 +14103,32 @@
1
2
- 6985
+ 6969
2
3
- 374
+ 373
3
5
- 748
+ 746
5
20
- 873
+ 871
20
- 74
- 873
+ 80
+ 871
152
2216
- 498
+ 497
@@ -14263,32 +14144,32 @@
1
2
- 7110
+ 7093
2
3
- 374
+ 373
3
5
- 748
+ 746
5
20
- 748
+ 746
20
74
- 873
+ 871
125
228
- 498
+ 497
@@ -14304,17 +14185,17 @@
1
2
- 95306
+ 94954
2
7
- 8857
+ 8835
7
604
- 8358
+ 8462
@@ -14330,17 +14211,17 @@
1
2
- 96928
+ 96696
2
3
- 15343
+ 15307
3
4
- 249
+ 248
@@ -14350,19 +14231,19 @@
localvariables
- 726016
+ 724687
id
- 726016
+ 724687
type_id
- 53423
+ 53297
name
- 101594
+ 101408
@@ -14376,7 +14257,7 @@
1
2
- 726016
+ 724687
@@ -14392,7 +14273,7 @@
1
2
- 726016
+ 724687
@@ -14408,37 +14289,37 @@
1
2
- 28857
+ 28788
2
3
- 7840
+ 7806
3
4
- 4028
+ 4020
4
6
- 4064
+ 4060
6
12
- 4132
+ 4128
12
162
- 4008
+ 4000
162
19347
- 492
+ 491
@@ -14454,7 +14335,7 @@
1
2
- 38358
+ 38248
2
@@ -14464,12 +14345,12 @@
3
5
- 4476
+ 4468
5
3509
- 3884
+ 3877
@@ -14485,32 +14366,32 @@
1
2
- 62515
+ 62401
2
3
- 16032
+ 16003
3
4
- 6528
+ 6516
4
8
- 8144
+ 8129
8
134
- 7620
+ 7606
134
7549
- 752
+ 750
@@ -14526,22 +14407,22 @@
1
2
- 84553
+ 84398
2
3
- 8408
+ 8393
3
15
- 7680
+ 7666
15
1509
- 952
+ 950
@@ -14551,15 +14432,15 @@
autoderivation
- 229160
+ 228611
var
- 229160
+ 228611
derivation_type
- 623
+ 622
@@ -14573,7 +14454,7 @@
1
2
- 229160
+ 228611
@@ -14619,15 +14500,15 @@
orphaned_variables
- 44321
+ 44036
var
- 44321
+ 44036
function
- 41051
+ 40786
@@ -14641,7 +14522,7 @@
1
2
- 44321
+ 44036
@@ -14657,12 +14538,12 @@
1
2
- 40199
+ 39940
2
47
- 851
+ 846
@@ -14672,19 +14553,19 @@
enumconstants
- 347930
+ 347955
id
- 347930
+ 347955
parent
- 41551
+ 41554
index
- 13941
+ 13942
type_id
@@ -14692,11 +14573,11 @@
name
- 347549
+ 347574
location
- 320538
+ 320561
@@ -14710,7 +14591,7 @@
1
2
- 347930
+ 347955
@@ -14726,7 +14607,7 @@
1
2
- 347930
+ 347955
@@ -14742,7 +14623,7 @@
1
2
- 347930
+ 347955
@@ -14758,7 +14639,7 @@
1
2
- 347930
+ 347955
@@ -14774,7 +14655,7 @@
1
2
- 347930
+ 347955
@@ -14805,7 +14686,7 @@
4
5
- 5554
+ 5555
5
@@ -14830,7 +14711,7 @@
10
15
- 3430
+ 3431
15
@@ -14840,7 +14721,7 @@
33
257
- 1306
+ 1307
@@ -14871,7 +14752,7 @@
4
5
- 5554
+ 5555
5
@@ -14896,7 +14777,7 @@
10
15
- 3430
+ 3431
15
@@ -14906,7 +14787,7 @@
33
257
- 1306
+ 1307
@@ -14922,7 +14803,7 @@
1
2
- 41551
+ 41554
@@ -14953,7 +14834,7 @@
4
5
- 5554
+ 5555
5
@@ -14978,7 +14859,7 @@
10
15
- 3430
+ 3431
15
@@ -14988,7 +14869,7 @@
33
257
- 1306
+ 1307
@@ -15004,7 +14885,7 @@
1
2
- 2123
+ 2124
2
@@ -15014,7 +14895,7 @@
3
4
- 8767
+ 8768
4
@@ -15182,7 +15063,7 @@
1
2
- 13941
+ 13942
@@ -15390,7 +15271,7 @@
1
2
- 347168
+ 347193
2
@@ -15411,7 +15292,7 @@
1
2
- 347168
+ 347193
2
@@ -15432,7 +15313,7 @@
1
2
- 347549
+ 347574
@@ -15448,7 +15329,7 @@
1
2
- 347549
+ 347574
@@ -15464,7 +15345,7 @@
1
2
- 347168
+ 347193
2
@@ -15485,7 +15366,7 @@
1
2
- 319503
+ 319526
2
@@ -15506,7 +15387,7 @@
1
2
- 320538
+ 320561
@@ -15522,7 +15403,7 @@
1
2
- 319503
+ 319526
2
@@ -15543,7 +15424,7 @@
1
2
- 320538
+ 320561
@@ -15559,7 +15440,7 @@
1
2
- 319503
+ 319526
2
@@ -15574,31 +15455,31 @@
builtintypes
- 7609
+ 7218
id
- 7609
+ 7218
name
- 7609
+ 7218
kind
- 7609
+ 7218
size
- 873
+ 871
sign
- 374
+ 373
alignment
- 623
+ 622
@@ -15612,7 +15493,7 @@
1
2
- 7609
+ 7218
@@ -15628,7 +15509,7 @@
1
2
- 7609
+ 7218
@@ -15644,7 +15525,7 @@
1
2
- 7609
+ 7218
@@ -15660,7 +15541,7 @@
1
2
- 7609
+ 7218
@@ -15676,7 +15557,7 @@
1
2
- 7609
+ 7218
@@ -15692,7 +15573,7 @@
1
2
- 7609
+ 7218
@@ -15708,7 +15589,7 @@
1
2
- 7609
+ 7218
@@ -15724,7 +15605,7 @@
1
2
- 7609
+ 7218
@@ -15740,7 +15621,7 @@
1
2
- 7609
+ 7218
@@ -15756,7 +15637,7 @@
1
2
- 7609
+ 7218
@@ -15772,7 +15653,7 @@
1
2
- 7609
+ 7218
@@ -15788,7 +15669,7 @@
1
2
- 7609
+ 7218
@@ -15804,7 +15685,7 @@
1
2
- 7609
+ 7218
@@ -15820,7 +15701,7 @@
1
2
- 7609
+ 7218
@@ -15836,7 +15717,7 @@
1
2
- 7609
+ 7218
@@ -15852,7 +15733,7 @@
2
3
- 249
+ 248
8
@@ -15865,18 +15746,18 @@
124
- 11
- 12
+ 10
+ 11
124
- 14
- 15
+ 13
+ 14
124
- 15
- 16
+ 14
+ 15
124
@@ -15893,7 +15774,7 @@
2
3
- 249
+ 248
8
@@ -15906,18 +15787,18 @@
124
- 11
- 12
+ 10
+ 11
124
- 14
- 15
+ 13
+ 14
124
- 15
- 16
+ 14
+ 15
124
@@ -15934,7 +15815,7 @@
2
3
- 249
+ 248
8
@@ -15947,18 +15828,18 @@
124
- 11
- 12
+ 10
+ 11
124
- 14
- 15
+ 13
+ 14
124
- 15
- 16
+ 14
+ 15
124
@@ -15975,12 +15856,12 @@
1
2
- 249
+ 248
3
4
- 623
+ 622
@@ -15996,12 +15877,12 @@
1
2
- 498
+ 497
2
3
- 374
+ 373
@@ -16025,8 +15906,8 @@
124
- 43
- 44
+ 40
+ 41
124
@@ -16051,8 +15932,8 @@
124
- 43
- 44
+ 40
+ 41
124
@@ -16077,8 +15958,8 @@
124
- 43
- 44
+ 40
+ 41
124
@@ -16095,7 +15976,7 @@
5
6
- 249
+ 248
7
@@ -16116,7 +15997,7 @@
5
6
- 374
+ 373
@@ -16130,8 +16011,8 @@
12
- 8
- 9
+ 7
+ 8
124
@@ -16139,14 +16020,19 @@
11
124
+
+ 12
+ 13
+ 124
+
13
14
- 249
+ 124
- 17
- 18
+ 16
+ 17
124
@@ -16161,8 +16047,8 @@
12
- 8
- 9
+ 7
+ 8
124
@@ -16170,14 +16056,19 @@
11
124
+
+ 12
+ 13
+ 124
+
13
14
- 249
+ 124
- 17
- 18
+ 16
+ 17
124
@@ -16192,8 +16083,8 @@
12
- 8
- 9
+ 7
+ 8
124
@@ -16201,14 +16092,19 @@
11
124
+
+ 12
+ 13
+ 124
+
13
14
- 249
+ 124
- 17
- 18
+ 16
+ 17
124
@@ -16225,7 +16121,7 @@
2
3
- 623
+ 622
@@ -16241,7 +16137,7 @@
3
4
- 623
+ 622
@@ -16251,23 +16147,23 @@
derivedtypes
- 3030855
+ 3023723
id
- 3030855
+ 3023723
name
- 1460538
+ 1457166
kind
- 748
+ 746
type_id
- 1946678
+ 1942142
@@ -16281,7 +16177,7 @@
1
2
- 3030855
+ 3023723
@@ -16297,7 +16193,7 @@
1
2
- 3030855
+ 3023723
@@ -16313,7 +16209,7 @@
1
2
- 3030855
+ 3023723
@@ -16329,17 +16225,17 @@
1
2
- 1344025
+ 1340932
2
28
- 109902
+ 109639
29
4302
- 6611
+ 6595
@@ -16355,7 +16251,7 @@
1
2
- 1460538
+ 1457166
@@ -16371,17 +16267,17 @@
1
2
- 1344149
+ 1341056
2
28
- 109777
+ 109514
29
4302
- 6611
+ 6595
@@ -16405,8 +16301,8 @@
124
- 3627
- 3628
+ 3628
+ 3629
124
@@ -16456,8 +16352,8 @@
124
- 2654
- 2655
+ 2655
+ 2656
124
@@ -16487,8 +16383,8 @@
124
- 3623
- 3624
+ 3624
+ 3625
124
@@ -16520,22 +16416,22 @@
1
2
- 1317453
+ 1314424
2
3
- 375862
+ 374963
3
4
- 123250
+ 122955
4
137
- 130111
+ 129799
@@ -16551,22 +16447,22 @@
1
2
- 1318950
+ 1315917
2
3
- 375862
+ 374963
3
4
- 121753
+ 121461
4
137
- 130111
+ 129799
@@ -16582,22 +16478,22 @@
1
2
- 1319325
+ 1316291
2
3
- 376486
+ 375585
3
4
- 123499
+ 123203
4
6
- 127366
+ 127061
@@ -16607,19 +16503,19 @@
pointerishsize
- 2247318
+ 2242063
id
- 2247318
+ 2242063
size
- 249
+ 248
alignment
- 249
+ 248
@@ -16633,7 +16529,7 @@
1
2
- 2247318
+ 2242063
@@ -16649,7 +16545,7 @@
1
2
- 2247318
+ 2242063
@@ -16668,8 +16564,8 @@
124
- 18012
- 18013
+ 18013
+ 18014
124
@@ -16686,7 +16582,7 @@
1
2
- 249
+ 248
@@ -16705,8 +16601,8 @@
124
- 18012
- 18013
+ 18013
+ 18014
124
@@ -16723,7 +16619,7 @@
1
2
- 249
+ 248
@@ -16733,23 +16629,23 @@
arraysizes
- 80586
+ 80393
id
- 80586
+ 80393
num_elements
- 17838
+ 17796
bytesize
- 20209
+ 20160
alignment
- 623
+ 622
@@ -16763,7 +16659,7 @@
1
2
- 80586
+ 80393
@@ -16779,7 +16675,7 @@
1
2
- 80586
+ 80393
@@ -16795,7 +16691,7 @@
1
2
- 80586
+ 80393
@@ -16811,32 +16707,32 @@
1
2
- 249
+ 248
2
3
- 10852
+ 10827
3
4
- 249
+ 248
4
5
- 3492
+ 3484
5
9
- 1496
+ 1493
9
42
- 1372
+ 1368
56
@@ -16857,22 +16753,22 @@
1
2
- 11726
+ 11698
2
3
- 3991
+ 3982
3
5
- 997
+ 995
5
11
- 1122
+ 1120
@@ -16888,22 +16784,22 @@
1
2
- 11726
+ 11698
2
3
- 3991
+ 3982
3
4
- 748
+ 746
4
6
- 1372
+ 1368
@@ -16919,37 +16815,37 @@
1
2
- 623
+ 622
2
3
- 12724
+ 12693
3
4
- 498
+ 497
4
5
- 2744
+ 2737
5
7
- 1496
+ 1493
7
17
- 1621
+ 1617
24
45
- 498
+ 497
@@ -16965,17 +16861,17 @@
1
2
- 14595
+ 14560
2
3
- 3617
+ 3609
3
6
- 1871
+ 1866
6
@@ -16996,22 +16892,22 @@
1
2
- 14844
+ 14809
2
3
- 3368
+ 3360
3
5
- 1621
+ 1617
5
6
- 374
+ 373
@@ -17068,7 +16964,7 @@
16
17
- 249
+ 248
48
@@ -17172,15 +17068,15 @@
typedefbase
- 1762169
+ 1755835
id
- 1762169
+ 1755835
type_id
- 837952
+ 834260
@@ -17194,7 +17090,7 @@
1
2
- 1762169
+ 1755835
@@ -17210,22 +17106,22 @@
1
2
- 662479
+ 659366
2
3
- 80940
+ 80761
3
6
- 64169
+ 63918
6
- 4526
- 30363
+ 4525
+ 30213
@@ -17235,15 +17131,15 @@
decltypes
- 814486
+ 814571
id
- 27564
+ 27567
expr
- 814486
+ 814571
kind
@@ -17269,17 +17165,17 @@
1
2
- 9737
+ 9738
2
3
- 3648
+ 3649
4
5
- 3626
+ 3627
6
@@ -17325,7 +17221,7 @@
1
2
- 27564
+ 27567
@@ -17341,7 +17237,7 @@
1
2
- 27564
+ 27567
@@ -17357,7 +17253,7 @@
1
2
- 27564
+ 27567
@@ -17373,7 +17269,7 @@
1
2
- 814486
+ 814571
@@ -17389,7 +17285,7 @@
1
2
- 814486
+ 814571
@@ -17405,7 +17301,7 @@
1
2
- 814486
+ 814571
@@ -17421,7 +17317,7 @@
1
2
- 814486
+ 814571
@@ -17501,7 +17397,7 @@
1
2
- 1208
+ 1209
2
@@ -17547,7 +17443,7 @@
1
2
- 1164
+ 1165
2
@@ -17683,15 +17579,15 @@
type_operators
- 7949
+ 7937
id
- 7949
+ 7937
arg_type
- 7176
+ 7164
kind
@@ -17699,7 +17595,7 @@
base_type
- 5242
+ 5234
@@ -17713,7 +17609,7 @@
1
2
- 7949
+ 7937
@@ -17729,7 +17625,7 @@
1
2
- 7949
+ 7937
@@ -17745,7 +17641,7 @@
1
2
- 7949
+ 7937
@@ -17761,12 +17657,12 @@
1
2
- 6402
+ 6392
2
3
- 773
+ 772
@@ -17782,12 +17678,12 @@
1
2
- 6402
+ 6392
2
3
- 773
+ 772
@@ -17803,7 +17699,7 @@
1
2
- 7154
+ 7143
2
@@ -17917,12 +17813,12 @@
1
2
- 3631
+ 3625
2
3
- 902
+ 900
3
@@ -17932,7 +17828,7 @@
4
6
- 365
+ 364
@@ -17948,17 +17844,17 @@
1
2
- 3781
+ 3775
2
3
- 988
+ 986
3
4
- 451
+ 450
4
@@ -17979,12 +17875,12 @@
1
2
- 4082
+ 4075
2
3
- 1138
+ 1136
3
@@ -17999,15 +17895,15 @@
usertypes
- 4151247
+ 4137720
id
- 4151247
+ 4137720
name
- 918449
+ 915379
kind
@@ -18025,7 +17921,7 @@
1
2
- 4151247
+ 4137720
@@ -18041,7 +17937,7 @@
1
2
- 4151247
+ 4137720
@@ -18057,22 +17953,22 @@
1
2
- 654210
+ 652086
2
3
- 158649
+ 158093
3
8
- 70559
+ 70346
8
- 32672
- 35031
+ 32667
+ 34852
@@ -18088,12 +17984,12 @@
1
2
- 866710
+ 863841
2
10
- 51739
+ 51537
@@ -18127,8 +18023,8 @@
10
- 1595
- 1596
+ 1656
+ 1657
10
@@ -18142,8 +18038,8 @@
10
- 20079
- 20080
+ 20075
+ 20076
10
@@ -18152,18 +18048,18 @@
10
- 82092
- 82093
+ 82174
+ 82175
10
- 92774
- 92775
+ 92838
+ 92839
10
- 166854
- 166855
+ 166906
+ 166907
10
@@ -18218,8 +18114,8 @@
10
- 5589
- 5590
+ 5586
+ 5587
10
@@ -18228,13 +18124,13 @@
10
- 12189
- 12190
+ 12187
+ 12188
10
- 57611
- 57612
+ 57664
+ 57665
10
@@ -18245,15 +18141,15 @@
usertypesize
- 1363676
+ 1359666
id
- 1363676
+ 1359666
size
- 1478
+ 1472
alignment
@@ -18271,7 +18167,7 @@
1
2
- 1363676
+ 1359666
@@ -18287,7 +18183,7 @@
1
2
- 1363676
+ 1359666
@@ -18303,51 +18199,51 @@
1
2
- 464
+ 462
2
3
- 190
+ 189
3
4
- 95
+ 94
4
6
- 95
+ 94
6
9
- 116
+ 115
9
19
- 116
+ 115
19
30
- 116
+ 115
30
115
- 116
+ 115
118
1735
- 116
+ 115
1839
- 99777
+ 99841
52
@@ -18364,17 +18260,17 @@
1
2
- 1203
+ 1199
2
3
- 179
+ 178
3
6
- 95
+ 94
@@ -18413,8 +18309,8 @@
10
- 2080
- 2081
+ 2141
+ 2142
10
@@ -18423,8 +18319,8 @@
10
- 114972
- 114973
+ 115036
+ 115037
10
@@ -18481,26 +18377,26 @@
usertype_final
- 11476
+ 11449
id
- 11476
+ 11449
usertype_uuid
- 47827
+ 47795
id
- 47827
+ 47795
uuid
- 47283
+ 47252
@@ -18514,7 +18410,7 @@
1
2
- 47827
+ 47795
@@ -18530,12 +18426,12 @@
1
2
- 46740
+ 46710
2
3
- 543
+ 542
@@ -18545,11 +18441,11 @@
usertype_alias_kind
- 1762169
+ 1755835
id
- 1762169
+ 1755835
alias_kind
@@ -18567,7 +18463,7 @@
1
2
- 1762169
+ 1755835
@@ -18581,13 +18477,13 @@
12
- 36907
- 36908
+ 36914
+ 36915
10
- 129947
- 129948
+ 129992
+ 129993
10
@@ -18598,26 +18494,26 @@
nontype_template_parameters
- 766248
+ 761306
id
- 766248
+ 761306
type_template_type_constraint
- 27115
+ 27071
id
- 13364
+ 13342
constraint
- 25976
+ 25934
@@ -18631,22 +18527,22 @@
1
2
- 10205
+ 10189
2
3
- 902
+ 900
3
5
- 1031
+ 1029
5
14
- 1117
+ 1115
14
@@ -18667,12 +18563,12 @@
1
2
- 24837
+ 24797
2
3
- 1138
+ 1136
@@ -18682,19 +18578,19 @@
mangled_name
- 7853951
+ 7910441
id
- 7853951
+ 7910441
mangled_name
- 6364346
+ 6349608
is_complete
- 249
+ 248
@@ -18708,7 +18604,7 @@
1
2
- 7853951
+ 7910441
@@ -18724,7 +18620,7 @@
1
2
- 7853951
+ 7910441
@@ -18740,12 +18636,12 @@
1
2
- 6036261
+ 6016211
2
1120
- 328084
+ 333397
@@ -18761,7 +18657,7 @@
1
2
- 6364346
+ 6349608
@@ -18780,8 +18676,8 @@
124
- 62953
- 62954
+ 63558
+ 63559
124
@@ -18801,8 +18697,8 @@
124
- 51012
- 51013
+ 51016
+ 51017
124
@@ -18813,59 +18709,59 @@
is_pod_class
- 593798
+ 590984
id
- 593798
+ 590984
is_standard_layout_class
- 1124307
+ 1120590
id
- 1124307
+ 1120590
is_complete
- 1346155
+ 1341571
id
- 1346155
+ 1341571
is_class_template
- 232144
+ 231195
id
- 232144
+ 231195
class_instantiation
- 1125965
+ 1122200
to
- 1122924
+ 1119212
from
- 71794
+ 71524
@@ -18879,12 +18775,12 @@
1
2
- 1120790
+ 1117129
2
8
- 2133
+ 2082
@@ -18900,47 +18796,47 @@
1
2
- 20499
+ 20387
2
3
- 12884
+ 12834
3
4
- 7107
+ 7111
4
5
- 4657
+ 4639
5
7
- 6072
+ 6059
7
10
- 5713
+ 5680
10
17
- 5903
+ 5901
17
- 51
+ 52
5396
- 51
+ 52
4223
- 3559
+ 3513
@@ -18950,19 +18846,19 @@
class_template_argument
- 2898347
+ 2887503
type_id
- 1366971
+ 1362264
index
- 1182
+ 1178
arg_type
- 822016
+ 818795
@@ -18976,27 +18872,27 @@
1
2
- 579310
+ 577753
2
3
- 410247
+ 408656
3
4
- 251017
+ 249952
4
7
- 103087
+ 102684
7
113
- 23308
+ 23217
@@ -19012,22 +18908,22 @@
1
2
- 607846
+ 606188
2
3
- 424251
+ 422595
3
4
- 251851
+ 250784
4
113
- 83021
+ 82696
@@ -19048,31 +18944,31 @@
4
5
- 749
+ 746
5
30
- 95
+ 94
33
90
- 95
+ 94
95
453
- 95
+ 94
643
7128
- 95
+ 94
11968
- 129432
+ 129492
42
@@ -19094,7 +18990,7 @@
4
5
- 749
+ 746
5
@@ -19104,20 +19000,20 @@
16
35
- 95
+ 94
37
155
- 95
+ 94
196
3263
- 95
+ 94
- 10413
+ 10412
44535
31
@@ -19135,27 +19031,27 @@
1
2
- 513672
+ 511582
2
3
- 167626
+ 166898
3
5
- 75079
+ 74922
5
- 47
- 61729
+ 46
+ 61415
- 47
- 12619
- 3907
+ 46
+ 12620
+ 3976
@@ -19171,17 +19067,17 @@
1
2
- 723744
+ 720908
2
3
- 79905
+ 79593
3
22
- 18365
+ 18294
@@ -19191,19 +19087,19 @@
class_template_argument_value
- 510060
+ 506804
type_id
- 205802
+ 204508
index
- 306
+ 304
arg_value
- 509924
+ 506668
@@ -19217,17 +19113,17 @@
1
2
- 155791
+ 154820
2
3
- 43368
+ 43088
3
8
- 6643
+ 6600
@@ -19243,22 +19139,22 @@
1
2
- 147921
+ 147001
2
3
- 40472
+ 40211
3
45
- 15534
+ 15434
45
154
- 1873
+ 1861
@@ -19274,47 +19170,47 @@
2
3
- 34
+ 33
20
21
- 34
+ 33
49
50
- 34
+ 33
84
85
- 34
+ 33
105
106
- 34
+ 33
278
279
- 34
+ 33
981
982
- 34
+ 33
- 2471
- 2472
- 34
+ 2472
+ 2473
+ 33
3753
3754
- 34
+ 33
@@ -19330,47 +19226,47 @@
3
4
- 34
+ 33
74
75
- 34
+ 33
105
106
- 34
+ 33
273
274
- 34
+ 33
336
337
- 34
+ 33
892
893
- 34
+ 33
2433
2434
- 34
+ 33
- 4801
- 4802
- 34
+ 4802
+ 4803
+ 33
6051
6052
- 34
+ 33
@@ -19386,12 +19282,12 @@
1
2
- 509787
+ 506533
2
3
- 136
+ 135
@@ -19407,7 +19303,7 @@
1
2
- 509924
+ 506668
@@ -19417,15 +19313,15 @@
is_proxy_class_for
- 48433
+ 48244
id
- 48433
+ 48244
templ_param_id
- 45761
+ 45582
@@ -19439,7 +19335,7 @@
1
2
- 48433
+ 48244
@@ -19455,12 +19351,12 @@
1
2
- 45043
+ 44867
2
79
- 718
+ 715
@@ -19470,19 +19366,19 @@
type_mentions
- 5907630
+ 5911108
id
- 5907630
+ 5911108
type_id
- 277788
+ 277863
location
- 5851321
+ 5854794
kind
@@ -19500,7 +19396,7 @@
1
2
- 5907630
+ 5911108
@@ -19516,7 +19412,7 @@
1
2
- 5907630
+ 5911108
@@ -19532,7 +19428,7 @@
1
2
- 5907630
+ 5911108
@@ -19548,42 +19444,42 @@
1
2
- 137233
+ 137297
2
3
- 31204
+ 31206
3
4
- 11653
+ 11654
4
5
- 14975
+ 14976
5
7
- 19931
+ 19932
7
12
- 21837
+ 21839
12
28
- 21075
+ 21022
28
8941
- 19877
+ 19932
@@ -19599,42 +19495,42 @@
1
2
- 137233
+ 137297
2
3
- 31204
+ 31206
3
4
- 11653
+ 11654
4
5
- 14975
+ 14976
5
7
- 19931
+ 19932
7
12
- 21837
+ 21839
12
28
- 21075
+ 21022
28
8941
- 19877
+ 19932
@@ -19650,7 +19546,7 @@
1
2
- 277788
+ 277863
@@ -19666,12 +19562,12 @@
1
2
- 5805631
+ 5809101
2
4
- 45690
+ 45693
@@ -19687,12 +19583,12 @@
1
2
- 5805631
+ 5809101
2
4
- 45690
+ 45693
@@ -19708,7 +19604,7 @@
1
2
- 5851321
+ 5854794
@@ -19722,8 +19618,8 @@
12
- 108481
- 108482
+ 108537
+ 108538
54
@@ -19738,8 +19634,8 @@
12
- 5101
- 5102
+ 5102
+ 5103
54
@@ -19754,8 +19650,8 @@
12
- 107447
- 107448
+ 107503
+ 107504
54
@@ -19766,26 +19662,26 @@
is_function_template
- 1331300
+ 1328113
id
- 1331300
+ 1328113
function_instantiation
- 973788
+ 967609
to
- 973788
+ 967609
from
- 182704
+ 181526
@@ -19799,7 +19695,7 @@
1
2
- 973788
+ 967609
@@ -19815,27 +19711,27 @@
1
2
- 110583
+ 109836
2
3
- 42788
+ 42546
3
9
- 14444
+ 14351
9
104
- 13729
+ 13640
119
1532
- 1158
+ 1150
@@ -19845,19 +19741,19 @@
function_template_argument
- 2484687
+ 2468763
function_id
- 1453222
+ 1443916
index
- 476
+ 473
arg_type
- 297989
+ 296067
@@ -19871,22 +19767,22 @@
1
2
- 782976
+ 777959
2
3
- 413137
+ 410507
3
4
- 171802
+ 170694
4
15
- 85305
+ 84755
@@ -19902,22 +19798,22 @@
1
2
- 802122
+ 796982
2
3
- 411230
+ 408611
3
4
- 169622
+ 168528
4
9
- 70247
+ 69794
@@ -19933,52 +19829,52 @@
1
2
- 170
+ 169
7
8
- 34
+ 33
45
46
- 34
+ 33
77
78
- 34
+ 33
138
139
- 34
+ 33
280
281
- 34
+ 33
2504
2505
- 34
+ 33
7547
7548
- 34
+ 33
- 19674
- 19675
- 34
+ 19675
+ 19676
+ 33
- 42657
- 42658
- 34
+ 42659
+ 42660
+ 33
@@ -19994,52 +19890,52 @@
1
2
- 170
+ 169
4
5
- 34
+ 33
17
18
- 34
+ 33
27
28
- 34
+ 33
52
53
- 34
+ 33
112
113
- 34
+ 33
315
316
- 34
+ 33
972
973
- 34
+ 33
2754
2755
- 34
+ 33
6081
6082
- 34
+ 33
@@ -20055,37 +19951,37 @@
1
2
- 174766
+ 173639
2
3
- 26334
+ 26164
3
4
- 19997
+ 19868
4
6
- 22654
+ 22508
6
11
- 23234
+ 23084
11
76
- 23370
+ 23219
79
2452
- 7631
+ 7581
@@ -20101,17 +19997,17 @@
1
2
- 256801
+ 255145
2
3
- 32125
+ 31918
3
15
- 9061
+ 9003
@@ -20121,19 +20017,19 @@
function_template_argument_value
- 452758
+ 449838
function_id
- 196774
+ 195505
index
- 476
+ 473
arg_value
- 450067
+ 447164
@@ -20147,17 +20043,17 @@
1
2
- 151396
+ 150420
2
3
- 42891
+ 42614
3
8
- 2486
+ 2470
@@ -20173,22 +20069,22 @@
1
2
- 144480
+ 143548
2
3
- 36690
+ 36454
3
54
- 14853
+ 14757
54
113
- 749
+ 744
@@ -20204,52 +20100,52 @@
1
2
- 170
+ 169
2
3
- 34
+ 33
3
4
- 34
+ 33
4
5
- 34
+ 33
15
16
- 34
+ 33
27
28
- 34
+ 33
1345
1346
- 34
+ 33
1388
1389
- 34
+ 33
1850
1851
- 34
+ 33
2547
2548
- 34
+ 33
@@ -20265,52 +20161,52 @@
1
2
- 170
+ 169
2
3
- 34
+ 33
3
4
- 34
+ 33
4
5
- 34
+ 33
51
52
- 34
+ 33
63
64
- 34
+ 33
1906
1907
- 34
+ 33
3295
3296
- 34
+ 33
3702
3703
- 34
+ 33
4180
4181
- 34
+ 33
@@ -20326,12 +20222,12 @@
1
2
- 447375
+ 444490
2
3
- 2691
+ 2673
@@ -20347,7 +20243,7 @@
1
2
- 450067
+ 447164
@@ -20357,26 +20253,26 @@
is_variable_template
- 58631
+ 58490
id
- 58631
+ 58490
variable_instantiation
- 423017
+ 427355
to
- 423017
+ 427355
from
- 35303
+ 35343
@@ -20390,7 +20286,7 @@
1
2
- 423017
+ 427355
@@ -20406,42 +20302,47 @@
1
2
- 15219
+ 15182
2
3
- 3867
+ 3857
3
4
- 2370
+ 2364
4
6
- 2993
+ 2986
6
8
- 2245
+ 2240
8
12
- 3118
+ 3111
12
31
- 2744
+ 2737
32
+ 390
+ 2737
+
+
+ 545
546
- 2744
+ 124
@@ -20451,19 +20352,19 @@
variable_template_argument
- 768941
+ 772451
variable_id
- 401186
+ 405577
index
- 1995
+ 1991
arg_type
- 256355
+ 255741
@@ -20477,22 +20378,22 @@
1
2
- 156557
+ 161534
2
3
- 189989
+ 189534
3
4
- 36426
+ 36338
4
17
- 18213
+ 18169
@@ -20508,22 +20409,22 @@
1
2
- 171402
+ 176343
2
3
- 180259
+ 179828
3
4
- 33681
+ 33601
4
17
- 15842
+ 15804
@@ -20539,12 +20440,12 @@
28
29
- 873
+ 871
34
35
- 374
+ 373
37
@@ -20572,8 +20473,8 @@
124
- 3216
- 3217
+ 3259
+ 3260
124
@@ -20590,12 +20491,12 @@
1
2
- 873
+ 871
2
3
- 374
+ 373
5
@@ -20623,8 +20524,8 @@
124
- 1325
- 1326
+ 1327
+ 1328
124
@@ -20641,22 +20542,22 @@
1
2
- 175519
+ 173481
2
3
- 44784
+ 46294
3
6
- 21581
+ 21529
6
206
- 14470
+ 14436
@@ -20672,17 +20573,17 @@
1
2
- 228037
+ 227491
2
3
- 24699
+ 24640
3
7
- 3617
+ 3609
@@ -20692,19 +20593,19 @@
variable_template_argument_value
- 19959
+ 19911
variable_id
- 14844
+ 14809
index
- 498
+ 497
arg_value
- 19959
+ 19911
@@ -20718,12 +20619,12 @@
1
2
- 13347
+ 13315
2
3
- 1496
+ 1493
@@ -20739,17 +20640,17 @@
1
2
- 10478
+ 10453
2
3
- 3991
+ 3982
4
5
- 374
+ 373
@@ -20827,7 +20728,7 @@
1
2
- 19959
+ 19911
@@ -20843,7 +20744,7 @@
1
2
- 19959
+ 19911
@@ -20853,15 +20754,15 @@
template_template_instantiation
- 6362
+ 6346
to
- 4989
+ 4977
from
- 1122
+ 1120
@@ -20875,12 +20776,12 @@
1
2
- 3617
+ 3609
2
3
- 1372
+ 1368
@@ -20896,7 +20797,7 @@
1
2
- 748
+ 746
2
@@ -20921,11 +20822,11 @@
template_template_argument
- 9674
+ 9636
type_id
- 6114
+ 6091
index
@@ -20933,7 +20834,7 @@
arg_type
- 9082
+ 9047
@@ -20947,17 +20848,17 @@
1
2
- 5016
+ 4996
2
3
- 422
+ 420
3
8
- 506
+ 504
8
@@ -20978,17 +20879,17 @@
1
2
- 5037
+ 5017
2
4
- 559
+ 557
4
10
- 464
+ 462
10
@@ -21131,7 +21032,7 @@
1
2
- 9050
+ 9015
3
@@ -21152,7 +21053,7 @@
1
2
- 9061
+ 9026
2
@@ -21167,19 +21068,19 @@
template_template_argument_value
- 623
+ 746
type_id
- 528
+ 124
index
- 21
+ 124
arg_value
- 623
+ 746
@@ -21193,7 +21094,7 @@
1
2
- 528
+ 124
@@ -21207,19 +21108,9 @@
12
- 1
- 2
- 454
-
-
- 2
- 3
- 52
-
-
- 3
- 4
- 21
+ 6
+ 7
+ 124
@@ -21233,14 +21124,9 @@
12
- 8
- 9
- 10
-
-
- 42
- 43
- 10
+ 1
+ 2
+ 124
@@ -21254,14 +21140,9 @@
12
- 17
- 18
- 10
-
-
- 42
- 43
- 10
+ 6
+ 7
+ 124
@@ -21277,7 +21158,7 @@
1
2
- 623
+ 746
@@ -21293,7 +21174,7 @@
1
2
- 623
+ 746
@@ -21303,19 +21184,19 @@
concept_templates
- 3609
+ 3603
concept_id
- 3609
+ 3603
name
- 3609
+ 3603
location
- 3609
+ 3603
@@ -21329,7 +21210,7 @@
1
2
- 3609
+ 3603
@@ -21345,7 +21226,7 @@
1
2
- 3609
+ 3603
@@ -21361,7 +21242,7 @@
1
2
- 3609
+ 3603
@@ -21377,7 +21258,7 @@
1
2
- 3609
+ 3603
@@ -21393,7 +21274,7 @@
1
2
- 3609
+ 3603
@@ -21409,7 +21290,7 @@
1
2
- 3609
+ 3603
@@ -21419,15 +21300,15 @@
concept_instantiation
- 90305
+ 90160
to
- 90305
+ 90160
from
- 3437
+ 3432
@@ -21441,7 +21322,7 @@
1
2
- 90305
+ 90160
@@ -21457,7 +21338,7 @@
1
2
- 236
+ 235
2
@@ -21467,7 +21348,7 @@
3
4
- 365
+ 364
4
@@ -21482,7 +21363,7 @@
6
8
- 236
+ 235
8
@@ -21492,7 +21373,7 @@
10
12
- 279
+ 278
12
@@ -21537,22 +21418,22 @@
is_type_constraint
- 36848
+ 36789
concept_id
- 36848
+ 36789
concept_template_argument
- 112887
+ 112705
concept_id
- 76275
+ 76152
index
@@ -21560,7 +21441,7 @@
arg_type
- 21399
+ 21365
@@ -21574,17 +21455,17 @@
1
2
- 46409
+ 46335
2
3
- 24644
+ 24604
3
7
- 5221
+ 5212
@@ -21600,17 +21481,17 @@
1
2
- 50019
+ 49938
2
3
- 22345
+ 22309
3
7
- 3910
+ 3904
@@ -21708,42 +21589,42 @@
1
2
- 10377
+ 10361
2
3
- 2965
+ 2960
3
4
- 1052
+ 1051
4
5
- 1353
+ 1351
5
6
- 1160
+ 1158
6
9
- 1611
+ 1608
9
14
- 1976
+ 1973
14
259
- 902
+ 900
@@ -21759,12 +21640,12 @@
1
2
- 18005
+ 17976
2
3
- 3265
+ 3260
3
@@ -21779,11 +21660,11 @@
concept_template_argument_value
- 106
+ 105
concept_id
- 83
+ 82
index
@@ -21791,7 +21672,7 @@
arg_value
- 106
+ 105
@@ -21805,7 +21686,7 @@
1
2
- 83
+ 82
@@ -21884,7 +21765,7 @@
1
2
- 106
+ 105
@@ -21900,7 +21781,7 @@
1
2
- 106
+ 105
@@ -21910,15 +21791,15 @@
routinetypes
- 604495
+ 600596
id
- 604495
+ 600596
return_type
- 283851
+ 282020
@@ -21932,7 +21813,7 @@
1
2
- 604495
+ 600596
@@ -21948,17 +21829,17 @@
1
2
- 234078
+ 232568
2
3
- 35225
+ 34998
3
4677
- 14546
+ 14453
@@ -21968,11 +21849,11 @@
routinetypeargs
- 1178520
+ 1178605
routine
- 416002
+ 416032
index
@@ -21980,7 +21861,7 @@
type_id
- 112074
+ 112082
@@ -21994,32 +21875,32 @@
1
2
- 82939
+ 82945
2
3
- 126069
+ 126078
3
4
- 107880
+ 107888
4
5
- 49284
+ 49287
5
7
- 33164
+ 33167
7
19
- 16664
+ 16665
@@ -22035,27 +21916,27 @@
1
2
- 88929
+ 88935
2
3
- 138703
+ 138713
3
4
- 114633
+ 114641
4
5
- 40734
+ 40737
5
10
- 32892
+ 32894
10
@@ -22253,32 +22134,32 @@
1
2
- 33273
+ 33276
2
3
- 15574
+ 15576
3
4
- 13287
+ 13288
4
5
- 9802
+ 9803
5
6
- 6371
+ 6372
6
8
- 9475
+ 9476
8
@@ -22288,7 +22169,7 @@
13
26
- 8658
+ 8659
26
@@ -22309,22 +22190,22 @@
1
2
- 79399
+ 79405
2
3
- 17535
+ 17536
3
5
- 9475
+ 9476
5
17
- 5663
+ 5664
@@ -22334,19 +22215,19 @@
ptrtomembers
- 9726
+ 9678
id
- 9726
+ 9678
type_id
- 7973
+ 7942
class_id
- 4868
+ 4849
@@ -22360,7 +22241,7 @@
1
2
- 9726
+ 9678
@@ -22376,7 +22257,7 @@
1
2
- 9726
+ 9678
@@ -22392,12 +22273,12 @@
1
2
- 7751
+ 7732
2
84
- 221
+ 210
@@ -22413,12 +22294,12 @@
1
2
- 7751
+ 7732
2
84
- 221
+ 210
@@ -22434,17 +22315,17 @@
1
2
- 3897
+ 3892
2
3
- 528
+ 515
8
9
- 401
+ 399
10
@@ -22465,17 +22346,17 @@
1
2
- 3897
+ 3892
2
3
- 528
+ 515
8
9
- 401
+ 399
10
@@ -22490,15 +22371,15 @@
specifiers
- 7734
+ 7715
id
- 7734
+ 7715
str
- 7734
+ 7715
@@ -22512,7 +22393,7 @@
1
2
- 7734
+ 7715
@@ -22528,7 +22409,7 @@
1
2
- 7734
+ 7715
@@ -22538,15 +22419,15 @@
typespecifiers
- 854164
+ 852347
type_id
- 849020
+ 844880
spec_id
- 95
+ 1617
@@ -22560,12 +22441,12 @@
1
2
- 843877
+ 837413
2
3
- 5143
+ 7466
@@ -22579,49 +22460,69 @@
12
- 168
- 169
- 10
+ 1
+ 2
+ 124
- 215
- 216
- 10
+ 2
+ 3
+ 124
- 225
- 226
- 10
+ 16
+ 17
+ 124
- 533
- 534
- 10
+ 17
+ 18
+ 124
- 821
- 822
- 10
+ 24
+ 25
+ 124
- 1568
- 1569
- 10
+ 44
+ 45
+ 124
- 4195
- 4196
- 10
+ 49
+ 50
+ 124
- 18295
- 18296
- 10
+ 51
+ 52
+ 124
- 54858
- 54859
- 10
+ 112
+ 113
+ 124
+
+
+ 199
+ 200
+ 124
+
+
+ 325
+ 326
+ 124
+
+
+ 547
+ 548
+ 124
+
+
+ 5462
+ 5463
+ 124
@@ -22631,15 +22532,15 @@
funspecifiers
- 9714180
+ 9694783
func_id
- 4008747
+ 4002635
spec_id
- 2370
+ 2364
@@ -22653,27 +22554,27 @@
1
2
- 1527029
+ 1526111
2
3
- 506223
+ 506131
3
4
- 1036897
+ 1034042
4
5
- 692845
+ 691186
5
8
- 245751
+ 245163
@@ -22717,8 +22618,8 @@
124
- 355
- 356
+ 356
+ 357
124
@@ -22727,8 +22628,8 @@
124
- 767
- 768
+ 769
+ 770
124
@@ -22737,8 +22638,8 @@
124
- 1095
- 1096
+ 1096
+ 1097
124
@@ -22747,13 +22648,13 @@
124
- 1663
- 1664
+ 1670
+ 1671
124
- 3301
- 3302
+ 3304
+ 3305
124
@@ -22767,8 +22668,8 @@
124
- 15121
- 15122
+ 15137
+ 15138
124
@@ -22777,8 +22678,8 @@
124
- 22777
- 22778
+ 22778
+ 22779
124
@@ -22789,15 +22690,15 @@
varspecifiers
- 3075514
+ 3078854
var_id
- 2315056
+ 2314865
spec_id
- 1122
+ 1120
@@ -22811,17 +22712,17 @@
1
2
- 1658263
+ 1654293
2
3
- 553627
+ 557653
3
5
- 103165
+ 102918
@@ -22860,13 +22761,13 @@
124
- 2773
- 2774
+ 2816
+ 2817
124
- 3449
- 3450
+ 3492
+ 3493
124
@@ -22887,15 +22788,15 @@
explicit_specifier_exprs
- 41291
+ 41192
func_id
- 41291
+ 41192
constant
- 41291
+ 41192
@@ -22909,7 +22810,7 @@
1
2
- 41291
+ 41192
@@ -22925,7 +22826,7 @@
1
2
- 41291
+ 41192
@@ -22935,27 +22836,27 @@
attributes
- 653799
+ 652234
id
- 653799
+ 652234
kind
- 374
+ 373
name
- 2120
+ 2115
name_space
- 249
+ 248
location
- 647686
+ 646136
@@ -22969,7 +22870,7 @@
1
2
- 653799
+ 652234
@@ -22985,7 +22886,7 @@
1
2
- 653799
+ 652234
@@ -23001,7 +22902,7 @@
1
2
- 653799
+ 652234
@@ -23017,7 +22918,7 @@
1
2
- 653799
+ 652234
@@ -23085,7 +22986,7 @@
1
2
- 249
+ 248
2
@@ -23132,7 +23033,7 @@
1
2
- 249
+ 248
3
@@ -23147,12 +23048,12 @@
7
8
- 249
+ 248
10
11
- 249
+ 248
14
@@ -23213,12 +23114,12 @@
1
2
- 1871
+ 1866
2
3
- 249
+ 248
@@ -23234,7 +23135,7 @@
1
2
- 2120
+ 2115
@@ -23250,7 +23151,7 @@
1
2
- 249
+ 248
3
@@ -23275,7 +23176,7 @@
10
11
- 249
+ 248
14
@@ -23420,12 +23321,12 @@
1
2
- 641823
+ 640287
2
5
- 5863
+ 5849
@@ -23441,7 +23342,7 @@
1
2
- 647686
+ 646136
@@ -23457,12 +23358,12 @@
1
2
- 642572
+ 641033
2
3
- 5114
+ 5102
@@ -23478,7 +23379,7 @@
1
2
- 647686
+ 646136
@@ -23488,11 +23389,11 @@
attribute_args
- 82563
+ 82085
id
- 82563
+ 82085
kind
@@ -23500,7 +23401,7 @@
attribute
- 71260
+ 70847
index
@@ -23508,7 +23409,7 @@
location
- 57185
+ 56854
@@ -23522,7 +23423,7 @@
1
2
- 82563
+ 82085
@@ -23538,7 +23439,7 @@
1
2
- 82563
+ 82085
@@ -23554,7 +23455,7 @@
1
2
- 82563
+ 82085
@@ -23570,7 +23471,7 @@
1
2
- 82563
+ 82085
@@ -23690,17 +23591,17 @@
1
2
- 65791
+ 65410
2
7
- 5347
+ 5316
7
25
- 121
+ 120
@@ -23716,12 +23617,12 @@
1
2
- 69744
+ 69340
2
3
- 1516
+ 1507
@@ -23737,12 +23638,12 @@
1
2
- 68216
+ 67821
2
8
- 3044
+ 3026
@@ -23758,12 +23659,12 @@
1
2
- 68748
+ 68350
2
6
- 2511
+ 2497
@@ -23943,17 +23844,17 @@
1
2
- 41507
+ 41266
2
3
- 11858
+ 11789
3
25
- 3819
+ 3797
@@ -23969,12 +23870,12 @@
1
2
- 47653
+ 47377
2
3
- 9531
+ 9476
@@ -23990,17 +23891,17 @@
1
2
- 42861
+ 42613
2
3
- 12298
+ 12227
3
11
- 2025
+ 2013
@@ -24016,12 +23917,12 @@
1
2
- 56936
+ 56606
2
8
- 248
+ 247
@@ -24031,15 +23932,15 @@
attribute_arg_value
- 16693
+ 16585
arg
- 16693
+ 16585
value
- 511
+ 507
@@ -24053,7 +23954,7 @@
1
2
- 16693
+ 16585
@@ -24069,52 +23970,52 @@
1
2
- 204
+ 203
5
6
- 34
+ 33
6
7
- 34
+ 33
15
16
- 34
+ 33
25
26
- 34
+ 33
51
52
- 34
+ 33
52
53
- 34
+ 33
71
72
- 34
+ 33
76
77
- 34
+ 33
183
184
- 34
+ 33
@@ -24124,15 +24025,15 @@
attribute_arg_type
- 460
+ 459
arg
- 460
+ 459
type_id
- 84
+ 83
@@ -24146,7 +24047,7 @@
1
2
- 460
+ 459
@@ -24162,22 +24063,22 @@
1
2
- 72
+ 71
2
3
- 4
+ 3
35
36
- 4
+ 3
60
61
- 4
+ 3
@@ -24187,15 +24088,15 @@
attribute_arg_constant
- 71889
+ 71524
arg
- 71889
+ 71524
constant
- 71889
+ 71524
@@ -24209,7 +24110,7 @@
1
2
- 71889
+ 71524
@@ -24225,7 +24126,7 @@
1
2
- 71889
+ 71524
@@ -24235,15 +24136,15 @@
attribute_arg_expr
- 1404
+ 1587
arg
- 1404
+ 1587
expr
- 1404
+ 1587
@@ -24257,7 +24158,7 @@
1
2
- 1404
+ 1587
@@ -24273,7 +24174,7 @@
1
2
- 1404
+ 1587
@@ -24336,15 +24237,15 @@
typeattributes
- 96304
+ 96074
type_id
- 94558
+ 94331
spec_id
- 32434
+ 32356
@@ -24358,12 +24259,12 @@
1
2
- 92811
+ 92589
2
3
- 1746
+ 1742
@@ -24379,17 +24280,17 @@
1
2
- 27943
+ 27876
2
9
- 2494
+ 2488
11
58
- 1995
+ 1991
@@ -24399,15 +24300,15 @@
funcattributes
- 843539
+ 841520
func_id
- 799005
+ 797092
spec_id
- 616749
+ 615273
@@ -24421,12 +24322,12 @@
1
2
- 758961
+ 757144
2
7
- 40043
+ 39947
@@ -24442,12 +24343,12 @@
1
2
- 571715
+ 570347
2
213
- 45033
+ 44925
@@ -24520,15 +24421,15 @@
namespaceattributes
- 5995
+ 5957
namespace_id
- 136
+ 135
spec_id
- 5995
+ 5957
@@ -24542,17 +24443,17 @@
1
2
- 68
+ 67
11
12
- 34
+ 33
163
164
- 34
+ 33
@@ -24568,7 +24469,7 @@
1
2
- 5995
+ 5957
@@ -24578,15 +24479,15 @@
stmtattributes
- 2213
+ 2230
stmt_id
- 2213
+ 2230
spec_id
- 558
+ 579
@@ -24600,7 +24501,7 @@
1
2
- 2213
+ 2230
@@ -24616,7 +24517,7 @@
1
2
- 214
+ 235
2
@@ -24646,15 +24547,15 @@
unspecifiedtype
- 7174204
+ 7228463
type_id
- 7174204
+ 7228463
unspecified_type_id
- 3962840
+ 3955718
@@ -24668,7 +24569,7 @@
1
2
- 7174204
+ 7228463
@@ -24684,22 +24585,22 @@
1
2
- 2481094
+ 2475279
2
3
- 1116611
+ 1114435
3
7
- 302636
+ 304027
7
- 537
- 62498
+ 892
+ 61975
@@ -24709,19 +24610,19 @@
member
- 4189506
+ 4182339
parent
- 543273
+ 541973
index
- 29689
+ 29618
child
- 4184890
+ 4177734
@@ -24735,57 +24636,57 @@
1
2
- 128988
+ 128679
2
3
- 83331
+ 83131
3
4
- 32434
+ 32356
4
5
- 44908
+ 44801
5
6
- 42414
+ 42312
6
7
- 33931
+ 33849
7
9
- 42289
+ 42188
9
13
- 41166
+ 41067
13
18
- 41291
+ 41192
18
42
- 40792
+ 40694
42
239
- 11726
+ 11698
@@ -24801,57 +24702,57 @@
1
2
- 128738
+ 128430
2
3
- 83455
+ 83256
3
4
- 32184
+ 32107
4
5
- 45033
+ 44925
5
6
- 42538
+ 42436
6
7
- 32808
+ 32729
7
9
- 42663
+ 42561
9
13
- 41540
+ 41441
13
18
- 41416
+ 41316
18
42
- 40917
+ 40694
42
265
- 11975
+ 12071
@@ -24867,57 +24768,57 @@
1
2
- 6486
+ 6471
2
3
- 2619
+ 2613
3
8
- 1871
+ 1866
9
10
- 2869
+ 2862
10
19
- 2245
+ 2240
19
26
- 2245
+ 2240
26
36
- 2494
+ 2488
36
50
- 2245
+ 2240
54
141
- 2245
+ 2240
150
468
- 2245
+ 2240
480
4310
- 2120
+ 2115
@@ -24933,57 +24834,57 @@
1
2
- 5488
+ 5475
2
3
- 3617
+ 3609
3
9
- 1871
+ 1866
9
10
- 2869
+ 2862
10
20
- 2370
+ 2240
20
- 28
- 2370
+ 27
+ 2240
- 28
+ 27
37
- 2370
+ 2613
37
56
- 2370
+ 2364
58
156
- 2245
+ 2240
- 163
- 527
- 2245
+ 164
+ 528
+ 2240
- 547
- 4330
- 1871
+ 548
+ 4332
+ 1866
@@ -24999,7 +24900,7 @@
1
2
- 4184890
+ 4177734
@@ -25015,12 +24916,12 @@
1
2
- 4180274
+ 4173129
2
3
- 4615
+ 4604
@@ -25030,15 +24931,15 @@
enclosingfunction
- 114807
+ 114982
child
- 114807
+ 114982
parent
- 71337
+ 69094
@@ -25052,7 +24953,7 @@
1
2
- 114807
+ 114982
@@ -25068,22 +24969,22 @@
1
2
- 49329
+ 37471
2
3
- 4633
+ 24479
3
- 4
- 15364
+ 5
+ 6059
- 4
- 37
- 2009
+ 5
+ 45
+ 1083
@@ -25093,27 +24994,27 @@
derivations
- 476878
+ 473802
derivation
- 476878
+ 473802
sub
- 455143
+ 452207
index
- 238
+ 236
super
- 235543
+ 234024
location
- 35396
+ 35167
@@ -25127,7 +25028,7 @@
1
2
- 476878
+ 473802
@@ -25143,7 +25044,7 @@
1
2
- 476878
+ 473802
@@ -25159,7 +25060,7 @@
1
2
- 476878
+ 473802
@@ -25175,7 +25076,7 @@
1
2
- 476878
+ 473802
@@ -25191,12 +25092,12 @@
1
2
- 438620
+ 435791
2
9
- 16522
+ 16416
@@ -25212,12 +25113,12 @@
1
2
- 438620
+ 435791
2
8
- 16522
+ 16416
@@ -25233,12 +25134,12 @@
1
2
- 438620
+ 435791
2
9
- 16522
+ 16416
@@ -25254,12 +25155,12 @@
1
2
- 438620
+ 435791
2
8
- 16522
+ 16416
@@ -25275,27 +25176,27 @@
25
26
- 102
+ 101
26
27
- 34
+ 33
52
53
- 34
+ 33
485
486
- 34
+ 33
13360
13361
- 34
+ 33
@@ -25311,22 +25212,22 @@
25
26
- 136
+ 135
52
53
- 34
+ 33
485
486
- 34
+ 33
13360
13361
- 34
+ 33
@@ -25342,32 +25243,32 @@
23
24
- 34
+ 33
24
25
- 34
+ 33
25
26
- 68
+ 67
32
33
- 34
+ 33
289
290
- 34
+ 33
6510
6511
- 34
+ 33
@@ -25383,22 +25284,22 @@
1
2
- 136
+ 135
7
8
- 34
+ 33
65
66
- 34
+ 33
963
964
- 34
+ 33
@@ -25414,12 +25315,12 @@
1
2
- 225732
+ 224276
2
1655
- 9811
+ 9748
@@ -25435,12 +25336,12 @@
1
2
- 225732
+ 224276
2
1655
- 9811
+ 9748
@@ -25456,12 +25357,12 @@
1
2
- 235100
+ 233584
2
4
- 442
+ 440
@@ -25477,12 +25378,12 @@
1
2
- 230194
+ 228710
2
81
- 5348
+ 5314
@@ -25498,27 +25399,27 @@
1
2
- 26504
+ 26333
2
5
- 3134
+ 3114
5
22
- 2759
+ 2741
22
383
- 2691
+ 2673
388
928
- 306
+ 304
@@ -25534,27 +25435,27 @@
1
2
- 26504
+ 26333
2
5
- 3134
+ 3114
5
22
- 2759
+ 2741
22
383
- 2691
+ 2673
388
928
- 306
+ 304
@@ -25570,7 +25471,7 @@
1
2
- 35396
+ 35167
@@ -25586,22 +25487,22 @@
1
2
- 28718
+ 28533
2
4
- 2623
+ 2606
4
26
- 2827
+ 2809
26
928
- 1226
+ 1218
@@ -25611,15 +25512,15 @@
derspecifiers
- 478649
+ 475562
der_id
- 476435
+ 473362
spec_id
- 136
+ 135
@@ -25633,12 +25534,12 @@
1
2
- 474221
+ 471162
2
3
- 2214
+ 2200
@@ -25654,22 +25555,22 @@
65
66
- 34
+ 33
92
93
- 34
+ 33
1104
1105
- 34
+ 33
12789
12790
- 34
+ 33
@@ -25679,15 +25580,15 @@
direct_base_offsets
- 449965
+ 447062
der_id
- 449965
+ 447062
offset
- 511
+ 507
@@ -25701,7 +25602,7 @@
1
2
- 449965
+ 447062
@@ -25717,42 +25618,42 @@
1
2
- 102
+ 101
2
3
- 136
+ 135
3
4
- 102
+ 101
4
5
- 34
+ 33
7
8
- 34
+ 33
9
10
- 34
+ 33
110
111
- 34
+ 33
13058
13059
- 34
+ 33
@@ -25762,19 +25663,19 @@
virtual_base_offsets
- 5825
+ 5787
sub
- 5825
+ 5787
super
- 102
+ 101
offset
- 340
+ 338
@@ -25788,7 +25689,7 @@
1
2
- 5825
+ 5787
@@ -25804,7 +25705,7 @@
1
2
- 5825
+ 5787
@@ -25820,12 +25721,12 @@
9
10
- 68
+ 67
153
154
- 34
+ 33
@@ -25841,12 +25742,12 @@
1
2
- 34
+ 33
9
10
- 68
+ 67
@@ -25862,12 +25763,12 @@
2
3
- 306
+ 304
153
154
- 34
+ 33
@@ -25883,12 +25784,12 @@
1
2
- 34
+ 33
2
3
- 306
+ 304
@@ -25898,23 +25799,23 @@
frienddecls
- 700430
+ 695912
id
- 700430
+ 695912
type_id
- 42414
+ 42140
decl_id
- 77742
+ 77240
location
- 6098
+ 6058
@@ -25928,7 +25829,7 @@
1
2
- 700430
+ 695912
@@ -25944,7 +25845,7 @@
1
2
- 700430
+ 695912
@@ -25960,7 +25861,7 @@
1
2
- 700430
+ 695912
@@ -25976,47 +25877,47 @@
1
2
- 6166
+ 6126
2
3
- 13967
+ 13877
3
7
- 3577
+ 3554
7
12
- 3440
+ 3418
12
20
- 3645
+ 3621
20
32
- 3304
+ 3283
33
50
- 3781
+ 3757
50
80
- 3781
+ 3757
101
120
- 749
+ 744
@@ -26032,47 +25933,47 @@
1
2
- 6166
+ 6126
2
3
- 13967
+ 13877
3
7
- 3577
+ 3554
7
12
- 3440
+ 3418
12
20
- 3645
+ 3621
20
32
- 3304
+ 3283
33
50
- 3781
+ 3757
50
80
- 3781
+ 3757
101
120
- 749
+ 744
@@ -26088,12 +25989,12 @@
1
2
- 41051
+ 40786
2
13
- 1362
+ 1353
@@ -26109,32 +26010,32 @@
1
2
- 47864
+ 47556
2
3
- 6064
+ 6024
3
8
- 5995
+ 5957
8
15
- 6064
+ 6024
15
40
- 6064
+ 6024
40
164
- 5689
+ 5652
@@ -26150,32 +26051,32 @@
1
2
- 47864
+ 47556
2
3
- 6064
+ 6024
3
8
- 5995
+ 5957
8
15
- 6064
+ 6024
15
40
- 6064
+ 6024
40
164
- 5689
+ 5652
@@ -26191,12 +26092,12 @@
1
2
- 77060
+ 76563
2
5
- 681
+ 676
@@ -26212,12 +26113,12 @@
1
2
- 5723
+ 5686
2
20371
- 374
+ 372
@@ -26233,12 +26134,12 @@
1
2
- 5961
+ 5923
2
1148
- 136
+ 135
@@ -26254,12 +26155,12 @@
1
2
- 5757
+ 5720
2
2129
- 340
+ 338
@@ -26269,19 +26170,19 @@
comments
- 11233100
+ 11208574
id
- 11233100
+ 11208574
contents
- 4303524
+ 4294964
location
- 11233100
+ 11208574
@@ -26295,7 +26196,7 @@
1
2
- 11233100
+ 11208574
@@ -26311,7 +26212,7 @@
1
2
- 11233100
+ 11208574
@@ -26327,17 +26228,17 @@
1
2
- 3928784
+ 3920499
2
6
- 322970
+ 322819
6
34447
- 51770
+ 51646
@@ -26353,17 +26254,17 @@
1
2
- 3928784
+ 3920499
2
6
- 322970
+ 322819
6
34447
- 51770
+ 51646
@@ -26379,7 +26280,7 @@
1
2
- 11233100
+ 11208574
@@ -26395,7 +26296,7 @@
1
2
- 11233100
+ 11208574
@@ -26405,15 +26306,15 @@
commentbinding
- 3914688
+ 3905316
id
- 3350706
+ 3342685
element
- 3749148
+ 3740173
@@ -26427,12 +26328,12 @@
1
2
- 3289081
+ 3281207
2
1706
- 61625
+ 61477
@@ -26448,12 +26349,12 @@
1
2
- 3583609
+ 3575030
2
3
- 165539
+ 165143
@@ -26463,15 +26364,15 @@
exprconv
- 9633168
+ 9634072
converted
- 9633062
+ 9633966
conversion
- 9633168
+ 9634072
@@ -26485,7 +26386,7 @@
1
2
- 9632957
+ 9633861
2
@@ -26506,7 +26407,7 @@
1
2
- 9633168
+ 9634072
@@ -26516,22 +26417,22 @@
compgenerated
- 9895967
+ 9923989
id
- 9895967
+ 9923989
synthetic_destructor_call
- 1669328
+ 1666648
element
- 1243197
+ 1241202
i
@@ -26539,7 +26440,7 @@
destructor_call
- 1669328
+ 1666648
@@ -26553,17 +26454,17 @@
1
2
- 827509
+ 826180
2
3
- 408898
+ 408242
3
19
- 6789
+ 6778
@@ -26579,17 +26480,17 @@
1
2
- 827509
+ 826180
2
3
- 408898
+ 408242
3
19
- 6789
+ 6778
@@ -26737,7 +26638,7 @@
1
2
- 1669328
+ 1666648
@@ -26753,7 +26654,7 @@
1
2
- 1669328
+ 1666648
@@ -26763,15 +26664,15 @@
namespaces
- 8649
+ 8615
id
- 8649
+ 8615
name
- 4572
+ 4555
@@ -26785,7 +26686,7 @@
1
2
- 8649
+ 8615
@@ -26801,17 +26702,17 @@
1
2
- 3738
+ 3724
2
3
- 528
+ 525
3
149
- 306
+ 305
@@ -26821,26 +26722,26 @@
namespace_inline
- 498
+ 497
id
- 498
+ 497
namespacembrs
- 2038492
+ 2110396
parentid
- 3991
+ 3982
memberid
- 2038492
+ 2110396
@@ -26854,66 +26755,66 @@
1
2
- 498
+ 497
2
3
- 249
+ 248
3
4
- 498
+ 497
4
5
- 623
+ 622
- 5
+ 7
10
- 249
+ 248
10
12
- 249
+ 248
12
18
- 249
+ 248
19
21
- 249
+ 248
23
24
- 249
+ 248
25
29
- 249
+ 248
70
83
- 249
+ 248
165
170
- 249
+ 248
- 15613
- 15614
+ 16228
+ 16229
124
@@ -26930,7 +26831,7 @@
1
2
- 2038492
+ 2110396
@@ -26940,19 +26841,19 @@
exprparents
- 19454457
+ 19456291
expr_id
- 19454457
+ 19456291
child_index
- 20035
+ 20037
parent_id
- 12940148
+ 12941377
@@ -26966,7 +26867,7 @@
1
2
- 19454457
+ 19456291
@@ -26982,7 +26883,7 @@
1
2
- 19454457
+ 19456291
@@ -27013,7 +26914,7 @@
4
5
- 8976
+ 8977
5
@@ -27032,7 +26933,7 @@
56
- 354800
+ 354801
506
@@ -27064,7 +26965,7 @@
4
5
- 8976
+ 8977
5
@@ -27083,7 +26984,7 @@
56
- 354800
+ 354801
506
@@ -27100,17 +27001,17 @@
1
2
- 7394848
+ 7395563
2
3
- 5082743
+ 5083215
3
712
- 462556
+ 462599
@@ -27126,17 +27027,17 @@
1
2
- 7394848
+ 7395563
2
3
- 5082743
+ 5083215
3
712
- 462556
+ 462599
@@ -27146,22 +27047,22 @@
expr_isload
- 6899311
+ 6898014
expr_id
- 6899311
+ 6898014
conversionkinds
- 6050443
+ 6051175
expr_id
- 6050443
+ 6051175
kind
@@ -27179,7 +27080,7 @@
1
2
- 6050443
+ 6051175
@@ -27208,23 +27109,23 @@
1
- 40988
- 40989
+ 40984
+ 40985
1
- 71409
- 71410
+ 71408
+ 71409
1
- 93247
- 93248
+ 93454
+ 93455
1
- 5831535
- 5831536
+ 5832065
+ 5832066
1
@@ -27235,11 +27136,11 @@
iscall
- 5800192
+ 5790817
caller
- 5800192
+ 5790817
kind
@@ -27257,7 +27158,7 @@
1
2
- 5800192
+ 5790817
@@ -27276,13 +27177,13 @@
21
- 1408
- 1409
+ 1409
+ 1410
21
- 268315
- 268316
+ 268311
+ 268312
21
@@ -27293,15 +27194,15 @@
numtemplatearguments
- 627727
+ 640909
expr_id
- 627727
+ 640909
num
- 374
+ 995
@@ -27315,7 +27216,7 @@
1
2
- 627727
+ 640909
@@ -27329,18 +27230,38 @@
12
- 7
- 8
+ 1
+ 2
124
- 1266
- 1267
+ 6
+ 7
+ 124
+
+
+ 28
+ 29
+ 248
+
+
+ 61
+ 62
+ 124
+
+
+ 219
+ 220
+ 124
+
+
+ 1573
+ 1574
124
- 3759
- 3760
+ 3234
+ 3235
124
@@ -27399,23 +27320,23 @@
namequalifiers
- 3037638
+ 3042587
id
- 3037638
+ 3042587
qualifiableelement
- 3037638
+ 3042587
qualifyingelement
- 47419
+ 47729
location
- 551672
+ 554605
@@ -27429,7 +27350,7 @@
1
2
- 3037638
+ 3042587
@@ -27445,7 +27366,7 @@
1
2
- 3037638
+ 3042587
@@ -27461,7 +27382,7 @@
1
2
- 3037638
+ 3042587
@@ -27477,7 +27398,7 @@
1
2
- 3037638
+ 3042587
@@ -27493,7 +27414,7 @@
1
2
- 3037638
+ 3042587
@@ -27509,7 +27430,7 @@
1
2
- 3037638
+ 3042587
@@ -27525,27 +27446,27 @@
1
2
- 31498
+ 31447
2
3
- 8164
+ 8173
3
5
- 4103
+ 4140
5
- 6810
- 3566
+ 86
+ 3582
- 19018
+ 88
41956
- 85
+ 386
@@ -27561,27 +27482,27 @@
1
2
- 31498
+ 31447
2
3
- 8164
+ 8173
3
5
- 4103
+ 4140
5
- 6810
- 3566
+ 86
+ 3582
- 19018
+ 88
41956
- 85
+ 386
@@ -27597,22 +27518,22 @@
1
2
- 34356
+ 34665
2
3
- 7348
+ 7336
3
6
- 3566
+ 3582
6
20057
- 2148
+ 2145
@@ -27628,22 +27549,22 @@
1
2
- 79046
+ 79413
2
6
- 38030
+ 41015
6
7
- 398435
+ 397795
7
192
- 36160
+ 36381
@@ -27659,22 +27580,22 @@
1
2
- 79046
+ 79413
2
6
- 38030
+ 41015
6
7
- 398435
+ 397795
7
192
- 36160
+ 36381
@@ -27690,22 +27611,22 @@
1
2
- 111383
+ 114958
2
4
- 13278
+ 13321
4
5
- 414721
+ 414055
5
33
- 12289
+ 12270
@@ -27715,15 +27636,15 @@
varbind
- 8254733
+ 8255500
expr
- 8254733
+ 8255500
var
- 1050389
+ 1050486
@@ -27737,7 +27658,7 @@
1
2
- 8254733
+ 8255500
@@ -27753,52 +27674,52 @@
1
2
- 171538
+ 171553
2
3
- 188703
+ 188720
3
4
- 145649
+ 145663
4
5
- 116637
+ 116648
5
6
- 83152
+ 83159
6
7
- 65818
+ 65824
7
9
- 80816
+ 80823
9
13
- 81576
+ 81583
13
27
- 79128
+ 79135
27
5137
- 37369
+ 37372
@@ -27808,15 +27729,15 @@
funbind
- 5809904
+ 5805683
expr
- 5807433
+ 5803624
fun
- 275686
+ 275028
@@ -27830,12 +27751,12 @@
1
2
- 5804962
+ 5801564
2
3
- 2470
+ 2059
@@ -27851,27 +27772,27 @@
1
2
- 181298
+ 180900
2
3
- 38782
+ 38269
3
4
- 17167
+ 16882
4
8
- 22710
+ 22910
8
37798
- 15727
+ 16067
@@ -27881,19 +27802,19 @@
expr_allocator
- 45241
+ 44949
expr
- 45241
+ 44949
func
- 102
+ 101
form
- 34
+ 33
@@ -27907,7 +27828,7 @@
1
2
- 45241
+ 44949
@@ -27923,7 +27844,7 @@
1
2
- 45241
+ 44949
@@ -27939,17 +27860,17 @@
1
2
- 34
+ 33
591
592
- 34
+ 33
736
737
- 34
+ 33
@@ -27965,7 +27886,7 @@
1
2
- 102
+ 101
@@ -27981,7 +27902,7 @@
1328
1329
- 34
+ 33
@@ -27997,7 +27918,7 @@
3
4
- 34
+ 33
@@ -28007,19 +27928,19 @@
expr_deallocator
- 53826
+ 53479
expr
- 53826
+ 53479
func
- 102
+ 101
form
- 68
+ 67
@@ -28033,7 +27954,7 @@
1
2
- 53826
+ 53479
@@ -28049,7 +27970,7 @@
1
2
- 53826
+ 53479
@@ -28065,17 +27986,17 @@
1
2
- 34
+ 33
723
724
- 34
+ 33
856
857
- 34
+ 33
@@ -28091,7 +28012,7 @@
1
2
- 102
+ 101
@@ -28107,12 +28028,12 @@
723
724
- 34
+ 33
857
858
- 34
+ 33
@@ -28128,12 +28049,12 @@
1
2
- 34
+ 33
2
3
- 34
+ 33
@@ -28143,26 +28064,26 @@
expr_cond_two_operand
- 653
+ 650
cond
- 653
+ 650
expr_cond_guard
- 897887
+ 897971
cond
- 897887
+ 897971
guard
- 897887
+ 897971
@@ -28176,7 +28097,7 @@
1
2
- 897887
+ 897971
@@ -28192,7 +28113,7 @@
1
2
- 897887
+ 897971
@@ -28202,15 +28123,15 @@
expr_cond_true
- 897883
+ 897968
cond
- 897883
+ 897968
true
- 897883
+ 897968
@@ -28224,7 +28145,7 @@
1
2
- 897883
+ 897968
@@ -28240,7 +28161,7 @@
1
2
- 897883
+ 897968
@@ -28250,15 +28171,15 @@
expr_cond_false
- 897887
+ 897971
cond
- 897887
+ 897971
false
- 897887
+ 897971
@@ -28272,7 +28193,7 @@
1
2
- 897887
+ 897971
@@ -28288,7 +28209,7 @@
1
2
- 897887
+ 897971
@@ -28298,15 +28219,15 @@
values
- 13474772
+ 13541399
id
- 13474772
+ 13541399
str
- 114567
+ 113909
@@ -28320,7 +28241,7 @@
1
2
- 13474772
+ 13541399
@@ -28336,27 +28257,27 @@
1
2
- 78303
+ 77855
2
3
- 15301
+ 15207
3
6
- 8895
+ 8837
6
52
- 8629
+ 8579
52
- 674264
- 3437
+ 682255
+ 3429
@@ -28366,15 +28287,15 @@
valuetext
- 6647555
+ 6637514
id
- 6647555
+ 6637514
text
- 1095412
+ 1095316
@@ -28388,7 +28309,7 @@
1
2
- 6647555
+ 6637514
@@ -28404,22 +28325,22 @@
1
2
- 833985
+ 833959
2
3
- 146940
+ 146911
3
7
- 86537
+ 86574
7
- 593553
- 27950
+ 593717
+ 27872
@@ -28429,15 +28350,15 @@
valuebind
- 13583356
+ 13649549
val
- 13474772
+ 13541399
expr
- 13583356
+ 13649549
@@ -28451,12 +28372,12 @@
1
2
- 13384216
+ 13451241
2
6
- 90555
+ 90157
@@ -28472,7 +28393,7 @@
1
2
- 13583356
+ 13649549
@@ -28482,15 +28403,15 @@
fieldoffsets
- 1499494
+ 1500528
id
- 1499494
+ 1500528
byteoffset
- 31367
+ 31369
bitoffset
@@ -28508,7 +28429,7 @@
1
2
- 1499494
+ 1500528
@@ -28524,7 +28445,7 @@
1
2
- 1499494
+ 1500528
@@ -28540,7 +28461,7 @@
1
2
- 17698
+ 17700
2
@@ -28555,7 +28476,7 @@
5
12
- 2613
+ 2614
12
@@ -28569,7 +28490,7 @@
250
- 5966
+ 5971
1089
@@ -28586,12 +28507,12 @@
1
2
- 30387
+ 30335
2
9
- 980
+ 1034
@@ -28615,8 +28536,8 @@
54
- 44
- 45
+ 45
+ 46
54
@@ -28630,18 +28551,18 @@
54
- 64
- 65
+ 65
+ 66
54
- 81
- 82
+ 82
+ 83
54
- 27179
- 27180
+ 27193
+ 27194
54
@@ -28663,11 +28584,16 @@
13
14
- 108
+ 54
14
15
+ 54
+
+
+ 15
+ 16
108
@@ -28683,19 +28609,19 @@
bitfield
- 30313
+ 30240
id
- 30313
+ 30240
bits
- 3492
+ 3484
declared_bits
- 3492
+ 3484
@@ -28709,7 +28635,7 @@
1
2
- 30313
+ 30240
@@ -28725,7 +28651,7 @@
1
2
- 30313
+ 30240
@@ -28741,42 +28667,42 @@
1
2
- 997
+ 995
2
3
- 748
+ 746
3
4
- 249
+ 248
4
5
- 498
+ 497
5
7
- 249
+ 248
8
9
- 249
+ 248
9
11
- 249
+ 248
13
143
- 249
+ 248
@@ -28792,7 +28718,7 @@
1
2
- 3492
+ 3484
@@ -28808,42 +28734,42 @@
1
2
- 997
+ 995
2
3
- 748
+ 746
3
4
- 249
+ 248
4
5
- 498
+ 497
5
7
- 249
+ 248
8
9
- 249
+ 248
9
11
- 249
+ 248
13
143
- 249
+ 248
@@ -28859,7 +28785,7 @@
1
2
- 3492
+ 3484
@@ -28869,23 +28795,23 @@
initialisers
- 2247637
+ 2244826
init
- 2247637
+ 2244826
var
- 979696
+ 978849
expr
- 2247637
+ 2244826
location
- 516295
+ 515723
@@ -28899,7 +28825,7 @@
1
2
- 2247637
+ 2244826
@@ -28915,7 +28841,7 @@
1
2
- 2247637
+ 2244826
@@ -28931,7 +28857,7 @@
1
2
- 2247637
+ 2244826
@@ -28947,17 +28873,17 @@
1
2
- 869453
+ 868819
2
15
- 37398
+ 37292
16
25
- 72843
+ 72737
@@ -28973,17 +28899,17 @@
1
2
- 869453
+ 868819
2
15
- 37398
+ 37292
16
25
- 72843
+ 72737
@@ -28999,7 +28925,7 @@
1
2
- 979688
+ 978841
2
@@ -29020,7 +28946,7 @@
1
2
- 2247637
+ 2244826
@@ -29036,7 +28962,7 @@
1
2
- 2247637
+ 2244826
@@ -29052,7 +28978,7 @@
1
2
- 2247637
+ 2244826
@@ -29068,22 +28994,22 @@
1
2
- 414608
+ 414196
2
3
- 33555
+ 33502
3
13
- 42013
+ 41940
13
111925
- 26119
+ 26084
@@ -29099,17 +29025,17 @@
1
2
- 443873
+ 443422
2
3
- 34463
+ 34409
3
- 12238
- 37958
+ 12247
+ 37891
@@ -29125,22 +29051,22 @@
1
2
- 414608
+ 414196
2
3
- 33555
+ 33502
3
13
- 42013
+ 41940
13
111925
- 26119
+ 26084
@@ -29150,26 +29076,26 @@
braced_initialisers
- 68305
+ 67626
init
- 68305
+ 67626
expr_ancestor
- 1675301
+ 1672612
exp
- 1675301
+ 1672612
ancestor
- 838467
+ 837121
@@ -29183,7 +29109,7 @@
1
2
- 1675301
+ 1672612
@@ -29199,17 +29125,17 @@
1
2
- 17059
+ 17032
2
3
- 811351
+ 810049
3
19
- 10055
+ 10039
@@ -29219,11 +29145,11 @@
exprs
- 25210887
+ 25213256
id
- 25210887
+ 25213256
kind
@@ -29231,7 +29157,7 @@
location
- 10585988
+ 10586808
@@ -29245,7 +29171,7 @@
1
2
- 25210887
+ 25213256
@@ -29261,7 +29187,7 @@
1
2
- 25210887
+ 25213256
@@ -29336,7 +29262,7 @@
63936
- 144106
+ 144093
109
@@ -29439,22 +29365,22 @@
1
2
- 8903998
+ 8904642
2
3
- 820618
+ 820704
3
16
- 797208
+ 797292
16
71733
- 64162
+ 64169
@@ -29470,17 +29396,17 @@
1
2
- 9043402
+ 9044060
2
3
- 774282
+ 774363
3
32
- 768303
+ 768384
@@ -29490,15 +29416,15 @@
expr_reuse
- 845836
+ 844479
reuse
- 845836
+ 844479
original
- 845836
+ 844479
value_category
@@ -29516,7 +29442,7 @@
1
2
- 845836
+ 844479
@@ -29532,7 +29458,7 @@
1
2
- 845836
+ 844479
@@ -29548,7 +29474,7 @@
1
2
- 845836
+ 844479
@@ -29564,7 +29490,7 @@
1
2
- 845836
+ 844479
@@ -29616,15 +29542,15 @@
expr_types
- 25210887
+ 25213256
id
- 25210887
+ 25213256
typeid
- 214205
+ 214227
value_category
@@ -29642,7 +29568,7 @@
1
2
- 25210887
+ 25213256
@@ -29658,7 +29584,7 @@
1
2
- 25210887
+ 25213256
@@ -29674,52 +29600,52 @@
1
2
- 52512
+ 52518
2
3
- 35191
+ 35195
3
4
- 14507
+ 14509
4
5
- 14529
+ 14530
5
8
- 17562
+ 17564
8
14
- 17387
+ 17388
14
24
- 16441
+ 16443
24
49
- 16068
+ 16069
49
134
- 16178
+ 16179
134
- 441505
- 13826
+ 441492
+ 13827
@@ -29735,12 +29661,12 @@
1
2
- 185915
+ 185935
2
3
- 28289
+ 28292
@@ -29759,8 +29685,8 @@
21
- 993192
- 993193
+ 993180
+ 993181
21
@@ -29803,15 +29729,15 @@
new_allocated_type
- 46195
+ 45897
expr
- 46195
+ 45897
type_id
- 27390
+ 27213
@@ -29825,7 +29751,7 @@
1
2
- 46195
+ 45897
@@ -29841,17 +29767,17 @@
1
2
- 11514
+ 11440
2
3
- 14478
+ 14385
3
19
- 1396
+ 1387
@@ -29861,15 +29787,15 @@
new_array_allocated_type
- 6641
+ 6632
expr
- 6641
+ 6632
type_id
- 2838
+ 2834
@@ -29883,7 +29809,7 @@
1
2
- 6641
+ 6632
@@ -29904,7 +29830,7 @@
2
3
- 2505
+ 2502
3
@@ -29924,19 +29850,19 @@
aggregate_field_init
- 5717381
+ 5717382
aggregate
- 1243069
+ 1243070
initializer
- 5717203
+ 5717204
field
- 3228
+ 3229
position
@@ -29958,7 +29884,7 @@
1
2
- 19691
+ 19692
2
@@ -30009,7 +29935,7 @@
1
2
- 19687
+ 19688
2
@@ -30060,7 +29986,7 @@
1
2
- 19691
+ 19692
2
@@ -30111,7 +30037,7 @@
1
2
- 1242987
+ 1242988
2
@@ -30132,7 +30058,7 @@
1
2
- 5717203
+ 5717204
@@ -30148,7 +30074,7 @@
1
2
- 5717025
+ 5717026
2
@@ -30169,7 +30095,7 @@
1
2
- 5717203
+ 5717204
@@ -30185,7 +30111,7 @@
1
2
- 5717203
+ 5717204
@@ -30201,7 +30127,7 @@
1
2
- 1434
+ 1435
2
@@ -30257,7 +30183,7 @@
1
2
- 1434
+ 1435
2
@@ -30313,7 +30239,7 @@
1
2
- 3214
+ 3215
2
@@ -30334,7 +30260,7 @@
1
2
- 3202
+ 3203
2
@@ -30408,8 +30334,8 @@
2
- 1243069
- 1243070
+ 1243070
+ 1243071
1
@@ -30479,8 +30405,8 @@
2
- 1243069
- 1243070
+ 1243070
+ 1243071
1
@@ -30550,8 +30476,8 @@
2
- 1284
- 1285
+ 1285
+ 1286
1
@@ -30592,8 +30518,8 @@
1
- 1242671
- 1242672
+ 1242672
+ 1242673
1
@@ -30613,8 +30539,8 @@
1
- 5716493
- 5716494
+ 5716494
+ 5716495
1
@@ -30634,8 +30560,8 @@
1
- 3036
- 3037
+ 3037
+ 3038
1
@@ -31260,15 +31186,15 @@
condition_decl_bind
- 408340
+ 407684
expr
- 408340
+ 407684
decl
- 408340
+ 407684
@@ -31282,7 +31208,7 @@
1
2
- 408340
+ 407684
@@ -31298,7 +31224,7 @@
1
2
- 408340
+ 407684
@@ -31308,15 +31234,15 @@
typeid_bind
- 47899
+ 47590
expr
- 47899
+ 47590
type_id
- 15943
+ 15840
@@ -31330,7 +31256,7 @@
1
2
- 47899
+ 47590
@@ -31346,17 +31272,17 @@
1
2
- 2963
+ 2944
2
3
- 12570
+ 12489
3
328
- 408
+ 406
@@ -31366,15 +31292,15 @@
uuidof_bind
- 26695
+ 26691
expr
- 26695
+ 26691
type_id
- 26443
+ 26440
@@ -31388,7 +31314,7 @@
1
2
- 26695
+ 26691
@@ -31404,7 +31330,7 @@
1
2
- 26232
+ 26229
2
@@ -31419,15 +31345,15 @@
sizeof_bind
- 242030
+ 241830
expr
- 242030
+ 241830
type_id
- 11210
+ 11145
@@ -31441,7 +31367,7 @@
1
2
- 242030
+ 241830
@@ -31457,42 +31383,42 @@
1
2
- 3877
+ 3855
2
3
- 2783
+ 2750
3
4
- 1024
+ 1018
4
5
- 1140
+ 1104
5
6
- 295
+ 281
6
7
- 1064
+ 1116
7
- 40
- 856
+ 42
+ 851
- 40
+ 42
6061
- 167
+ 166
@@ -31550,11 +31476,11 @@
lambdas
- 19023
+ 18998
expr
- 19023
+ 18998
default_capture
@@ -31580,7 +31506,7 @@
1
2
- 19023
+ 18998
@@ -31596,7 +31522,7 @@
1
2
- 19023
+ 18998
@@ -31612,7 +31538,7 @@
1
2
- 19023
+ 18998
@@ -31796,15 +31722,15 @@
lambda_capture
- 31909
+ 31866
id
- 31909
+ 31866
lambda
- 15463
+ 15443
index
@@ -31812,7 +31738,7 @@
field
- 31909
+ 31866
captured_by_reference
@@ -31824,7 +31750,7 @@
location
- 17912
+ 17888
@@ -31838,7 +31764,7 @@
1
2
- 31909
+ 31866
@@ -31854,7 +31780,7 @@
1
2
- 31909
+ 31866
@@ -31870,7 +31796,7 @@
1
2
- 31909
+ 31866
@@ -31886,7 +31812,7 @@
1
2
- 31909
+ 31866
@@ -31902,7 +31828,7 @@
1
2
- 31909
+ 31866
@@ -31918,7 +31844,7 @@
1
2
- 31909
+ 31866
@@ -31934,27 +31860,27 @@
1
2
- 8198
+ 8187
2
3
- 3535
+ 3530
3
4
- 1654
+ 1652
4
6
- 1256
+ 1255
6
18
- 819
+ 817
@@ -31970,27 +31896,27 @@
1
2
- 8198
+ 8187
2
3
- 3535
+ 3530
3
4
- 1654
+ 1652
4
6
- 1256
+ 1255
6
18
- 819
+ 817
@@ -32006,27 +31932,27 @@
1
2
- 8198
+ 8187
2
3
- 3535
+ 3530
3
4
- 1654
+ 1652
4
6
- 1256
+ 1255
6
18
- 819
+ 817
@@ -32042,12 +31968,12 @@
1
2
- 14223
+ 14204
2
3
- 1240
+ 1239
@@ -32063,7 +31989,7 @@
1
2
- 15342
+ 15321
2
@@ -32084,27 +32010,27 @@
1
2
- 8790
+ 8778
2
3
- 3689
+ 3684
3
4
- 1386
+ 1384
4
7
- 1289
+ 1287
7
18
- 308
+ 307
@@ -32429,7 +32355,7 @@
1
2
- 81
+ 80
2
@@ -32546,7 +32472,7 @@
1
2
- 31909
+ 31866
@@ -32562,7 +32488,7 @@
1
2
- 31909
+ 31866
@@ -32578,7 +32504,7 @@
1
2
- 31909
+ 31866
@@ -32594,7 +32520,7 @@
1
2
- 31909
+ 31866
@@ -32610,7 +32536,7 @@
1
2
- 31909
+ 31866
@@ -32626,7 +32552,7 @@
1
2
- 31909
+ 31866
@@ -32884,17 +32810,17 @@
1
2
- 15666
+ 15645
2
6
- 1435
+ 1433
6
68
- 810
+ 809
@@ -32910,12 +32836,12 @@
1
2
- 16242
+ 16220
2
13
- 1467
+ 1465
13
@@ -32936,12 +32862,12 @@
1
2
- 17223
+ 17200
2
8
- 689
+ 688
@@ -32957,17 +32883,17 @@
1
2
- 15666
+ 15645
2
6
- 1435
+ 1433
6
68
- 810
+ 809
@@ -32983,7 +32909,7 @@
1
2
- 17888
+ 17864
2
@@ -33004,7 +32930,7 @@
1
2
- 17912
+ 17888
@@ -33014,11 +32940,11 @@
fold
- 1246
+ 1244
expr
- 1246
+ 1244
operator
@@ -33040,7 +32966,7 @@
1
2
- 1246
+ 1244
@@ -33056,7 +32982,7 @@
1
2
- 1246
+ 1244
@@ -33140,19 +33066,19 @@
stmts
- 6358201
+ 6349655
id
- 6358201
+ 6349655
kind
- 162
+ 161
location
- 2679769
+ 2676167
@@ -33166,7 +33092,7 @@
1
2
- 6358201
+ 6349655
@@ -33182,7 +33108,7 @@
1
2
- 6358201
+ 6349655
@@ -33420,22 +33346,22 @@
1
2
- 2221080
+ 2218094
2
3
- 181910
+ 181666
3
10
- 201818
+ 201547
10
1789
- 74960
+ 74859
@@ -33451,12 +33377,12 @@
1
2
- 2596951
+ 2593460
2
10
- 82817
+ 82706
@@ -33573,15 +33499,15 @@
if_initialization
- 374
+ 373
if_stmt
- 374
+ 373
init_id
- 374
+ 373
@@ -33595,7 +33521,7 @@
1
2
- 374
+ 373
@@ -33611,7 +33537,7 @@
1
2
- 374
+ 373
@@ -33621,15 +33547,15 @@
if_then
- 990227
+ 990318
if_stmt
- 990227
+ 990318
then_id
- 990227
+ 990318
@@ -33643,7 +33569,7 @@
1
2
- 990227
+ 990318
@@ -33659,7 +33585,7 @@
1
2
- 990227
+ 990318
@@ -33669,15 +33595,15 @@
if_else
- 436486
+ 435786
if_stmt
- 436486
+ 435786
else_id
- 436486
+ 435786
@@ -33691,7 +33617,7 @@
1
2
- 436486
+ 435786
@@ -33707,7 +33633,7 @@
1
2
- 436486
+ 435786
@@ -33765,15 +33691,15 @@
constexpr_if_then
- 106035
+ 105781
constexpr_if_stmt
- 106035
+ 105781
then_id
- 106035
+ 105781
@@ -33787,7 +33713,7 @@
1
2
- 106035
+ 105781
@@ -33803,7 +33729,7 @@
1
2
- 106035
+ 105781
@@ -33813,15 +33739,15 @@
constexpr_if_else
- 76095
+ 75913
constexpr_if_stmt
- 76095
+ 75913
else_id
- 76095
+ 75913
@@ -33835,7 +33761,7 @@
1
2
- 76095
+ 75913
@@ -33851,7 +33777,7 @@
1
2
- 76095
+ 75913
@@ -33957,15 +33883,15 @@
while_body
- 39648
+ 39652
while_stmt
- 39648
+ 39652
body_id
- 39648
+ 39652
@@ -33979,7 +33905,7 @@
1
2
- 39648
+ 39652
@@ -33995,7 +33921,7 @@
1
2
- 39648
+ 39652
@@ -34005,15 +33931,15 @@
do_body
- 233644
+ 232290
do_stmt
- 233644
+ 232290
body_id
- 233644
+ 232290
@@ -34027,7 +33953,7 @@
1
2
- 233644
+ 232290
@@ -34043,7 +33969,7 @@
1
2
- 233644
+ 232290
@@ -34101,11 +34027,11 @@
switch_case
- 834964
+ 833624
switch_stmt
- 411283
+ 410623
index
@@ -34113,7 +34039,7 @@
case_id
- 834964
+ 833624
@@ -34132,12 +34058,12 @@
2
3
- 408404
+ 407749
3
19
- 2857
+ 2853
@@ -34158,12 +34084,12 @@
2
3
- 408404
+ 407749
3
19
- 2857
+ 2853
@@ -34321,7 +34247,7 @@
1
2
- 834964
+ 833624
@@ -34337,7 +34263,7 @@
1
2
- 834964
+ 833624
@@ -34347,15 +34273,15 @@
switch_body
- 411283
+ 410623
switch_stmt
- 411283
+ 410623
body_id
- 411283
+ 410623
@@ -34369,7 +34295,7 @@
1
2
- 411283
+ 410623
@@ -34385,7 +34311,7 @@
1
2
- 411283
+ 410623
@@ -34395,15 +34321,15 @@
for_initialization
- 73246
+ 73253
for_stmt
- 73246
+ 73253
init_id
- 73246
+ 73253
@@ -34417,7 +34343,7 @@
1
2
- 73246
+ 73253
@@ -34433,7 +34359,7 @@
1
2
- 73246
+ 73253
@@ -34443,15 +34369,15 @@
for_condition
- 76342
+ 76349
for_stmt
- 76342
+ 76349
condition_id
- 76342
+ 76349
@@ -34465,7 +34391,7 @@
1
2
- 76342
+ 76349
@@ -34481,7 +34407,7 @@
1
2
- 76342
+ 76349
@@ -34491,15 +34417,15 @@
for_update
- 73387
+ 73394
for_stmt
- 73387
+ 73394
update_id
- 73387
+ 73394
@@ -34513,7 +34439,7 @@
1
2
- 73387
+ 73394
@@ -34529,7 +34455,7 @@
1
2
- 73387
+ 73394
@@ -34539,15 +34465,15 @@
for_body
- 84390
+ 84398
for_stmt
- 84390
+ 84398
body_id
- 84390
+ 84398
@@ -34561,7 +34487,7 @@
1
2
- 84390
+ 84398
@@ -34577,7 +34503,7 @@
1
2
- 84390
+ 84398
@@ -34587,19 +34513,19 @@
stmtparents
- 5618647
+ 5611095
id
- 5618647
+ 5611095
index
- 15747
+ 15726
parent
- 2377536
+ 2374340
@@ -34613,7 +34539,7 @@
1
2
- 5618647
+ 5611095
@@ -34629,7 +34555,7 @@
1
2
- 5618647
+ 5611095
@@ -34645,12 +34571,12 @@
1
2
- 5173
+ 5166
2
3
- 1289
+ 1287
3
@@ -34660,37 +34586,37 @@
4
5
- 2002
+ 2000
7
8
- 1313
+ 1311
8
12
- 1021
+ 1020
12
29
- 1386
+ 1384
29
39
- 1183
+ 1182
42
78
- 1192
+ 1190
78
209703
- 900
+ 898
@@ -34706,12 +34632,12 @@
1
2
- 5173
+ 5166
2
3
- 1289
+ 1287
3
@@ -34721,37 +34647,37 @@
4
5
- 2002
+ 2000
7
8
- 1313
+ 1311
8
12
- 1021
+ 1020
12
29
- 1386
+ 1384
29
39
- 1183
+ 1182
42
78
- 1192
+ 1190
78
209703
- 900
+ 898
@@ -34767,32 +34693,32 @@
1
2
- 1356881
+ 1355057
2
3
- 516458
+ 515763
3
4
- 151250
+ 151046
4
6
- 155450
+ 155241
6
16
- 178553
+ 178313
16
1943
- 18942
+ 18917
@@ -34808,32 +34734,32 @@
1
2
- 1356881
+ 1355057
2
3
- 516458
+ 515763
3
4
- 151250
+ 151046
4
6
- 155450
+ 155241
6
16
- 178553
+ 178313
16
1943
- 18942
+ 18917
@@ -34843,22 +34769,22 @@
ishandler
- 43779
+ 43261
block
- 43779
+ 43261
stmt_decl_bind
- 724593
+ 723619
stmt
- 714043
+ 713083
num
@@ -34866,7 +34792,7 @@
decl
- 724593
+ 723619
@@ -34880,12 +34806,12 @@
1
2
- 706591
+ 705641
2
10
- 7452
+ 7442
@@ -34901,12 +34827,12 @@
1
2
- 706591
+ 705641
2
10
- 7452
+ 7442
@@ -35034,7 +34960,7 @@
1
2
- 724593
+ 723619
@@ -35050,7 +34976,7 @@
1
2
- 724593
+ 723619
@@ -35060,11 +34986,11 @@
stmt_decl_entry_bind
- 724593
+ 723619
stmt
- 714043
+ 713083
num
@@ -35072,7 +34998,7 @@
decl_entry
- 724593
+ 723619
@@ -35086,12 +35012,12 @@
1
2
- 706591
+ 705641
2
10
- 7452
+ 7442
@@ -35107,12 +35033,12 @@
1
2
- 706591
+ 705641
2
10
- 7452
+ 7442
@@ -35240,7 +35166,7 @@
1
2
- 724593
+ 723619
@@ -35256,7 +35182,7 @@
1
2
- 724593
+ 723619
@@ -35266,15 +35192,15 @@
blockscope
- 1644291
+ 1640355
block
- 1644291
+ 1640355
enclosing
- 1427106
+ 1423690
@@ -35288,7 +35214,7 @@
1
2
- 1644291
+ 1640355
@@ -35304,17 +35230,17 @@
1
2
- 1294500
+ 1291401
2
4
- 117262
+ 116981
4
29
- 15343
+ 15307
@@ -35324,19 +35250,19 @@
jumpinfo
- 348325
+ 348211
id
- 348325
+ 348211
str
- 28949
+ 28939
target
- 72707
+ 72683
@@ -35350,7 +35276,7 @@
1
2
- 348325
+ 348211
@@ -35366,7 +35292,7 @@
1
2
- 348325
+ 348211
@@ -35382,17 +35308,17 @@
2
3
- 13597
+ 13592
3
4
- 6058
+ 6056
4
5
- 2014
+ 2013
5
@@ -35407,7 +35333,7 @@
10
25
- 2189
+ 2188
25
@@ -35428,17 +35354,17 @@
1
2
- 23191
+ 23183
2
3
- 3626
+ 3625
3
3321
- 2131
+ 2130
@@ -35459,27 +35385,27 @@
2
3
- 36211
+ 36199
3
4
- 17633
+ 17627
4
5
- 7379
+ 7376
5
8
- 6418
+ 6416
8
2124
- 5030
+ 5029
@@ -35495,7 +35421,7 @@
1
2
- 72707
+ 72683
@@ -35505,19 +35431,19 @@
preprocdirects
- 5408285
+ 5395213
id
- 5408285
+ 5395213
kind
- 1372
+ 1368
location
- 5405041
+ 5392102
@@ -35531,7 +35457,7 @@
1
2
- 5408285
+ 5395213
@@ -35547,7 +35473,7 @@
1
2
- 5408285
+ 5395213
@@ -35611,8 +35537,8 @@
124
- 22045
- 22046
+ 22044
+ 22045
124
@@ -35695,11 +35621,11 @@
1
2
- 5404916
+ 5391977
- 27
- 28
+ 26
+ 27
124
@@ -35716,7 +35642,7 @@
1
2
- 5405041
+ 5392102
@@ -35726,15 +35652,15 @@
preprocpair
- 1141186
+ 1138454
begin
- 888947
+ 886819
elseelifend
- 1141186
+ 1138454
@@ -35748,17 +35674,17 @@
1
2
- 649558
+ 648003
2
3
- 230407
+ 229856
3
9
- 8981
+ 8960
@@ -35774,7 +35700,7 @@
1
2
- 1141186
+ 1138454
@@ -35784,41 +35710,41 @@
preproctrue
- 439359
+ 438182
branch
- 439359
+ 438182
preprocfalse
- 285296
+ 284613
branch
- 285296
+ 284613
preproctext
- 4352301
+ 4341757
id
- 4352301
+ 4341757
head
- 2955008
+ 2947934
body
- 1683337
+ 1679307
@@ -35832,7 +35758,7 @@
1
2
- 4352301
+ 4341757
@@ -35848,7 +35774,7 @@
1
2
- 4352301
+ 4341757
@@ -35864,12 +35790,12 @@
1
2
- 2756411
+ 2749812
2
798
- 198597
+ 198121
@@ -35885,12 +35811,12 @@
1
2
- 2873798
+ 2866918
2
5
- 81210
+ 81015
@@ -35906,17 +35832,17 @@
1
2
- 1535137
+ 1531462
2
10
- 127242
+ 126937
10
- 13606
- 20957
+ 13605
+ 20907
@@ -35932,17 +35858,17 @@
1
2
- 1539379
+ 1535693
2
12
- 126867
+ 126564
12
3246
- 17090
+ 17049
@@ -35952,15 +35878,15 @@
includes
- 318598
+ 317353
id
- 318598
+ 317353
included
- 58688
+ 58459
@@ -35974,7 +35900,7 @@
1
2
- 318598
+ 317353
@@ -35990,37 +35916,37 @@
1
2
- 29043
+ 28929
2
3
- 9441
+ 9404
3
4
- 4953
+ 4933
4
6
- 5354
+ 5333
6
11
- 4520
+ 4502
11
47
- 4403
+ 4386
47
793
- 971
+ 967
@@ -36078,15 +36004,15 @@
link_parent
- 30401054
+ 30225687
element
- 3866469
+ 3843833
link_target
- 340
+ 338
@@ -36100,17 +36026,17 @@
1
2
- 530500
+ 527079
2
9
- 26947
+ 26773
9
10
- 3309021
+ 3289980
@@ -36126,52 +36052,52 @@
3
4
- 34
+ 33
- 97389
- 97390
- 34
+ 97457
+ 97458
+ 33
- 97508
- 97509
- 34
+ 97576
+ 97577
+ 33
- 97561
- 97562
- 34
+ 97629
+ 97630
+ 33
- 97588
- 97589
- 34
+ 97656
+ 97657
+ 33
- 97610
- 97611
- 34
+ 97678
+ 97679
+ 33
- 97642
- 97643
- 34
+ 97710
+ 97711
+ 33
- 99649
- 99650
- 34
+ 99717
+ 99718
+ 33
- 103029
- 103030
- 34
+ 103097
+ 103098
+ 33
- 104395
- 104396
- 34
+ 104463
+ 104464
+ 33
@@ -36179,6 +36105,53 @@
+
+ databaseMetadata
+ 1
+
+
+ metadataKey
+ 1
+
+
+ value
+ 1
+
+
+
+
+ metadataKey
+ value
+
+
+ 12
+
+
+
+
+
+ value
+ metadataKey
+
+
+ 12
+
+
+
+
+
+
+
+ overlayChangedFiles
+ 50
+
+
+ path
+ 50
+
+
+
+
xmlEncoding
39724
diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql
new file mode 100644
index 000000000000..86f807fba3b2
--- /dev/null
+++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/builtintypes.ql
@@ -0,0 +1,11 @@
+class BuiltinType extends @builtintype {
+ string toString() { none() }
+}
+
+predicate isDecimalBuiltinType(BuiltinType type) { builtintypes(type, _, [40, 41, 42], _, _, _) }
+
+from BuiltinType type, string name, int kind, int kind_new, int size, int sign, int alignment
+where
+ builtintypes(type, name, kind, size, sign, alignment) and
+ if isDecimalBuiltinType(type) then kind_new = 1 else kind_new = kind
+select type, name, kind_new, size, sign, alignment
diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme
new file mode 100644
index 000000000000..a42ce5fc9432
--- /dev/null
+++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/old.dbscheme
@@ -0,0 +1,2469 @@
+
+/*- Compilations -*/
+
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ */
+ unique int id : @compilation,
+ string cwd : string ref
+);
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--mimic`
+ * 2 | `/usr/bin/gcc`
+ * 3 | `-c`
+ * 4 | f1.c
+ * 5 | f2.c
+ * 6 | f3.c
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * Optionally, record the build mode for each compilation.
+ */
+compilation_build_mode(
+ unique int id : @compilation ref,
+ int mode : int ref
+);
+
+/*
+case @compilation_build_mode.mode of
+ 0 = @build_mode_none
+| 1 = @build_mode_manual
+| 2 = @build_mode_auto
+;
+*/
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | f1.c
+ * 1 | f2.c
+ * 2 | f3.c
+ *
+ * Note that even if those files `#include` headers, those headers
+ * do not appear as rows.
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/*- External data -*/
+
+/**
+ * External data, loaded from CSV files during snapshot creation. See
+ * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data)
+ * for more information.
+ */
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+/*- Source location prefix -*/
+
+/**
+ * The source location of the snapshot.
+ */
+sourceLocationPrefix(string prefix : string ref);
+
+/*- Files and folders -*/
+
+/**
+ * The location of an element.
+ * The location spans column `startcolumn` of line `startline` to
+ * column `endcolumn` of line `endline` in file `file`.
+ * For more information, see
+ * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
+ */
+locations_default(
+ unique int id: @location_default,
+ int file: @file ref,
+ int beginLine: int ref,
+ int beginColumn: int ref,
+ int endLine: int ref,
+ int endColumn: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @file | @folder
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*- Lines of code -*/
+
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+/*- Diagnostic messages -*/
+
+diagnostics(
+ unique int id: @diagnostic,
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/*- C++ dbscheme -*/
+
+extractor_version(
+ string codeql_version: string ref,
+ string frontend_version: string ref
+)
+
+pch_uses(
+ int pch: @pch ref,
+ int compilation: @compilation ref,
+ int id: @file ref
+)
+
+#keyset[pch, compilation]
+pch_creations(
+ int pch: @pch,
+ int compilation: @compilation ref,
+ int from: @file ref
+)
+
+/** An element for which line-count information is available. */
+@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable;
+
+fileannotations(
+ int id: @file ref,
+ int kind: int ref,
+ string name: string ref,
+ string value: string ref
+);
+
+inmacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+affectedbymacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+case @macroinvocation.kind of
+ 1 = @macro_expansion
+| 2 = @other_macro_reference
+;
+
+macroinvocations(
+ unique int id: @macroinvocation,
+ int macro_id: @ppd_define ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+macroparent(
+ unique int id: @macroinvocation ref,
+ int parent_id: @macroinvocation ref
+);
+
+// a macroinvocation may be part of another location
+// the way to find a constant expression that uses a macro
+// is thus to find a constant expression that has a location
+// to which a macro invocation is bound
+macrolocationbind(
+ int id: @macroinvocation ref,
+ int location: @location_default ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_unexpanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_expanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+case @function.kind of
+ 0 = @unknown_function
+| 1 = @normal_function
+| 2 = @constructor
+| 3 = @destructor
+| 4 = @conversion_function
+| 5 = @operator
+// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk
+| 7 = @user_defined_literal
+| 8 = @deduction_guide
+;
+
+functions(
+ unique int id: @function,
+ string name: string ref,
+ int kind: int ref
+);
+
+builtin_functions(
+ int id: @function ref
+)
+
+function_entry_point(
+ int id: @function ref,
+ unique int entry_point: @stmt ref
+);
+
+function_return_type(
+ int id: @function ref,
+ int return_type: @type ref
+);
+
+/**
+ * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits`
+ * instance associated with it, and the variables representing the `handle` and `promise`
+ * for it.
+ */
+coroutine(
+ unique int function: @function ref,
+ int traits: @type ref
+);
+
+/*
+case @coroutine_placeholder_variable.kind of
+ 1 = @handle
+| 2 = @promise
+| 3 = @init_await_resume
+;
+*/
+
+coroutine_placeholder_variable(
+ unique int placeholder_variable: @variable ref,
+ int kind: int ref,
+ int function: @function ref
+)
+
+/** The `new` function used for allocating the coroutine state, if any. */
+coroutine_new(
+ unique int function: @function ref,
+ int new: @function ref
+);
+
+/** The `delete` function used for deallocating the coroutine state, if any. */
+coroutine_delete(
+ unique int function: @function ref,
+ int delete: @function ref
+);
+
+purefunctions(unique int id: @function ref);
+
+function_deleted(unique int id: @function ref);
+
+function_defaulted(unique int id: @function ref);
+
+function_prototyped(unique int id: @function ref)
+
+deduction_guide_for_class(
+ int id: @function ref,
+ int class_template: @usertype ref
+)
+
+member_function_this_type(
+ unique int id: @function ref,
+ int this_type: @type ref
+);
+
+#keyset[id, type_id]
+fun_decls(
+ int id: @fun_decl,
+ int function: @function ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+fun_def(unique int id: @fun_decl ref);
+fun_specialized(unique int id: @fun_decl ref);
+fun_implicit(unique int id: @fun_decl ref);
+fun_decl_specifiers(
+ int id: @fun_decl ref,
+ string name: string ref
+)
+#keyset[fun_decl, index]
+fun_decl_throws(
+ int fun_decl: @fun_decl ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+/* an empty throw specification is different from none */
+fun_decl_empty_throws(unique int fun_decl: @fun_decl ref);
+fun_decl_noexcept(
+ int fun_decl: @fun_decl ref,
+ int constant: @expr ref
+);
+fun_decl_empty_noexcept(int fun_decl: @fun_decl ref);
+fun_decl_typedef_type(
+ unique int fun_decl: @fun_decl ref,
+ int typedeftype_id: @usertype ref
+);
+
+/*
+case @fun_requires.kind of
+ 1 = @template_attached
+| 2 = @function_attached
+;
+*/
+
+fun_requires(
+ int id: @fun_decl ref,
+ int kind: int ref,
+ int constraint: @expr ref
+);
+
+param_decl_bind(
+ unique int id: @var_decl ref,
+ int index: int ref,
+ int fun_decl: @fun_decl ref
+);
+
+#keyset[id, type_id]
+var_decls(
+ int id: @var_decl,
+ int variable: @variable ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+var_def(unique int id: @var_decl ref);
+var_specialized(int id: @var_decl ref);
+var_decl_specifiers(
+ int id: @var_decl ref,
+ string name: string ref
+)
+is_structured_binding(unique int id: @variable ref);
+var_requires(
+ int id: @var_decl ref,
+ int constraint: @expr ref
+);
+
+type_decls(
+ unique int id: @type_decl,
+ int type_id: @type ref,
+ int location: @location_default ref
+);
+type_def(unique int id: @type_decl ref);
+type_decl_top(
+ unique int type_decl: @type_decl ref
+);
+type_requires(
+ int id: @type_decl ref,
+ int constraint: @expr ref
+);
+
+namespace_decls(
+ unique int id: @namespace_decl,
+ int namespace_id: @namespace ref,
+ int location: @location_default ref,
+ int bodylocation: @location_default ref
+);
+
+case @using.kind of
+ 1 = @using_declaration
+| 2 = @using_directive
+| 3 = @using_enum_declaration
+;
+
+usings(
+ unique int id: @using,
+ int element_id: @element ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+/** The element which contains the `using` declaration. */
+using_container(
+ int parent: @element ref,
+ int child: @using ref
+);
+
+static_asserts(
+ unique int id: @static_assert,
+ int condition : @expr ref,
+ string message : string ref,
+ int location: @location_default ref,
+ int enclosing : @element ref
+);
+
+// each function has an ordered list of parameters
+#keyset[id, type_id]
+#keyset[function, index, type_id]
+params(
+ int id: @parameter,
+ int function: @parameterized_element ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+overrides(
+ int new: @function ref,
+ int old: @function ref
+);
+
+#keyset[id, type_id]
+membervariables(
+ int id: @membervariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+globalvariables(
+ int id: @globalvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+localvariables(
+ int id: @localvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+autoderivation(
+ unique int var: @variable ref,
+ int derivation_type: @type ref
+);
+
+orphaned_variables(
+ int var: @localvariable ref,
+ int function: @function ref
+)
+
+enumconstants(
+ unique int id: @enumconstant,
+ int parent: @usertype ref,
+ int index: int ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+
+@variable = @localscopevariable | @globalvariable | @membervariable;
+
+@localscopevariable = @localvariable | @parameter;
+
+/**
+ * Built-in types are the fundamental types, e.g., integral, floating, and void.
+ */
+case @builtintype.kind of
+ 1 = @errortype
+| 2 = @unknowntype
+| 3 = @void
+| 4 = @boolean
+| 5 = @char
+| 6 = @unsigned_char
+| 7 = @signed_char
+| 8 = @short
+| 9 = @unsigned_short
+| 10 = @signed_short
+| 11 = @int
+| 12 = @unsigned_int
+| 13 = @signed_int
+| 14 = @long
+| 15 = @unsigned_long
+| 16 = @signed_long
+| 17 = @long_long
+| 18 = @unsigned_long_long
+| 19 = @signed_long_long
+// ... 20 Microsoft-specific __int8
+// ... 21 Microsoft-specific __int16
+// ... 22 Microsoft-specific __int32
+// ... 23 Microsoft-specific __int64
+| 24 = @float
+| 25 = @double
+| 26 = @long_double
+| 27 = @complex_float // C99-specific _Complex float
+| 28 = @complex_double // C99-specific _Complex double
+| 29 = @complex_long_double // C99-specific _Complex long double
+| 30 = @imaginary_float // C99-specific _Imaginary float
+| 31 = @imaginary_double // C99-specific _Imaginary double
+| 32 = @imaginary_long_double // C99-specific _Imaginary long double
+| 33 = @wchar_t // Microsoft-specific
+| 34 = @decltype_nullptr // C++11
+| 35 = @int128 // __int128
+| 36 = @unsigned_int128 // unsigned __int128
+| 37 = @signed_int128 // signed __int128
+| 38 = @float128 // __float128
+| 39 = @complex_float128 // _Complex __float128
+| 40 = @decimal32 // _Decimal32
+| 41 = @decimal64 // _Decimal64
+| 42 = @decimal128 // _Decimal128
+| 43 = @char16_t
+| 44 = @char32_t
+| 45 = @std_float32 // _Float32
+| 46 = @float32x // _Float32x
+| 47 = @std_float64 // _Float64
+| 48 = @float64x // _Float64x
+| 49 = @std_float128 // _Float128
+// ... 50 _Float128x
+| 51 = @char8_t
+| 52 = @float16 // _Float16
+| 53 = @complex_float16 // _Complex _Float16
+| 54 = @fp16 // __fp16
+| 55 = @std_bfloat16 // __bf16
+| 56 = @std_float16 // std::float16_t
+| 57 = @complex_std_float32 // _Complex _Float32
+| 58 = @complex_float32x // _Complex _Float32x
+| 59 = @complex_std_float64 // _Complex _Float64
+| 60 = @complex_float64x // _Complex _Float64x
+| 61 = @complex_std_float128 // _Complex _Float128
+| 62 = @mfp8 // __mfp8
+| 63 = @scalable_vector_count // __SVCount_t
+| 64 = @complex_fp16 // _Complex __fp16
+| 65 = @complex_std_bfloat16 // _Complex __bf16
+| 66 = @complex_std_float16 // _Complex std::float16_t
+;
+
+builtintypes(
+ unique int id: @builtintype,
+ string name: string ref,
+ int kind: int ref,
+ int size: int ref,
+ int sign: int ref,
+ int alignment: int ref
+);
+
+/**
+ * Derived types are types that are directly derived from existing types and
+ * point to, refer to, transform type data to return a new type.
+ */
+case @derivedtype.kind of
+ 1 = @pointer
+| 2 = @reference
+| 3 = @type_with_specifiers
+| 4 = @array
+| 5 = @gnu_vector
+| 6 = @routineptr
+| 7 = @routinereference
+| 8 = @rvalue_reference // C++11
+// ... 9 type_conforming_to_protocols deprecated
+| 10 = @block
+| 11 = @scalable_vector // Arm SVE
+;
+
+derivedtypes(
+ unique int id: @derivedtype,
+ string name: string ref,
+ int kind: int ref,
+ int type_id: @type ref
+);
+
+pointerishsize(unique int id: @derivedtype ref,
+ int size: int ref,
+ int alignment: int ref);
+
+arraysizes(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref,
+ int bytesize: int ref,
+ int alignment: int ref
+);
+
+tupleelements(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref
+);
+
+typedefbase(
+ unique int id: @usertype ref,
+ int type_id: @type ref
+);
+
+/**
+ * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual`
+ * operator taking an expression as its argument. For example:
+ * ```
+ * int a;
+ * decltype(1+a) b;
+ * typeof(1+a) c;
+ * ```
+ * Here `expr` is `1+a`.
+ *
+ * Sometimes an additional pair of parentheses around the expression
+ * changes the semantics of the decltype, e.g.
+ * ```
+ * struct A { double x; };
+ * const A* a = new A();
+ * decltype( a->x ); // type is double
+ * decltype((a->x)); // type is const double&
+ * ```
+ * (Please consult the C++11 standard for more details).
+ * `parentheses_would_change_meaning` is `true` iff that is the case.
+ */
+
+/*
+case @decltype.kind of
+| 0 = @decltype
+| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+;
+*/
+
+#keyset[id, expr]
+decltypes(
+ int id: @decltype,
+ int expr: @expr ref,
+ int kind: int ref,
+ int base_type: @type ref,
+ boolean parentheses_would_change_meaning: boolean ref
+);
+
+case @type_operator.kind of
+ 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+| 1 = @underlying_type
+| 2 = @bases
+| 3 = @direct_bases
+| 4 = @add_lvalue_reference
+| 5 = @add_pointer
+| 6 = @add_rvalue_reference
+| 7 = @decay
+| 8 = @make_signed
+| 9 = @make_unsigned
+| 10 = @remove_all_extents
+| 11 = @remove_const
+| 12 = @remove_cv
+| 13 = @remove_cvref
+| 14 = @remove_extent
+| 15 = @remove_pointer
+| 16 = @remove_reference_t
+| 17 = @remove_restrict
+| 18 = @remove_volatile
+| 19 = @remove_reference
+;
+
+type_operators(
+ unique int id: @type_operator,
+ int arg_type: @type ref,
+ int kind: int ref,
+ int base_type: @type ref
+)
+
+case @usertype.kind of
+ 0 = @unknown_usertype
+| 1 = @struct
+| 2 = @class
+| 3 = @union
+| 4 = @enum
+// ... 5 = @typedef deprecated // classic C: typedef typedef type name
+// ... 6 = @template deprecated
+| 7 = @template_parameter
+| 8 = @template_template_parameter
+| 9 = @proxy_class // a proxy class associated with a template parameter
+// ... 10 objc_class deprecated
+// ... 11 objc_protocol deprecated
+// ... 12 objc_category deprecated
+| 13 = @scoped_enum
+// ... 14 = @using_alias deprecated // a using name = type style typedef
+| 15 = @template_struct
+| 16 = @template_class
+| 17 = @template_union
+| 18 = @alias
+;
+
+usertypes(
+ unique int id: @usertype,
+ string name: string ref,
+ int kind: int ref
+);
+
+usertypesize(
+ unique int id: @usertype ref,
+ int size: int ref,
+ int alignment: int ref
+);
+
+usertype_final(unique int id: @usertype ref);
+
+usertype_uuid(
+ unique int id: @usertype ref,
+ string uuid: string ref
+);
+
+/*
+case @usertype.alias_kind of
+| 0 = @typedef
+| 1 = @alias
+*/
+
+usertype_alias_kind(
+ int id: @usertype ref,
+ int alias_kind: int ref
+)
+
+nontype_template_parameters(
+ int id: @expr ref
+);
+
+type_template_type_constraint(
+ int id: @usertype ref,
+ int constraint: @expr ref
+);
+
+mangled_name(
+ unique int id: @declaration ref,
+ int mangled_name : @mangledname,
+ boolean is_complete: boolean ref
+);
+
+is_pod_class(unique int id: @usertype ref);
+is_standard_layout_class(unique int id: @usertype ref);
+
+is_complete(unique int id: @usertype ref);
+
+is_class_template(unique int id: @usertype ref);
+class_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+class_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+class_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@user_or_decltype = @usertype | @decltype;
+
+is_proxy_class_for(
+ unique int id: @usertype ref,
+ int templ_param_id: @user_or_decltype ref
+);
+
+type_mentions(
+ unique int id: @type_mention,
+ int type_id: @type ref,
+ int location: @location_default ref,
+ // a_symbol_reference_kind from the frontend.
+ int kind: int ref
+);
+
+is_function_template(unique int id: @function ref);
+function_instantiation(
+ unique int to: @function ref,
+ int from: @function ref
+);
+function_template_argument(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+function_template_argument_value(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+is_variable_template(unique int id: @variable ref);
+variable_instantiation(
+ unique int to: @variable ref,
+ int from: @variable ref
+);
+variable_template_argument(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+variable_template_argument_value(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+template_template_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+template_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+template_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@concept = @concept_template | @concept_id;
+
+concept_templates(
+ unique int concept_id: @concept_template,
+ string name: string ref,
+ int location: @location_default ref
+);
+concept_instantiation(
+ unique int to: @concept_id ref,
+ int from: @concept_template ref
+);
+is_type_constraint(int concept_id: @concept_id ref);
+concept_template_argument(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+concept_template_argument_value(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+routinetypes(
+ unique int id: @routinetype,
+ int return_type: @type ref
+);
+
+routinetypeargs(
+ int routine: @routinetype ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+ptrtomembers(
+ unique int id: @ptrtomember,
+ int type_id: @type ref,
+ int class_id: @type ref
+);
+
+/*
+ specifiers for types, functions, and variables
+
+ "public",
+ "protected",
+ "private",
+
+ "const",
+ "volatile",
+ "static",
+
+ "pure",
+ "virtual",
+ "sealed", // Microsoft
+ "__interface", // Microsoft
+ "inline",
+ "explicit",
+
+ "near", // near far extension
+ "far", // near far extension
+ "__ptr32", // Microsoft
+ "__ptr64", // Microsoft
+ "__sptr", // Microsoft
+ "__uptr", // Microsoft
+ "dllimport", // Microsoft
+ "dllexport", // Microsoft
+ "thread", // Microsoft
+ "naked", // Microsoft
+ "microsoft_inline", // Microsoft
+ "forceinline", // Microsoft
+ "selectany", // Microsoft
+ "nothrow", // Microsoft
+ "novtable", // Microsoft
+ "noreturn", // Microsoft
+ "noinline", // Microsoft
+ "noalias", // Microsoft
+ "restrict", // Microsoft
+*/
+
+specifiers(
+ unique int id: @specifier,
+ unique string str: string ref
+);
+
+typespecifiers(
+ int type_id: @type ref,
+ int spec_id: @specifier ref
+);
+
+funspecifiers(
+ int func_id: @function ref,
+ int spec_id: @specifier ref
+);
+
+varspecifiers(
+ int var_id: @accessible ref,
+ int spec_id: @specifier ref
+);
+
+explicit_specifier_exprs(
+ unique int func_id: @function ref,
+ int constant: @expr ref
+)
+
+attributes(
+ unique int id: @attribute,
+ int kind: int ref,
+ string name: string ref,
+ string name_space: string ref,
+ int location: @location_default ref
+);
+
+case @attribute.kind of
+ 0 = @gnuattribute
+| 1 = @stdattribute
+| 2 = @declspec
+| 3 = @msattribute
+| 4 = @alignas
+// ... 5 @objc_propertyattribute deprecated
+;
+
+attribute_args(
+ unique int id: @attribute_arg,
+ int kind: int ref,
+ int attribute: @attribute ref,
+ int index: int ref,
+ int location: @location_default ref
+);
+
+case @attribute_arg.kind of
+ 0 = @attribute_arg_empty
+| 1 = @attribute_arg_token
+| 2 = @attribute_arg_constant
+| 3 = @attribute_arg_type
+| 4 = @attribute_arg_constant_expr
+| 5 = @attribute_arg_expr
+;
+
+attribute_arg_value(
+ unique int arg: @attribute_arg ref,
+ string value: string ref
+);
+attribute_arg_type(
+ unique int arg: @attribute_arg ref,
+ int type_id: @type ref
+);
+attribute_arg_constant(
+ unique int arg: @attribute_arg ref,
+ int constant: @expr ref
+)
+attribute_arg_expr(
+ unique int arg: @attribute_arg ref,
+ int expr: @expr ref
+)
+attribute_arg_name(
+ unique int arg: @attribute_arg ref,
+ string name: string ref
+);
+
+typeattributes(
+ int type_id: @type ref,
+ int spec_id: @attribute ref
+);
+
+funcattributes(
+ int func_id: @function ref,
+ int spec_id: @attribute ref
+);
+
+varattributes(
+ int var_id: @accessible ref,
+ int spec_id: @attribute ref
+);
+
+namespaceattributes(
+ int namespace_id: @namespace ref,
+ int spec_id: @attribute ref
+);
+
+stmtattributes(
+ int stmt_id: @stmt ref,
+ int spec_id: @attribute ref
+);
+
+@type = @builtintype
+ | @derivedtype
+ | @usertype
+ | @routinetype
+ | @ptrtomember
+ | @decltype
+ | @type_operator;
+
+unspecifiedtype(
+ unique int type_id: @type ref,
+ int unspecified_type_id: @type ref
+);
+
+member(
+ int parent: @type ref,
+ int index: int ref,
+ int child: @member ref
+);
+
+@enclosingfunction_child = @usertype | @variable | @namespace
+
+enclosingfunction(
+ unique int child: @enclosingfunction_child ref,
+ int parent: @function ref
+);
+
+derivations(
+ unique int derivation: @derivation,
+ int sub: @type ref,
+ int index: int ref,
+ int super: @type ref,
+ int location: @location_default ref
+);
+
+derspecifiers(
+ int der_id: @derivation ref,
+ int spec_id: @specifier ref
+);
+
+/**
+ * Contains the byte offset of the base class subobject within the derived
+ * class. Only holds for non-virtual base classes, but see table
+ * `virtual_base_offsets` for offsets of virtual base class subobjects.
+ */
+direct_base_offsets(
+ unique int der_id: @derivation ref,
+ int offset: int ref
+);
+
+/**
+ * Contains the byte offset of the virtual base class subobject for class
+ * `super` within a most-derived object of class `sub`. `super` can be either a
+ * direct or indirect base class.
+ */
+#keyset[sub, super]
+virtual_base_offsets(
+ int sub: @usertype ref,
+ int super: @usertype ref,
+ int offset: int ref
+);
+
+frienddecls(
+ unique int id: @frienddecl,
+ int type_id: @type ref,
+ int decl_id: @declaration ref,
+ int location: @location_default ref
+);
+
+@declaredtype = @usertype ;
+
+@declaration = @function
+ | @declaredtype
+ | @variable
+ | @enumconstant
+ | @frienddecl
+ | @concept_template;
+
+@member = @membervariable
+ | @function
+ | @declaredtype
+ | @enumconstant;
+
+@locatable = @diagnostic
+ | @declaration
+ | @ppd_include
+ | @ppd_define
+ | @macroinvocation
+ /*| @funcall*/
+ | @xmllocatable
+ | @attribute
+ | @attribute_arg;
+
+@namedscope = @namespace | @usertype;
+
+@element = @locatable
+ | @file
+ | @folder
+ | @specifier
+ | @type
+ | @expr
+ | @namespace
+ | @initialiser
+ | @stmt
+ | @derivation
+ | @comment
+ | @preprocdirect
+ | @fun_decl
+ | @var_decl
+ | @type_decl
+ | @namespace_decl
+ | @using
+ | @namequalifier
+ | @specialnamequalifyingelement
+ | @static_assert
+ | @type_mention
+ | @lambdacapture;
+
+@exprparent = @element;
+
+comments(
+ unique int id: @comment,
+ string contents: string ref,
+ int location: @location_default ref
+);
+
+commentbinding(
+ int id: @comment ref,
+ int element: @element ref
+);
+
+exprconv(
+ int converted: @expr ref,
+ unique int conversion: @expr ref
+);
+
+compgenerated(unique int id: @element ref);
+
+/**
+ * `destructor_call` destructs the `i`'th entity that should be
+ * destructed following `element`. Note that entities should be
+ * destructed in reverse construction order, so for a given `element`
+ * these should be called from highest to lowest `i`.
+ */
+#keyset[element, destructor_call]
+#keyset[element, i]
+synthetic_destructor_call(
+ int element: @element ref,
+ int i: int ref,
+ int destructor_call: @routineexpr ref
+);
+
+namespaces(
+ unique int id: @namespace,
+ string name: string ref
+);
+
+namespace_inline(
+ unique int id: @namespace ref
+);
+
+namespacembrs(
+ int parentid: @namespace ref,
+ unique int memberid: @namespacembr ref
+);
+
+@namespacembr = @declaration | @namespace;
+
+exprparents(
+ int expr_id: @expr ref,
+ int child_index: int ref,
+ int parent_id: @exprparent ref
+);
+
+expr_isload(unique int expr_id: @expr ref);
+
+@cast = @c_style_cast
+ | @const_cast
+ | @dynamic_cast
+ | @reinterpret_cast
+ | @static_cast
+ ;
+
+/*
+case @conversion.kind of
+ 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast
+| 1 = @bool_conversion // conversion to 'bool'
+| 2 = @base_class_conversion // a derived-to-base conversion
+| 3 = @derived_class_conversion // a base-to-derived conversion
+| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member
+| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member
+| 6 = @glvalue_adjust // an adjustment of the type of a glvalue
+| 7 = @prvalue_adjust // an adjustment of the type of a prvalue
+;
+*/
+/**
+ * Describes the semantics represented by a cast expression. This is largely
+ * independent of the source syntax of the cast, so it is separate from the
+ * regular expression kind.
+ */
+conversionkinds(
+ unique int expr_id: @cast ref,
+ int kind: int ref
+);
+
+@conversion = @cast
+ | @array_to_pointer
+ | @parexpr
+ | @reference_to
+ | @ref_indirect
+ | @temp_init
+ | @c11_generic
+ ;
+
+/*
+case @funbindexpr.kind of
+ 0 = @normal_call // a normal call
+| 1 = @virtual_call // a virtual call
+| 2 = @adl_call // a call whose target is only found by ADL
+;
+*/
+iscall(
+ unique int caller: @funbindexpr ref,
+ int kind: int ref
+);
+
+numtemplatearguments(
+ unique int expr_id: @expr ref,
+ int num: int ref
+);
+
+specialnamequalifyingelements(
+ unique int id: @specialnamequalifyingelement,
+ unique string name: string ref
+);
+
+@namequalifiableelement = @expr | @namequalifier;
+@namequalifyingelement = @namespace
+ | @specialnamequalifyingelement
+ | @usertype
+ | @decltype;
+
+namequalifiers(
+ unique int id: @namequalifier,
+ unique int qualifiableelement: @namequalifiableelement ref,
+ int qualifyingelement: @namequalifyingelement ref,
+ int location: @location_default ref
+);
+
+varbind(
+ int expr: @varbindexpr ref,
+ int var: @accessible ref
+);
+
+funbind(
+ int expr: @funbindexpr ref,
+ int fun: @function ref
+);
+
+@any_new_expr = @new_expr
+ | @new_array_expr;
+
+@new_or_delete_expr = @any_new_expr
+ | @delete_expr
+ | @delete_array_expr;
+
+@prefix_crement_expr = @preincrexpr | @predecrexpr;
+
+@postfix_crement_expr = @postincrexpr | @postdecrexpr;
+
+@increment_expr = @preincrexpr | @postincrexpr;
+
+@decrement_expr = @predecrexpr | @postdecrexpr;
+
+@crement_expr = @increment_expr | @decrement_expr;
+
+@un_arith_op_expr = @arithnegexpr
+ | @unaryplusexpr
+ | @conjugation
+ | @realpartexpr
+ | @imagpartexpr
+ | @crement_expr
+ ;
+
+@un_bitwise_op_expr = @complementexpr;
+
+@un_log_op_expr = @notexpr;
+
+@un_op_expr = @address_of
+ | @indirect
+ | @un_arith_op_expr
+ | @un_bitwise_op_expr
+ | @builtinaddressof
+ | @vec_fill
+ | @un_log_op_expr
+ | @co_await
+ | @co_yield
+ ;
+
+@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr;
+
+@cmp_op_expr = @eq_op_expr | @rel_op_expr;
+
+@eq_op_expr = @eqexpr | @neexpr;
+
+@rel_op_expr = @gtexpr
+ | @ltexpr
+ | @geexpr
+ | @leexpr
+ | @spaceshipexpr
+ ;
+
+@bin_bitwise_op_expr = @lshiftexpr
+ | @rshiftexpr
+ | @andexpr
+ | @orexpr
+ | @xorexpr
+ ;
+
+@p_arith_op_expr = @paddexpr
+ | @psubexpr
+ | @pdiffexpr
+ ;
+
+@bin_arith_op_expr = @addexpr
+ | @subexpr
+ | @mulexpr
+ | @divexpr
+ | @remexpr
+ | @jmulexpr
+ | @jdivexpr
+ | @fjaddexpr
+ | @jfaddexpr
+ | @fjsubexpr
+ | @jfsubexpr
+ | @minexpr
+ | @maxexpr
+ | @p_arith_op_expr
+ ;
+
+@bin_op_expr = @bin_arith_op_expr
+ | @bin_bitwise_op_expr
+ | @cmp_op_expr
+ | @bin_log_op_expr
+ ;
+
+@op_expr = @un_op_expr
+ | @bin_op_expr
+ | @assign_expr
+ | @conditionalexpr
+ ;
+
+@assign_arith_expr = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ ;
+
+@assign_bitwise_expr = @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ ;
+
+@assign_pointer_expr = @assignpaddexpr
+ | @assignpsubexpr
+ ;
+
+@assign_op_expr = @assign_arith_expr
+ | @assign_bitwise_expr
+ | @assign_pointer_expr
+ ;
+
+@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr
+
+/*
+ Binary encoding of the allocator form.
+
+ case @allocator.form of
+ 0 = plain
+ | 1 = alignment
+ ;
+*/
+
+/**
+ * The allocator function associated with a `new` or `new[]` expression.
+ * The `form` column specified whether the allocation call contains an alignment
+ * argument.
+ */
+expr_allocator(
+ unique int expr: @any_new_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/*
+ Binary encoding of the deallocator form.
+
+ case @deallocator.form of
+ 0 = plain
+ | 1 = size
+ | 2 = alignment
+ | 4 = destroying_delete
+ ;
+*/
+
+/**
+ * The deallocator function associated with a `delete`, `delete[]`, `new`, or
+ * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the
+ * one used to free memory if the initialization throws an exception.
+ * The `form` column specifies whether the deallocation call contains a size
+ * argument, and alignment argument, or both.
+ */
+expr_deallocator(
+ unique int expr: @new_or_delete_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/**
+ * Holds if the `@conditionalexpr` is of the two operand form
+ * `guard ? : false`.
+ */
+expr_cond_two_operand(
+ unique int cond: @conditionalexpr ref
+);
+
+/**
+ * The guard of `@conditionalexpr` `guard ? true : false`
+ */
+expr_cond_guard(
+ unique int cond: @conditionalexpr ref,
+ int guard: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` holds. For the two operand form
+ * `guard ?: false` consider using `expr_cond_guard` instead.
+ */
+expr_cond_true(
+ unique int cond: @conditionalexpr ref,
+ int true: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` does not hold.
+ */
+expr_cond_false(
+ unique int cond: @conditionalexpr ref,
+ int false: @expr ref
+);
+
+/** A string representation of the value. */
+values(
+ unique int id: @value,
+ string str: string ref
+);
+
+/** The actual text in the source code for the value, if any. */
+valuetext(
+ unique int id: @value ref,
+ string text: string ref
+);
+
+valuebind(
+ int val: @value ref,
+ unique int expr: @expr ref
+);
+
+fieldoffsets(
+ unique int id: @variable ref,
+ int byteoffset: int ref,
+ int bitoffset: int ref
+);
+
+bitfield(
+ unique int id: @variable ref,
+ int bits: int ref,
+ int declared_bits: int ref
+);
+
+/* TODO
+memberprefix(
+ int member: @expr ref,
+ int prefix: @expr ref
+);
+*/
+
+/*
+ kind(1) = mbrcallexpr
+ kind(2) = mbrptrcallexpr
+ kind(3) = mbrptrmbrcallexpr
+ kind(4) = ptrmbrptrmbrcallexpr
+ kind(5) = mbrreadexpr // x.y
+ kind(6) = mbrptrreadexpr // p->y
+ kind(7) = mbrptrmbrreadexpr // x.*pm
+ kind(8) = mbrptrmbrptrreadexpr // x->*pm
+ kind(9) = staticmbrreadexpr // static x.y
+ kind(10) = staticmbrptrreadexpr // static p->y
+*/
+/* TODO
+memberaccess(
+ int member: @expr ref,
+ int kind: int ref
+);
+*/
+
+initialisers(
+ unique int init: @initialiser,
+ int var: @accessible ref,
+ unique int expr: @expr ref,
+ int location: @location_default ref
+);
+
+braced_initialisers(
+ int init: @initialiser ref
+);
+
+/**
+ * An ancestor for the expression, for cases in which we cannot
+ * otherwise find the expression's parent.
+ */
+expr_ancestor(
+ int exp: @expr ref,
+ int ancestor: @element ref
+);
+
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+expr_reuse(
+ int reuse: @expr ref,
+ int original: @expr ref,
+ int value_category: int ref
+)
+
+/*
+ case @value.category of
+ 1 = prval
+ | 2 = xval
+ | 3 = lval
+ ;
+*/
+expr_types(
+ int id: @expr ref,
+ int typeid: @type ref,
+ int value_category: int ref
+);
+
+case @expr.kind of
+ 1 = @errorexpr
+| 2 = @address_of // & AddressOfExpr
+| 3 = @reference_to // ReferenceToExpr (implicit?)
+| 4 = @indirect // * PointerDereferenceExpr
+| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?)
+// ...
+| 8 = @array_to_pointer // (???)
+| 9 = @vacuous_destructor_call // VacuousDestructorCall
+// ...
+| 11 = @assume // Microsoft
+| 12 = @parexpr
+| 13 = @arithnegexpr
+| 14 = @unaryplusexpr
+| 15 = @complementexpr
+| 16 = @notexpr
+| 17 = @conjugation // GNU ~ operator
+| 18 = @realpartexpr // GNU __real
+| 19 = @imagpartexpr // GNU __imag
+| 20 = @postincrexpr
+| 21 = @postdecrexpr
+| 22 = @preincrexpr
+| 23 = @predecrexpr
+| 24 = @conditionalexpr
+| 25 = @addexpr
+| 26 = @subexpr
+| 27 = @mulexpr
+| 28 = @divexpr
+| 29 = @remexpr
+| 30 = @jmulexpr // C99 mul imaginary
+| 31 = @jdivexpr // C99 div imaginary
+| 32 = @fjaddexpr // C99 add real + imaginary
+| 33 = @jfaddexpr // C99 add imaginary + real
+| 34 = @fjsubexpr // C99 sub real - imaginary
+| 35 = @jfsubexpr // C99 sub imaginary - real
+| 36 = @paddexpr // pointer add (pointer + int or int + pointer)
+| 37 = @psubexpr // pointer sub (pointer - integer)
+| 38 = @pdiffexpr // difference between two pointers
+| 39 = @lshiftexpr
+| 40 = @rshiftexpr
+| 41 = @andexpr
+| 42 = @orexpr
+| 43 = @xorexpr
+| 44 = @eqexpr
+| 45 = @neexpr
+| 46 = @gtexpr
+| 47 = @ltexpr
+| 48 = @geexpr
+| 49 = @leexpr
+| 50 = @minexpr // GNU minimum
+| 51 = @maxexpr // GNU maximum
+| 52 = @assignexpr
+| 53 = @assignaddexpr
+| 54 = @assignsubexpr
+| 55 = @assignmulexpr
+| 56 = @assigndivexpr
+| 57 = @assignremexpr
+| 58 = @assignlshiftexpr
+| 59 = @assignrshiftexpr
+| 60 = @assignandexpr
+| 61 = @assignorexpr
+| 62 = @assignxorexpr
+| 63 = @assignpaddexpr // assign pointer add
+| 64 = @assignpsubexpr // assign pointer sub
+| 65 = @andlogicalexpr
+| 66 = @orlogicalexpr
+| 67 = @commaexpr
+| 68 = @subscriptexpr // access to member of an array, e.g., a[5]
+// ... 69 @objc_subscriptexpr deprecated
+// ... 70 @cmdaccess deprecated
+// ...
+| 73 = @virtfunptrexpr
+| 74 = @callexpr
+// ... 75 @msgexpr_normal deprecated
+// ... 76 @msgexpr_super deprecated
+// ... 77 @atselectorexpr deprecated
+// ... 78 @atprotocolexpr deprecated
+| 79 = @vastartexpr
+| 80 = @vaargexpr
+| 81 = @vaendexpr
+| 82 = @vacopyexpr
+// ... 83 @atencodeexpr deprecated
+| 84 = @varaccess
+| 85 = @thisaccess
+// ... 86 @objc_box_expr deprecated
+| 87 = @new_expr
+| 88 = @delete_expr
+| 89 = @throw_expr
+| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2)
+| 91 = @braced_init_list
+| 92 = @type_id
+| 93 = @runtime_sizeof
+| 94 = @runtime_alignof
+| 95 = @sizeof_pack
+| 96 = @expr_stmt // GNU extension
+| 97 = @routineexpr
+| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....)
+| 99 = @offsetofexpr // offsetof ::= type and field
+| 100 = @hasassignexpr // __has_assign ::= type
+| 101 = @hascopyexpr // __has_copy ::= type
+| 102 = @hasnothrowassign // __has_nothrow_assign ::= type
+| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type
+| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type
+| 105 = @hastrivialassign // __has_trivial_assign ::= type
+| 106 = @hastrivialconstr // __has_trivial_constructor ::= type
+| 107 = @hastrivialcopy // __has_trivial_copy ::= type
+| 108 = @hasuserdestr // __has_user_destructor ::= type
+| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type
+| 110 = @isabstractexpr // __is_abstract ::= type
+| 111 = @isbaseofexpr // __is_base_of ::= type type
+| 112 = @isclassexpr // __is_class ::= type
+| 113 = @isconvtoexpr // __is_convertible_to ::= type type
+| 114 = @isemptyexpr // __is_empty ::= type
+| 115 = @isenumexpr // __is_enum ::= type
+| 116 = @ispodexpr // __is_pod ::= type
+| 117 = @ispolyexpr // __is_polymorphic ::= type
+| 118 = @isunionexpr // __is_union ::= type
+| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type
+| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof
+// ...
+| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type
+| 123 = @literal
+| 124 = @uuidof
+| 127 = @aggregateliteral
+| 128 = @delete_array_expr
+| 129 = @new_array_expr
+// ... 130 @objc_array_literal deprecated
+// ... 131 @objc_dictionary_literal deprecated
+| 132 = @foldexpr
+// ...
+| 200 = @ctordirectinit
+| 201 = @ctorvirtualinit
+| 202 = @ctorfieldinit
+| 203 = @ctordelegatinginit
+| 204 = @dtordirectdestruct
+| 205 = @dtorvirtualdestruct
+| 206 = @dtorfielddestruct
+// ...
+| 210 = @static_cast
+| 211 = @reinterpret_cast
+| 212 = @const_cast
+| 213 = @dynamic_cast
+| 214 = @c_style_cast
+| 215 = @lambdaexpr
+| 216 = @param_ref
+| 217 = @noopexpr
+// ...
+| 294 = @istriviallyconstructibleexpr
+| 295 = @isdestructibleexpr
+| 296 = @isnothrowdestructibleexpr
+| 297 = @istriviallydestructibleexpr
+| 298 = @istriviallyassignableexpr
+| 299 = @isnothrowassignableexpr
+| 300 = @istrivialexpr
+| 301 = @isstandardlayoutexpr
+| 302 = @istriviallycopyableexpr
+| 303 = @isliteraltypeexpr
+| 304 = @hastrivialmoveconstructorexpr
+| 305 = @hastrivialmoveassignexpr
+| 306 = @hasnothrowmoveassignexpr
+| 307 = @isconstructibleexpr
+| 308 = @isnothrowconstructibleexpr
+| 309 = @hasfinalizerexpr
+| 310 = @isdelegateexpr
+| 311 = @isinterfaceclassexpr
+| 312 = @isrefarrayexpr
+| 313 = @isrefclassexpr
+| 314 = @issealedexpr
+| 315 = @issimplevalueclassexpr
+| 316 = @isvalueclassexpr
+| 317 = @isfinalexpr
+| 319 = @noexceptexpr
+| 320 = @builtinshufflevector
+| 321 = @builtinchooseexpr
+| 322 = @builtinaddressof
+| 323 = @vec_fill
+| 324 = @builtinconvertvector
+| 325 = @builtincomplex
+| 326 = @spaceshipexpr
+| 327 = @co_await
+| 328 = @co_yield
+| 329 = @temp_init
+| 330 = @isassignable
+| 331 = @isaggregate
+| 332 = @hasuniqueobjectrepresentations
+| 333 = @builtinbitcast
+| 334 = @builtinshuffle
+| 335 = @blockassignexpr
+| 336 = @issame
+| 337 = @isfunction
+| 338 = @islayoutcompatible
+| 339 = @ispointerinterconvertiblebaseof
+| 340 = @isarray
+| 341 = @arrayrank
+| 342 = @arrayextent
+| 343 = @isarithmetic
+| 344 = @iscompletetype
+| 345 = @iscompound
+| 346 = @isconst
+| 347 = @isfloatingpoint
+| 348 = @isfundamental
+| 349 = @isintegral
+| 350 = @islvaluereference
+| 351 = @ismemberfunctionpointer
+| 352 = @ismemberobjectpointer
+| 353 = @ismemberpointer
+| 354 = @isobject
+| 355 = @ispointer
+| 356 = @isreference
+| 357 = @isrvaluereference
+| 358 = @isscalar
+| 359 = @issigned
+| 360 = @isunsigned
+| 361 = @isvoid
+| 362 = @isvolatile
+| 363 = @reuseexpr
+| 364 = @istriviallycopyassignable
+| 365 = @isassignablenopreconditioncheck
+| 366 = @referencebindstotemporary
+| 367 = @issameas
+| 368 = @builtinhasattribute
+| 369 = @ispointerinterconvertiblewithclass
+| 370 = @builtinispointerinterconvertiblewithclass
+| 371 = @iscorrespondingmember
+| 372 = @builtiniscorrespondingmember
+| 373 = @isboundedarray
+| 374 = @isunboundedarray
+| 375 = @isreferenceable
+| 378 = @isnothrowconvertible
+| 379 = @referenceconstructsfromtemporary
+| 380 = @referenceconvertsfromtemporary
+| 381 = @isconvertible
+| 382 = @isvalidwinrttype
+| 383 = @iswinclass
+| 384 = @iswininterface
+| 385 = @istriviallyequalitycomparable
+| 386 = @isscopedenum
+| 387 = @istriviallyrelocatable
+| 388 = @datasizeof
+| 389 = @c11_generic
+| 390 = @requires_expr
+| 391 = @nested_requirement
+| 392 = @compound_requirement
+| 393 = @concept_id
+;
+
+@var_args_expr = @vastartexpr
+ | @vaendexpr
+ | @vaargexpr
+ | @vacopyexpr
+ ;
+
+@builtin_op = @var_args_expr
+ | @noopexpr
+ | @offsetofexpr
+ | @intaddrexpr
+ | @hasassignexpr
+ | @hascopyexpr
+ | @hasnothrowassign
+ | @hasnothrowconstr
+ | @hasnothrowcopy
+ | @hastrivialassign
+ | @hastrivialconstr
+ | @hastrivialcopy
+ | @hastrivialdestructor
+ | @hasuserdestr
+ | @hasvirtualdestr
+ | @isabstractexpr
+ | @isbaseofexpr
+ | @isclassexpr
+ | @isconvtoexpr
+ | @isemptyexpr
+ | @isenumexpr
+ | @ispodexpr
+ | @ispolyexpr
+ | @isunionexpr
+ | @typescompexpr
+ | @builtinshufflevector
+ | @builtinconvertvector
+ | @builtinaddressof
+ | @istriviallyconstructibleexpr
+ | @isdestructibleexpr
+ | @isnothrowdestructibleexpr
+ | @istriviallydestructibleexpr
+ | @istriviallyassignableexpr
+ | @isnothrowassignableexpr
+ | @istrivialexpr
+ | @isstandardlayoutexpr
+ | @istriviallycopyableexpr
+ | @isliteraltypeexpr
+ | @hastrivialmoveconstructorexpr
+ | @hastrivialmoveassignexpr
+ | @hasnothrowmoveassignexpr
+ | @isconstructibleexpr
+ | @isnothrowconstructibleexpr
+ | @hasfinalizerexpr
+ | @isdelegateexpr
+ | @isinterfaceclassexpr
+ | @isrefarrayexpr
+ | @isrefclassexpr
+ | @issealedexpr
+ | @issimplevalueclassexpr
+ | @isvalueclassexpr
+ | @isfinalexpr
+ | @builtinchooseexpr
+ | @builtincomplex
+ | @isassignable
+ | @isaggregate
+ | @hasuniqueobjectrepresentations
+ | @builtinbitcast
+ | @builtinshuffle
+ | @issame
+ | @isfunction
+ | @islayoutcompatible
+ | @ispointerinterconvertiblebaseof
+ | @isarray
+ | @arrayrank
+ | @arrayextent
+ | @isarithmetic
+ | @iscompletetype
+ | @iscompound
+ | @isconst
+ | @isfloatingpoint
+ | @isfundamental
+ | @isintegral
+ | @islvaluereference
+ | @ismemberfunctionpointer
+ | @ismemberobjectpointer
+ | @ismemberpointer
+ | @isobject
+ | @ispointer
+ | @isreference
+ | @isrvaluereference
+ | @isscalar
+ | @issigned
+ | @isunsigned
+ | @isvoid
+ | @isvolatile
+ | @istriviallycopyassignable
+ | @isassignablenopreconditioncheck
+ | @referencebindstotemporary
+ | @issameas
+ | @builtinhasattribute
+ | @ispointerinterconvertiblewithclass
+ | @builtinispointerinterconvertiblewithclass
+ | @iscorrespondingmember
+ | @builtiniscorrespondingmember
+ | @isboundedarray
+ | @isunboundedarray
+ | @isreferenceable
+ | @isnothrowconvertible
+ | @referenceconstructsfromtemporary
+ | @referenceconvertsfromtemporary
+ | @isconvertible
+ | @isvalidwinrttype
+ | @iswinclass
+ | @iswininterface
+ | @istriviallyequalitycomparable
+ | @isscopedenum
+ | @istriviallyrelocatable
+ ;
+
+compound_requirement_is_noexcept(
+ int expr: @compound_requirement ref
+);
+
+new_allocated_type(
+ unique int expr: @new_expr ref,
+ int type_id: @type ref
+);
+
+new_array_allocated_type(
+ unique int expr: @new_array_expr ref,
+ int type_id: @type ref
+);
+
+/**
+ * The field being initialized by an initializer expression within an aggregate
+ * initializer for a class/struct/union. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_field_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int field: @membervariable ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+/**
+ * The index of the element being initialized by an initializer expression
+ * within an aggregate initializer for an array. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_array_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int element_index: int ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+@ctorinit = @ctordirectinit
+ | @ctorvirtualinit
+ | @ctorfieldinit
+ | @ctordelegatinginit;
+@dtordestruct = @dtordirectdestruct
+ | @dtorvirtualdestruct
+ | @dtorfielddestruct;
+
+
+condition_decl_bind(
+ unique int expr: @condition_decl ref,
+ unique int decl: @declaration ref
+);
+
+typeid_bind(
+ unique int expr: @type_id ref,
+ int type_id: @type ref
+);
+
+uuidof_bind(
+ unique int expr: @uuidof ref,
+ int type_id: @type ref
+);
+
+@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack;
+
+sizeof_bind(
+ unique int expr: @sizeof_or_alignof ref,
+ int type_id: @type ref
+);
+
+code_block(
+ unique int block: @literal ref,
+ unique int routine: @function ref
+);
+
+lambdas(
+ unique int expr: @lambdaexpr ref,
+ string default_capture: string ref,
+ boolean has_explicit_return_type: boolean ref,
+ boolean has_explicit_parameter_list: boolean ref
+);
+
+lambda_capture(
+ unique int id: @lambdacapture,
+ int lambda: @lambdaexpr ref,
+ int index: int ref,
+ int field: @membervariable ref,
+ boolean captured_by_reference: boolean ref,
+ boolean is_implicit: boolean ref,
+ int location: @location_default ref
+);
+
+@funbindexpr = @routineexpr
+ | @new_expr
+ | @delete_expr
+ | @delete_array_expr
+ | @ctordirectinit
+ | @ctorvirtualinit
+ | @ctordelegatinginit
+ | @dtordirectdestruct
+ | @dtorvirtualdestruct;
+
+@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct;
+@addressable = @function | @variable ;
+@accessible = @addressable | @enumconstant ;
+
+@access = @varaccess | @routineexpr ;
+
+fold(
+ int expr: @foldexpr ref,
+ string operator: string ref,
+ boolean is_left_fold: boolean ref
+);
+
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+case @stmt.kind of
+ 1 = @stmt_expr
+| 2 = @stmt_if
+| 3 = @stmt_while
+| 4 = @stmt_goto
+| 5 = @stmt_label
+| 6 = @stmt_return
+| 7 = @stmt_block
+| 8 = @stmt_end_test_while // do { ... } while ( ... )
+| 9 = @stmt_for
+| 10 = @stmt_switch_case
+| 11 = @stmt_switch
+| 13 = @stmt_asm // "asm" statement or the body of an asm function
+| 15 = @stmt_try_block
+| 16 = @stmt_microsoft_try // Microsoft
+| 17 = @stmt_decl
+| 18 = @stmt_set_vla_size // C99
+| 19 = @stmt_vla_decl // C99
+| 25 = @stmt_assigned_goto // GNU
+| 26 = @stmt_empty
+| 27 = @stmt_continue
+| 28 = @stmt_break
+| 29 = @stmt_range_based_for // C++11
+// ... 30 @stmt_at_autoreleasepool_block deprecated
+// ... 31 @stmt_objc_for_in deprecated
+// ... 32 @stmt_at_synchronized deprecated
+| 33 = @stmt_handler
+// ... 34 @stmt_finally_end deprecated
+| 35 = @stmt_constexpr_if
+| 37 = @stmt_co_return
+| 38 = @stmt_consteval_if
+| 39 = @stmt_not_consteval_if
+| 40 = @stmt_leave
+;
+
+type_vla(
+ int type_id: @type ref,
+ int decl: @stmt_vla_decl ref
+);
+
+variable_vla(
+ int var: @variable ref,
+ int decl: @stmt_vla_decl ref
+);
+
+type_is_vla(unique int type_id: @derivedtype ref)
+
+if_initialization(
+ unique int if_stmt: @stmt_if ref,
+ int init_id: @stmt ref
+);
+
+if_then(
+ unique int if_stmt: @stmt_if ref,
+ int then_id: @stmt ref
+);
+
+if_else(
+ unique int if_stmt: @stmt_if ref,
+ int else_id: @stmt ref
+);
+
+constexpr_if_initialization(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int init_id: @stmt ref
+);
+
+constexpr_if_then(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int then_id: @stmt ref
+);
+
+constexpr_if_else(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int else_id: @stmt ref
+);
+
+@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if;
+
+consteval_if_then(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int then_id: @stmt ref
+);
+
+consteval_if_else(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int else_id: @stmt ref
+);
+
+while_body(
+ unique int while_stmt: @stmt_while ref,
+ int body_id: @stmt ref
+);
+
+do_body(
+ unique int do_stmt: @stmt_end_test_while ref,
+ int body_id: @stmt ref
+);
+
+switch_initialization(
+ unique int switch_stmt: @stmt_switch ref,
+ int init_id: @stmt ref
+);
+
+#keyset[switch_stmt, index]
+switch_case(
+ int switch_stmt: @stmt_switch ref,
+ int index: int ref,
+ int case_id: @stmt_switch_case ref
+);
+
+switch_body(
+ unique int switch_stmt: @stmt_switch ref,
+ int body_id: @stmt ref
+);
+
+@stmt_for_or_range_based_for = @stmt_for
+ | @stmt_range_based_for;
+
+for_initialization(
+ unique int for_stmt: @stmt_for_or_range_based_for ref,
+ int init_id: @stmt ref
+);
+
+for_condition(
+ unique int for_stmt: @stmt_for ref,
+ int condition_id: @expr ref
+);
+
+for_update(
+ unique int for_stmt: @stmt_for ref,
+ int update_id: @expr ref
+);
+
+for_body(
+ unique int for_stmt: @stmt_for ref,
+ int body_id: @stmt ref
+);
+
+@stmtparent = @stmt | @expr_stmt ;
+stmtparents(
+ unique int id: @stmt ref,
+ int index: int ref,
+ int parent: @stmtparent ref
+);
+
+ishandler(unique int block: @stmt_block ref);
+
+@cfgnode = @stmt | @expr | @function | @initialiser ;
+
+stmt_decl_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl: @declaration ref
+);
+
+stmt_decl_entry_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl_entry: @element ref
+);
+
+@parameterized_element = @function | @stmt_block | @requires_expr;
+
+blockscope(
+ unique int block: @stmt_block ref,
+ int enclosing: @parameterized_element ref
+);
+
+@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave;
+
+@jumporlabel = @jump | @stmt_label | @literal;
+
+jumpinfo(
+ unique int id: @jumporlabel ref,
+ string str: string ref,
+ int target: @stmt ref
+);
+
+preprocdirects(
+ unique int id: @preprocdirect,
+ int kind: int ref,
+ int location: @location_default ref
+);
+case @preprocdirect.kind of
+ 0 = @ppd_if
+| 1 = @ppd_ifdef
+| 2 = @ppd_ifndef
+| 3 = @ppd_elif
+| 4 = @ppd_else
+| 5 = @ppd_endif
+| 6 = @ppd_plain_include
+| 7 = @ppd_define
+| 8 = @ppd_undef
+| 9 = @ppd_line
+| 10 = @ppd_error
+| 11 = @ppd_pragma
+| 12 = @ppd_objc_import
+| 13 = @ppd_include_next
+| 14 = @ppd_ms_import
+| 15 = @ppd_elifdef
+| 16 = @ppd_elifndef
+| 18 = @ppd_warning
+;
+
+@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import;
+
+@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef;
+
+preprocpair(
+ int begin : @ppd_branch ref,
+ int elseelifend : @preprocdirect ref
+);
+
+preproctrue(int branch : @ppd_branch ref);
+preprocfalse(int branch : @ppd_branch ref);
+
+preproctext(
+ unique int id: @preprocdirect ref,
+ string head: string ref,
+ string body: string ref
+);
+
+includes(
+ unique int id: @ppd_include ref,
+ int included: @file ref
+);
+
+link_targets(
+ int id: @link_target,
+ int binary: @file ref
+);
+
+link_parent(
+ int element : @element ref,
+ int link_target : @link_target ref
+);
+
+/**
+ * The CLI will automatically emit applicable tuples for this table,
+ * such as `databaseMetadata("isOverlay", "true")` when building an
+ * overlay database.
+ */
+databaseMetadata(
+ string metadataKey: string ref,
+ string value: string ref
+);
+
+/**
+ * The CLI will automatically emit tuples for each new/modified/deleted file
+ * when building an overlay database.
+ */
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*- XML Files -*/
+
+xmlEncoding(
+ unique int id: @file ref,
+ string encoding: string ref
+);
+
+xmlDTDs(
+ unique int id: @xmldtd,
+ string root: string ref,
+ string publicId: string ref,
+ string systemId: string ref,
+ int fileid: @file ref
+);
+
+xmlElements(
+ unique int id: @xmlelement,
+ string name: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlAttrs(
+ unique int id: @xmlattribute,
+ int elementid: @xmlelement ref,
+ string name: string ref,
+ string value: string ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlNs(
+ int id: @xmlnamespace,
+ string prefixName: string ref,
+ string URI: string ref,
+ int fileid: @file ref
+);
+
+xmlHasNs(
+ int elementId: @xmlnamespaceable ref,
+ int nsId: @xmlnamespace ref,
+ int fileid: @file ref
+);
+
+xmlComments(
+ unique int id: @xmlcomment,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int fileid: @file ref
+);
+
+xmlChars(
+ unique int id: @xmlcharacters,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int isCDATA: int ref,
+ int fileid: @file ref
+);
+
+@xmlparent = @file | @xmlelement;
+@xmlnamespaceable = @xmlelement | @xmlattribute;
+
+xmllocations(
+ int xmlElement: @xmllocatable ref,
+ int location: @location_default ref
+);
+
+@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace;
diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme
new file mode 100644
index 000000000000..d2d611b3fdcc
--- /dev/null
+++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/semmlecode.cpp.dbscheme
@@ -0,0 +1,2469 @@
+
+/*- Compilations -*/
+
+/**
+ * An invocation of the compiler. Note that more than one file may be
+ * compiled per invocation. For example, this command compiles three
+ * source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * The `id` simply identifies the invocation, while `cwd` is the working
+ * directory from which the compiler was invoked.
+ */
+compilations(
+ /**
+ * An invocation of the compiler. Note that more than one file may
+ * be compiled per invocation. For example, this command compiles
+ * three source files:
+ *
+ * gcc -c f1.c f2.c f3.c
+ */
+ unique int id : @compilation,
+ string cwd : string ref
+);
+
+/**
+ * The arguments that were passed to the extractor for a compiler
+ * invocation. If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then typically there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | *path to extractor*
+ * 1 | `--mimic`
+ * 2 | `/usr/bin/gcc`
+ * 3 | `-c`
+ * 4 | f1.c
+ * 5 | f2.c
+ * 6 | f3.c
+ */
+#keyset[id, num]
+compilation_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * The expanded arguments that were passed to the extractor for a
+ * compiler invocation. This is similar to `compilation_args`, but
+ * for a `@someFile` argument, it includes the arguments from that
+ * file, rather than just taking the argument literally.
+ */
+#keyset[id, num]
+compilation_expanded_args(
+ int id : @compilation ref,
+ int num : int ref,
+ string arg : string ref
+);
+
+/**
+ * Optionally, record the build mode for each compilation.
+ */
+compilation_build_mode(
+ unique int id : @compilation ref,
+ int mode : int ref
+);
+
+/*
+case @compilation_build_mode.mode of
+ 0 = @build_mode_none
+| 1 = @build_mode_manual
+| 2 = @build_mode_auto
+;
+*/
+
+/**
+ * The source files that are compiled by a compiler invocation.
+ * If `id` is for the compiler invocation
+ *
+ * gcc -c f1.c f2.c f3.c
+ *
+ * then there will be rows for
+ *
+ * num | arg
+ * --- | ---
+ * 0 | f1.c
+ * 1 | f2.c
+ * 2 | f3.c
+ *
+ * Note that even if those files `#include` headers, those headers
+ * do not appear as rows.
+ */
+#keyset[id, num]
+compilation_compiling_files(
+ int id : @compilation ref,
+ int num : int ref,
+ int file : @file ref
+);
+
+/**
+ * The time taken by the extractor for a compiler invocation.
+ *
+ * For each file `num`, there will be rows for
+ *
+ * kind | seconds
+ * ---- | ---
+ * 1 | CPU seconds used by the extractor frontend
+ * 2 | Elapsed seconds during the extractor frontend
+ * 3 | CPU seconds used by the extractor backend
+ * 4 | Elapsed seconds during the extractor backend
+ */
+#keyset[id, num, kind]
+compilation_time(
+ int id : @compilation ref,
+ int num : int ref,
+ /* kind:
+ 1 = frontend_cpu_seconds
+ 2 = frontend_elapsed_seconds
+ 3 = extractor_cpu_seconds
+ 4 = extractor_elapsed_seconds
+ */
+ int kind : int ref,
+ float seconds : float ref
+);
+
+/**
+ * An error or warning generated by the extractor.
+ * The diagnostic message `diagnostic` was generated during compiler
+ * invocation `compilation`, and is the `file_number_diagnostic_number`th
+ * message generated while extracting the `file_number`th file of that
+ * invocation.
+ */
+#keyset[compilation, file_number, file_number_diagnostic_number]
+diagnostic_for(
+ int diagnostic : @diagnostic ref,
+ int compilation : @compilation ref,
+ int file_number : int ref,
+ int file_number_diagnostic_number : int ref
+);
+
+/**
+ * If extraction was successful, then `cpu_seconds` and
+ * `elapsed_seconds` are the CPU time and elapsed time (respectively)
+ * that extraction took for compiler invocation `id`.
+ */
+compilation_finished(
+ unique int id : @compilation ref,
+ float cpu_seconds : float ref,
+ float elapsed_seconds : float ref
+);
+
+/*- External data -*/
+
+/**
+ * External data, loaded from CSV files during snapshot creation. See
+ * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data)
+ * for more information.
+ */
+externalData(
+ int id : @externalDataElement,
+ string path : string ref,
+ int column: int ref,
+ string value : string ref
+);
+
+/*- Source location prefix -*/
+
+/**
+ * The source location of the snapshot.
+ */
+sourceLocationPrefix(string prefix : string ref);
+
+/*- Files and folders -*/
+
+/**
+ * The location of an element.
+ * The location spans column `startcolumn` of line `startline` to
+ * column `endcolumn` of line `endline` in file `file`.
+ * For more information, see
+ * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/).
+ */
+locations_default(
+ unique int id: @location_default,
+ int file: @file ref,
+ int beginLine: int ref,
+ int beginColumn: int ref,
+ int endLine: int ref,
+ int endColumn: int ref
+);
+
+files(
+ unique int id: @file,
+ string name: string ref
+);
+
+folders(
+ unique int id: @folder,
+ string name: string ref
+);
+
+@container = @file | @folder
+
+containerparent(
+ int parent: @container ref,
+ unique int child: @container ref
+);
+
+/*- Lines of code -*/
+
+numlines(
+ int element_id: @sourceline ref,
+ int num_lines: int ref,
+ int num_code: int ref,
+ int num_comment: int ref
+);
+
+/*- Diagnostic messages -*/
+
+diagnostics(
+ unique int id: @diagnostic,
+ int severity: int ref,
+ string error_tag: string ref,
+ string error_message: string ref,
+ string full_error_message: string ref,
+ int location: @location_default ref
+);
+
+/*- C++ dbscheme -*/
+
+extractor_version(
+ string codeql_version: string ref,
+ string frontend_version: string ref
+)
+
+pch_uses(
+ int pch: @pch ref,
+ int compilation: @compilation ref,
+ int id: @file ref
+)
+
+#keyset[pch, compilation]
+pch_creations(
+ int pch: @pch,
+ int compilation: @compilation ref,
+ int from: @file ref
+)
+
+/** An element for which line-count information is available. */
+@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable;
+
+fileannotations(
+ int id: @file ref,
+ int kind: int ref,
+ string name: string ref,
+ string value: string ref
+);
+
+inmacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+affectedbymacroexpansion(
+ int id: @element ref,
+ int inv: @macroinvocation ref
+);
+
+case @macroinvocation.kind of
+ 1 = @macro_expansion
+| 2 = @other_macro_reference
+;
+
+macroinvocations(
+ unique int id: @macroinvocation,
+ int macro_id: @ppd_define ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+macroparent(
+ unique int id: @macroinvocation ref,
+ int parent_id: @macroinvocation ref
+);
+
+// a macroinvocation may be part of another location
+// the way to find a constant expression that uses a macro
+// is thus to find a constant expression that has a location
+// to which a macro invocation is bound
+macrolocationbind(
+ int id: @macroinvocation ref,
+ int location: @location_default ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_unexpanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+#keyset[invocation, argument_index]
+macro_argument_expanded(
+ int invocation: @macroinvocation ref,
+ int argument_index: int ref,
+ string text: string ref
+);
+
+case @function.kind of
+ 0 = @unknown_function
+| 1 = @normal_function
+| 2 = @constructor
+| 3 = @destructor
+| 4 = @conversion_function
+| 5 = @operator
+// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk
+| 7 = @user_defined_literal
+| 8 = @deduction_guide
+;
+
+functions(
+ unique int id: @function,
+ string name: string ref,
+ int kind: int ref
+);
+
+builtin_functions(
+ int id: @function ref
+)
+
+function_entry_point(
+ int id: @function ref,
+ unique int entry_point: @stmt ref
+);
+
+function_return_type(
+ int id: @function ref,
+ int return_type: @type ref
+);
+
+/**
+ * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits`
+ * instance associated with it, and the variables representing the `handle` and `promise`
+ * for it.
+ */
+coroutine(
+ unique int function: @function ref,
+ int traits: @type ref
+);
+
+/*
+case @coroutine_placeholder_variable.kind of
+ 1 = @handle
+| 2 = @promise
+| 3 = @init_await_resume
+;
+*/
+
+coroutine_placeholder_variable(
+ unique int placeholder_variable: @variable ref,
+ int kind: int ref,
+ int function: @function ref
+)
+
+/** The `new` function used for allocating the coroutine state, if any. */
+coroutine_new(
+ unique int function: @function ref,
+ int new: @function ref
+);
+
+/** The `delete` function used for deallocating the coroutine state, if any. */
+coroutine_delete(
+ unique int function: @function ref,
+ int delete: @function ref
+);
+
+purefunctions(unique int id: @function ref);
+
+function_deleted(unique int id: @function ref);
+
+function_defaulted(unique int id: @function ref);
+
+function_prototyped(unique int id: @function ref)
+
+deduction_guide_for_class(
+ int id: @function ref,
+ int class_template: @usertype ref
+)
+
+member_function_this_type(
+ unique int id: @function ref,
+ int this_type: @type ref
+);
+
+#keyset[id, type_id]
+fun_decls(
+ int id: @fun_decl,
+ int function: @function ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+fun_def(unique int id: @fun_decl ref);
+fun_specialized(unique int id: @fun_decl ref);
+fun_implicit(unique int id: @fun_decl ref);
+fun_decl_specifiers(
+ int id: @fun_decl ref,
+ string name: string ref
+)
+#keyset[fun_decl, index]
+fun_decl_throws(
+ int fun_decl: @fun_decl ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+/* an empty throw specification is different from none */
+fun_decl_empty_throws(unique int fun_decl: @fun_decl ref);
+fun_decl_noexcept(
+ int fun_decl: @fun_decl ref,
+ int constant: @expr ref
+);
+fun_decl_empty_noexcept(int fun_decl: @fun_decl ref);
+fun_decl_typedef_type(
+ unique int fun_decl: @fun_decl ref,
+ int typedeftype_id: @usertype ref
+);
+
+/*
+case @fun_requires.kind of
+ 1 = @template_attached
+| 2 = @function_attached
+;
+*/
+
+fun_requires(
+ int id: @fun_decl ref,
+ int kind: int ref,
+ int constraint: @expr ref
+);
+
+param_decl_bind(
+ unique int id: @var_decl ref,
+ int index: int ref,
+ int fun_decl: @fun_decl ref
+);
+
+#keyset[id, type_id]
+var_decls(
+ int id: @var_decl,
+ int variable: @variable ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+var_def(unique int id: @var_decl ref);
+var_specialized(int id: @var_decl ref);
+var_decl_specifiers(
+ int id: @var_decl ref,
+ string name: string ref
+)
+is_structured_binding(unique int id: @variable ref);
+var_requires(
+ int id: @var_decl ref,
+ int constraint: @expr ref
+);
+
+type_decls(
+ unique int id: @type_decl,
+ int type_id: @type ref,
+ int location: @location_default ref
+);
+type_def(unique int id: @type_decl ref);
+type_decl_top(
+ unique int type_decl: @type_decl ref
+);
+type_requires(
+ int id: @type_decl ref,
+ int constraint: @expr ref
+);
+
+namespace_decls(
+ unique int id: @namespace_decl,
+ int namespace_id: @namespace ref,
+ int location: @location_default ref,
+ int bodylocation: @location_default ref
+);
+
+case @using.kind of
+ 1 = @using_declaration
+| 2 = @using_directive
+| 3 = @using_enum_declaration
+;
+
+usings(
+ unique int id: @using,
+ int element_id: @element ref,
+ int location: @location_default ref,
+ int kind: int ref
+);
+
+/** The element which contains the `using` declaration. */
+using_container(
+ int parent: @element ref,
+ int child: @using ref
+);
+
+static_asserts(
+ unique int id: @static_assert,
+ int condition : @expr ref,
+ string message : string ref,
+ int location: @location_default ref,
+ int enclosing : @element ref
+);
+
+// each function has an ordered list of parameters
+#keyset[id, type_id]
+#keyset[function, index, type_id]
+params(
+ int id: @parameter,
+ int function: @parameterized_element ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+overrides(
+ int new: @function ref,
+ int old: @function ref
+);
+
+#keyset[id, type_id]
+membervariables(
+ int id: @membervariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+globalvariables(
+ int id: @globalvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+#keyset[id, type_id]
+localvariables(
+ int id: @localvariable,
+ int type_id: @type ref,
+ string name: string ref
+);
+
+autoderivation(
+ unique int var: @variable ref,
+ int derivation_type: @type ref
+);
+
+orphaned_variables(
+ int var: @localvariable ref,
+ int function: @function ref
+)
+
+enumconstants(
+ unique int id: @enumconstant,
+ int parent: @usertype ref,
+ int index: int ref,
+ int type_id: @type ref,
+ string name: string ref,
+ int location: @location_default ref
+);
+
+@variable = @localscopevariable | @globalvariable | @membervariable;
+
+@localscopevariable = @localvariable | @parameter;
+
+/**
+ * Built-in types are the fundamental types, e.g., integral, floating, and void.
+ */
+case @builtintype.kind of
+ 1 = @errortype
+| 2 = @unknowntype
+| 3 = @void
+| 4 = @boolean
+| 5 = @char
+| 6 = @unsigned_char
+| 7 = @signed_char
+| 8 = @short
+| 9 = @unsigned_short
+| 10 = @signed_short
+| 11 = @int
+| 12 = @unsigned_int
+| 13 = @signed_int
+| 14 = @long
+| 15 = @unsigned_long
+| 16 = @signed_long
+| 17 = @long_long
+| 18 = @unsigned_long_long
+| 19 = @signed_long_long
+// ... 20 Microsoft-specific __int8
+// ... 21 Microsoft-specific __int16
+// ... 22 Microsoft-specific __int32
+// ... 23 Microsoft-specific __int64
+| 24 = @float
+| 25 = @double
+| 26 = @long_double
+| 27 = @complex_float // C99-specific _Complex float
+| 28 = @complex_double // C99-specific _Complex double
+| 29 = @complex_long_double // C99-specific _Complex long double
+| 30 = @imaginary_float // C99-specific _Imaginary float
+| 31 = @imaginary_double // C99-specific _Imaginary double
+| 32 = @imaginary_long_double // C99-specific _Imaginary long double
+| 33 = @wchar_t // Microsoft-specific
+| 34 = @decltype_nullptr // C++11
+| 35 = @int128 // __int128
+| 36 = @unsigned_int128 // unsigned __int128
+| 37 = @signed_int128 // signed __int128
+| 38 = @float128 // __float128
+| 39 = @complex_float128 // _Complex __float128
+// ... 40 _Decimal32
+// ... 41 _Decimal64
+// ... 42 _Decimal128
+| 43 = @char16_t
+| 44 = @char32_t
+| 45 = @std_float32 // _Float32
+| 46 = @float32x // _Float32x
+| 47 = @std_float64 // _Float64
+| 48 = @float64x // _Float64x
+| 49 = @std_float128 // _Float128
+// ... 50 _Float128x
+| 51 = @char8_t
+| 52 = @float16 // _Float16
+| 53 = @complex_float16 // _Complex _Float16
+| 54 = @fp16 // __fp16
+| 55 = @std_bfloat16 // __bf16
+| 56 = @std_float16 // std::float16_t
+| 57 = @complex_std_float32 // _Complex _Float32
+| 58 = @complex_float32x // _Complex _Float32x
+| 59 = @complex_std_float64 // _Complex _Float64
+| 60 = @complex_float64x // _Complex _Float64x
+| 61 = @complex_std_float128 // _Complex _Float128
+| 62 = @mfp8 // __mfp8
+| 63 = @scalable_vector_count // __SVCount_t
+| 64 = @complex_fp16 // _Complex __fp16
+| 65 = @complex_std_bfloat16 // _Complex __bf16
+| 66 = @complex_std_float16 // _Complex std::float16_t
+;
+
+builtintypes(
+ unique int id: @builtintype,
+ string name: string ref,
+ int kind: int ref,
+ int size: int ref,
+ int sign: int ref,
+ int alignment: int ref
+);
+
+/**
+ * Derived types are types that are directly derived from existing types and
+ * point to, refer to, transform type data to return a new type.
+ */
+case @derivedtype.kind of
+ 1 = @pointer
+| 2 = @reference
+| 3 = @type_with_specifiers
+| 4 = @array
+| 5 = @gnu_vector
+| 6 = @routineptr
+| 7 = @routinereference
+| 8 = @rvalue_reference // C++11
+// ... 9 type_conforming_to_protocols deprecated
+| 10 = @block
+| 11 = @scalable_vector // Arm SVE
+;
+
+derivedtypes(
+ unique int id: @derivedtype,
+ string name: string ref,
+ int kind: int ref,
+ int type_id: @type ref
+);
+
+pointerishsize(unique int id: @derivedtype ref,
+ int size: int ref,
+ int alignment: int ref);
+
+arraysizes(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref,
+ int bytesize: int ref,
+ int alignment: int ref
+);
+
+tupleelements(
+ unique int id: @derivedtype ref,
+ int num_elements: int ref
+);
+
+typedefbase(
+ unique int id: @usertype ref,
+ int type_id: @type ref
+);
+
+/**
+ * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual`
+ * operator taking an expression as its argument. For example:
+ * ```
+ * int a;
+ * decltype(1+a) b;
+ * typeof(1+a) c;
+ * ```
+ * Here `expr` is `1+a`.
+ *
+ * Sometimes an additional pair of parentheses around the expression
+ * changes the semantics of the decltype, e.g.
+ * ```
+ * struct A { double x; };
+ * const A* a = new A();
+ * decltype( a->x ); // type is double
+ * decltype((a->x)); // type is const double&
+ * ```
+ * (Please consult the C++11 standard for more details).
+ * `parentheses_would_change_meaning` is `true` iff that is the case.
+ */
+
+/*
+case @decltype.kind of
+| 0 = @decltype
+| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+;
+*/
+
+#keyset[id, expr]
+decltypes(
+ int id: @decltype,
+ int expr: @expr ref,
+ int kind: int ref,
+ int base_type: @type ref,
+ boolean parentheses_would_change_meaning: boolean ref
+);
+
+case @type_operator.kind of
+ 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual
+| 1 = @underlying_type
+| 2 = @bases
+| 3 = @direct_bases
+| 4 = @add_lvalue_reference
+| 5 = @add_pointer
+| 6 = @add_rvalue_reference
+| 7 = @decay
+| 8 = @make_signed
+| 9 = @make_unsigned
+| 10 = @remove_all_extents
+| 11 = @remove_const
+| 12 = @remove_cv
+| 13 = @remove_cvref
+| 14 = @remove_extent
+| 15 = @remove_pointer
+| 16 = @remove_reference_t
+| 17 = @remove_restrict
+| 18 = @remove_volatile
+| 19 = @remove_reference
+;
+
+type_operators(
+ unique int id: @type_operator,
+ int arg_type: @type ref,
+ int kind: int ref,
+ int base_type: @type ref
+)
+
+case @usertype.kind of
+ 0 = @unknown_usertype
+| 1 = @struct
+| 2 = @class
+| 3 = @union
+| 4 = @enum
+// ... 5 = @typedef deprecated // classic C: typedef typedef type name
+// ... 6 = @template deprecated
+| 7 = @template_parameter
+| 8 = @template_template_parameter
+| 9 = @proxy_class // a proxy class associated with a template parameter
+// ... 10 objc_class deprecated
+// ... 11 objc_protocol deprecated
+// ... 12 objc_category deprecated
+| 13 = @scoped_enum
+// ... 14 = @using_alias deprecated // a using name = type style typedef
+| 15 = @template_struct
+| 16 = @template_class
+| 17 = @template_union
+| 18 = @alias
+;
+
+usertypes(
+ unique int id: @usertype,
+ string name: string ref,
+ int kind: int ref
+);
+
+usertypesize(
+ unique int id: @usertype ref,
+ int size: int ref,
+ int alignment: int ref
+);
+
+usertype_final(unique int id: @usertype ref);
+
+usertype_uuid(
+ unique int id: @usertype ref,
+ string uuid: string ref
+);
+
+/*
+case @usertype.alias_kind of
+| 0 = @typedef
+| 1 = @alias
+*/
+
+usertype_alias_kind(
+ int id: @usertype ref,
+ int alias_kind: int ref
+)
+
+nontype_template_parameters(
+ int id: @expr ref
+);
+
+type_template_type_constraint(
+ int id: @usertype ref,
+ int constraint: @expr ref
+);
+
+mangled_name(
+ unique int id: @declaration ref,
+ int mangled_name : @mangledname,
+ boolean is_complete: boolean ref
+);
+
+is_pod_class(unique int id: @usertype ref);
+is_standard_layout_class(unique int id: @usertype ref);
+
+is_complete(unique int id: @usertype ref);
+
+is_class_template(unique int id: @usertype ref);
+class_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+class_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+class_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@user_or_decltype = @usertype | @decltype;
+
+is_proxy_class_for(
+ unique int id: @usertype ref,
+ int templ_param_id: @user_or_decltype ref
+);
+
+type_mentions(
+ unique int id: @type_mention,
+ int type_id: @type ref,
+ int location: @location_default ref,
+ // a_symbol_reference_kind from the frontend.
+ int kind: int ref
+);
+
+is_function_template(unique int id: @function ref);
+function_instantiation(
+ unique int to: @function ref,
+ int from: @function ref
+);
+function_template_argument(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+function_template_argument_value(
+ int function_id: @function ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+is_variable_template(unique int id: @variable ref);
+variable_instantiation(
+ unique int to: @variable ref,
+ int from: @variable ref
+);
+variable_template_argument(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+variable_template_argument_value(
+ int variable_id: @variable ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+template_template_instantiation(
+ int to: @usertype ref,
+ int from: @usertype ref
+);
+template_template_argument(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+template_template_argument_value(
+ int type_id: @usertype ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+@concept = @concept_template | @concept_id;
+
+concept_templates(
+ unique int concept_id: @concept_template,
+ string name: string ref,
+ int location: @location_default ref
+);
+concept_instantiation(
+ unique int to: @concept_id ref,
+ int from: @concept_template ref
+);
+is_type_constraint(int concept_id: @concept_id ref);
+concept_template_argument(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_type: @type ref
+);
+concept_template_argument_value(
+ int concept_id: @concept ref,
+ int index: int ref,
+ int arg_value: @expr ref
+);
+
+routinetypes(
+ unique int id: @routinetype,
+ int return_type: @type ref
+);
+
+routinetypeargs(
+ int routine: @routinetype ref,
+ int index: int ref,
+ int type_id: @type ref
+);
+
+ptrtomembers(
+ unique int id: @ptrtomember,
+ int type_id: @type ref,
+ int class_id: @type ref
+);
+
+/*
+ specifiers for types, functions, and variables
+
+ "public",
+ "protected",
+ "private",
+
+ "const",
+ "volatile",
+ "static",
+
+ "pure",
+ "virtual",
+ "sealed", // Microsoft
+ "__interface", // Microsoft
+ "inline",
+ "explicit",
+
+ "near", // near far extension
+ "far", // near far extension
+ "__ptr32", // Microsoft
+ "__ptr64", // Microsoft
+ "__sptr", // Microsoft
+ "__uptr", // Microsoft
+ "dllimport", // Microsoft
+ "dllexport", // Microsoft
+ "thread", // Microsoft
+ "naked", // Microsoft
+ "microsoft_inline", // Microsoft
+ "forceinline", // Microsoft
+ "selectany", // Microsoft
+ "nothrow", // Microsoft
+ "novtable", // Microsoft
+ "noreturn", // Microsoft
+ "noinline", // Microsoft
+ "noalias", // Microsoft
+ "restrict", // Microsoft
+*/
+
+specifiers(
+ unique int id: @specifier,
+ unique string str: string ref
+);
+
+typespecifiers(
+ int type_id: @type ref,
+ int spec_id: @specifier ref
+);
+
+funspecifiers(
+ int func_id: @function ref,
+ int spec_id: @specifier ref
+);
+
+varspecifiers(
+ int var_id: @accessible ref,
+ int spec_id: @specifier ref
+);
+
+explicit_specifier_exprs(
+ unique int func_id: @function ref,
+ int constant: @expr ref
+)
+
+attributes(
+ unique int id: @attribute,
+ int kind: int ref,
+ string name: string ref,
+ string name_space: string ref,
+ int location: @location_default ref
+);
+
+case @attribute.kind of
+ 0 = @gnuattribute
+| 1 = @stdattribute
+| 2 = @declspec
+| 3 = @msattribute
+| 4 = @alignas
+// ... 5 @objc_propertyattribute deprecated
+;
+
+attribute_args(
+ unique int id: @attribute_arg,
+ int kind: int ref,
+ int attribute: @attribute ref,
+ int index: int ref,
+ int location: @location_default ref
+);
+
+case @attribute_arg.kind of
+ 0 = @attribute_arg_empty
+| 1 = @attribute_arg_token
+| 2 = @attribute_arg_constant
+| 3 = @attribute_arg_type
+| 4 = @attribute_arg_constant_expr
+| 5 = @attribute_arg_expr
+;
+
+attribute_arg_value(
+ unique int arg: @attribute_arg ref,
+ string value: string ref
+);
+attribute_arg_type(
+ unique int arg: @attribute_arg ref,
+ int type_id: @type ref
+);
+attribute_arg_constant(
+ unique int arg: @attribute_arg ref,
+ int constant: @expr ref
+)
+attribute_arg_expr(
+ unique int arg: @attribute_arg ref,
+ int expr: @expr ref
+)
+attribute_arg_name(
+ unique int arg: @attribute_arg ref,
+ string name: string ref
+);
+
+typeattributes(
+ int type_id: @type ref,
+ int spec_id: @attribute ref
+);
+
+funcattributes(
+ int func_id: @function ref,
+ int spec_id: @attribute ref
+);
+
+varattributes(
+ int var_id: @accessible ref,
+ int spec_id: @attribute ref
+);
+
+namespaceattributes(
+ int namespace_id: @namespace ref,
+ int spec_id: @attribute ref
+);
+
+stmtattributes(
+ int stmt_id: @stmt ref,
+ int spec_id: @attribute ref
+);
+
+@type = @builtintype
+ | @derivedtype
+ | @usertype
+ | @routinetype
+ | @ptrtomember
+ | @decltype
+ | @type_operator;
+
+unspecifiedtype(
+ unique int type_id: @type ref,
+ int unspecified_type_id: @type ref
+);
+
+member(
+ int parent: @type ref,
+ int index: int ref,
+ int child: @member ref
+);
+
+@enclosingfunction_child = @usertype | @variable | @namespace
+
+enclosingfunction(
+ unique int child: @enclosingfunction_child ref,
+ int parent: @function ref
+);
+
+derivations(
+ unique int derivation: @derivation,
+ int sub: @type ref,
+ int index: int ref,
+ int super: @type ref,
+ int location: @location_default ref
+);
+
+derspecifiers(
+ int der_id: @derivation ref,
+ int spec_id: @specifier ref
+);
+
+/**
+ * Contains the byte offset of the base class subobject within the derived
+ * class. Only holds for non-virtual base classes, but see table
+ * `virtual_base_offsets` for offsets of virtual base class subobjects.
+ */
+direct_base_offsets(
+ unique int der_id: @derivation ref,
+ int offset: int ref
+);
+
+/**
+ * Contains the byte offset of the virtual base class subobject for class
+ * `super` within a most-derived object of class `sub`. `super` can be either a
+ * direct or indirect base class.
+ */
+#keyset[sub, super]
+virtual_base_offsets(
+ int sub: @usertype ref,
+ int super: @usertype ref,
+ int offset: int ref
+);
+
+frienddecls(
+ unique int id: @frienddecl,
+ int type_id: @type ref,
+ int decl_id: @declaration ref,
+ int location: @location_default ref
+);
+
+@declaredtype = @usertype ;
+
+@declaration = @function
+ | @declaredtype
+ | @variable
+ | @enumconstant
+ | @frienddecl
+ | @concept_template;
+
+@member = @membervariable
+ | @function
+ | @declaredtype
+ | @enumconstant;
+
+@locatable = @diagnostic
+ | @declaration
+ | @ppd_include
+ | @ppd_define
+ | @macroinvocation
+ /*| @funcall*/
+ | @xmllocatable
+ | @attribute
+ | @attribute_arg;
+
+@namedscope = @namespace | @usertype;
+
+@element = @locatable
+ | @file
+ | @folder
+ | @specifier
+ | @type
+ | @expr
+ | @namespace
+ | @initialiser
+ | @stmt
+ | @derivation
+ | @comment
+ | @preprocdirect
+ | @fun_decl
+ | @var_decl
+ | @type_decl
+ | @namespace_decl
+ | @using
+ | @namequalifier
+ | @specialnamequalifyingelement
+ | @static_assert
+ | @type_mention
+ | @lambdacapture;
+
+@exprparent = @element;
+
+comments(
+ unique int id: @comment,
+ string contents: string ref,
+ int location: @location_default ref
+);
+
+commentbinding(
+ int id: @comment ref,
+ int element: @element ref
+);
+
+exprconv(
+ int converted: @expr ref,
+ unique int conversion: @expr ref
+);
+
+compgenerated(unique int id: @element ref);
+
+/**
+ * `destructor_call` destructs the `i`'th entity that should be
+ * destructed following `element`. Note that entities should be
+ * destructed in reverse construction order, so for a given `element`
+ * these should be called from highest to lowest `i`.
+ */
+#keyset[element, destructor_call]
+#keyset[element, i]
+synthetic_destructor_call(
+ int element: @element ref,
+ int i: int ref,
+ int destructor_call: @routineexpr ref
+);
+
+namespaces(
+ unique int id: @namespace,
+ string name: string ref
+);
+
+namespace_inline(
+ unique int id: @namespace ref
+);
+
+namespacembrs(
+ int parentid: @namespace ref,
+ unique int memberid: @namespacembr ref
+);
+
+@namespacembr = @declaration | @namespace;
+
+exprparents(
+ int expr_id: @expr ref,
+ int child_index: int ref,
+ int parent_id: @exprparent ref
+);
+
+expr_isload(unique int expr_id: @expr ref);
+
+@cast = @c_style_cast
+ | @const_cast
+ | @dynamic_cast
+ | @reinterpret_cast
+ | @static_cast
+ ;
+
+/*
+case @conversion.kind of
+ 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast
+| 1 = @bool_conversion // conversion to 'bool'
+| 2 = @base_class_conversion // a derived-to-base conversion
+| 3 = @derived_class_conversion // a base-to-derived conversion
+| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member
+| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member
+| 6 = @glvalue_adjust // an adjustment of the type of a glvalue
+| 7 = @prvalue_adjust // an adjustment of the type of a prvalue
+;
+*/
+/**
+ * Describes the semantics represented by a cast expression. This is largely
+ * independent of the source syntax of the cast, so it is separate from the
+ * regular expression kind.
+ */
+conversionkinds(
+ unique int expr_id: @cast ref,
+ int kind: int ref
+);
+
+@conversion = @cast
+ | @array_to_pointer
+ | @parexpr
+ | @reference_to
+ | @ref_indirect
+ | @temp_init
+ | @c11_generic
+ ;
+
+/*
+case @funbindexpr.kind of
+ 0 = @normal_call // a normal call
+| 1 = @virtual_call // a virtual call
+| 2 = @adl_call // a call whose target is only found by ADL
+;
+*/
+iscall(
+ unique int caller: @funbindexpr ref,
+ int kind: int ref
+);
+
+numtemplatearguments(
+ unique int expr_id: @expr ref,
+ int num: int ref
+);
+
+specialnamequalifyingelements(
+ unique int id: @specialnamequalifyingelement,
+ unique string name: string ref
+);
+
+@namequalifiableelement = @expr | @namequalifier;
+@namequalifyingelement = @namespace
+ | @specialnamequalifyingelement
+ | @usertype
+ | @decltype;
+
+namequalifiers(
+ unique int id: @namequalifier,
+ unique int qualifiableelement: @namequalifiableelement ref,
+ int qualifyingelement: @namequalifyingelement ref,
+ int location: @location_default ref
+);
+
+varbind(
+ int expr: @varbindexpr ref,
+ int var: @accessible ref
+);
+
+funbind(
+ int expr: @funbindexpr ref,
+ int fun: @function ref
+);
+
+@any_new_expr = @new_expr
+ | @new_array_expr;
+
+@new_or_delete_expr = @any_new_expr
+ | @delete_expr
+ | @delete_array_expr;
+
+@prefix_crement_expr = @preincrexpr | @predecrexpr;
+
+@postfix_crement_expr = @postincrexpr | @postdecrexpr;
+
+@increment_expr = @preincrexpr | @postincrexpr;
+
+@decrement_expr = @predecrexpr | @postdecrexpr;
+
+@crement_expr = @increment_expr | @decrement_expr;
+
+@un_arith_op_expr = @arithnegexpr
+ | @unaryplusexpr
+ | @conjugation
+ | @realpartexpr
+ | @imagpartexpr
+ | @crement_expr
+ ;
+
+@un_bitwise_op_expr = @complementexpr;
+
+@un_log_op_expr = @notexpr;
+
+@un_op_expr = @address_of
+ | @indirect
+ | @un_arith_op_expr
+ | @un_bitwise_op_expr
+ | @builtinaddressof
+ | @vec_fill
+ | @un_log_op_expr
+ | @co_await
+ | @co_yield
+ ;
+
+@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr;
+
+@cmp_op_expr = @eq_op_expr | @rel_op_expr;
+
+@eq_op_expr = @eqexpr | @neexpr;
+
+@rel_op_expr = @gtexpr
+ | @ltexpr
+ | @geexpr
+ | @leexpr
+ | @spaceshipexpr
+ ;
+
+@bin_bitwise_op_expr = @lshiftexpr
+ | @rshiftexpr
+ | @andexpr
+ | @orexpr
+ | @xorexpr
+ ;
+
+@p_arith_op_expr = @paddexpr
+ | @psubexpr
+ | @pdiffexpr
+ ;
+
+@bin_arith_op_expr = @addexpr
+ | @subexpr
+ | @mulexpr
+ | @divexpr
+ | @remexpr
+ | @jmulexpr
+ | @jdivexpr
+ | @fjaddexpr
+ | @jfaddexpr
+ | @fjsubexpr
+ | @jfsubexpr
+ | @minexpr
+ | @maxexpr
+ | @p_arith_op_expr
+ ;
+
+@bin_op_expr = @bin_arith_op_expr
+ | @bin_bitwise_op_expr
+ | @cmp_op_expr
+ | @bin_log_op_expr
+ ;
+
+@op_expr = @un_op_expr
+ | @bin_op_expr
+ | @assign_expr
+ | @conditionalexpr
+ ;
+
+@assign_arith_expr = @assignaddexpr
+ | @assignsubexpr
+ | @assignmulexpr
+ | @assigndivexpr
+ | @assignremexpr
+ ;
+
+@assign_bitwise_expr = @assignandexpr
+ | @assignorexpr
+ | @assignxorexpr
+ | @assignlshiftexpr
+ | @assignrshiftexpr
+ ;
+
+@assign_pointer_expr = @assignpaddexpr
+ | @assignpsubexpr
+ ;
+
+@assign_op_expr = @assign_arith_expr
+ | @assign_bitwise_expr
+ | @assign_pointer_expr
+ ;
+
+@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr
+
+/*
+ Binary encoding of the allocator form.
+
+ case @allocator.form of
+ 0 = plain
+ | 1 = alignment
+ ;
+*/
+
+/**
+ * The allocator function associated with a `new` or `new[]` expression.
+ * The `form` column specified whether the allocation call contains an alignment
+ * argument.
+ */
+expr_allocator(
+ unique int expr: @any_new_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/*
+ Binary encoding of the deallocator form.
+
+ case @deallocator.form of
+ 0 = plain
+ | 1 = size
+ | 2 = alignment
+ | 4 = destroying_delete
+ ;
+*/
+
+/**
+ * The deallocator function associated with a `delete`, `delete[]`, `new`, or
+ * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the
+ * one used to free memory if the initialization throws an exception.
+ * The `form` column specifies whether the deallocation call contains a size
+ * argument, and alignment argument, or both.
+ */
+expr_deallocator(
+ unique int expr: @new_or_delete_expr ref,
+ int func: @function ref,
+ int form: int ref
+);
+
+/**
+ * Holds if the `@conditionalexpr` is of the two operand form
+ * `guard ? : false`.
+ */
+expr_cond_two_operand(
+ unique int cond: @conditionalexpr ref
+);
+
+/**
+ * The guard of `@conditionalexpr` `guard ? true : false`
+ */
+expr_cond_guard(
+ unique int cond: @conditionalexpr ref,
+ int guard: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` holds. For the two operand form
+ * `guard ?: false` consider using `expr_cond_guard` instead.
+ */
+expr_cond_true(
+ unique int cond: @conditionalexpr ref,
+ int true: @expr ref
+);
+
+/**
+ * The expression used when the guard of `@conditionalexpr`
+ * `guard ? true : false` does not hold.
+ */
+expr_cond_false(
+ unique int cond: @conditionalexpr ref,
+ int false: @expr ref
+);
+
+/** A string representation of the value. */
+values(
+ unique int id: @value,
+ string str: string ref
+);
+
+/** The actual text in the source code for the value, if any. */
+valuetext(
+ unique int id: @value ref,
+ string text: string ref
+);
+
+valuebind(
+ int val: @value ref,
+ unique int expr: @expr ref
+);
+
+fieldoffsets(
+ unique int id: @variable ref,
+ int byteoffset: int ref,
+ int bitoffset: int ref
+);
+
+bitfield(
+ unique int id: @variable ref,
+ int bits: int ref,
+ int declared_bits: int ref
+);
+
+/* TODO
+memberprefix(
+ int member: @expr ref,
+ int prefix: @expr ref
+);
+*/
+
+/*
+ kind(1) = mbrcallexpr
+ kind(2) = mbrptrcallexpr
+ kind(3) = mbrptrmbrcallexpr
+ kind(4) = ptrmbrptrmbrcallexpr
+ kind(5) = mbrreadexpr // x.y
+ kind(6) = mbrptrreadexpr // p->y
+ kind(7) = mbrptrmbrreadexpr // x.*pm
+ kind(8) = mbrptrmbrptrreadexpr // x->*pm
+ kind(9) = staticmbrreadexpr // static x.y
+ kind(10) = staticmbrptrreadexpr // static p->y
+*/
+/* TODO
+memberaccess(
+ int member: @expr ref,
+ int kind: int ref
+);
+*/
+
+initialisers(
+ unique int init: @initialiser,
+ int var: @accessible ref,
+ unique int expr: @expr ref,
+ int location: @location_default ref
+);
+
+braced_initialisers(
+ int init: @initialiser ref
+);
+
+/**
+ * An ancestor for the expression, for cases in which we cannot
+ * otherwise find the expression's parent.
+ */
+expr_ancestor(
+ int exp: @expr ref,
+ int ancestor: @element ref
+);
+
+exprs(
+ unique int id: @expr,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+expr_reuse(
+ int reuse: @expr ref,
+ int original: @expr ref,
+ int value_category: int ref
+)
+
+/*
+ case @value.category of
+ 1 = prval
+ | 2 = xval
+ | 3 = lval
+ ;
+*/
+expr_types(
+ int id: @expr ref,
+ int typeid: @type ref,
+ int value_category: int ref
+);
+
+case @expr.kind of
+ 1 = @errorexpr
+| 2 = @address_of // & AddressOfExpr
+| 3 = @reference_to // ReferenceToExpr (implicit?)
+| 4 = @indirect // * PointerDereferenceExpr
+| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?)
+// ...
+| 8 = @array_to_pointer // (???)
+| 9 = @vacuous_destructor_call // VacuousDestructorCall
+// ...
+| 11 = @assume // Microsoft
+| 12 = @parexpr
+| 13 = @arithnegexpr
+| 14 = @unaryplusexpr
+| 15 = @complementexpr
+| 16 = @notexpr
+| 17 = @conjugation // GNU ~ operator
+| 18 = @realpartexpr // GNU __real
+| 19 = @imagpartexpr // GNU __imag
+| 20 = @postincrexpr
+| 21 = @postdecrexpr
+| 22 = @preincrexpr
+| 23 = @predecrexpr
+| 24 = @conditionalexpr
+| 25 = @addexpr
+| 26 = @subexpr
+| 27 = @mulexpr
+| 28 = @divexpr
+| 29 = @remexpr
+| 30 = @jmulexpr // C99 mul imaginary
+| 31 = @jdivexpr // C99 div imaginary
+| 32 = @fjaddexpr // C99 add real + imaginary
+| 33 = @jfaddexpr // C99 add imaginary + real
+| 34 = @fjsubexpr // C99 sub real - imaginary
+| 35 = @jfsubexpr // C99 sub imaginary - real
+| 36 = @paddexpr // pointer add (pointer + int or int + pointer)
+| 37 = @psubexpr // pointer sub (pointer - integer)
+| 38 = @pdiffexpr // difference between two pointers
+| 39 = @lshiftexpr
+| 40 = @rshiftexpr
+| 41 = @andexpr
+| 42 = @orexpr
+| 43 = @xorexpr
+| 44 = @eqexpr
+| 45 = @neexpr
+| 46 = @gtexpr
+| 47 = @ltexpr
+| 48 = @geexpr
+| 49 = @leexpr
+| 50 = @minexpr // GNU minimum
+| 51 = @maxexpr // GNU maximum
+| 52 = @assignexpr
+| 53 = @assignaddexpr
+| 54 = @assignsubexpr
+| 55 = @assignmulexpr
+| 56 = @assigndivexpr
+| 57 = @assignremexpr
+| 58 = @assignlshiftexpr
+| 59 = @assignrshiftexpr
+| 60 = @assignandexpr
+| 61 = @assignorexpr
+| 62 = @assignxorexpr
+| 63 = @assignpaddexpr // assign pointer add
+| 64 = @assignpsubexpr // assign pointer sub
+| 65 = @andlogicalexpr
+| 66 = @orlogicalexpr
+| 67 = @commaexpr
+| 68 = @subscriptexpr // access to member of an array, e.g., a[5]
+// ... 69 @objc_subscriptexpr deprecated
+// ... 70 @cmdaccess deprecated
+// ...
+| 73 = @virtfunptrexpr
+| 74 = @callexpr
+// ... 75 @msgexpr_normal deprecated
+// ... 76 @msgexpr_super deprecated
+// ... 77 @atselectorexpr deprecated
+// ... 78 @atprotocolexpr deprecated
+| 79 = @vastartexpr
+| 80 = @vaargexpr
+| 81 = @vaendexpr
+| 82 = @vacopyexpr
+// ... 83 @atencodeexpr deprecated
+| 84 = @varaccess
+| 85 = @thisaccess
+// ... 86 @objc_box_expr deprecated
+| 87 = @new_expr
+| 88 = @delete_expr
+| 89 = @throw_expr
+| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2)
+| 91 = @braced_init_list
+| 92 = @type_id
+| 93 = @runtime_sizeof
+| 94 = @runtime_alignof
+| 95 = @sizeof_pack
+| 96 = @expr_stmt // GNU extension
+| 97 = @routineexpr
+| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....)
+| 99 = @offsetofexpr // offsetof ::= type and field
+| 100 = @hasassignexpr // __has_assign ::= type
+| 101 = @hascopyexpr // __has_copy ::= type
+| 102 = @hasnothrowassign // __has_nothrow_assign ::= type
+| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type
+| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type
+| 105 = @hastrivialassign // __has_trivial_assign ::= type
+| 106 = @hastrivialconstr // __has_trivial_constructor ::= type
+| 107 = @hastrivialcopy // __has_trivial_copy ::= type
+| 108 = @hasuserdestr // __has_user_destructor ::= type
+| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type
+| 110 = @isabstractexpr // __is_abstract ::= type
+| 111 = @isbaseofexpr // __is_base_of ::= type type
+| 112 = @isclassexpr // __is_class ::= type
+| 113 = @isconvtoexpr // __is_convertible_to ::= type type
+| 114 = @isemptyexpr // __is_empty ::= type
+| 115 = @isenumexpr // __is_enum ::= type
+| 116 = @ispodexpr // __is_pod ::= type
+| 117 = @ispolyexpr // __is_polymorphic ::= type
+| 118 = @isunionexpr // __is_union ::= type
+| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type
+| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof
+// ...
+| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type
+| 123 = @literal
+| 124 = @uuidof
+| 127 = @aggregateliteral
+| 128 = @delete_array_expr
+| 129 = @new_array_expr
+// ... 130 @objc_array_literal deprecated
+// ... 131 @objc_dictionary_literal deprecated
+| 132 = @foldexpr
+// ...
+| 200 = @ctordirectinit
+| 201 = @ctorvirtualinit
+| 202 = @ctorfieldinit
+| 203 = @ctordelegatinginit
+| 204 = @dtordirectdestruct
+| 205 = @dtorvirtualdestruct
+| 206 = @dtorfielddestruct
+// ...
+| 210 = @static_cast
+| 211 = @reinterpret_cast
+| 212 = @const_cast
+| 213 = @dynamic_cast
+| 214 = @c_style_cast
+| 215 = @lambdaexpr
+| 216 = @param_ref
+| 217 = @noopexpr
+// ...
+| 294 = @istriviallyconstructibleexpr
+| 295 = @isdestructibleexpr
+| 296 = @isnothrowdestructibleexpr
+| 297 = @istriviallydestructibleexpr
+| 298 = @istriviallyassignableexpr
+| 299 = @isnothrowassignableexpr
+| 300 = @istrivialexpr
+| 301 = @isstandardlayoutexpr
+| 302 = @istriviallycopyableexpr
+| 303 = @isliteraltypeexpr
+| 304 = @hastrivialmoveconstructorexpr
+| 305 = @hastrivialmoveassignexpr
+| 306 = @hasnothrowmoveassignexpr
+| 307 = @isconstructibleexpr
+| 308 = @isnothrowconstructibleexpr
+| 309 = @hasfinalizerexpr
+| 310 = @isdelegateexpr
+| 311 = @isinterfaceclassexpr
+| 312 = @isrefarrayexpr
+| 313 = @isrefclassexpr
+| 314 = @issealedexpr
+| 315 = @issimplevalueclassexpr
+| 316 = @isvalueclassexpr
+| 317 = @isfinalexpr
+| 319 = @noexceptexpr
+| 320 = @builtinshufflevector
+| 321 = @builtinchooseexpr
+| 322 = @builtinaddressof
+| 323 = @vec_fill
+| 324 = @builtinconvertvector
+| 325 = @builtincomplex
+| 326 = @spaceshipexpr
+| 327 = @co_await
+| 328 = @co_yield
+| 329 = @temp_init
+| 330 = @isassignable
+| 331 = @isaggregate
+| 332 = @hasuniqueobjectrepresentations
+| 333 = @builtinbitcast
+| 334 = @builtinshuffle
+| 335 = @blockassignexpr
+| 336 = @issame
+| 337 = @isfunction
+| 338 = @islayoutcompatible
+| 339 = @ispointerinterconvertiblebaseof
+| 340 = @isarray
+| 341 = @arrayrank
+| 342 = @arrayextent
+| 343 = @isarithmetic
+| 344 = @iscompletetype
+| 345 = @iscompound
+| 346 = @isconst
+| 347 = @isfloatingpoint
+| 348 = @isfundamental
+| 349 = @isintegral
+| 350 = @islvaluereference
+| 351 = @ismemberfunctionpointer
+| 352 = @ismemberobjectpointer
+| 353 = @ismemberpointer
+| 354 = @isobject
+| 355 = @ispointer
+| 356 = @isreference
+| 357 = @isrvaluereference
+| 358 = @isscalar
+| 359 = @issigned
+| 360 = @isunsigned
+| 361 = @isvoid
+| 362 = @isvolatile
+| 363 = @reuseexpr
+| 364 = @istriviallycopyassignable
+| 365 = @isassignablenopreconditioncheck
+| 366 = @referencebindstotemporary
+| 367 = @issameas
+| 368 = @builtinhasattribute
+| 369 = @ispointerinterconvertiblewithclass
+| 370 = @builtinispointerinterconvertiblewithclass
+| 371 = @iscorrespondingmember
+| 372 = @builtiniscorrespondingmember
+| 373 = @isboundedarray
+| 374 = @isunboundedarray
+| 375 = @isreferenceable
+| 378 = @isnothrowconvertible
+| 379 = @referenceconstructsfromtemporary
+| 380 = @referenceconvertsfromtemporary
+| 381 = @isconvertible
+| 382 = @isvalidwinrttype
+| 383 = @iswinclass
+| 384 = @iswininterface
+| 385 = @istriviallyequalitycomparable
+| 386 = @isscopedenum
+| 387 = @istriviallyrelocatable
+| 388 = @datasizeof
+| 389 = @c11_generic
+| 390 = @requires_expr
+| 391 = @nested_requirement
+| 392 = @compound_requirement
+| 393 = @concept_id
+;
+
+@var_args_expr = @vastartexpr
+ | @vaendexpr
+ | @vaargexpr
+ | @vacopyexpr
+ ;
+
+@builtin_op = @var_args_expr
+ | @noopexpr
+ | @offsetofexpr
+ | @intaddrexpr
+ | @hasassignexpr
+ | @hascopyexpr
+ | @hasnothrowassign
+ | @hasnothrowconstr
+ | @hasnothrowcopy
+ | @hastrivialassign
+ | @hastrivialconstr
+ | @hastrivialcopy
+ | @hastrivialdestructor
+ | @hasuserdestr
+ | @hasvirtualdestr
+ | @isabstractexpr
+ | @isbaseofexpr
+ | @isclassexpr
+ | @isconvtoexpr
+ | @isemptyexpr
+ | @isenumexpr
+ | @ispodexpr
+ | @ispolyexpr
+ | @isunionexpr
+ | @typescompexpr
+ | @builtinshufflevector
+ | @builtinconvertvector
+ | @builtinaddressof
+ | @istriviallyconstructibleexpr
+ | @isdestructibleexpr
+ | @isnothrowdestructibleexpr
+ | @istriviallydestructibleexpr
+ | @istriviallyassignableexpr
+ | @isnothrowassignableexpr
+ | @istrivialexpr
+ | @isstandardlayoutexpr
+ | @istriviallycopyableexpr
+ | @isliteraltypeexpr
+ | @hastrivialmoveconstructorexpr
+ | @hastrivialmoveassignexpr
+ | @hasnothrowmoveassignexpr
+ | @isconstructibleexpr
+ | @isnothrowconstructibleexpr
+ | @hasfinalizerexpr
+ | @isdelegateexpr
+ | @isinterfaceclassexpr
+ | @isrefarrayexpr
+ | @isrefclassexpr
+ | @issealedexpr
+ | @issimplevalueclassexpr
+ | @isvalueclassexpr
+ | @isfinalexpr
+ | @builtinchooseexpr
+ | @builtincomplex
+ | @isassignable
+ | @isaggregate
+ | @hasuniqueobjectrepresentations
+ | @builtinbitcast
+ | @builtinshuffle
+ | @issame
+ | @isfunction
+ | @islayoutcompatible
+ | @ispointerinterconvertiblebaseof
+ | @isarray
+ | @arrayrank
+ | @arrayextent
+ | @isarithmetic
+ | @iscompletetype
+ | @iscompound
+ | @isconst
+ | @isfloatingpoint
+ | @isfundamental
+ | @isintegral
+ | @islvaluereference
+ | @ismemberfunctionpointer
+ | @ismemberobjectpointer
+ | @ismemberpointer
+ | @isobject
+ | @ispointer
+ | @isreference
+ | @isrvaluereference
+ | @isscalar
+ | @issigned
+ | @isunsigned
+ | @isvoid
+ | @isvolatile
+ | @istriviallycopyassignable
+ | @isassignablenopreconditioncheck
+ | @referencebindstotemporary
+ | @issameas
+ | @builtinhasattribute
+ | @ispointerinterconvertiblewithclass
+ | @builtinispointerinterconvertiblewithclass
+ | @iscorrespondingmember
+ | @builtiniscorrespondingmember
+ | @isboundedarray
+ | @isunboundedarray
+ | @isreferenceable
+ | @isnothrowconvertible
+ | @referenceconstructsfromtemporary
+ | @referenceconvertsfromtemporary
+ | @isconvertible
+ | @isvalidwinrttype
+ | @iswinclass
+ | @iswininterface
+ | @istriviallyequalitycomparable
+ | @isscopedenum
+ | @istriviallyrelocatable
+ ;
+
+compound_requirement_is_noexcept(
+ int expr: @compound_requirement ref
+);
+
+new_allocated_type(
+ unique int expr: @new_expr ref,
+ int type_id: @type ref
+);
+
+new_array_allocated_type(
+ unique int expr: @new_array_expr ref,
+ int type_id: @type ref
+);
+
+/**
+ * The field being initialized by an initializer expression within an aggregate
+ * initializer for a class/struct/union. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_field_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int field: @membervariable ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+/**
+ * The index of the element being initialized by an initializer expression
+ * within an aggregate initializer for an array. Position is used to sort repeated initializers.
+ */
+#keyset[aggregate, position]
+aggregate_array_init(
+ int aggregate: @aggregateliteral ref,
+ int initializer: @expr ref,
+ int element_index: int ref,
+ int position: int ref,
+ boolean is_designated: boolean ref
+);
+
+@ctorinit = @ctordirectinit
+ | @ctorvirtualinit
+ | @ctorfieldinit
+ | @ctordelegatinginit;
+@dtordestruct = @dtordirectdestruct
+ | @dtorvirtualdestruct
+ | @dtorfielddestruct;
+
+
+condition_decl_bind(
+ unique int expr: @condition_decl ref,
+ unique int decl: @declaration ref
+);
+
+typeid_bind(
+ unique int expr: @type_id ref,
+ int type_id: @type ref
+);
+
+uuidof_bind(
+ unique int expr: @uuidof ref,
+ int type_id: @type ref
+);
+
+@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack;
+
+sizeof_bind(
+ unique int expr: @sizeof_or_alignof ref,
+ int type_id: @type ref
+);
+
+code_block(
+ unique int block: @literal ref,
+ unique int routine: @function ref
+);
+
+lambdas(
+ unique int expr: @lambdaexpr ref,
+ string default_capture: string ref,
+ boolean has_explicit_return_type: boolean ref,
+ boolean has_explicit_parameter_list: boolean ref
+);
+
+lambda_capture(
+ unique int id: @lambdacapture,
+ int lambda: @lambdaexpr ref,
+ int index: int ref,
+ int field: @membervariable ref,
+ boolean captured_by_reference: boolean ref,
+ boolean is_implicit: boolean ref,
+ int location: @location_default ref
+);
+
+@funbindexpr = @routineexpr
+ | @new_expr
+ | @delete_expr
+ | @delete_array_expr
+ | @ctordirectinit
+ | @ctorvirtualinit
+ | @ctordelegatinginit
+ | @dtordirectdestruct
+ | @dtorvirtualdestruct;
+
+@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct;
+@addressable = @function | @variable ;
+@accessible = @addressable | @enumconstant ;
+
+@access = @varaccess | @routineexpr ;
+
+fold(
+ int expr: @foldexpr ref,
+ string operator: string ref,
+ boolean is_left_fold: boolean ref
+);
+
+stmts(
+ unique int id: @stmt,
+ int kind: int ref,
+ int location: @location_default ref
+);
+
+case @stmt.kind of
+ 1 = @stmt_expr
+| 2 = @stmt_if
+| 3 = @stmt_while
+| 4 = @stmt_goto
+| 5 = @stmt_label
+| 6 = @stmt_return
+| 7 = @stmt_block
+| 8 = @stmt_end_test_while // do { ... } while ( ... )
+| 9 = @stmt_for
+| 10 = @stmt_switch_case
+| 11 = @stmt_switch
+| 13 = @stmt_asm // "asm" statement or the body of an asm function
+| 15 = @stmt_try_block
+| 16 = @stmt_microsoft_try // Microsoft
+| 17 = @stmt_decl
+| 18 = @stmt_set_vla_size // C99
+| 19 = @stmt_vla_decl // C99
+| 25 = @stmt_assigned_goto // GNU
+| 26 = @stmt_empty
+| 27 = @stmt_continue
+| 28 = @stmt_break
+| 29 = @stmt_range_based_for // C++11
+// ... 30 @stmt_at_autoreleasepool_block deprecated
+// ... 31 @stmt_objc_for_in deprecated
+// ... 32 @stmt_at_synchronized deprecated
+| 33 = @stmt_handler
+// ... 34 @stmt_finally_end deprecated
+| 35 = @stmt_constexpr_if
+| 37 = @stmt_co_return
+| 38 = @stmt_consteval_if
+| 39 = @stmt_not_consteval_if
+| 40 = @stmt_leave
+;
+
+type_vla(
+ int type_id: @type ref,
+ int decl: @stmt_vla_decl ref
+);
+
+variable_vla(
+ int var: @variable ref,
+ int decl: @stmt_vla_decl ref
+);
+
+type_is_vla(unique int type_id: @derivedtype ref)
+
+if_initialization(
+ unique int if_stmt: @stmt_if ref,
+ int init_id: @stmt ref
+);
+
+if_then(
+ unique int if_stmt: @stmt_if ref,
+ int then_id: @stmt ref
+);
+
+if_else(
+ unique int if_stmt: @stmt_if ref,
+ int else_id: @stmt ref
+);
+
+constexpr_if_initialization(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int init_id: @stmt ref
+);
+
+constexpr_if_then(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int then_id: @stmt ref
+);
+
+constexpr_if_else(
+ unique int constexpr_if_stmt: @stmt_constexpr_if ref,
+ int else_id: @stmt ref
+);
+
+@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if;
+
+consteval_if_then(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int then_id: @stmt ref
+);
+
+consteval_if_else(
+ unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref,
+ int else_id: @stmt ref
+);
+
+while_body(
+ unique int while_stmt: @stmt_while ref,
+ int body_id: @stmt ref
+);
+
+do_body(
+ unique int do_stmt: @stmt_end_test_while ref,
+ int body_id: @stmt ref
+);
+
+switch_initialization(
+ unique int switch_stmt: @stmt_switch ref,
+ int init_id: @stmt ref
+);
+
+#keyset[switch_stmt, index]
+switch_case(
+ int switch_stmt: @stmt_switch ref,
+ int index: int ref,
+ int case_id: @stmt_switch_case ref
+);
+
+switch_body(
+ unique int switch_stmt: @stmt_switch ref,
+ int body_id: @stmt ref
+);
+
+@stmt_for_or_range_based_for = @stmt_for
+ | @stmt_range_based_for;
+
+for_initialization(
+ unique int for_stmt: @stmt_for_or_range_based_for ref,
+ int init_id: @stmt ref
+);
+
+for_condition(
+ unique int for_stmt: @stmt_for ref,
+ int condition_id: @expr ref
+);
+
+for_update(
+ unique int for_stmt: @stmt_for ref,
+ int update_id: @expr ref
+);
+
+for_body(
+ unique int for_stmt: @stmt_for ref,
+ int body_id: @stmt ref
+);
+
+@stmtparent = @stmt | @expr_stmt ;
+stmtparents(
+ unique int id: @stmt ref,
+ int index: int ref,
+ int parent: @stmtparent ref
+);
+
+ishandler(unique int block: @stmt_block ref);
+
+@cfgnode = @stmt | @expr | @function | @initialiser ;
+
+stmt_decl_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl: @declaration ref
+);
+
+stmt_decl_entry_bind(
+ int stmt: @stmt_decl ref,
+ int num: int ref,
+ int decl_entry: @element ref
+);
+
+@parameterized_element = @function | @stmt_block | @requires_expr;
+
+blockscope(
+ unique int block: @stmt_block ref,
+ int enclosing: @parameterized_element ref
+);
+
+@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave;
+
+@jumporlabel = @jump | @stmt_label | @literal;
+
+jumpinfo(
+ unique int id: @jumporlabel ref,
+ string str: string ref,
+ int target: @stmt ref
+);
+
+preprocdirects(
+ unique int id: @preprocdirect,
+ int kind: int ref,
+ int location: @location_default ref
+);
+case @preprocdirect.kind of
+ 0 = @ppd_if
+| 1 = @ppd_ifdef
+| 2 = @ppd_ifndef
+| 3 = @ppd_elif
+| 4 = @ppd_else
+| 5 = @ppd_endif
+| 6 = @ppd_plain_include
+| 7 = @ppd_define
+| 8 = @ppd_undef
+| 9 = @ppd_line
+| 10 = @ppd_error
+| 11 = @ppd_pragma
+| 12 = @ppd_objc_import
+| 13 = @ppd_include_next
+| 14 = @ppd_ms_import
+| 15 = @ppd_elifdef
+| 16 = @ppd_elifndef
+| 18 = @ppd_warning
+;
+
+@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import;
+
+@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef;
+
+preprocpair(
+ int begin : @ppd_branch ref,
+ int elseelifend : @preprocdirect ref
+);
+
+preproctrue(int branch : @ppd_branch ref);
+preprocfalse(int branch : @ppd_branch ref);
+
+preproctext(
+ unique int id: @preprocdirect ref,
+ string head: string ref,
+ string body: string ref
+);
+
+includes(
+ unique int id: @ppd_include ref,
+ int included: @file ref
+);
+
+link_targets(
+ int id: @link_target,
+ int binary: @file ref
+);
+
+link_parent(
+ int element : @element ref,
+ int link_target : @link_target ref
+);
+
+/**
+ * The CLI will automatically emit applicable tuples for this table,
+ * such as `databaseMetadata("isOverlay", "true")` when building an
+ * overlay database.
+ */
+databaseMetadata(
+ string metadataKey: string ref,
+ string value: string ref
+);
+
+/**
+ * The CLI will automatically emit tuples for each new/modified/deleted file
+ * when building an overlay database.
+ */
+overlayChangedFiles(
+ string path: string ref
+);
+
+/*- XML Files -*/
+
+xmlEncoding(
+ unique int id: @file ref,
+ string encoding: string ref
+);
+
+xmlDTDs(
+ unique int id: @xmldtd,
+ string root: string ref,
+ string publicId: string ref,
+ string systemId: string ref,
+ int fileid: @file ref
+);
+
+xmlElements(
+ unique int id: @xmlelement,
+ string name: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlAttrs(
+ unique int id: @xmlattribute,
+ int elementid: @xmlelement ref,
+ string name: string ref,
+ string value: string ref,
+ int idx: int ref,
+ int fileid: @file ref
+);
+
+xmlNs(
+ int id: @xmlnamespace,
+ string prefixName: string ref,
+ string URI: string ref,
+ int fileid: @file ref
+);
+
+xmlHasNs(
+ int elementId: @xmlnamespaceable ref,
+ int nsId: @xmlnamespace ref,
+ int fileid: @file ref
+);
+
+xmlComments(
+ unique int id: @xmlcomment,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int fileid: @file ref
+);
+
+xmlChars(
+ unique int id: @xmlcharacters,
+ string text: string ref,
+ int parentid: @xmlparent ref,
+ int idx: int ref,
+ int isCDATA: int ref,
+ int fileid: @file ref
+);
+
+@xmlparent = @file | @xmlelement;
+@xmlnamespaceable = @xmlelement | @xmlattribute;
+
+xmllocations(
+ int xmlElement: @xmllocatable ref,
+ int location: @location_default ref
+);
+
+@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace;
diff --git a/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties
new file mode 100644
index 000000000000..57a5118125d8
--- /dev/null
+++ b/cpp/ql/lib/upgrades/a42ce5fc943254097f85471b94ae2247e819104a/upgrade.properties
@@ -0,0 +1,3 @@
+description: Remove _Decimal{32,64,128} types
+compatibility: partial
+builtintypes.rel: run builtintypes.qlo
diff --git a/cpp/ql/test/library-tests/builtins/types/types.c b/cpp/ql/test/library-tests/builtins/types/types.c
deleted file mode 100644
index c4246f2273d6..000000000000
--- a/cpp/ql/test/library-tests/builtins/types/types.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-_Decimal32 d32;
-_Decimal64 d64;
-_Decimal128 d128;
-
diff --git a/cpp/ql/test/library-tests/builtins/types/types.expected b/cpp/ql/test/library-tests/builtins/types/types.expected
deleted file mode 100644
index deaca8e4c280..000000000000
--- a/cpp/ql/test/library-tests/builtins/types/types.expected
+++ /dev/null
@@ -1,7 +0,0 @@
-| file://:0:0:0:0 | fp_offset | file://:0:0:0:0 | unsigned int |
-| file://:0:0:0:0 | gp_offset | file://:0:0:0:0 | unsigned int |
-| file://:0:0:0:0 | overflow_arg_area | file://:0:0:0:0 | void * |
-| file://:0:0:0:0 | reg_save_area | file://:0:0:0:0 | void * |
-| types.c:2:12:2:14 | d32 | file://:0:0:0:0 | _Decimal32 |
-| types.c:3:12:3:14 | d64 | file://:0:0:0:0 | _Decimal64 |
-| types.c:4:13:4:16 | d128 | file://:0:0:0:0 | _Decimal128 |
diff --git a/cpp/ql/test/library-tests/builtins/types/types.ql b/cpp/ql/test/library-tests/builtins/types/types.ql
deleted file mode 100644
index 560d1a66fb1b..000000000000
--- a/cpp/ql/test/library-tests/builtins/types/types.ql
+++ /dev/null
@@ -1,5 +0,0 @@
-import cpp
-
-from Variable v, Type t
-where t = v.getType()
-select v, t
diff --git a/cpp/ql/test/library-tests/literals/literals/literals.c b/cpp/ql/test/library-tests/literals/literals/literals.c
index 70a98a986083..1fc8e9903436 100644
--- a/cpp/ql/test/library-tests/literals/literals/literals.c
+++ b/cpp/ql/test/library-tests/literals/literals/literals.c
@@ -1,6 +1,4 @@
-double dd = 1.0d;
-double dD = 1.0D;
double df = 1.0f;
double dF = 1.0F;
double di = 1.0i;
diff --git a/cpp/ql/test/library-tests/literals/literals/literals.expected b/cpp/ql/test/library-tests/literals/literals/literals.expected
index a3fd43a7f04a..4be96d5964b1 100644
--- a/cpp/ql/test/library-tests/literals/literals/literals.expected
+++ b/cpp/ql/test/library-tests/literals/literals/literals.expected
@@ -1,14 +1,12 @@
| literals.c:2:13:2:16 | 1.0 |
| literals.c:3:13:3:16 | 1.0 |
-| literals.c:4:13:4:16 | 1.0 |
-| literals.c:5:13:5:16 | 1.0 |
+| literals.c:4:13:4:16 | (0.0,1.0i) |
+| literals.c:5:13:5:16 | (0.0,1.0i) |
| literals.c:6:13:6:16 | (0.0,1.0i) |
| literals.c:7:13:7:16 | (0.0,1.0i) |
-| literals.c:8:13:8:16 | (0.0,1.0i) |
-| literals.c:9:13:9:16 | (0.0,1.0i) |
+| literals.c:8:13:8:16 | 1.0 |
+| literals.c:9:13:9:16 | 1.0 |
| literals.c:10:13:10:16 | 1.0 |
| literals.c:11:13:11:16 | 1.0 |
| literals.c:12:13:12:16 | 1.0 |
| literals.c:13:13:13:16 | 1.0 |
-| literals.c:14:13:14:16 | 1.0 |
-| literals.c:15:13:15:16 | 1.0 |
diff --git a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected
index e6c8b1d9406b..0f2c2b91917f 100644
--- a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected
+++ b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected
@@ -12,9 +12,6 @@
| file://:0:0:0:0 | _Complex float |
| file://:0:0:0:0 | _Complex long double |
| file://:0:0:0:0 | _Complex std::float16_t |
-| file://:0:0:0:0 | _Decimal32 |
-| file://:0:0:0:0 | _Decimal64 |
-| file://:0:0:0:0 | _Decimal128 |
| file://:0:0:0:0 | _Float16 |
| file://:0:0:0:0 | _Float32 |
| file://:0:0:0:0 | _Float32x |
diff --git a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected
index ac1344753e9c..63d2b2715ea0 100644
--- a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected
+++ b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected
@@ -32,9 +32,6 @@
| file://:0:0:0:0 | _Complex float | 8 |
| file://:0:0:0:0 | _Complex long double | 32 |
| file://:0:0:0:0 | _Complex std::float16_t | 4 |
-| file://:0:0:0:0 | _Decimal32 | 4 |
-| file://:0:0:0:0 | _Decimal64 | 8 |
-| file://:0:0:0:0 | _Decimal128 | 16 |
| file://:0:0:0:0 | _Float16 | 2 |
| file://:0:0:0:0 | _Float32 | 4 |
| file://:0:0:0:0 | _Float32x | 8 |
diff --git a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected
index 3f22b9f98f52..b335bfcf1788 100644
--- a/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected
+++ b/cpp/ql/test/library-tests/unspecified_type/types/unspecified_type.expected
@@ -14,9 +14,6 @@
| file://:0:0:0:0 | _Complex float | _Complex float |
| file://:0:0:0:0 | _Complex long double | _Complex long double |
| file://:0:0:0:0 | _Complex std::float16_t | _Complex std::float16_t |
-| file://:0:0:0:0 | _Decimal32 | _Decimal32 |
-| file://:0:0:0:0 | _Decimal64 | _Decimal64 |
-| file://:0:0:0:0 | _Decimal128 | _Decimal128 |
| file://:0:0:0:0 | _Float16 | _Float16 |
| file://:0:0:0:0 | _Float32 | _Float32 |
| file://:0:0:0:0 | _Float32x | _Float32x |
diff --git a/cpp/ql/test/library-tests/variables/variables/types.expected b/cpp/ql/test/library-tests/variables/variables/types.expected
index 5d8cec1cff89..3968d7205d59 100644
--- a/cpp/ql/test/library-tests/variables/variables/types.expected
+++ b/cpp/ql/test/library-tests/variables/variables/types.expected
@@ -13,9 +13,6 @@
| _Complex float | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | |
| _Complex long double | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | |
| _Complex std::float16_t | BinaryFloatingPointType, ComplexNumberType, GuardConditionImpl | | | | |
-| _Decimal32 | Decimal32Type, GuardConditionImpl | | | | |
-| _Decimal64 | Decimal64Type, GuardConditionImpl | | | | |
-| _Decimal128 | Decimal128Type, GuardConditionImpl | | | | |
| _Float16 | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | |
| _Float32 | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | |
| _Float32x | BinaryFloatingPointType, GuardConditionImpl, RealNumberType | | | | |