From 6f3e6edd0e50f256bd69ebc89d1086bf21be7ac1 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Mon, 18 Nov 2024 14:17:13 +0000 Subject: [PATCH 1/8] C++: Implement compilation_build_mode --- cpp/ql/lib/semmle/code/cpp/Compilation.qll | 3 +++ cpp/ql/lib/semmlecode.cpp.dbscheme | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/cpp/ql/lib/semmle/code/cpp/Compilation.qll b/cpp/ql/lib/semmle/code/cpp/Compilation.qll index 1a8d90f991c1..407dc31e05f1 100644 --- a/cpp/ql/lib/semmle/code/cpp/Compilation.qll +++ b/cpp/ql/lib/semmle/code/cpp/Compilation.qll @@ -112,4 +112,7 @@ class Compilation extends @compilation { * termination, but crashing due to something like a segfault is not. */ predicate normalTermination() { compilation_finished(this, _, _) } + + /** Holds if this compilation was compiled using the "none" build mode. */ + predicate buildModeNone() { compilation_build_mode(this, 0) } } diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index e51fad7a2436..0c8b8927c0c4 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -46,6 +46,20 @@ compilation_args( string arg : string ref ); +/** + * Optionally, record the build mode for each compilation. + * The build mode should be the same for all compilations. + * Build mode: + * 0 = none + * 1 = manual + * 2 = auto + */ +#keyset[id, mode] +compilation_build_mode( + int id : @compilation ref, + int mode : int ref +); + /** * The source files that are compiled by a compiler invocation. * If `id` is for the compiler invocation From ac4121dd6ceffe195f30bfbd5e6bf7fb278c22cb Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Mon, 18 Nov 2024 17:20:48 +0000 Subject: [PATCH 2/8] C++: Describe compilation_build_mode using a case --- cpp/ql/lib/semmlecode.cpp.dbscheme | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 0c8b8927c0c4..54b0075a9d86 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -49,10 +49,6 @@ compilation_args( /** * Optionally, record the build mode for each compilation. * The build mode should be the same for all compilations. - * Build mode: - * 0 = none - * 1 = manual - * 2 = auto */ #keyset[id, mode] compilation_build_mode( @@ -60,6 +56,14 @@ compilation_build_mode( 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 From d3e8292db990f2839efe61eee3f9fe38f067abd5 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Tue, 19 Nov 2024 10:50:21 +0000 Subject: [PATCH 3/8] C++: Update dbscheme --- cpp/ql/lib/semmlecode.cpp.dbscheme | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 54b0075a9d86..f0156f5f88ab 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -48,11 +48,9 @@ compilation_args( /** * Optionally, record the build mode for each compilation. - * The build mode should be the same for all compilations. */ -#keyset[id, mode] compilation_build_mode( - int id : @compilation ref, + unique int id : @compilation ref, int mode : int ref ); @@ -62,7 +60,7 @@ case @compilation_build_mode.mode of | 1 = @build_mode_manual | 2 = @build_mode_auto ; -/* +*/ /** * The source files that are compiled by a compiler invocation. From 10f692b57cfb0cd7be1be70945db676390f5be39 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Tue, 19 Nov 2024 12:18:38 +0000 Subject: [PATCH 4/8] C++: DB upgrade scripts --- .../old.dbscheme | 2339 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2323 ++++++++++++++++ .../upgrade.properties | 2 + .../old.dbscheme | 2323 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2339 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 9328 insertions(+) create mode 100644 cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/old.dbscheme create mode 100644 cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/upgrade.properties diff --git a/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/old.dbscheme b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/old.dbscheme new file mode 100644 index 000000000000..f0156f5f88ab --- /dev/null +++ b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/old.dbscheme @@ -0,0 +1,2339 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +); + +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_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable 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 +); + +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 +; + +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 +; + +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 +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this 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. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 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 // a using name = type style typedef +; +*/ + +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 +); + +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 +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location 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 +); + +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 +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +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; + +@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; + +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_expr 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_expr 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 +); + +/** + * 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 +); + +@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 +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof; + +sizeof_bind( + unique int expr: @runtime_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 +); + +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_stmt 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 +; + +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 +); + +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 +); + +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; + +@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 +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +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 +); + +/* 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/f0156f5f88ab5967c79162012c20f30600ca5ebf/semmlecode.cpp.dbscheme b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..e51fad7a2436 --- /dev/null +++ b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/semmlecode.cpp.dbscheme @@ -0,0 +1,2323 @@ + +/** + * 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 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +); + +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_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable 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 +); + +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 +; + +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 +; + +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 +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this 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. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 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 // a using name = type style typedef +; +*/ + +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 +); + +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 +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location 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 +); + +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 +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +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; + +@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; + +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_expr 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_expr 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 +); + +/** + * 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 +); + +@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 +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof; + +sizeof_bind( + unique int expr: @runtime_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 +); + +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_stmt 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 +; + +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 +); + +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 +); + +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; + +@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 +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +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 +); + +/* 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/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties new file mode 100644 index 000000000000..08e1dc42eb29 --- /dev/null +++ b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties @@ -0,0 +1,2 @@ +description: Implement compilation_build_mode/2 +compatibility: backwards diff --git a/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/old.dbscheme b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/old.dbscheme new file mode 100644 index 000000000000..e51fad7a2436 --- /dev/null +++ b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/old.dbscheme @@ -0,0 +1,2323 @@ + +/** + * 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 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +); + +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_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable 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 +); + +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 +; + +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 +; + +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 +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this 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. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 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 // a using name = type style typedef +; +*/ + +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 +); + +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 +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location 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 +); + +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 +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +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; + +@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; + +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_expr 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_expr 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 +); + +/** + * 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 +); + +@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 +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof; + +sizeof_bind( + unique int expr: @runtime_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 +); + +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_stmt 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 +; + +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 +); + +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 +); + +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; + +@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 +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +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 +); + +/* 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/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..f0156f5f88ab --- /dev/null +++ b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/semmlecode.cpp.dbscheme @@ -0,0 +1,2339 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +); + +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_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable 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 +); + +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 +; + +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 +; + +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 +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator. For example: + * ``` + * int a; + * decltype(1+a) b; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * would change the semantics of this 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. + */ +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +/* +case @usertype.kind of + 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +| 5 = @typedef // classic C: typedef typedef type name +| 6 = @template +| 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 // a using name = type style typedef +; +*/ + +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 +); + +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 +); + +is_proxy_class_for( + unique int id: @usertype ref, + unique int templ_param_id: @usertype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location 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 +); + +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 +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + /* TODO | @fixedpointtype */ + | @routinetype + | @ptrtomember + | @decltype; + +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; + +@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; + +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_expr 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_expr 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 +); + +/** + * 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 +); + +@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 +); + +@runtime_sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof; + +sizeof_bind( + unique int expr: @runtime_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 +); + +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_stmt 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 +; + +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 +); + +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 +); + +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; + +@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 +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif; + +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 +); + +/* 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/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/upgrade.properties b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/upgrade.properties new file mode 100644 index 000000000000..08e1dc42eb29 --- /dev/null +++ b/cpp/ql/lib/upgrades/e51fad7a2436caefab0c6bd52f05e28e7cce4d92/upgrade.properties @@ -0,0 +1,2 @@ +description: Implement compilation_build_mode/2 +compatibility: backwards From 8050b8246b8e2b0a95ba60c390001e278fa57c05 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Tue, 19 Nov 2024 13:57:03 +0000 Subject: [PATCH 5/8] C++: Update stats --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 1088 ++++++++++------------ 1 file changed, 470 insertions(+), 618 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 7f0d99272e7e..f37e932ca54f 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -42,7 +42,7 @@ </e> <e> <k>@macro_expansion</k> - <v>33257760</v> + <v>33257556</v> </e> <e> <k>@other_macro_reference</k> @@ -78,7 +78,7 @@ </e> <e> <k>@using_enum_declaration</k> - <v>1</v> + <v>0</v> </e> <e> <k>@static_assert</k> @@ -98,7 +98,7 @@ </e> <e> <k>@localvariable</k> - <v>576945</v> + <v>576944</v> </e> <e> <k>@enumconstant</k> @@ -362,7 +362,7 @@ </e> <e> <k>@block</k> - <v>10</v> + <v>0</v> </e> <e> <k>@decltype</k> @@ -406,7 +406,7 @@ </e> <e> <k>@msattribute</k> - <v>3</v> + <v>0</v> </e> <e> <k>@alignas</k> @@ -422,11 +422,11 @@ </e> <e> <k>@attribute_arg_empty</k> - <v>1</v> + <v>0</v> </e> <e> <k>@attribute_arg_constant</k> - <v>1</v> + <v>0</v> </e> <e> <k>@attribute_arg_type</k> @@ -434,7 +434,7 @@ </e> <e> <k>@attribute_arg_expr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@derivation</k> @@ -482,7 +482,7 @@ </e> <e> <k>@parexpr</k> - <v>3587463</v> + <v>3587464</v> </e> <e> <k>@arithnegexpr</k> @@ -766,39 +766,39 @@ </e> <e> <k>@jmulexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@jdivexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@fjaddexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@jfaddexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@fjsubexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@jfsubexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@minexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@maxexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@virtfunptrexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@thisaccess</k> @@ -834,43 +834,43 @@ </e> <e> <k>@hasassignexpr</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hascopyexpr</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hasnothrowassign</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hasnothrowconstr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hasnothrowcopy</k> - <v>5</v> + <v>0</v> </e> <e> <k>@hastrivialassign</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hastrivialconstr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hastrivialcopy</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hasuserdestr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hasvirtualdestr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isabstractexpr</k> @@ -902,15 +902,15 @@ </e> <e> <k>@ispolyexpr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isunionexpr</k> - <v>5</v> + <v>0</v> </e> <e> <k>@intaddrexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@hastrivialdestructor</k> @@ -930,7 +930,7 @@ </e> <e> <k>@foldexpr</k> - <v>4</v> + <v>0</v> </e> <e> <k>@ctordirectinit</k> @@ -962,7 +962,7 @@ </e> <e> <k>@static_cast</k> - <v>215648</v> + <v>215647</v> </e> <e> <k>@reinterpret_cast</k> @@ -994,11 +994,11 @@ </e> <e> <k>@isdestructibleexpr</k> - <v>4</v> + <v>0</v> </e> <e> <k>@isnothrowdestructibleexpr</k> - <v>5</v> + <v>0</v> </e> <e> <k>@istriviallydestructibleexpr</k> @@ -1006,7 +1006,7 @@ </e> <e> <k>@istriviallyassignableexpr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isnothrowassignableexpr</k> @@ -1018,7 +1018,7 @@ </e> <e> <k>@isstandardlayoutexpr</k> - <v>2</v> + <v>0</v> </e> <e> <k>@istriviallycopyableexpr</k> @@ -1026,19 +1026,19 @@ </e> <e> <k>@isliteraltypeexpr</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hastrivialmoveconstructorexpr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hastrivialmoveassignexpr</k> - <v>3</v> + <v>0</v> </e> <e> <k>@hasnothrowmoveassignexpr</k> - <v>4</v> + <v>0</v> </e> <e> <k>@isconstructibleexpr</k> @@ -1050,35 +1050,35 @@ </e> <e> <k>@hasfinalizerexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isdelegateexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isinterfaceclassexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isrefarrayexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isrefclassexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@issealedexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@issimplevalueclassexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isvalueclassexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@isfinalexpr</k> @@ -1090,7 +1090,7 @@ </e> <e> <k>@builtinshufflevector</k> - <v>1</v> + <v>0</v> </e> <e> <k>@builtinchooseexpr</k> @@ -1102,43 +1102,43 @@ </e> <e> <k>@vec_fill</k> - <v>1</v> + <v>0</v> </e> <e> <k>@builtinconvertvector</k> - <v>1</v> + <v>0</v> </e> <e> <k>@builtincomplex</k> - <v>4</v> + <v>0</v> </e> <e> <k>@spaceshipexpr</k> - <v>1</v> + <v>0</v> </e> <e> <k>@co_await</k> - <v>12</v> + <v>0</v> </e> <e> <k>@co_yield</k> - <v>4</v> + <v>0</v> </e> <e> <k>@isassignable</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isaggregate</k> - <v>2</v> + <v>0</v> </e> <e> <k>@hasuniqueobjectrepresentations</k> - <v>2</v> + <v>0</v> </e> <e> <k>@builtinbitcast</k> - <v>1</v> + <v>0</v> </e> <e> <k>@builtinshuffle</k> @@ -1150,111 +1150,111 @@ </e> <e> <k>@issame</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isfunction</k> - <v>2</v> + <v>0</v> </e> <e> <k>@islayoutcompatible</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ispointerinterconvertiblebaseof</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isarray</k> - <v>2</v> + <v>0</v> </e> <e> <k>@arrayrank</k> - <v>2</v> + <v>0</v> </e> <e> <k>@arrayextent</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isarithmetic</k> - <v>2</v> + <v>0</v> </e> <e> <k>@iscompletetype</k> - <v>2</v> + <v>0</v> </e> <e> <k>@iscompound</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isconst</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isfloatingpoint</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isfundamental</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isintegral</k> - <v>2</v> + <v>0</v> </e> <e> <k>@islvaluereference</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ismemberfunctionpointer</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ismemberobjectpointer</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ismemberpointer</k> - <v>3</v> + <v>0</v> </e> <e> <k>@isobject</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ispointer</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isreference</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isrvaluereference</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isscalar</k> - <v>2</v> + <v>0</v> </e> <e> <k>@issigned</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isunsigned</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isvoid</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isvolatile</k> - <v>2</v> + <v>0</v> </e> <e> <k>@reuseexpr</k> @@ -1262,115 +1262,115 @@ </e> <e> <k>@istriviallycopyassignable</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isassignablenopreconditioncheck</k> - <v>3</v> + <v>0</v> </e> <e> <k>@referencebindstotemporary</k> - <v>2</v> + <v>0</v> </e> <e> <k>@issameas</k> - <v>2</v> + <v>0</v> </e> <e> <k>@builtinhasattribute</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ispointerinterconvertiblewithclass</k> - <v>2</v> + <v>0</v> </e> <e> <k>@builtinispointerinterconvertiblewithclass</k> - <v>2</v> + <v>0</v> </e> <e> <k>@iscorrespondingmember</k> - <v>2</v> + <v>0</v> </e> <e> <k>@builtiniscorrespondingmember</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isboundedarray</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isunboundedarray</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isreferenceable</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isnothrowconvertible</k> - <v>2</v> + <v>0</v> </e> <e> <k>@referenceconstructsfromtemporary</k> - <v>2</v> + <v>0</v> </e> <e> <k>@referenceconvertsfromtemporary</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isconvertible</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isvalidwinrttype</k> - <v>1</v> + <v>0</v> </e> <e> <k>@iswinclass</k> - <v>1</v> + <v>0</v> </e> <e> <k>@iswininterface</k> - <v>1</v> + <v>0</v> </e> <e> <k>@istriviallyequalitycomparable</k> - <v>2</v> + <v>0</v> </e> <e> <k>@isscopedenum</k> - <v>2</v> + <v>0</v> </e> <e> <k>@istriviallyrelocatable</k> - <v>2</v> + <v>0</v> </e> <e> <k>@datasizeof</k> - <v>10</v> + <v>0</v> </e> <e> <k>@c11_generic</k> - <v>8</v> + <v>0</v> </e> <e> <k>@requires_expr</k> - <v>8</v> + <v>0</v> </e> <e> <k>@nested_requirement</k> - <v>1</v> + <v>0</v> </e> <e> <k>@compound_requirement</k> - <v>2</v> + <v>0</v> </e> <e> <k>@concept_id</k> - <v>2</v> + <v>0</v> </e> <e> <k>@lambdacapture</k> @@ -1426,7 +1426,7 @@ </e> <e> <k>@stmt_decl</k> - <v>593121</v> + <v>593118</v> </e> <e> <k>@stmt_empty</k> @@ -1474,7 +1474,7 @@ </e> <e> <k>@stmt_co_return</k> - <v>5</v> + <v>0</v> </e> <e> <k>@ppd_if</k> @@ -1530,11 +1530,11 @@ </e> <e> <k>@ppd_objc_import</k> - <v>2</v> + <v>0</v> </e> <e> <k>@ppd_warning</k> - <v>1</v> + <v>0</v> </e> <e> <k>@link_target</k> @@ -1900,6 +1900,48 @@ </dep> </dependencies> </relation> + <relation> + <name>compilation_build_mode</name> + <cardinality>0</cardinality> + <columnsizes> + <e> + <k>id</k> + <v>0</v> + </e> + <e> + <k>mode</k> + <v>0</v> + </e> + </columnsizes> + <dependencies> + <dep> + <src>id</src> + <trg>mode</trg> + <val> + <hist> + <budget>12</budget> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>17</v> + </b> + </bs> + </hist> + </val> + </dep> + <dep> + <src>mode</src> + <trg>id</trg> + <val> + <hist> + <budget>12</budget> + <bs/> + </hist> + </val> + </dep> + </dependencies> + </relation> <relation> <name>compilation_compiling_files</name> <cardinality>11546</cardinality> @@ -2164,7 +2206,7 @@ </e> <e> <k>seconds</k> - <v>8429</v> + <v>9468</v> </e> </columnsizes> <dependencies> @@ -2242,18 +2284,23 @@ <hist> <budget>12</budget> <bs> + <b> + <a>2</a> + <b>3</b> + <v>39</v> + </b> <b> <a>3</a> <b>4</b> - <v>639</v> + <v>479</v> </b> <b> <a>4</a> <b>5</b> - <v>359</v> + <v>479</v> </b> <b> - <a>6</a> + <a>5</a> <b>7</b> <v>119</v> </b> @@ -2265,27 +2312,27 @@ <b> <a>10</a> <b>11</b> - <v>119</v> + <v>159</v> </b> <b> <a>11</a> - <b>15</b> + <b>17</b> <v>159</v> </b> <b> - <a>16</a> + <a>17</a> <b>19</b> <v>159</v> </b> <b> <a>19</a> - <b>24</b> + <b>44</b> <v>159</v> </b> <b> - <a>40</a> - <b>89</b> - <v>119</v> + <a>54</a> + <b>100</b> + <v>79</v> </b> </bs> </hist> @@ -2353,42 +2400,42 @@ <b> <a>3</a> <b>4</b> - <v>1438</v> + <v>1398</v> </b> <b> <a>4</a> <b>5</b> - <v>319</v> + <v>359</v> </b> <b> <a>5</a> <b>6</b> - <v>199</v> + <v>159</v> </b> <b> <a>6</a> <b>7</b> - <v>439</v> + <v>519</v> </b> <b> <a>7</a> <b>8</b> - <v>159</v> + <v>79</v> </b> <b> <a>8</a> - <b>10</b> - <v>279</v> + <b>9</b> + <v>239</v> </b> <b> - <a>10</a> - <b>26</b> + <a>9</a> + <b>21</b> <v>279</v> </b> <b> - <a>28</a> - <b>81</b> - <v>199</v> + <a>24</a> + <b>86</b> + <v>279</v> </b> </bs> </hist> @@ -2439,13 +2486,13 @@ <v>79</v> </b> <b> - <a>125</a> - <b>126</b> + <a>141</a> + <b>142</b> <v>39</v> </b> <b> - <a>128</a> - <b>129</b> + <a>145</a> + <b>146</b> <v>39</v> </b> </bs> @@ -2462,27 +2509,27 @@ <b> <a>1</a> <b>2</b> - <v>3635</v> + <v>4234</v> </b> <b> <a>2</a> <b>3</b> - <v>1917</v> + <v>2357</v> </b> <b> <a>3</a> <b>4</b> - <v>1558</v> + <v>1797</v> </b> <b> <a>4</a> <b>6</b> - <v>719</v> + <v>838</v> </b> <b> <a>6</a> <b>48</b> - <v>599</v> + <v>239</v> </b> </bs> </hist> @@ -2498,37 +2545,32 @@ <b> <a>1</a> <b>2</b> - <v>3595</v> + <v>4274</v> </b> <b> <a>2</a> <b>3</b> - <v>1438</v> + <v>1757</v> </b> <b> <a>3</a> <b>4</b> - <v>1358</v> + <v>1158</v> </b> <b> <a>4</a> <b>5</b> - <v>639</v> + <v>1158</v> </b> <b> <a>5</a> - <b>6</b> - <v>479</v> - </b> - <b> - <a>6</a> - <b>8</b> - <v>679</v> + <b>7</b> + <v>799</v> </b> <b> - <a>8</a> - <b>73</b> - <v>239</v> + <a>7</a> + <b>74</b> + <v>319</v> </b> </bs> </hist> @@ -2544,12 +2586,12 @@ <b> <a>1</a> <b>2</b> - <v>6512</v> + <v>7271</v> </b> <b> <a>2</a> <b>3</b> - <v>1917</v> + <v>2197</v> </b> </bs> </hist> @@ -2893,7 +2935,7 @@ </e> <e> <k>cpu_seconds</k> - <v>7507</v> + <v>7382</v> </e> <e> <k>elapsed_seconds</k> @@ -2943,16 +2985,16 @@ <b> <a>1</a> <b>2</b> - <v>6242</v> + <v>5881</v> </b> <b> <a>2</a> <b>3</b> - <v>835</v> + <v>1072</v> </b> <b> <a>3</a> - <b>15</b> + <b>12</b> <v>428</v> </b> </bs> @@ -2969,12 +3011,12 @@ <b> <a>1</a> <b>2</b> - <v>6976</v> + <v>6694</v> </b> <b> <a>2</a> <b>3</b> - <v>530</v> + <v>688</v> </b> </bs> </hist> @@ -2987,24 +3029,14 @@ <hist> <budget>12</budget> <bs> - <b> - <a>1</a> - <b>2</b> - <v>11</v> - </b> <b> <a>2</a> <b>3</b> - <v>11</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>11</v> + <v>33</v> </b> <b> - <a>6</a> - <b>7</b> + <a>7</a> + <b>8</b> <v>11</v> </b> <b> @@ -3013,8 +3045,8 @@ <v>11</v> </b> <b> - <a>11</a> - <b>12</b> + <a>10</a> + <b>11</b> <v>11</v> </b> <b> @@ -3023,28 +3055,28 @@ <v>11</v> </b> <b> - <a>49</a> - <b>50</b> + <a>50</a> + <b>51</b> <v>11</v> </b> <b> - <a>154</a> - <b>155</b> + <a>163</a> + <b>164</b> <v>11</v> </b> <b> - <a>160</a> - <b>161</b> + <a>165</a> + <b>166</b> <v>11</v> </b> <b> - <a>204</a> - <b>205</b> + <a>194</a> + <b>195</b> <v>11</v> </b> <b> - <a>248</a> - <b>249</b> + <a>243</a> + <b>244</b> <v>11</v> </b> </bs> @@ -3058,24 +3090,14 @@ <hist> <budget>12</budget> <bs> - <b> - <a>1</a> - <b>2</b> - <v>11</v> - </b> <b> <a>2</a> <b>3</b> - <v>11</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>11</v> + <v>33</v> </b> <b> - <a>6</a> - <b>7</b> + <a>7</a> + <b>8</b> <v>11</v> </b> <b> @@ -3084,8 +3106,8 @@ <v>11</v> </b> <b> - <a>11</a> - <b>12</b> + <a>10</a> + <b>11</b> <v>11</v> </b> <b> @@ -3094,28 +3116,28 @@ <v>11</v> </b> <b> - <a>47</a> - <b>48</b> + <a>48</a> + <b>49</b> <v>11</v> </b> <b> - <a>118</a> - <b>119</b> + <a>120</a> + <b>121</b> <v>11</v> </b> <b> - <a>128</a> - <b>129</b> + <a>137</a> + <b>138</b> <v>11</v> </b> <b> - <a>149</a> - <b>150</b> + <a>146</a> + <b>147</b> <v>11</v> </b> <b> - <a>222</a> - <b>223</b> + <a>216</a> + <b>217</b> <v>11</v> </b> </bs> @@ -11816,7 +11838,7 @@ </relation> <relation> <name>fileannotations</name> - <cardinality>5129436</cardinality> + <cardinality>5129404</cardinality> <columnsizes> <e> <k>id</k> @@ -12392,15 +12414,15 @@ </relation> <relation> <name>inmacroexpansion</name> - <cardinality>109779080</cardinality> + <cardinality>109779103</cardinality> <columnsizes> <e> <k>id</k> - <v>18027694</v> + <v>18027697</v> </e> <e> <k>inv</k> - <v>2700160</v> + <v>2700159</v> </e> </columnsizes> <dependencies> @@ -12414,12 +12436,12 @@ <b> <a>1</a> <b>3</b> - <v>1582361</v> + <v>1582360</v> </b> <b> <a>3</a> <b>5</b> - <v>1077793</v> + <v>1077794</v> </b> <b> <a>5</a> @@ -12429,17 +12451,17 @@ <b> <a>6</a> <b>7</b> - <v>4819903</v> + <v>4819904</v> </b> <b> <a>7</a> <b>8</b> - <v>6385932</v> + <v>6385934</v> </b> <b> <a>8</a> <b>9</b> - <v>2605242</v> + <v>2605243</v> </b> <b> <a>9</a> @@ -12460,12 +12482,12 @@ <b> <a>1</a> <b>2</b> - <v>378424</v> + <v>378422</v> </b> <b> <a>2</a> <b>3</b> - <v>544104</v> + <v>544105</v> </b> <b> <a>3</a> @@ -12500,7 +12522,7 @@ <b> <a>11</a> <b>337</b> - <v>224847</v> + <v>224845</v> </b> <b> <a>339</a> @@ -12520,15 +12542,15 @@ </relation> <relation> <name>affectedbymacroexpansion</name> - <cardinality>35689251</cardinality> + <cardinality>35689257</cardinality> <columnsizes> <e> <k>id</k> - <v>5156949</v> + <v>5156948</v> </e> <e> <k>inv</k> - <v>2784762</v> + <v>2784761</v> </e> </columnsizes> <dependencies> @@ -12542,7 +12564,7 @@ <b> <a>1</a> <b>2</b> - <v>2816079</v> + <v>2816078</v> </b> <b> <a>2</a> @@ -12588,7 +12610,7 @@ <b> <a>1</a> <b>4</b> - <v>229116</v> + <v>229115</v> </b> <b> <a>4</a> @@ -12603,12 +12625,12 @@ <b> <a>9</a> <b>12</b> - <v>251119</v> + <v>251120</v> </b> <b> <a>12</a> <b>13</b> - <v>333984</v> + <v>333985</v> </b> <b> <a>13</a> @@ -12628,7 +12650,7 @@ <b> <a>16</a> <b>17</b> - <v>276608</v> + <v>276609</v> </b> <b> <a>17</a> @@ -12658,19 +12680,19 @@ </relation> <relation> <name>macroinvocations</name> - <cardinality>33491008</cardinality> + <cardinality>33490802</cardinality> <columnsizes> <e> <k>id</k> - <v>33491008</v> + <v>33490802</v> </e> <e> <k>macro_id</k> - <v>79484</v> + <v>79483</v> </e> <e> <k>location</k> - <v>760387</v> + <v>760382</v> </e> <e> <k>kind</k> @@ -12688,7 +12710,7 @@ <b> <a>1</a> <b>2</b> - <v>33491008</v> + <v>33490802</v> </b> </bs> </hist> @@ -12704,7 +12726,7 @@ <b> <a>1</a> <b>2</b> - <v>33491008</v> + <v>33490802</v> </b> </bs> </hist> @@ -12720,7 +12742,7 @@ <b> <a>1</a> <b>2</b> - <v>33491008</v> + <v>33490802</v> </b> </bs> </hist> @@ -12802,7 +12824,7 @@ <b> <a>1</a> <b>2</b> - <v>42468</v> + <v>42467</v> </b> <b> <a>2</a> @@ -12848,7 +12870,7 @@ <b> <a>1</a> <b>2</b> - <v>73749</v> + <v>73748</v> </b> <b> <a>2</a> @@ -12869,22 +12891,22 @@ <b> <a>1</a> <b>2</b> - <v>281225</v> + <v>281223</v> </b> <b> <a>2</a> <b>3</b> - <v>169658</v> + <v>169657</v> </b> <b> <a>3</a> <b>4</b> - <v>70735</v> + <v>70734</v> </b> <b> <a>4</a> <b>5</b> - <v>60327</v> + <v>60326</v> </b> <b> <a>5</a> @@ -12920,7 +12942,7 @@ <b> <a>1</a> <b>2</b> - <v>714216</v> + <v>714211</v> </b> <b> <a>2</a> @@ -12941,7 +12963,7 @@ <b> <a>1</a> <b>2</b> - <v>760387</v> + <v>760382</v> </b> </bs> </hist> @@ -13014,15 +13036,15 @@ </relation> <relation> <name>macroparent</name> - <cardinality>29950722</cardinality> + <cardinality>29950538</cardinality> <columnsizes> <e> <k>id</k> - <v>29950722</v> + <v>29950538</v> </e> <e> <k>parent_id</k> - <v>23286998</v> + <v>23286856</v> </e> </columnsizes> <dependencies> @@ -13036,7 +13058,7 @@ <b> <a>1</a> <b>2</b> - <v>29950722</v> + <v>29950538</v> </b> </bs> </hist> @@ -13052,17 +13074,17 @@ <b> <a>1</a> <b>2</b> - <v>17992792</v> + <v>17992681</v> </b> <b> <a>2</a> <b>3</b> - <v>4459550</v> + <v>4459523</v> </b> <b> <a>3</a> <b>88</b> - <v>834655</v> + <v>834650</v> </b> </bs> </hist> @@ -13150,11 +13172,11 @@ </relation> <relation> <name>macro_argument_unexpanded</name> - <cardinality>84549437</cardinality> + <cardinality>84548918</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26214757</v> + <v>26214596</v> </e> <e> <k>argument_index</k> @@ -13162,7 +13184,7 @@ </e> <e> <k>text</k> - <v>318308</v> + <v>318306</v> </e> </columnsizes> <dependencies> @@ -13176,22 +13198,22 @@ <b> <a>1</a> <b>2</b> - <v>7432464</v> + <v>7432418</v> </b> <b> <a>2</a> <b>3</b> - <v>10674027</v> + <v>10673962</v> </b> <b> <a>3</a> <b>4</b> - <v>6139327</v> + <v>6139289</v> </b> <b> <a>4</a> <b>67</b> - <v>1968937</v> + <v>1968925</v> </b> </bs> </hist> @@ -13207,22 +13229,22 @@ <b> <a>1</a> <b>2</b> - <v>7502624</v> + <v>7502578</v> </b> <b> <a>2</a> <b>3</b> - <v>10820578</v> + <v>10820511</v> </b> <b> <a>3</a> <b>4</b> - <v>5972999</v> + <v>5972962</v> </b> <b> <a>4</a> <b>67</b> - <v>1918556</v> + <v>1918544</v> </b> </bs> </hist> @@ -13290,12 +13312,12 @@ <b> <a>1</a> <b>2</b> - <v>35074</v> + <v>35073</v> </b> <b> <a>2</a> <b>3</b> - <v>61264</v> + <v>61263</v> </b> <b> <a>3</a> @@ -13305,12 +13327,12 @@ <b> <a>4</a> <b>5</b> - <v>45087</v> + <v>45086</v> </b> <b> <a>5</a> <b>7</b> - <v>23932</v> + <v>23931</v> </b> <b> <a>7</a> @@ -13356,7 +13378,7 @@ <b> <a>1</a> <b>2</b> - <v>230200</v> + <v>230198</v> </b> <b> <a>2</a> @@ -13366,7 +13388,7 @@ <b> <a>3</a> <b>9</b> - <v>10284</v> + <v>10283</v> </b> </bs> </hist> @@ -13376,11 +13398,11 @@ </relation> <relation> <name>macro_argument_expanded</name> - <cardinality>84549437</cardinality> + <cardinality>84548918</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26214757</v> + <v>26214596</v> </e> <e> <k>argument_index</k> @@ -13388,7 +13410,7 @@ </e> <e> <k>text</k> - <v>192902</v> + <v>192900</v> </e> </columnsizes> <dependencies> @@ -13402,22 +13424,22 @@ <b> <a>1</a> <b>2</b> - <v>7432464</v> + <v>7432418</v> </b> <b> <a>2</a> <b>3</b> - <v>10674027</v> + <v>10673962</v> </b> <b> <a>3</a> <b>4</b> - <v>6139327</v> + <v>6139289</v> </b> <b> <a>4</a> <b>67</b> - <v>1968937</v> + <v>1968925</v> </b> </bs> </hist> @@ -13433,22 +13455,22 @@ <b> <a>1</a> <b>2</b> - <v>10688793</v> + <v>10688727</v> </b> <b> <a>2</a> <b>3</b> - <v>9201862</v> + <v>9201805</v> </b> <b> <a>3</a> <b>4</b> - <v>5208277</v> + <v>5208245</v> </b> <b> <a>4</a> <b>9</b> - <v>1115824</v> + <v>1115817</v> </b> </bs> </hist> @@ -13587,7 +13609,7 @@ <b> <a>1</a> <b>2</b> - <v>97625</v> + <v>97624</v> </b> <b> <a>2</a> @@ -13919,15 +13941,15 @@ </relation> <relation> <name>coroutine</name> - <cardinality>6</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>function</k> - <v>6</v> + <v>0</v> </e> <e> <k>traits</k> - <v>3</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -13941,7 +13963,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>17</v> </b> </bs> </hist> @@ -13953,23 +13975,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>1</v> - </b> - <b> - <a>3</a> - <b>4</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -13977,19 +13983,19 @@ </relation> <relation> <name>coroutine_placeholder_variable</name> - <cardinality>18</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>placeholder_variable</k> - <v>18</v> + <v>0</v> </e> <e> <k>kind</k> - <v>3</v> + <v>0</v> </e> <e> <k>function</k> - <v>6</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -14003,7 +14009,7 @@ <b> <a>1</a> <b>2</b> - <v>18</v> + <v>17</v> </b> </bs> </hist> @@ -14019,7 +14025,7 @@ <b> <a>1</a> <b>2</b> - <v>18</v> + <v>17</v> </b> </bs> </hist> @@ -14031,13 +14037,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>6</a> - <b>7</b> - <v>3</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -14047,13 +14047,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>6</a> - <b>7</b> - <v>3</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -14063,13 +14057,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>3</a> - <b>4</b> - <v>6</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -14079,13 +14067,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>3</a> - <b>4</b> - <v>6</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -14093,15 +14075,15 @@ </relation> <relation> <name>coroutine_new</name> - <cardinality>6</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>function</k> - <v>6</v> + <v>0</v> </e> <e> <k>new</k> - <v>1</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -14115,7 +14097,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>17</v> </b> </bs> </hist> @@ -14127,13 +14109,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>6</a> - <b>7</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -14141,15 +14117,15 @@ </relation> <relation> <name>coroutine_delete</name> - <cardinality>6</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>function</k> - <v>6</v> + <v>0</v> </e> <e> <k>delete</k> - <v>1</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -14163,7 +14139,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>17</v> </b> </bs> </hist> @@ -14175,13 +14151,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>6</a> - <b>7</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15023,19 +14993,19 @@ </relation> <relation> <name>fun_decl_throws</name> - <cardinality>7</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>7</v> + <v>0</v> </e> <e> <k>index</k> - <v>1</v> + <v>0</v> </e> <e> <k>type_id</k> - <v>2</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -15045,13 +15015,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>7</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15061,13 +15025,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>7</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15077,13 +15035,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>7</a> - <b>8</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15093,13 +15045,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>2</a> - <b>3</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15109,18 +15055,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1</v> - </b> - <b> - <a>6</a> - <b>7</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -15130,13 +15065,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>2</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -16260,11 +16189,11 @@ </relation> <relation> <name>is_structured_binding</name> - <cardinality>18</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>id</k> - <v>18</v> + <v>0</v> </e> </columnsizes> <dependencies/> @@ -17076,7 +17005,7 @@ </relation> <relation> <name>using_container</name> - <cardinality>466800</cardinality> + <cardinality>466798</cardinality> <columnsizes> <e> <k>parent</k> @@ -17084,7 +17013,7 @@ </e> <e> <k>child</k> - <v>295990</v> + <v>295989</v> </e> </columnsizes> <dependencies> @@ -17154,12 +17083,12 @@ <b> <a>1</a> <b>2</b> - <v>218313</v> + <v>218311</v> </b> <b> <a>2</a> <b>3</b> - <v>51725</v> + <v>51724</v> </b> <b> <a>3</a> @@ -18713,11 +18642,11 @@ </relation> <relation> <name>localvariables</name> - <cardinality>576945</cardinality> + <cardinality>576944</cardinality> <columnsizes> <e> <k>id</k> - <v>576945</v> + <v>576944</v> </e> <e> <k>type_id</k> @@ -18739,7 +18668,7 @@ <b> <a>1</a> <b>2</b> - <v>576945</v> + <v>576944</v> </b> </bs> </hist> @@ -18755,7 +18684,7 @@ <b> <a>1</a> <b>2</b> - <v>576945</v> + <v>576944</v> </b> </bs> </hist> @@ -18776,7 +18705,7 @@ <b> <a>2</a> <b>3</b> - <v>5366</v> + <v>5362</v> </b> <b> <a>3</a> @@ -18786,7 +18715,7 @@ <b> <a>4</a> <b>7</b> - <v>3376</v> + <v>3380</v> </b> <b> <a>7</a> @@ -18812,7 +18741,7 @@ <b> <a>1</a> <b>2</b> - <v>26912</v> + <v>26908</v> </b> <b> <a>2</a> @@ -18822,7 +18751,7 @@ <b> <a>3</a> <b>5</b> - <v>2914</v> + <v>2918</v> </b> <b> <a>5</a> @@ -21442,15 +21371,15 @@ </relation> <relation> <name>typedefbase</name> - <cardinality>1686109</cardinality> + <cardinality>1686099</cardinality> <columnsizes> <e> <k>id</k> - <v>1686109</v> + <v>1686099</v> </e> <e> <k>type_id</k> - <v>793485</v> + <v>793481</v> </e> </columnsizes> <dependencies> @@ -21464,7 +21393,7 @@ <b> <a>1</a> <b>2</b> - <v>1686109</v> + <v>1686099</v> </b> </bs> </hist> @@ -21480,12 +21409,12 @@ <b> <a>1</a> <b>2</b> - <v>617404</v> + <v>617400</v> </b> <b> <a>2</a> <b>3</b> - <v>83254</v> + <v>83253</v> </b> <b> <a>3</a> @@ -22428,11 +22357,11 @@ </relation> <relation> <name>is_pod_class</name> - <cardinality>534713</cardinality> + <cardinality>534710</cardinality> <columnsizes> <e> <k>id</k> - <v>534713</v> + <v>534710</v> </e> </columnsizes> <dependencies/> @@ -22560,11 +22489,11 @@ </relation> <relation> <name>class_template_argument</name> - <cardinality>2882750</cardinality> + <cardinality>2882732</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1315511</v> + <v>1315503</v> </e> <e> <k>index</k> @@ -22572,7 +22501,7 @@ </e> <e> <k>arg_type</k> - <v>840390</v> + <v>840385</v> </e> </columnsizes> <dependencies> @@ -22586,22 +22515,22 @@ <b> <a>1</a> <b>2</b> - <v>540956</v> + <v>540953</v> </b> <b> <a>2</a> <b>3</b> - <v>399237</v> + <v>399235</v> </b> <b> <a>3</a> <b>4</b> - <v>231396</v> + <v>231395</v> </b> <b> <a>4</a> <b>7</b> - <v>120315</v> + <v>120314</v> </b> <b> <a>7</a> @@ -22622,17 +22551,17 @@ <b> <a>1</a> <b>2</b> - <v>567609</v> + <v>567605</v> </b> <b> <a>2</a> <b>3</b> - <v>410481</v> + <v>410478</v> </b> <b> <a>3</a> <b>4</b> - <v>244841</v> + <v>244840</v> </b> <b> <a>4</a> @@ -22745,17 +22674,17 @@ <b> <a>1</a> <b>2</b> - <v>523346</v> + <v>523343</v> </b> <b> <a>2</a> <b>3</b> - <v>174343</v> + <v>174342</v> </b> <b> <a>3</a> <b>4</b> - <v>51341</v> + <v>51340</v> </b> <b> <a>4</a> @@ -22781,7 +22710,7 @@ <b> <a>1</a> <b>2</b> - <v>746490</v> + <v>746486</v> </b> <b> <a>2</a> @@ -25019,7 +24948,7 @@ </relation> <relation> <name>funspecifiers</name> - <cardinality>10305080</cardinality> + <cardinality>10304614</cardinality> <columnsizes> <e> <k>func_id</k> @@ -25046,12 +24975,12 @@ <b> <a>2</a> <b>3</b> - <v>640536</v> + <v>641003</v> </b> <b> <a>3</a> <b>4</b> - <v>985549</v> + <v>985082</v> </b> <b> <a>4</a> @@ -25160,8 +25089,8 @@ <v>466</v> </b> <b> - <a>6435</a> - <b>6436</b> + <a>6434</a> + <b>6435</b> <v>466</v> </b> </bs> @@ -26478,15 +26407,15 @@ </relation> <relation> <name>attribute_arg_expr</name> - <cardinality>3</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>arg</k> - <v>3</v> + <v>0</v> </e> <e> <k>expr</k> - <v>3</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -26500,7 +26429,7 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>17</v> </b> </bs> </hist> @@ -26512,13 +26441,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>3</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -26526,15 +26449,15 @@ </relation> <relation> <name>attribute_arg_name</name> - <cardinality>6</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>arg</k> - <v>6</v> + <v>0</v> </e> <e> <k>name</k> - <v>5</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -26548,7 +26471,7 @@ <b> <a>1</a> <b>2</b> - <v>6</v> + <v>17</v> </b> </bs> </hist> @@ -26560,18 +26483,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4</v> - </b> - <b> - <a>2</a> - <b>3</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -27215,11 +27127,11 @@ </relation> <relation> <name>enclosingfunction</name> - <cardinality>118328</cardinality> + <cardinality>118327</cardinality> <columnsizes> <e> <k>child</k> - <v>118328</v> + <v>118327</v> </e> <e> <k>parent</k> @@ -27237,7 +27149,7 @@ <b> <a>1</a> <b>2</b> - <v>118328</v> + <v>118327</v> </b> </bs> </hist> @@ -27268,7 +27180,7 @@ <b> <a>4</a> <b>45</b> - <v>4888</v> + <v>4887</v> </b> </bs> </hist> @@ -28793,15 +28705,15 @@ </relation> <relation> <name>exprconv</name> - <cardinality>7032991</cardinality> + <cardinality>7032993</cardinality> <columnsizes> <e> <k>converted</k> - <v>7032991</v> + <v>7032993</v> </e> <e> <k>conversion</k> - <v>7032991</v> + <v>7032993</v> </e> </columnsizes> <dependencies> @@ -28815,7 +28727,7 @@ <b> <a>1</a> <b>2</b> - <v>7032991</v> + <v>7032993</v> </b> </bs> </hist> @@ -28831,7 +28743,7 @@ <b> <a>1</a> <b>2</b> - <v>7032991</v> + <v>7032993</v> </b> </bs> </hist> @@ -30261,7 +30173,7 @@ </e> <e> <k>fun</k> - <v>511342</v> + <v>511304</v> </e> </columnsizes> <dependencies> @@ -30296,12 +30208,12 @@ <b> <a>1</a> <b>2</b> - <v>315088</v> + <v>315012</v> </b> <b> <a>2</a> <b>3</b> - <v>77893</v> + <v>77931</v> </b> <b> <a>3</a> @@ -32081,15 +31993,15 @@ </relation> <relation> <name>expr_types</name> - <cardinality>18451442</cardinality> + <cardinality>18451396</cardinality> <columnsizes> <e> <k>id</k> - <v>18319781</v> + <v>18319782</v> </e> <e> <k>typeid</k> - <v>1214623</v> + <v>1214616</v> </e> <e> <k>value_category</k> @@ -32107,12 +32019,12 @@ <b> <a>1</a> <b>2</b> - <v>18188121</v> + <v>18188167</v> </b> <b> <a>2</a> <b>3</b> - <v>131660</v> + <v>131614</v> </b> </bs> </hist> @@ -32128,7 +32040,7 @@ <b> <a>1</a> <b>2</b> - <v>18319781</v> + <v>18319782</v> </b> </bs> </hist> @@ -32144,17 +32056,17 @@ <b> <a>1</a> <b>2</b> - <v>438567</v> + <v>438565</v> </b> <b> <a>2</a> <b>3</b> - <v>249334</v> + <v>249332</v> </b> <b> <a>3</a> <b>4</b> - <v>102840</v> + <v>102839</v> </b> <b> <a>4</a> @@ -32164,12 +32076,12 @@ <b> <a>5</a> <b>8</b> - <v>109275</v> + <v>109274</v> </b> <b> <a>8</a> <b>14</b> - <v>96496</v> + <v>96495</v> </b> <b> <a>14</a> @@ -32179,7 +32091,7 @@ <b> <a>41</a> <b>125325</b> - <v>44579</v> + <v>44578</v> </b> </bs> </hist> @@ -32195,7 +32107,7 @@ <b> <a>1</a> <b>2</b> - <v>1050237</v> + <v>1050230</v> </b> <b> <a>2</a> @@ -32229,8 +32141,8 @@ <v>11</v> </b> <b> - <a>1239479</a> - <b>1239480</b> + <a>1239489</a> + <b>1239490</b> <v>11</v> </b> </bs> @@ -32267,11 +32179,11 @@ </relation> <relation> <name>compound_requirement_is_noexcept</name> - <cardinality>1</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>expr</k> - <v>1</v> + <v>0</v> </e> </columnsizes> <dependencies/> @@ -33658,15 +33570,15 @@ </relation> <relation> <name>code_block</name> - <cardinality>15</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>block</k> - <v>15</v> + <v>0</v> </e> <e> <k>routine</k> - <v>15</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -33680,7 +33592,7 @@ <b> <a>1</a> <b>2</b> - <v>15</v> + <v>17</v> </b> </bs> </hist> @@ -33696,7 +33608,7 @@ <b> <a>1</a> <b>2</b> - <v>15</v> + <v>17</v> </b> </bs> </hist> @@ -34585,19 +34497,19 @@ </relation> <relation> <name>fold</name> - <cardinality>4</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>expr</k> - <v>4</v> + <v>0</v> </e> <e> <k>operator</k> - <v>4</v> + <v>0</v> </e> <e> <k>is_left_fold</k> - <v>2</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -34607,13 +34519,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -34623,13 +34529,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -34639,13 +34539,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -34655,13 +34549,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>4</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -34671,13 +34559,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -34687,13 +34569,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>2</a> - <b>3</b> - <v>2</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -35017,15 +34893,15 @@ </relation> <relation> <name>type_vla</name> - <cardinality>1</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1</v> + <v>0</v> </e> <e> <k>decl</k> - <v>1</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -35035,13 +34911,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -35051,13 +34921,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>1</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -35257,15 +35121,15 @@ </relation> <relation> <name>constexpr_if_initialization</name> - <cardinality>3</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>constexpr_if_stmt</k> - <v>3</v> + <v>0</v> </e> <e> <k>init_id</k> - <v>3</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -35279,7 +35143,7 @@ <b> <a>1</a> <b>2</b> - <v>3</v> + <v>17</v> </b> </bs> </hist> @@ -35291,13 +35155,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>3</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -35497,15 +35355,15 @@ </relation> <relation> <name>switch_initialization</name> - <cardinality>8</cardinality> + <cardinality>0</cardinality> <columnsizes> <e> <k>switch_stmt</k> - <v>8</v> + <v>0</v> </e> <e> <k>init_id</k> - <v>8</v> + <v>0</v> </e> </columnsizes> <dependencies> @@ -35519,7 +35377,7 @@ <b> <a>1</a> <b>2</b> - <v>8</v> + <v>17</v> </b> </bs> </hist> @@ -35531,13 +35389,7 @@ <val> <hist> <budget>12</budget> - <bs> - <b> - <a>1</a> - <b>2</b> - <v>8</v> - </b> - </bs> + <bs/> </hist> </val> </dep> @@ -36318,11 +36170,11 @@ </relation> <relation> <name>stmt_decl_bind</name> - <cardinality>580842</cardinality> + <cardinality>580841</cardinality> <columnsizes> <e> <k>stmt</k> - <v>541060</v> + <v>541059</v> </e> <e> <k>num</k> @@ -36330,7 +36182,7 @@ </e> <e> <k>decl</k> - <v>580738</v> + <v>580737</v> </e> </columnsizes> <dependencies> @@ -36589,7 +36441,7 @@ <b> <a>1</a> <b>2</b> - <v>580738</v> + <v>580737</v> </b> </bs> </hist> @@ -36599,11 +36451,11 @@ </relation> <relation> <name>stmt_decl_entry_bind</name> - <cardinality>580842</cardinality> + <cardinality>580841</cardinality> <columnsizes> <e> <k>stmt</k> - <v>541060</v> + <v>541059</v> </e> <e> <k>num</k> @@ -36611,7 +36463,7 @@ </e> <e> <k>decl_entry</k> - <v>580784</v> + <v>580783</v> </e> </columnsizes> <dependencies> @@ -36849,7 +36701,7 @@ <b> <a>1</a> <b>2</b> - <v>580763</v> + <v>580762</v> </b> <b> <a>3</a> @@ -36870,7 +36722,7 @@ <b> <a>1</a> <b>2</b> - <v>580784</v> + <v>580783</v> </b> </bs> </hist> From d3e44028ea5aa69b7ece8a2f11fa91e86440f676 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Tue, 19 Nov 2024 14:17:36 +0000 Subject: [PATCH 6/8] C++: Fix upgrade.properties --- .../f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties index 08e1dc42eb29..53cac4c4fec6 100644 --- a/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties +++ b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties @@ -1,2 +1,3 @@ description: Implement compilation_build_mode/2 compatibility: backwards +compilation_build_mode.rel: delete From 38fa3c10d620bde39a8e555ecdec768fda44d020 Mon Sep 17 00:00:00 2001 From: Calum Grant <42069085+calumgrant@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:30:20 +0000 Subject: [PATCH 7/8] Update cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties Co-authored-by: Jeroen Ketema <93738568+jketema@users.noreply.github.com> --- .../f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties index 53cac4c4fec6..cf362f384dae 100644 --- a/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties +++ b/cpp/downgrades/f0156f5f88ab5967c79162012c20f30600ca5ebf/upgrade.properties @@ -1,3 +1,3 @@ description: Implement compilation_build_mode/2 -compatibility: backwards +compatibility: full compilation_build_mode.rel: delete From 0836c3d6a51a98a9fac999fe63c434106971c2d7 Mon Sep 17 00:00:00 2001 From: Calum Grant <calumgrant@github.com> Date: Tue, 19 Nov 2024 14:42:23 +0000 Subject: [PATCH 8/8] C++: Update stats --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 3321 ++++++++++++---------- 1 file changed, 1766 insertions(+), 1555 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index f37e932ca54f..758aba346080 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -18,7 +18,7 @@ </e> <e> <k>@location_default</k> - <v>29764890</v> + <v>29746763</v> </e> <e> <k>@location_stmt</k> @@ -34,35 +34,35 @@ </e> <e> <k>@file</k> - <v>123251</v> + <v>123176</v> </e> <e> <k>@folder</k> - <v>16340</v> + <v>16330</v> </e> <e> <k>@macro_expansion</k> - <v>33257556</v> + <v>33257760</v> </e> <e> <k>@other_macro_reference</k> - <v>859029</v> + <v>858505</v> </e> <e> <k>@function</k> - <v>4179363</v> + <v>4176817</v> </e> <e> <k>@fun_decl</k> - <v>4543516</v> + <v>4541216</v> </e> <e> <k>@var_decl</k> - <v>8039391</v> + <v>8034962</v> </e> <e> <k>@type_decl</k> - <v>3283451</v> + <v>3281452</v> </e> <e> <k>@namespace_decl</k> @@ -70,15 +70,15 @@ </e> <e> <k>@using_declaration</k> - <v>363219</v> + <v>362998</v> </e> <e> <k>@using_directive</k> - <v>6536</v> + <v>6532</v> </e> <e> <k>@using_enum_declaration</k> - <v>0</v> + <v>1</v> </e> <e> <k>@static_assert</k> @@ -86,7 +86,7 @@ </e> <e> <k>@parameter</k> - <v>6190611</v> + <v>6186841</v> </e> <e> <k>@membervariable</k> @@ -98,7 +98,7 @@ </e> <e> <k>@localvariable</k> - <v>576944</v> + <v>576952</v> </e> <e> <k>@enumconstant</k> @@ -330,15 +330,15 @@ </e> <e> <k>@pointer</k> - <v>568173</v> + <v>567827</v> </e> <e> <k>@type_with_specifiers</k> - <v>852026</v> + <v>851507</v> </e> <e> <k>@array</k> - <v>110179</v> + <v>110112</v> </e> <e> <k>@routineptr</k> @@ -346,7 +346,7 @@ </e> <e> <k>@reference</k> - <v>1276405</v> + <v>1275627</v> </e> <e> <k>@gnu_vector</k> @@ -358,23 +358,23 @@ </e> <e> <k>@rvalue_reference</k> - <v>333340</v> + <v>333137</v> </e> <e> <k>@block</k> - <v>0</v> + <v>10</v> </e> <e> <k>@decltype</k> - <v>27078</v> + <v>27061</v> </e> <e> <k>@usertype</k> - <v>5234008</v> + <v>5230820</v> </e> <e> <k>@mangledname</k> - <v>6061757</v> + <v>6058065</v> </e> <e> <k>@type_mention</k> @@ -386,15 +386,15 @@ </e> <e> <k>@ptrtomember</k> - <v>37815</v> + <v>37792</v> </e> <e> <k>@specifier</k> - <v>24743</v> + <v>24728</v> </e> <e> <k>@gnuattribute</k> - <v>553700</v> + <v>553363</v> </e> <e> <k>@stdattribute</k> @@ -406,27 +406,27 @@ </e> <e> <k>@msattribute</k> - <v>0</v> + <v>3</v> </e> <e> <k>@alignas</k> - <v>4668</v> + <v>4665</v> </e> <e> <k>@attribute_arg_token</k> - <v>25210</v> + <v>25195</v> </e> <e> <k>@attribute_arg_constant_expr</k> - <v>318400</v> + <v>318207</v> </e> <e> <k>@attribute_arg_empty</k> - <v>0</v> + <v>1</v> </e> <e> <k>@attribute_arg_constant</k> - <v>0</v> + <v>1</v> </e> <e> <k>@attribute_arg_type</k> @@ -434,7 +434,7 @@ </e> <e> <k>@attribute_arg_expr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@derivation</k> @@ -450,7 +450,7 @@ </e> <e> <k>@namespace</k> - <v>12138</v> + <v>12131</v> </e> <e> <k>@specialnamequalifyingelement</k> @@ -582,11 +582,11 @@ </e> <e> <k>@gtexpr</k> - <v>104110</v> + <v>104047</v> </e> <e> <k>@ltexpr</k> - <v>101776</v> + <v>101714</v> </e> <e> <k>@geexpr</k> @@ -634,7 +634,7 @@ </e> <e> <k>@assignorexpr</k> - <v>23627</v> + <v>23628</v> </e> <e> <k>@assignxorexpr</k> @@ -662,11 +662,11 @@ </e> <e> <k>@subscriptexpr</k> - <v>364477</v> + <v>364481</v> </e> <e> <k>@callexpr</k> - <v>316533</v> + <v>316340</v> </e> <e> <k>@vastartexpr</k> @@ -678,7 +678,7 @@ </e> <e> <k>@vaendexpr</k> - <v>2801</v> + <v>2799</v> </e> <e> <k>@vacopyexpr</k> @@ -766,39 +766,39 @@ </e> <e> <k>@jmulexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@jdivexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@fjaddexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@jfaddexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@fjsubexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@jfsubexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@minexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@maxexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@virtfunptrexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@thisaccess</k> @@ -830,47 +830,47 @@ </e> <e> <k>@sizeof_pack</k> - <v>5602</v> + <v>5598</v> </e> <e> <k>@hasassignexpr</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hascopyexpr</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hasnothrowassign</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hasnothrowconstr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hasnothrowcopy</k> - <v>0</v> + <v>5</v> </e> <e> <k>@hastrivialassign</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hastrivialconstr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hastrivialcopy</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hasuserdestr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hasvirtualdestr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isabstractexpr</k> @@ -902,15 +902,15 @@ </e> <e> <k>@ispolyexpr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isunionexpr</k> - <v>0</v> + <v>5</v> </e> <e> <k>@intaddrexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@hastrivialdestructor</k> @@ -930,7 +930,7 @@ </e> <e> <k>@foldexpr</k> - <v>0</v> + <v>4</v> </e> <e> <k>@ctordirectinit</k> @@ -962,7 +962,7 @@ </e> <e> <k>@static_cast</k> - <v>215647</v> + <v>215648</v> </e> <e> <k>@reinterpret_cast</k> @@ -978,7 +978,7 @@ </e> <e> <k>@lambdaexpr</k> - <v>21475</v> + <v>21462</v> </e> <e> <k>@param_ref</k> @@ -994,11 +994,11 @@ </e> <e> <k>@isdestructibleexpr</k> - <v>0</v> + <v>4</v> </e> <e> <k>@isnothrowdestructibleexpr</k> - <v>0</v> + <v>5</v> </e> <e> <k>@istriviallydestructibleexpr</k> @@ -1006,7 +1006,7 @@ </e> <e> <k>@istriviallyassignableexpr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isnothrowassignableexpr</k> @@ -1018,27 +1018,27 @@ </e> <e> <k>@isstandardlayoutexpr</k> - <v>0</v> + <v>2</v> </e> <e> <k>@istriviallycopyableexpr</k> - <v>3734</v> + <v>3732</v> </e> <e> <k>@isliteraltypeexpr</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hastrivialmoveconstructorexpr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hastrivialmoveassignexpr</k> - <v>0</v> + <v>3</v> </e> <e> <k>@hasnothrowmoveassignexpr</k> - <v>0</v> + <v>4</v> </e> <e> <k>@isconstructibleexpr</k> @@ -1050,35 +1050,35 @@ </e> <e> <k>@hasfinalizerexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isdelegateexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isinterfaceclassexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isrefarrayexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isrefclassexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@issealedexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@issimplevalueclassexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isvalueclassexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@isfinalexpr</k> @@ -1090,7 +1090,7 @@ </e> <e> <k>@builtinshufflevector</k> - <v>0</v> + <v>1</v> </e> <e> <k>@builtinchooseexpr</k> @@ -1102,43 +1102,43 @@ </e> <e> <k>@vec_fill</k> - <v>0</v> + <v>1</v> </e> <e> <k>@builtinconvertvector</k> - <v>0</v> + <v>1</v> </e> <e> <k>@builtincomplex</k> - <v>0</v> + <v>4</v> </e> <e> <k>@spaceshipexpr</k> - <v>0</v> + <v>1</v> </e> <e> <k>@co_await</k> - <v>0</v> + <v>12</v> </e> <e> <k>@co_yield</k> - <v>0</v> + <v>4</v> </e> <e> <k>@isassignable</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isaggregate</k> - <v>0</v> + <v>2</v> </e> <e> <k>@hasuniqueobjectrepresentations</k> - <v>0</v> + <v>2</v> </e> <e> <k>@builtinbitcast</k> - <v>0</v> + <v>1</v> </e> <e> <k>@builtinshuffle</k> @@ -1150,111 +1150,111 @@ </e> <e> <k>@issame</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isfunction</k> - <v>0</v> + <v>2</v> </e> <e> <k>@islayoutcompatible</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ispointerinterconvertiblebaseof</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isarray</k> - <v>0</v> + <v>2</v> </e> <e> <k>@arrayrank</k> - <v>0</v> + <v>2</v> </e> <e> <k>@arrayextent</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isarithmetic</k> - <v>0</v> + <v>2</v> </e> <e> <k>@iscompletetype</k> - <v>0</v> + <v>2</v> </e> <e> <k>@iscompound</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isconst</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isfloatingpoint</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isfundamental</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isintegral</k> - <v>0</v> + <v>2</v> </e> <e> <k>@islvaluereference</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ismemberfunctionpointer</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ismemberobjectpointer</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ismemberpointer</k> - <v>0</v> + <v>3</v> </e> <e> <k>@isobject</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ispointer</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isreference</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isrvaluereference</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isscalar</k> - <v>0</v> + <v>2</v> </e> <e> <k>@issigned</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isunsigned</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isvoid</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isvolatile</k> - <v>0</v> + <v>2</v> </e> <e> <k>@reuseexpr</k> @@ -1262,119 +1262,119 @@ </e> <e> <k>@istriviallycopyassignable</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isassignablenopreconditioncheck</k> - <v>0</v> + <v>3</v> </e> <e> <k>@referencebindstotemporary</k> - <v>0</v> + <v>2</v> </e> <e> <k>@issameas</k> - <v>0</v> + <v>2</v> </e> <e> <k>@builtinhasattribute</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ispointerinterconvertiblewithclass</k> - <v>0</v> + <v>2</v> </e> <e> <k>@builtinispointerinterconvertiblewithclass</k> - <v>0</v> + <v>2</v> </e> <e> <k>@iscorrespondingmember</k> - <v>0</v> + <v>2</v> </e> <e> <k>@builtiniscorrespondingmember</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isboundedarray</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isunboundedarray</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isreferenceable</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isnothrowconvertible</k> - <v>0</v> + <v>2</v> </e> <e> <k>@referenceconstructsfromtemporary</k> - <v>0</v> + <v>2</v> </e> <e> <k>@referenceconvertsfromtemporary</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isconvertible</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isvalidwinrttype</k> - <v>0</v> + <v>1</v> </e> <e> <k>@iswinclass</k> - <v>0</v> + <v>1</v> </e> <e> <k>@iswininterface</k> - <v>0</v> + <v>1</v> </e> <e> <k>@istriviallyequalitycomparable</k> - <v>0</v> + <v>2</v> </e> <e> <k>@isscopedenum</k> - <v>0</v> + <v>2</v> </e> <e> <k>@istriviallyrelocatable</k> - <v>0</v> + <v>2</v> </e> <e> <k>@datasizeof</k> - <v>0</v> + <v>10</v> </e> <e> <k>@c11_generic</k> - <v>0</v> + <v>8</v> </e> <e> <k>@requires_expr</k> - <v>0</v> + <v>8</v> </e> <e> <k>@nested_requirement</k> - <v>0</v> + <v>1</v> </e> <e> <k>@compound_requirement</k> - <v>0</v> + <v>2</v> </e> <e> <k>@concept_id</k> - <v>0</v> + <v>2</v> </e> <e> <k>@lambdacapture</k> - <v>28011</v> + <v>27994</v> </e> <e> <k>@stmt_expr</k> @@ -1398,11 +1398,11 @@ </e> <e> <k>@stmt_return</k> - <v>1280140</v> + <v>1279827</v> </e> <e> <k>@stmt_block</k> - <v>1419265</v> + <v>1418867</v> </e> <e> <k>@stmt_end_test_while</k> @@ -1426,11 +1426,11 @@ </e> <e> <k>@stmt_decl</k> - <v>593118</v> + <v>593121</v> </e> <e> <k>@stmt_empty</k> - <v>192682</v> + <v>192685</v> </e> <e> <k>@stmt_continue</k> @@ -1462,7 +1462,7 @@ </e> <e> <k>@stmt_range_based_for</k> - <v>8403</v> + <v>8398</v> </e> <e> <k>@stmt_handler</k> @@ -1474,35 +1474,35 @@ </e> <e> <k>@stmt_co_return</k> - <v>0</v> + <v>5</v> </e> <e> <k>@ppd_if</k> - <v>667148</v> + <v>666741</v> </e> <e> <k>@ppd_ifdef</k> - <v>263311</v> + <v>263150</v> </e> <e> <k>@ppd_ifndef</k> - <v>266579</v> + <v>266416</v> </e> <e> <k>@ppd_elif</k> - <v>25210</v> + <v>25195</v> </e> <e> <k>@ppd_else</k> - <v>209154</v> + <v>209027</v> </e> <e> <k>@ppd_endif</k> - <v>1197038</v> + <v>1196309</v> </e> <e> <k>@ppd_plain_include</k> - <v>311398</v> + <v>311208</v> </e> <e> <k>@ppd_define</k> @@ -1510,15 +1510,15 @@ </e> <e> <k>@ppd_undef</k> - <v>258642</v> + <v>258484</v> </e> <e> <k>@ppd_include_next</k> - <v>1867</v> + <v>1866</v> </e> <e> <k>@ppd_line</k> - <v>27520</v> + <v>27521</v> </e> <e> <k>@ppd_error</k> @@ -1530,11 +1530,11 @@ </e> <e> <k>@ppd_objc_import</k> - <v>0</v> + <v>2</v> </e> <e> <k>@ppd_warning</k> - <v>0</v> + <v>1</v> </e> <e> <k>@link_target</k> @@ -1902,15 +1902,15 @@ </relation> <relation> <name>compilation_build_mode</name> - <cardinality>0</cardinality> + <cardinality>9742</cardinality> <columnsizes> <e> <k>id</k> - <v>0</v> + <v>9742</v> </e> <e> <k>mode</k> - <v>0</v> + <v>11</v> </e> </columnsizes> <dependencies> @@ -1924,7 +1924,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>9742</v> </b> </bs> </hist> @@ -1936,7 +1936,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>863</a> + <b>864</b> + <v>11</v> + </b> + </bs> </hist> </val> </dep> @@ -2206,7 +2212,7 @@ </e> <e> <k>seconds</k> - <v>9468</v> + <v>8030</v> </e> </columnsizes> <dependencies> @@ -2284,20 +2290,15 @@ <hist> <budget>12</budget> <bs> - <b> - <a>2</a> - <b>3</b> - <v>39</v> - </b> <b> <a>3</a> <b>4</b> - <v>479</v> + <v>799</v> </b> <b> <a>4</a> <b>5</b> - <v>479</v> + <v>199</v> </b> <b> <a>5</a> @@ -2306,32 +2307,37 @@ </b> <b> <a>8</a> + <b>9</b> + <v>79</v> + </b> + <b> + <a>9</a> <b>10</b> - <v>159</v> + <v>119</v> </b> <b> <a>10</a> - <b>11</b> + <b>12</b> <v>159</v> </b> <b> - <a>11</a> - <b>17</b> - <v>159</v> + <a>12</a> + <b>16</b> + <v>119</v> </b> <b> <a>17</a> - <b>19</b> + <b>20</b> <v>159</v> </b> <b> - <a>19</a> - <b>44</b> + <a>21</a> + <b>42</b> <v>159</v> </b> <b> - <a>54</a> - <b>100</b> + <a>55</a> + <b>90</b> <v>79</v> </b> </bs> @@ -2400,27 +2406,27 @@ <b> <a>3</a> <b>4</b> - <v>1398</v> + <v>1438</v> </b> <b> <a>4</a> <b>5</b> - <v>359</v> + <v>319</v> </b> <b> <a>5</a> <b>6</b> - <v>159</v> + <v>199</v> </b> <b> <a>6</a> <b>7</b> - <v>519</v> + <v>399</v> </b> <b> <a>7</a> <b>8</b> - <v>79</v> + <v>159</v> </b> <b> <a>8</a> @@ -2429,12 +2435,12 @@ </b> <b> <a>9</a> - <b>21</b> + <b>24</b> <v>279</v> </b> <b> - <a>24</a> - <b>86</b> + <a>25</a> + <b>85</b> <v>279</v> </b> </bs> @@ -2486,13 +2492,13 @@ <v>79</v> </b> <b> - <a>141</a> - <b>142</b> + <a>124</a> + <b>125</b> <v>39</v> </b> <b> - <a>145</a> - <b>146</b> + <a>128</a> + <b>129</b> <v>39</v> </b> </bs> @@ -2509,27 +2515,37 @@ <b> <a>1</a> <b>2</b> - <v>4234</v> + <v>3755</v> </b> <b> <a>2</a> <b>3</b> - <v>2357</v> + <v>1398</v> </b> <b> <a>3</a> <b>4</b> - <v>1797</v> + <v>998</v> </b> <b> <a>4</a> + <b>5</b> + <v>759</v> + </b> + <b> + <a>5</a> <b>6</b> - <v>838</v> + <v>439</v> </b> <b> <a>6</a> - <b>48</b> - <v>239</v> + <b>25</b> + <v>639</v> + </b> + <b> + <a>46</a> + <b>47</b> + <v>39</v> </b> </bs> </hist> @@ -2545,31 +2561,36 @@ <b> <a>1</a> <b>2</b> - <v>4274</v> + <v>3515</v> </b> <b> <a>2</a> <b>3</b> - <v>1757</v> + <v>1278</v> </b> <b> <a>3</a> <b>4</b> - <v>1158</v> + <v>599</v> </b> <b> <a>4</a> <b>5</b> - <v>1158</v> + <v>878</v> </b> <b> <a>5</a> - <b>7</b> - <v>799</v> + <b>6</b> + <v>759</v> </b> <b> - <a>7</a> - <b>74</b> + <a>6</a> + <b>8</b> + <v>679</v> + </b> + <b> + <a>8</a> + <b>76</b> <v>319</v> </b> </bs> @@ -2586,12 +2607,12 @@ <b> <a>1</a> <b>2</b> - <v>7271</v> + <v>5753</v> </b> <b> <a>2</a> <b>3</b> - <v>2197</v> + <v>2277</v> </b> </bs> </hist> @@ -2935,7 +2956,7 @@ </e> <e> <k>cpu_seconds</k> - <v>7382</v> + <v>7292</v> </e> <e> <k>elapsed_seconds</k> @@ -2985,17 +3006,17 @@ <b> <a>1</a> <b>2</b> - <v>5881</v> + <v>5937</v> </b> <b> <a>2</a> <b>3</b> - <v>1072</v> + <v>846</v> </b> <b> <a>3</a> - <b>12</b> - <v>428</v> + <b>16</b> + <v>507</v> </b> </bs> </hist> @@ -3011,12 +3032,12 @@ <b> <a>1</a> <b>2</b> - <v>6694</v> + <v>6682</v> </b> <b> <a>2</a> <b>3</b> - <v>688</v> + <v>609</v> </b> </bs> </hist> @@ -3029,10 +3050,20 @@ <hist> <budget>12</budget> <bs> + <b> + <a>1</a> + <b>2</b> + <v>11</v> + </b> <b> <a>2</a> <b>3</b> - <v>33</v> + <v>11</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>11</v> </b> <b> <a>7</a> @@ -3040,23 +3071,23 @@ <v>11</v> </b> <b> - <a>9</a> - <b>10</b> + <a>8</a> + <b>9</b> <v>11</v> </b> <b> - <a>10</a> - <b>11</b> + <a>12</a> + <b>13</b> <v>11</v> </b> <b> - <a>16</a> - <b>17</b> + <a>13</a> + <b>14</b> <v>11</v> </b> <b> - <a>50</a> - <b>51</b> + <a>51</a> + <b>52</b> <v>11</v> </b> <b> @@ -3065,18 +3096,18 @@ <v>11</v> </b> <b> - <a>165</a> - <b>166</b> + <a>167</a> + <b>168</b> <v>11</v> </b> <b> - <a>194</a> - <b>195</b> + <a>187</a> + <b>188</b> <v>11</v> </b> <b> - <a>243</a> - <b>244</b> + <a>249</a> + <b>250</b> <v>11</v> </b> </bs> @@ -3090,10 +3121,20 @@ <hist> <budget>12</budget> <bs> + <b> + <a>1</a> + <b>2</b> + <v>11</v> + </b> <b> <a>2</a> <b>3</b> - <v>33</v> + <v>11</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>11</v> </b> <b> <a>7</a> @@ -3101,23 +3142,23 @@ <v>11</v> </b> <b> - <a>9</a> - <b>10</b> + <a>8</a> + <b>9</b> <v>11</v> </b> <b> - <a>10</a> - <b>11</b> + <a>12</a> + <b>13</b> <v>11</v> </b> <b> - <a>16</a> - <b>17</b> + <a>13</a> + <b>14</b> <v>11</v> </b> <b> - <a>48</a> - <b>49</b> + <a>49</a> + <b>50</b> <v>11</v> </b> <b> @@ -3126,18 +3167,18 @@ <v>11</v> </b> <b> - <a>137</a> - <b>138</b> + <a>123</a> + <b>124</b> <v>11</v> </b> <b> - <a>146</a> - <b>147</b> + <a>138</a> + <b>139</b> <v>11</v> </b> <b> - <a>216</a> - <b>217</b> + <a>224</a> + <b>225</b> <v>11</v> </b> </bs> @@ -4910,31 +4951,31 @@ </relation> <relation> <name>locations_default</name> - <cardinality>29764890</cardinality> + <cardinality>29746763</cardinality> <columnsizes> <e> <k>id</k> - <v>29764890</v> + <v>29746763</v> </e> <e> <k>container</k> - <v>123251</v> + <v>123176</v> </e> <e> <k>startLine</k> - <v>2095283</v> + <v>2094007</v> </e> <e> <k>startColumn</k> - <v>36882</v> + <v>36859</v> </e> <e> <k>endLine</k> - <v>2099485</v> + <v>2098207</v> </e> <e> <k>endColumn</k> - <v>48086</v> + <v>48057</v> </e> </columnsizes> <dependencies> @@ -4948,7 +4989,7 @@ <b> <a>1</a> <b>2</b> - <v>29764890</v> + <v>29746763</v> </b> </bs> </hist> @@ -4964,7 +5005,7 @@ <b> <a>1</a> <b>2</b> - <v>29764890</v> + <v>29746763</v> </b> </bs> </hist> @@ -4980,7 +5021,7 @@ <b> <a>1</a> <b>2</b> - <v>29764890</v> + <v>29746763</v> </b> </bs> </hist> @@ -4996,7 +5037,7 @@ <b> <a>1</a> <b>2</b> - <v>29764890</v> + <v>29746763</v> </b> </bs> </hist> @@ -5012,7 +5053,7 @@ <b> <a>1</a> <b>2</b> - <v>29764890</v> + <v>29746763</v> </b> </bs> </hist> @@ -5028,67 +5069,67 @@ <b> <a>1</a> <b>11</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>11</a> <b>18</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>18</a> <b>30</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>30</a> <b>42</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>43</a> <b>61</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>61</a> <b>79</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>80</a> <b>106</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>108</a> <b>149</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>149</a> <b>199</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>206</a> <b>291</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>304</a> <b>469</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>482</a> <b>850</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>936</a> <b>2380</b> - <v>8403</v> + <v>8398</v> </b> </bs> </hist> @@ -5104,67 +5145,67 @@ <b> <a>1</a> <b>8</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>8</a> <b>13</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>13</a> <b>20</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>20</a> <b>32</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>32</a> <b>43</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>44</a> <b>61</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>62</a> <b>72</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>73</a> <b>93</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>97</a> <b>128</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>128</a> <b>180</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>180</a> <b>267</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>277</a> <b>414</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>439</a> <b>1465</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>1557</a> @@ -5185,67 +5226,67 @@ <b> <a>1</a> <b>4</b> - <v>8870</v> + <v>8865</v> </b> <b> <a>4</a> <b>5</b> - <v>7936</v> + <v>7931</v> </b> <b> <a>5</a> <b>6</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>6</a> <b>8</b> - <v>11204</v> + <v>11197</v> </b> <b> <a>8</a> <b>10</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>10</a> <b>15</b> - <v>10737</v> + <v>10731</v> </b> <b> <a>15</a> <b>23</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>23</a> <b>28</b> - <v>11204</v> + <v>11197</v> </b> <b> <a>28</a> <b>34</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>34</a> <b>44</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>44</a> <b>55</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>55</a> <b>66</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>66</a> <b>77</b> - <v>8403</v> + <v>8398</v> </b> </bs> </hist> @@ -5261,67 +5302,67 @@ <b> <a>1</a> <b>8</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>8</a> <b>13</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>13</a> <b>20</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>20</a> <b>32</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>32</a> <b>43</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>43</a> <b>60</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>61</a> <b>71</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>72</a> <b>93</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>94</a> <b>127</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>128</a> <b>179</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>180</a> <b>268</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>278</a> <b>413</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>437</a> <b>1465</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>1554</a> @@ -5342,67 +5383,67 @@ <b> <a>1</a> <b>9</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>9</a> <b>13</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>13</a> <b>18</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>18</a> <b>26</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>27</a> <b>33</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>33</a> <b>39</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>39</a> <b>47</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>47</a> <b>53</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>53</a> <b>60</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>60</a> <b>66</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>66</a> <b>74</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>74</a> <b>78</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>78</a> <b>90</b> - <v>7002</v> + <v>6998</v> </b> </bs> </hist> @@ -5418,52 +5459,52 @@ <b> <a>1</a> <b>2</b> - <v>583112</v> + <v>582757</v> </b> <b> <a>2</a> <b>3</b> - <v>314199</v> + <v>314007</v> </b> <b> <a>3</a> <b>4</b> - <v>195615</v> + <v>195496</v> </b> <b> <a>4</a> <b>6</b> - <v>162001</v> + <v>161903</v> </b> <b> <a>6</a> <b>10</b> - <v>183010</v> + <v>182899</v> </b> <b> <a>10</a> <b>16</b> - <v>162935</v> + <v>162836</v> </b> <b> <a>16</a> <b>25</b> - <v>169004</v> + <v>168901</v> </b> <b> <a>25</a> <b>46</b> - <v>161067</v> + <v>160969</v> </b> <b> <a>46</a> <b>169</b> - <v>157333</v> + <v>157237</v> </b> <b> <a>169</a> <b>265</b> - <v>7002</v> + <v>6998</v> </b> </bs> </hist> @@ -5479,42 +5520,42 @@ <b> <a>1</a> <b>2</b> - <v>871167</v> + <v>870636</v> </b> <b> <a>2</a> <b>3</b> - <v>273582</v> + <v>273415</v> </b> <b> <a>3</a> <b>5</b> - <v>193748</v> + <v>193630</v> </b> <b> <a>5</a> <b>8</b> - <v>173673</v> + <v>173567</v> </b> <b> <a>8</a> <b>13</b> - <v>188146</v> + <v>188031</v> </b> <b> <a>13</a> <b>20</b> - <v>161067</v> + <v>160969</v> </b> <b> <a>20</a> <b>51</b> - <v>159667</v> + <v>159570</v> </b> <b> <a>51</a> <b>265</b> - <v>74231</v> + <v>74186</v> </b> </bs> </hist> @@ -5530,47 +5571,47 @@ <b> <a>1</a> <b>2</b> - <v>612058</v> + <v>611685</v> </b> <b> <a>2</a> <b>3</b> - <v>313265</v> + <v>313074</v> </b> <b> <a>3</a> <b>4</b> - <v>198417</v> + <v>198296</v> </b> <b> <a>4</a> <b>6</b> - <v>183010</v> + <v>182899</v> </b> <b> <a>6</a> <b>9</b> - <v>173206</v> + <v>173100</v> </b> <b> <a>9</a> <b>13</b> - <v>163402</v> + <v>163302</v> </b> <b> <a>13</a> <b>19</b> - <v>174606</v> + <v>174500</v> </b> <b> <a>19</a> <b>29</b> - <v>164802</v> + <v>164702</v> </b> <b> <a>29</a> <b>52</b> - <v>112514</v> + <v>112445</v> </b> </bs> </hist> @@ -5586,22 +5627,22 @@ <b> <a>1</a> <b>2</b> - <v>1531779</v> + <v>1530846</v> </b> <b> <a>2</a> <b>3</b> - <v>348747</v> + <v>348534</v> </b> <b> <a>3</a> <b>5</b> - <v>162001</v> + <v>161903</v> </b> <b> <a>5</a> <b>16</b> - <v>52755</v> + <v>52723</v> </b> </bs> </hist> @@ -5617,47 +5658,47 @@ <b> <a>1</a> <b>2</b> - <v>587781</v> + <v>587423</v> </b> <b> <a>2</a> <b>3</b> - <v>316066</v> + <v>315874</v> </b> <b> <a>3</a> <b>4</b> - <v>197483</v> + <v>197363</v> </b> <b> <a>4</a> <b>6</b> - <v>168537</v> + <v>168435</v> </b> <b> <a>6</a> <b>9</b> - <v>158266</v> + <v>158170</v> </b> <b> <a>9</a> <b>14</b> - <v>170872</v> + <v>170768</v> </b> <b> <a>14</a> <b>21</b> - <v>175073</v> + <v>174967</v> </b> <b> <a>21</a> <b>32</b> - <v>162468</v> + <v>162369</v> </b> <b> <a>32</a> <b>63</b> - <v>157799</v> + <v>157703</v> </b> <b> <a>64</a> @@ -5678,67 +5719,67 @@ <b> <a>1</a> <b>31</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>42</a> <b>85</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>86</a> <b>128</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>129</a> <b>229</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>247</a> <b>286</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>291</a> <b>360</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>373</a> <b>457</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>473</a> <b>565</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>566</a> <b>619</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>619</a> <b>689</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>696</a> <b>807</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>819</a> <b>1563</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>1634</a> <b>5631</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>15295</a> @@ -5759,67 +5800,67 @@ <b> <a>1</a> <b>18</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>23</a> <b>35</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>38</a> <b>43</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>44</a> <b>61</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>65</a> <b>73</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>73</a> <b>84</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>84</a> <b>96</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>96</a> <b>101</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>101</a> <b>105</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>107</a> <b>112</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>112</a> <b>126</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>137</a> <b>170</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>195</a> <b>265</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -5835,67 +5876,67 @@ <b> <a>1</a> <b>19</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>30</a> <b>72</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>83</a> <b>122</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>122</a> <b>205</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>214</a> <b>261</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>265</a> <b>322</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>322</a> <b>379</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>404</a> <b>430</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>453</a> <b>474</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>478</a> <b>505</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>511</a> <b>583</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>585</a> <b>836</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>1104</a> <b>2196</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>2387</a> @@ -5916,67 +5957,67 @@ <b> <a>1</a> <b>19</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>30</a> <b>72</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>83</a> <b>122</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>122</a> <b>205</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>214</a> <b>261</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>265</a> <b>322</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>322</a> <b>380</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>404</a> <b>430</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>453</a> <b>474</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>477</a> <b>504</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>514</a> <b>582</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>585</a> <b>835</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>1109</a> <b>2203</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>2382</a> @@ -5997,67 +6038,67 @@ <b> <a>1</a> <b>7</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>7</a> <b>11</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>11</a> <b>16</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>16</a> <b>22</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>22</a> <b>24</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>24</a> <b>28</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>29</a> <b>34</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>34</a> <b>41</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>41</a> <b>46</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>47</a> <b>49</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>49</a> <b>54</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>54</a> <b>74</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>75</a> <b>86</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -6073,52 +6114,52 @@ <b> <a>1</a> <b>2</b> - <v>593383</v> + <v>593022</v> </b> <b> <a>2</a> <b>3</b> - <v>306262</v> + <v>306076</v> </b> <b> <a>3</a> <b>4</b> - <v>198417</v> + <v>198296</v> </b> <b> <a>4</a> <b>6</b> - <v>159667</v> + <v>159570</v> </b> <b> <a>6</a> <b>10</b> - <v>182543</v> + <v>182432</v> </b> <b> <a>10</a> <b>16</b> - <v>162001</v> + <v>161903</v> </b> <b> <a>16</a> <b>25</b> - <v>171338</v> + <v>171234</v> </b> <b> <a>25</a> <b>46</b> - <v>158733</v> + <v>158636</v> </b> <b> <a>46</a> <b>161</b> - <v>158266</v> + <v>158170</v> </b> <b> <a>162</a> <b>265</b> - <v>8870</v> + <v>8865</v> </b> </bs> </hist> @@ -6134,47 +6175,47 @@ <b> <a>1</a> <b>2</b> - <v>886574</v> + <v>886034</v> </b> <b> <a>2</a> <b>3</b> - <v>260043</v> + <v>259884</v> </b> <b> <a>3</a> <b>4</b> - <v>125119</v> + <v>125043</v> </b> <b> <a>4</a> <b>6</b> - <v>140992</v> + <v>140906</v> </b> <b> <a>6</a> <b>10</b> - <v>184877</v> + <v>184765</v> </b> <b> <a>10</a> <b>15</b> - <v>168537</v> + <v>168435</v> </b> <b> <a>15</a> <b>26</b> - <v>163402</v> + <v>163302</v> </b> <b> <a>26</a> <b>120</b> - <v>158266</v> + <v>158170</v> </b> <b> <a>121</a> <b>265</b> - <v>11671</v> + <v>11664</v> </b> </bs> </hist> @@ -6190,22 +6231,22 @@ <b> <a>1</a> <b>2</b> - <v>1529445</v> + <v>1528513</v> </b> <b> <a>2</a> <b>3</b> - <v>341744</v> + <v>341536</v> </b> <b> <a>3</a> <b>5</b> - <v>170872</v> + <v>170768</v> </b> <b> <a>5</a> <b>10</b> - <v>57424</v> + <v>57389</v> </b> </bs> </hist> @@ -6221,47 +6262,47 @@ <b> <a>1</a> <b>2</b> - <v>623262</v> + <v>622883</v> </b> <b> <a>2</a> <b>3</b> - <v>303461</v> + <v>303276</v> </b> <b> <a>3</a> <b>4</b> - <v>201685</v> + <v>201562</v> </b> <b> <a>4</a> <b>6</b> - <v>183944</v> + <v>183832</v> </b> <b> <a>6</a> <b>9</b> - <v>169938</v> + <v>169834</v> </b> <b> <a>9</a> <b>13</b> - <v>166670</v> + <v>166568</v> </b> <b> <a>13</a> <b>19</b> - <v>175073</v> + <v>174967</v> </b> <b> <a>19</a> <b>29</b> - <v>161067</v> + <v>160969</v> </b> <b> <a>29</a> <b>52</b> - <v>114381</v> + <v>114311</v> </b> </bs> </hist> @@ -6277,52 +6318,52 @@ <b> <a>1</a> <b>2</b> - <v>599919</v> + <v>599554</v> </b> <b> <a>2</a> <b>3</b> - <v>306262</v> + <v>306076</v> </b> <b> <a>3</a> <b>4</b> - <v>197016</v> + <v>196896</v> </b> <b> <a>4</a> <b>6</b> - <v>169004</v> + <v>168901</v> </b> <b> <a>6</a> <b>9</b> - <v>156399</v> + <v>156304</v> </b> <b> <a>9</a> <b>14</b> - <v>169004</v> + <v>168901</v> </b> <b> <a>14</a> <b>21</b> - <v>177875</v> + <v>177766</v> </b> <b> <a>21</a> <b>32</b> - <v>162001</v> + <v>161903</v> </b> <b> <a>32</a> <b>60</b> - <v>158266</v> + <v>158170</v> </b> <b> <a>60</a> <b>65</b> - <v>3734</v> + <v>3732</v> </b> </bs> </hist> @@ -6338,67 +6379,67 @@ <b> <a>1</a> <b>2</b> - <v>5135</v> + <v>5132</v> </b> <b> <a>2</a> <b>8</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>9</a> <b>186</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>193</a> <b>288</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>294</a> <b>495</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>503</a> <b>555</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>561</a> <b>633</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>640</a> <b>758</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>758</a> <b>869</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>875</a> <b>1074</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>1074</a> <b>1281</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>1289</a> <b>1590</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>1685</a> <b>2418</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -6414,62 +6455,62 @@ <b> <a>1</a> <b>2</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>2</a> <b>5</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>5</a> <b>65</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>70</a> <b>100</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>100</a> <b>111</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>112</a> <b>122</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>122</a> <b>140</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>143</a> <b>153</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>153</a> <b>161</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>161</a> <b>173</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>173</a> <b>178</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>188</a> <b>265</b> - <v>3734</v> + <v>3732</v> </b> </bs> </hist> @@ -6485,62 +6526,62 @@ <b> <a>1</a> <b>2</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>2</a> <b>8</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>9</a> <b>105</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>155</a> <b>241</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>253</a> <b>336</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>340</a> <b>426</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>434</a> <b>488</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>489</a> <b>572</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>573</a> <b>623</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>626</a> <b>696</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>701</a> <b>813</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>818</a> <b>1095</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>1172</a> @@ -6561,67 +6602,67 @@ <b> <a>1</a> <b>2</b> - <v>6069</v> + <v>6065</v> </b> <b> <a>2</a> <b>4</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>4</a> <b>8</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>8</a> <b>15</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>15</a> <b>23</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>23</a> <b>29</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>29</a> <b>35</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>35</a> <b>39</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>39</a> <b>42</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>42</a> <b>44</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>44</a> <b>46</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>46</a> <b>49</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>49</a> <b>53</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -6637,67 +6678,67 @@ <b> <a>1</a> <b>2</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>2</a> <b>8</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>9</a> <b>156</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>159</a> <b>240</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>251</a> <b>335</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>342</a> <b>430</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>432</a> <b>490</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>490</a> <b>573</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>574</a> <b>622</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>626</a> <b>698</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>700</a> <b>798</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>811</a> <b>987</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>1096</a> <b>1180</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -10621,23 +10662,23 @@ </relation> <relation> <name>numlines</name> - <cardinality>1383783</cardinality> + <cardinality>1382941</cardinality> <columnsizes> <e> <k>element_id</k> - <v>1376780</v> + <v>1375942</v> </e> <e> <k>num_lines</k> - <v>101776</v> + <v>101714</v> </e> <e> <k>num_code</k> - <v>84969</v> + <v>84917</v> </e> <e> <k>num_comment</k> - <v>59758</v> + <v>59722</v> </e> </columnsizes> <dependencies> @@ -10651,12 +10692,12 @@ <b> <a>1</a> <b>2</b> - <v>1369777</v> + <v>1368943</v> </b> <b> <a>2</a> <b>3</b> - <v>7002</v> + <v>6998</v> </b> </bs> </hist> @@ -10672,12 +10713,12 @@ <b> <a>1</a> <b>2</b> - <v>1370711</v> + <v>1369876</v> </b> <b> <a>2</a> <b>3</b> - <v>6069</v> + <v>6065</v> </b> </bs> </hist> @@ -10693,7 +10734,7 @@ <b> <a>1</a> <b>2</b> - <v>1376780</v> + <v>1375942</v> </b> </bs> </hist> @@ -10709,27 +10750,27 @@ <b> <a>1</a> <b>2</b> - <v>68162</v> + <v>68120</v> </b> <b> <a>2</a> <b>3</b> - <v>12138</v> + <v>12131</v> </b> <b> <a>3</a> <b>4</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>4</a> <b>21</b> - <v>7936</v> + <v>7931</v> </b> <b> <a>29</a> <b>921</b> - <v>6069</v> + <v>6065</v> </b> </bs> </hist> @@ -10745,27 +10786,27 @@ <b> <a>1</a> <b>2</b> - <v>70496</v> + <v>70453</v> </b> <b> <a>2</a> <b>3</b> - <v>12138</v> + <v>12131</v> </b> <b> <a>3</a> <b>4</b> - <v>8403</v> + <v>8398</v> </b> <b> <a>4</a> <b>6</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>6</a> <b>7</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -10781,22 +10822,22 @@ <b> <a>1</a> <b>2</b> - <v>69562</v> + <v>69520</v> </b> <b> <a>2</a> <b>3</b> - <v>14939</v> + <v>14930</v> </b> <b> <a>3</a> <b>4</b> - <v>10737</v> + <v>10731</v> </b> <b> <a>4</a> <b>7</b> - <v>6536</v> + <v>6532</v> </b> </bs> </hist> @@ -10812,27 +10853,27 @@ <b> <a>1</a> <b>2</b> - <v>52755</v> + <v>52723</v> </b> <b> <a>2</a> <b>3</b> - <v>14472</v> + <v>14463</v> </b> <b> <a>3</a> <b>5</b> - <v>6536</v> + <v>6532</v> </b> <b> <a>5</a> <b>42</b> - <v>6536</v> + <v>6532</v> </b> <b> <a>44</a> <b>922</b> - <v>4668</v> + <v>4665</v> </b> </bs> </hist> @@ -10848,27 +10889,27 @@ <b> <a>1</a> <b>2</b> - <v>52755</v> + <v>52723</v> </b> <b> <a>2</a> <b>3</b> - <v>16807</v> + <v>16796</v> </b> <b> <a>3</a> <b>5</b> - <v>6069</v> + <v>6065</v> </b> <b> <a>5</a> <b>8</b> - <v>6536</v> + <v>6532</v> </b> <b> <a>8</a> <b>12</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -10884,27 +10925,27 @@ <b> <a>1</a> <b>2</b> - <v>53222</v> + <v>53190</v> </b> <b> <a>2</a> <b>3</b> - <v>15873</v> + <v>15863</v> </b> <b> <a>3</a> <b>5</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>5</a> <b>7</b> - <v>5135</v> + <v>5132</v> </b> <b> <a>7</a> <b>10</b> - <v>3268</v> + <v>3266</v> </b> </bs> </hist> @@ -10920,32 +10961,32 @@ <b> <a>1</a> <b>2</b> - <v>34547</v> + <v>34526</v> </b> <b> <a>2</a> <b>3</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>3</a> <b>4</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>4</a> <b>6</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>6</a> <b>11</b> - <v>5135</v> + <v>5132</v> </b> <b> <a>17</a> <b>2596</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -10961,32 +11002,32 @@ <b> <a>1</a> <b>2</b> - <v>34547</v> + <v>34526</v> </b> <b> <a>2</a> <b>3</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>3</a> <b>4</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>4</a> <b>6</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>6</a> <b>8</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>10</a> <b>38</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -11002,32 +11043,32 @@ <b> <a>1</a> <b>2</b> - <v>34547</v> + <v>34526</v> </b> <b> <a>2</a> <b>3</b> - <v>9337</v> + <v>9331</v> </b> <b> <a>3</a> <b>4</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>4</a> <b>6</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>6</a> <b>10</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>10</a> <b>37</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -11669,15 +11710,15 @@ </relation> <relation> <name>files</name> - <cardinality>123251</cardinality> + <cardinality>123176</cardinality> <columnsizes> <e> <k>id</k> - <v>123251</v> + <v>123176</v> </e> <e> <k>name</k> - <v>123251</v> + <v>123176</v> </e> </columnsizes> <dependencies> @@ -11691,7 +11732,7 @@ <b> <a>1</a> <b>2</b> - <v>123251</v> + <v>123176</v> </b> </bs> </hist> @@ -11707,7 +11748,7 @@ <b> <a>1</a> <b>2</b> - <v>123251</v> + <v>123176</v> </b> </bs> </hist> @@ -11717,15 +11758,15 @@ </relation> <relation> <name>folders</name> - <cardinality>16340</cardinality> + <cardinality>16330</cardinality> <columnsizes> <e> <k>id</k> - <v>16340</v> + <v>16330</v> </e> <e> <k>name</k> - <v>16340</v> + <v>16330</v> </e> </columnsizes> <dependencies> @@ -11739,7 +11780,7 @@ <b> <a>1</a> <b>2</b> - <v>16340</v> + <v>16330</v> </b> </bs> </hist> @@ -11755,7 +11796,7 @@ <b> <a>1</a> <b>2</b> - <v>16340</v> + <v>16330</v> </b> </bs> </hist> @@ -11765,15 +11806,15 @@ </relation> <relation> <name>containerparent</name> - <cardinality>138658</cardinality> + <cardinality>138574</cardinality> <columnsizes> <e> <k>parent</k> - <v>16340</v> + <v>16330</v> </e> <e> <k>child</k> - <v>138658</v> + <v>138574</v> </e> </columnsizes> <dependencies> @@ -11787,32 +11828,32 @@ <b> <a>1</a> <b>2</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>2</a> <b>3</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>3</a> <b>4</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>4</a> <b>12</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>23</a> <b>28</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>40</a> <b>67</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -11828,7 +11869,7 @@ <b> <a>1</a> <b>2</b> - <v>138658</v> + <v>138574</v> </b> </bs> </hist> @@ -11838,7 +11879,7 @@ </relation> <relation> <name>fileannotations</name> - <cardinality>5129404</cardinality> + <cardinality>5129436</cardinality> <columnsizes> <e> <k>id</k> @@ -12680,19 +12721,19 @@ </relation> <relation> <name>macroinvocations</name> - <cardinality>33490802</cardinality> + <cardinality>33491008</cardinality> <columnsizes> <e> <k>id</k> - <v>33490802</v> + <v>33491008</v> </e> <e> <k>macro_id</k> - <v>79483</v> + <v>79484</v> </e> <e> <k>location</k> - <v>760382</v> + <v>760387</v> </e> <e> <k>kind</k> @@ -12710,7 +12751,7 @@ <b> <a>1</a> <b>2</b> - <v>33490802</v> + <v>33491008</v> </b> </bs> </hist> @@ -12726,7 +12767,7 @@ <b> <a>1</a> <b>2</b> - <v>33490802</v> + <v>33491008</v> </b> </bs> </hist> @@ -12742,7 +12783,7 @@ <b> <a>1</a> <b>2</b> - <v>33490802</v> + <v>33491008</v> </b> </bs> </hist> @@ -12824,7 +12865,7 @@ <b> <a>1</a> <b>2</b> - <v>42467</v> + <v>42468</v> </b> <b> <a>2</a> @@ -12870,7 +12911,7 @@ <b> <a>1</a> <b>2</b> - <v>73748</v> + <v>73749</v> </b> <b> <a>2</a> @@ -12891,22 +12932,22 @@ <b> <a>1</a> <b>2</b> - <v>281223</v> + <v>281225</v> </b> <b> <a>2</a> <b>3</b> - <v>169657</v> + <v>169658</v> </b> <b> <a>3</a> <b>4</b> - <v>70734</v> + <v>70735</v> </b> <b> <a>4</a> <b>5</b> - <v>60326</v> + <v>60327</v> </b> <b> <a>5</a> @@ -12942,7 +12983,7 @@ <b> <a>1</a> <b>2</b> - <v>714211</v> + <v>714216</v> </b> <b> <a>2</a> @@ -12963,7 +13004,7 @@ <b> <a>1</a> <b>2</b> - <v>760382</v> + <v>760387</v> </b> </bs> </hist> @@ -13036,15 +13077,15 @@ </relation> <relation> <name>macroparent</name> - <cardinality>29950538</cardinality> + <cardinality>29950722</cardinality> <columnsizes> <e> <k>id</k> - <v>29950538</v> + <v>29950722</v> </e> <e> <k>parent_id</k> - <v>23286856</v> + <v>23286998</v> </e> </columnsizes> <dependencies> @@ -13058,7 +13099,7 @@ <b> <a>1</a> <b>2</b> - <v>29950538</v> + <v>29950722</v> </b> </bs> </hist> @@ -13074,17 +13115,17 @@ <b> <a>1</a> <b>2</b> - <v>17992681</v> + <v>17992792</v> </b> <b> <a>2</a> <b>3</b> - <v>4459523</v> + <v>4459550</v> </b> <b> <a>3</a> <b>88</b> - <v>834650</v> + <v>834655</v> </b> </bs> </hist> @@ -13172,11 +13213,11 @@ </relation> <relation> <name>macro_argument_unexpanded</name> - <cardinality>84548918</cardinality> + <cardinality>84549437</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26214596</v> + <v>26214757</v> </e> <e> <k>argument_index</k> @@ -13184,7 +13225,7 @@ </e> <e> <k>text</k> - <v>318306</v> + <v>318308</v> </e> </columnsizes> <dependencies> @@ -13198,22 +13239,22 @@ <b> <a>1</a> <b>2</b> - <v>7432418</v> + <v>7432464</v> </b> <b> <a>2</a> <b>3</b> - <v>10673962</v> + <v>10674027</v> </b> <b> <a>3</a> <b>4</b> - <v>6139289</v> + <v>6139327</v> </b> <b> <a>4</a> <b>67</b> - <v>1968925</v> + <v>1968937</v> </b> </bs> </hist> @@ -13229,22 +13270,22 @@ <b> <a>1</a> <b>2</b> - <v>7502578</v> + <v>7502624</v> </b> <b> <a>2</a> <b>3</b> - <v>10820511</v> + <v>10820578</v> </b> <b> <a>3</a> <b>4</b> - <v>5972962</v> + <v>5972999</v> </b> <b> <a>4</a> <b>67</b> - <v>1918544</v> + <v>1918556</v> </b> </bs> </hist> @@ -13312,12 +13353,12 @@ <b> <a>1</a> <b>2</b> - <v>35073</v> + <v>35074</v> </b> <b> <a>2</a> <b>3</b> - <v>61263</v> + <v>61264</v> </b> <b> <a>3</a> @@ -13327,12 +13368,12 @@ <b> <a>4</a> <b>5</b> - <v>45086</v> + <v>45087</v> </b> <b> <a>5</a> <b>7</b> - <v>23931</v> + <v>23932</v> </b> <b> <a>7</a> @@ -13378,7 +13419,7 @@ <b> <a>1</a> <b>2</b> - <v>230198</v> + <v>230200</v> </b> <b> <a>2</a> @@ -13388,7 +13429,7 @@ <b> <a>3</a> <b>9</b> - <v>10283</v> + <v>10284</v> </b> </bs> </hist> @@ -13398,11 +13439,11 @@ </relation> <relation> <name>macro_argument_expanded</name> - <cardinality>84548918</cardinality> + <cardinality>84549437</cardinality> <columnsizes> <e> <k>invocation</k> - <v>26214596</v> + <v>26214757</v> </e> <e> <k>argument_index</k> @@ -13410,7 +13451,7 @@ </e> <e> <k>text</k> - <v>192900</v> + <v>192902</v> </e> </columnsizes> <dependencies> @@ -13424,22 +13465,22 @@ <b> <a>1</a> <b>2</b> - <v>7432418</v> + <v>7432464</v> </b> <b> <a>2</a> <b>3</b> - <v>10673962</v> + <v>10674027</v> </b> <b> <a>3</a> <b>4</b> - <v>6139289</v> + <v>6139327</v> </b> <b> <a>4</a> <b>67</b> - <v>1968925</v> + <v>1968937</v> </b> </bs> </hist> @@ -13455,22 +13496,22 @@ <b> <a>1</a> <b>2</b> - <v>10688727</v> + <v>10688793</v> </b> <b> <a>2</a> <b>3</b> - <v>9201805</v> + <v>9201862</v> </b> <b> <a>3</a> <b>4</b> - <v>5208245</v> + <v>5208277</v> </b> <b> <a>4</a> <b>9</b> - <v>1115817</v> + <v>1115824</v> </b> </bs> </hist> @@ -13609,7 +13650,7 @@ <b> <a>1</a> <b>2</b> - <v>97624</v> + <v>97625</v> </b> <b> <a>2</a> @@ -13629,19 +13670,19 @@ </relation> <relation> <name>functions</name> - <cardinality>4179363</cardinality> + <cardinality>4176817</cardinality> <columnsizes> <e> <k>id</k> - <v>4179363</v> + <v>4176817</v> </e> <e> <k>name</k> - <v>1895466</v> + <v>1894311</v> </e> <e> <k>kind</k> - <v>3268</v> + <v>3266</v> </e> </columnsizes> <dependencies> @@ -13655,7 +13696,7 @@ <b> <a>1</a> <b>2</b> - <v>4179363</v> + <v>4176817</v> </b> </bs> </hist> @@ -13671,7 +13712,7 @@ <b> <a>1</a> <b>2</b> - <v>4179363</v> + <v>4176817</v> </b> </bs> </hist> @@ -13687,22 +13728,22 @@ <b> <a>1</a> <b>2</b> - <v>1498165</v> + <v>1497253</v> </b> <b> <a>2</a> <b>3</b> - <v>153131</v> + <v>153038</v> </b> <b> <a>3</a> <b>5</b> - <v>142860</v> + <v>142773</v> </b> <b> <a>5</a> <b>952</b> - <v>101309</v> + <v>101247</v> </b> </bs> </hist> @@ -13718,7 +13759,7 @@ <b> <a>1</a> <b>2</b> - <v>1894999</v> + <v>1893845</v> </b> <b> <a>2</a> @@ -13820,15 +13861,15 @@ </relation> <relation> <name>function_entry_point</name> - <cardinality>1151752</cardinality> + <cardinality>1151517</cardinality> <columnsizes> <e> <k>id</k> - <v>1141948</v> + <v>1141719</v> </e> <e> <k>entry_point</k> - <v>1151752</v> + <v>1151517</v> </e> </columnsizes> <dependencies> @@ -13842,12 +13883,12 @@ <b> <a>1</a> <b>2</b> - <v>1132144</v> + <v>1131921</v> </b> <b> <a>2</a> <b>3</b> - <v>9804</v> + <v>9798</v> </b> </bs> </hist> @@ -13863,7 +13904,7 @@ <b> <a>1</a> <b>2</b> - <v>1151752</v> + <v>1151517</v> </b> </bs> </hist> @@ -13873,15 +13914,15 @@ </relation> <relation> <name>function_return_type</name> - <cardinality>4184498</cardinality> + <cardinality>4181950</cardinality> <columnsizes> <e> <k>id</k> - <v>4179363</v> + <v>4176817</v> </e> <e> <k>return_type</k> - <v>817945</v> + <v>817446</v> </e> </columnsizes> <dependencies> @@ -13895,12 +13936,12 @@ <b> <a>1</a> <b>2</b> - <v>4174227</v> + <v>4171685</v> </b> <b> <a>2</a> <b>3</b> - <v>5135</v> + <v>5132</v> </b> </bs> </hist> @@ -13916,22 +13957,22 @@ <b> <a>1</a> <b>2</b> - <v>506080</v> + <v>505771</v> </b> <b> <a>2</a> <b>3</b> - <v>211489</v> + <v>211360</v> </b> <b> <a>3</a> <b>7</b> - <v>66294</v> + <v>66254</v> </b> <b> <a>7</a> <b>2231</b> - <v>34081</v> + <v>34060</v> </b> </bs> </hist> @@ -13941,15 +13982,15 @@ </relation> <relation> <name>coroutine</name> - <cardinality>0</cardinality> + <cardinality>6</cardinality> <columnsizes> <e> <k>function</k> - <v>0</v> + <v>6</v> </e> <e> <k>traits</k> - <v>0</v> + <v>3</v> </e> </columnsizes> <dependencies> @@ -13963,7 +14004,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>6</v> </b> </bs> </hist> @@ -13975,7 +14016,23 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + <b> + <a>3</a> + <b>4</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -13983,19 +14040,19 @@ </relation> <relation> <name>coroutine_placeholder_variable</name> - <cardinality>0</cardinality> + <cardinality>18</cardinality> <columnsizes> <e> <k>placeholder_variable</k> - <v>0</v> + <v>18</v> </e> <e> <k>kind</k> - <v>0</v> + <v>3</v> </e> <e> <k>function</k> - <v>0</v> + <v>6</v> </e> </columnsizes> <dependencies> @@ -14009,7 +14066,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>18</v> </b> </bs> </hist> @@ -14025,7 +14082,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>18</v> </b> </bs> </hist> @@ -14037,7 +14094,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>6</a> + <b>7</b> + <v>3</v> + </b> + </bs> </hist> </val> </dep> @@ -14047,7 +14110,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>6</a> + <b>7</b> + <v>3</v> + </b> + </bs> </hist> </val> </dep> @@ -14057,7 +14126,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>3</a> + <b>4</b> + <v>6</v> + </b> + </bs> </hist> </val> </dep> @@ -14067,7 +14142,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>3</a> + <b>4</b> + <v>6</v> + </b> + </bs> </hist> </val> </dep> @@ -14075,15 +14156,15 @@ </relation> <relation> <name>coroutine_new</name> - <cardinality>0</cardinality> + <cardinality>6</cardinality> <columnsizes> <e> <k>function</k> - <v>0</v> + <v>6</v> </e> <e> <k>new</k> - <v>0</v> + <v>1</v> </e> </columnsizes> <dependencies> @@ -14097,7 +14178,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>6</v> </b> </bs> </hist> @@ -14109,7 +14190,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>6</a> + <b>7</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -14117,15 +14204,15 @@ </relation> <relation> <name>coroutine_delete</name> - <cardinality>0</cardinality> + <cardinality>6</cardinality> <columnsizes> <e> <k>function</k> - <v>0</v> + <v>6</v> </e> <e> <k>delete</k> - <v>0</v> + <v>1</v> </e> </columnsizes> <dependencies> @@ -14139,7 +14226,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>6</v> </b> </bs> </hist> @@ -14151,7 +14238,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>6</a> + <b>7</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -14170,33 +14263,33 @@ </relation> <relation> <name>function_deleted</name> - <cardinality>96173</cardinality> + <cardinality>96115</cardinality> <columnsizes> <e> <k>id</k> - <v>96173</v> + <v>96115</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_defaulted</name> - <cardinality>73764</cardinality> + <cardinality>73719</cardinality> <columnsizes> <e> <k>id</k> - <v>73764</v> + <v>73719</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>function_prototyped</name> - <cardinality>4087391</cardinality> + <cardinality>4084901</cardinality> <columnsizes> <e> <k>id</k> - <v>4087391</v> + <v>4084901</v> </e> </columnsizes> <dependencies/> @@ -14349,27 +14442,27 @@ </relation> <relation> <name>fun_decls</name> - <cardinality>4548652</cardinality> + <cardinality>4546348</cardinality> <columnsizes> <e> <k>id</k> - <v>4543516</v> + <v>4541216</v> </e> <e> <k>function</k> - <v>4035569</v> + <v>4033111</v> </e> <e> <k>type_id</k> - <v>816544</v> + <v>816047</v> </e> <e> <k>name</k> - <v>1797891</v> + <v>1796796</v> </e> <e> <k>location</k> - <v>3370755</v> + <v>3368702</v> </e> </columnsizes> <dependencies> @@ -14383,7 +14476,7 @@ <b> <a>1</a> <b>2</b> - <v>4543516</v> + <v>4541216</v> </b> </bs> </hist> @@ -14399,12 +14492,12 @@ <b> <a>1</a> <b>2</b> - <v>4538381</v> + <v>4536084</v> </b> <b> <a>2</a> <b>3</b> - <v>5135</v> + <v>5132</v> </b> </bs> </hist> @@ -14420,7 +14513,7 @@ <b> <a>1</a> <b>2</b> - <v>4543516</v> + <v>4541216</v> </b> </bs> </hist> @@ -14436,7 +14529,7 @@ <b> <a>1</a> <b>2</b> - <v>4543516</v> + <v>4541216</v> </b> </bs> </hist> @@ -14452,17 +14545,17 @@ <b> <a>1</a> <b>2</b> - <v>3606521</v> + <v>3603858</v> </b> <b> <a>2</a> <b>3</b> - <v>356216</v> + <v>356466</v> </b> <b> <a>3</a> <b>7</b> - <v>72830</v> + <v>72786</v> </b> </bs> </hist> @@ -14478,12 +14571,12 @@ <b> <a>1</a> <b>2</b> - <v>3995885</v> + <v>3993452</v> </b> <b> <a>2</a> <b>3</b> - <v>39683</v> + <v>39659</v> </b> </bs> </hist> @@ -14499,7 +14592,7 @@ <b> <a>1</a> <b>2</b> - <v>4035569</v> + <v>4033111</v> </b> </bs> </hist> @@ -14515,17 +14608,17 @@ <b> <a>1</a> <b>2</b> - <v>3663012</v> + <v>3660781</v> </b> <b> <a>2</a> <b>3</b> - <v>311864</v> + <v>311674</v> </b> <b> <a>3</a> <b>6</b> - <v>60692</v> + <v>60655</v> </b> </bs> </hist> @@ -14541,22 +14634,22 @@ <b> <a>1</a> <b>2</b> - <v>431381</v> + <v>431119</v> </b> <b> <a>2</a> <b>3</b> - <v>274048</v> + <v>273882</v> </b> <b> <a>3</a> <b>6</b> - <v>63493</v> + <v>63454</v> </b> <b> <a>6</a> - <b>2476</b> - <v>47620</v> + <b>2477</b> + <v>47591</v> </b> </bs> </hist> @@ -14572,22 +14665,22 @@ <b> <a>1</a> <b>2</b> - <v>515417</v> + <v>515103</v> </b> <b> <a>2</a> <b>3</b> - <v>203085</v> + <v>202961</v> </b> <b> <a>3</a> <b>7</b> - <v>63026</v> + <v>62988</v> </b> <b> <a>7</a> <b>2192</b> - <v>35014</v> + <v>34993</v> </b> </bs> </hist> @@ -14603,17 +14696,17 @@ <b> <a>1</a> <b>2</b> - <v>690024</v> + <v>689604</v> </b> <b> <a>2</a> <b>4</b> - <v>67228</v> + <v>67187</v> </b> <b> <a>4</a> <b>773</b> - <v>59291</v> + <v>59255</v> </b> </bs> </hist> @@ -14629,22 +14722,22 @@ <b> <a>1</a> <b>2</b> - <v>595251</v> + <v>594888</v> </b> <b> <a>2</a> <b>3</b> - <v>121384</v> + <v>121310</v> </b> <b> <a>3</a> <b>7</b> - <v>63493</v> + <v>63454</v> </b> <b> <a>7</a> <b>1959</b> - <v>36415</v> + <v>36393</v> </b> </bs> </hist> @@ -14660,27 +14753,27 @@ <b> <a>1</a> <b>2</b> - <v>1228318</v> + <v>1227570</v> </b> <b> <a>2</a> <b>3</b> - <v>267045</v> + <v>266883</v> </b> <b> <a>3</a> <b>4</b> - <v>77966</v> + <v>77918</v> </b> <b> <a>4</a> <b>7</b> - <v>146128</v> + <v>146039</v> </b> <b> <a>7</a> <b>986</b> - <v>78433</v> + <v>78385</v> </b> </bs> </hist> @@ -14696,22 +14789,22 @@ <b> <a>1</a> <b>2</b> - <v>1407593</v> + <v>1406736</v> </b> <b> <a>2</a> <b>3</b> - <v>152197</v> + <v>152104</v> </b> <b> <a>3</a> <b>5</b> - <v>136791</v> + <v>136707</v> </b> <b> <a>5</a> <b>936</b> - <v>101309</v> + <v>101247</v> </b> </bs> </hist> @@ -14727,17 +14820,17 @@ <b> <a>1</a> <b>2</b> - <v>1579399</v> + <v>1578437</v> </b> <b> <a>2</a> <b>4</b> - <v>134923</v> + <v>134841</v> </b> <b> <a>4</a> <b>562</b> - <v>83568</v> + <v>83517</v> </b> </bs> </hist> @@ -14753,27 +14846,27 @@ <b> <a>1</a> <b>2</b> - <v>1236254</v> + <v>1235502</v> </b> <b> <a>2</a> <b>3</b> - <v>293190</v> + <v>293011</v> </b> <b> <a>3</a> <b>4</b> - <v>78899</v> + <v>78851</v> </b> <b> <a>4</a> <b>8</b> - <v>137257</v> + <v>137174</v> </b> <b> <a>8</a> <b>542</b> - <v>52288</v> + <v>52256</v> </b> </bs> </hist> @@ -14789,17 +14882,17 @@ <b> <a>1</a> <b>2</b> - <v>2966451</v> + <v>2964644</v> </b> <b> <a>2</a> <b>4</b> - <v>277783</v> + <v>277614</v> </b> <b> <a>4</a> <b>55</b> - <v>126520</v> + <v>126442</v> </b> </bs> </hist> @@ -14815,17 +14908,17 @@ <b> <a>1</a> <b>2</b> - <v>3033679</v> + <v>3031832</v> </b> <b> <a>2</a> <b>7</b> - <v>244169</v> + <v>244020</v> </b> <b> <a>7</a> <b>55</b> - <v>92905</v> + <v>92849</v> </b> </bs> </hist> @@ -14841,12 +14934,12 @@ <b> <a>1</a> <b>2</b> - <v>3207353</v> + <v>3205399</v> </b> <b> <a>2</a> <b>18</b> - <v>163402</v> + <v>163302</v> </b> </bs> </hist> @@ -14862,12 +14955,12 @@ <b> <a>1</a> <b>2</b> - <v>3232563</v> + <v>3230595</v> </b> <b> <a>2</a> <b>13</b> - <v>138191</v> + <v>138107</v> </b> </bs> </hist> @@ -14877,22 +14970,22 @@ </relation> <relation> <name>fun_def</name> - <cardinality>1888930</cardinality> + <cardinality>1888246</cardinality> <columnsizes> <e> <k>id</k> - <v>1888930</v> + <v>1888246</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>fun_specialized</name> - <cardinality>26144</cardinality> + <cardinality>26128</cardinality> <columnsizes> <e> <k>id</k> - <v>26144</v> + <v>26128</v> </e> </columnsizes> <dependencies/> @@ -14910,15 +15003,15 @@ </relation> <relation> <name>fun_decl_specifiers</name> - <cardinality>2906692</cardinality> + <cardinality>2904922</cardinality> <columnsizes> <e> <k>id</k> - <v>1689579</v> + <v>1688550</v> </e> <e> <k>name</k> - <v>2801</v> + <v>2799</v> </e> </columnsizes> <dependencies> @@ -14932,17 +15025,17 @@ <b> <a>1</a> <b>2</b> - <v>491140</v> + <v>490841</v> </b> <b> <a>2</a> <b>3</b> - <v>1179764</v> + <v>1179045</v> </b> <b> <a>3</a> <b>4</b> - <v>18674</v> + <v>18663</v> </b> </bs> </hist> @@ -14993,19 +15086,19 @@ </relation> <relation> <name>fun_decl_throws</name> - <cardinality>0</cardinality> + <cardinality>7</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>0</v> + <v>7</v> </e> <e> <k>index</k> - <v>0</v> + <v>1</v> </e> <e> <k>type_id</k> - <v>0</v> + <v>2</v> </e> </columnsizes> <dependencies> @@ -15015,7 +15108,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>7</v> + </b> + </bs> </hist> </val> </dep> @@ -15025,7 +15124,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>7</v> + </b> + </bs> </hist> </val> </dep> @@ -15035,7 +15140,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>7</a> + <b>8</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -15045,7 +15156,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -15055,7 +15172,18 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + <b> + <a>6</a> + <b>7</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -15065,7 +15193,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>2</v> + </b> + </bs> </hist> </val> </dep> @@ -15073,11 +15207,11 @@ </relation> <relation> <name>fun_decl_empty_throws</name> - <cardinality>1472021</cardinality> + <cardinality>1471124</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>1472021</v> + <v>1471124</v> </e> </columnsizes> <dependencies/> @@ -15137,11 +15271,11 @@ </relation> <relation> <name>fun_decl_empty_noexcept</name> - <cardinality>863230</cardinality> + <cardinality>863171</cardinality> <columnsizes> <e> <k>fun_decl</k> - <v>863230</v> + <v>863171</v> </e> </columnsizes> <dependencies/> @@ -15246,19 +15380,19 @@ </relation> <relation> <name>param_decl_bind</name> - <cardinality>6995017</cardinality> + <cardinality>6991224</cardinality> <columnsizes> <e> <k>id</k> - <v>6995017</v> + <v>6991224</v> </e> <e> <k>index</k> - <v>7936</v> + <v>7931</v> </e> <e> <k>fun_decl</k> - <v>3835284</v> + <v>3833415</v> </e> </columnsizes> <dependencies> @@ -15272,7 +15406,7 @@ <b> <a>1</a> <b>2</b> - <v>6995017</v> + <v>6991224</v> </b> </bs> </hist> @@ -15288,7 +15422,7 @@ <b> <a>1</a> <b>2</b> - <v>6995017</v> + <v>6991224</v> </b> </bs> </hist> @@ -15367,8 +15501,8 @@ <v>466</v> </b> <b> - <a>8215</a> - <b>8216</b> + <a>8216</a> + <b>8217</b> <v>466</v> </b> </bs> @@ -15448,8 +15582,8 @@ <v>466</v> </b> <b> - <a>8215</a> - <b>8216</b> + <a>8216</a> + <b>8217</b> <v>466</v> </b> </bs> @@ -15466,27 +15600,27 @@ <b> <a>1</a> <b>2</b> - <v>1973899</v> + <v>1973163</v> </b> <b> <a>2</a> <b>3</b> - <v>1061647</v> + <v>1061001</v> </b> <b> <a>3</a> <b>4</b> - <v>502812</v> + <v>502505</v> </b> <b> <a>4</a> <b>8</b> - <v>290856</v> + <v>290678</v> </b> <b> <a>8</a> <b>18</b> - <v>6069</v> + <v>6065</v> </b> </bs> </hist> @@ -15502,27 +15636,27 @@ <b> <a>1</a> <b>2</b> - <v>1973899</v> + <v>1973163</v> </b> <b> <a>2</a> <b>3</b> - <v>1061647</v> + <v>1061001</v> </b> <b> <a>3</a> <b>4</b> - <v>502812</v> + <v>502505</v> </b> <b> <a>4</a> <b>8</b> - <v>290856</v> + <v>290678</v> </b> <b> <a>8</a> <b>18</b> - <v>6069</v> + <v>6065</v> </b> </bs> </hist> @@ -15532,27 +15666,27 @@ </relation> <relation> <name>var_decls</name> - <cardinality>8110354</cardinality> + <cardinality>8105882</cardinality> <columnsizes> <e> <k>id</k> - <v>8039391</v> + <v>8034962</v> </e> <e> <k>variable</k> - <v>7027231</v> + <v>7022951</v> </e> <e> <k>type_id</k> - <v>2043462</v> + <v>2042217</v> </e> <e> <k>name</k> - <v>667614</v> + <v>667208</v> </e> <e> <k>location</k> - <v>5311974</v> + <v>5308739</v> </e> </columnsizes> <dependencies> @@ -15566,7 +15700,7 @@ <b> <a>1</a> <b>2</b> - <v>8039391</v> + <v>8034962</v> </b> </bs> </hist> @@ -15582,12 +15716,12 @@ <b> <a>1</a> <b>2</b> - <v>7971229</v> + <v>7966841</v> </b> <b> <a>2</a> <b>3</b> - <v>68162</v> + <v>68120</v> </b> </bs> </hist> @@ -15603,7 +15737,7 @@ <b> <a>1</a> <b>2</b> - <v>8039391</v> + <v>8034962</v> </b> </bs> </hist> @@ -15619,12 +15753,12 @@ <b> <a>1</a> <b>2</b> - <v>8036590</v> + <v>8032162</v> </b> <b> <a>2</a> <b>3</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -15640,17 +15774,17 @@ <b> <a>1</a> <b>2</b> - <v>6175205</v> + <v>6170977</v> </b> <b> <a>2</a> <b>3</b> - <v>698427</v> + <v>698469</v> </b> <b> <a>3</a> <b>7</b> - <v>153598</v> + <v>153504</v> </b> </bs> </hist> @@ -15666,12 +15800,12 @@ <b> <a>1</a> <b>2</b> - <v>6855892</v> + <v>6851717</v> </b> <b> <a>2</a> <b>4</b> - <v>171338</v> + <v>171234</v> </b> </bs> </hist> @@ -15687,12 +15821,12 @@ <b> <a>1</a> <b>2</b> - <v>6911916</v> + <v>6907706</v> </b> <b> <a>2</a> <b>3</b> - <v>115315</v> + <v>115245</v> </b> </bs> </hist> @@ -15708,17 +15842,17 @@ <b> <a>1</a> <b>2</b> - <v>6481934</v> + <v>6477987</v> </b> <b> <a>2</a> <b>3</b> - <v>542962</v> + <v>542631</v> </b> <b> <a>3</a> <b>4</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -15734,27 +15868,27 @@ <b> <a>1</a> <b>2</b> - <v>1165758</v> + <v>1165048</v> </b> <b> <a>2</a> <b>3</b> - <v>477134</v> + <v>476377</v> </b> <b> <a>3</a> <b>4</b> - <v>94773</v> + <v>95182</v> </b> <b> <a>4</a> <b>7</b> - <v>184877</v> + <v>184765</v> </b> <b> <a>7</a> <b>762</b> - <v>120917</v> + <v>120844</v> </b> </bs> </hist> @@ -15770,22 +15904,22 @@ <b> <a>1</a> <b>2</b> - <v>1299281</v> + <v>1298490</v> </b> <b> <a>2</a> <b>3</b> - <v>452390</v> + <v>452115</v> </b> <b> <a>3</a> <b>6</b> - <v>155932</v> + <v>155837</v> </b> <b> <a>6</a> <b>724</b> - <v>135857</v> + <v>135774</v> </b> </bs> </hist> @@ -15801,17 +15935,17 @@ <b> <a>1</a> <b>2</b> - <v>1539249</v> + <v>1538311</v> </b> <b> <a>2</a> <b>3</b> - <v>383295</v> + <v>383061</v> </b> <b> <a>3</a> <b>128</b> - <v>120917</v> + <v>120844</v> </b> </bs> </hist> @@ -15827,22 +15961,22 @@ <b> <a>1</a> <b>2</b> - <v>1365576</v> + <v>1364744</v> </b> <b> <a>2</a> <b>3</b> - <v>404303</v> + <v>404057</v> </b> <b> <a>3</a> <b>7</b> - <v>173206</v> + <v>173100</v> </b> <b> <a>7</a> <b>592</b> - <v>100375</v> + <v>100314</v> </b> </bs> </hist> @@ -15858,37 +15992,37 @@ <b> <a>1</a> <b>2</b> - <v>341277</v> + <v>341069</v> </b> <b> <a>2</a> <b>3</b> - <v>86836</v> + <v>86783</v> </b> <b> <a>3</a> <b>4</b> - <v>48553</v> + <v>48524</v> </b> <b> <a>4</a> <b>6</b> - <v>51821</v> + <v>51790</v> </b> <b> <a>6</a> <b>12</b> - <v>52288</v> + <v>52256</v> </b> <b> <a>12</a> <b>33</b> - <v>50421</v> + <v>50390</v> </b> <b> <a>34</a> - <b>2384</b> - <v>36415</v> + <b>2385</b> + <v>36393</v> </b> </bs> </hist> @@ -15904,37 +16038,37 @@ <b> <a>1</a> <b>2</b> - <v>368822</v> + <v>368597</v> </b> <b> <a>2</a> <b>3</b> - <v>77966</v> + <v>77918</v> </b> <b> <a>3</a> <b>4</b> - <v>45285</v> + <v>45258</v> </b> <b> <a>4</a> <b>6</b> - <v>49487</v> + <v>49457</v> </b> <b> <a>6</a> <b>14</b> - <v>53222</v> + <v>53190</v> </b> <b> <a>14</a> <b>56</b> - <v>50888</v> + <v>50857</v> </b> <b> <a>56</a> <b>2301</b> - <v>21942</v> + <v>21929</v> </b> </bs> </hist> @@ -15950,27 +16084,27 @@ <b> <a>1</a> <b>2</b> - <v>457059</v> + <v>456781</v> </b> <b> <a>2</a> <b>3</b> - <v>93839</v> + <v>93782</v> </b> <b> <a>3</a> <b>5</b> - <v>46686</v> + <v>46657</v> </b> <b> <a>5</a> <b>19</b> - <v>50888</v> + <v>50857</v> </b> <b> <a>19</a> <b>1182</b> - <v>19141</v> + <v>19129</v> </b> </bs> </hist> @@ -15986,32 +16120,32 @@ <b> <a>1</a> <b>2</b> - <v>379093</v> + <v>378862</v> </b> <b> <a>2</a> <b>3</b> - <v>90571</v> + <v>90516</v> </b> <b> <a>3</a> <b>5</b> - <v>59758</v> + <v>59722</v> </b> <b> <a>5</a> <b>9</b> - <v>51354</v> + <v>51323</v> </b> <b> <a>9</a> <b>21</b> - <v>50421</v> + <v>50390</v> </b> <b> <a>21</a> <b>1010</b> - <v>36415</v> + <v>36393</v> </b> </bs> </hist> @@ -16027,17 +16161,17 @@ <b> <a>1</a> <b>2</b> - <v>4496363</v> + <v>4493625</v> </b> <b> <a>2</a> <b>3</b> - <v>531757</v> + <v>531433</v> </b> <b> <a>3</a> - <b>896</b> - <v>283853</v> + <b>897</b> + <v>283680</v> </b> </bs> </hist> @@ -16053,17 +16187,17 @@ <b> <a>1</a> <b>2</b> - <v>4885727</v> + <v>4882752</v> </b> <b> <a>2</a> <b>17</b> - <v>415508</v> + <v>415255</v> </b> <b> <a>17</a> <b>892</b> - <v>10737</v> + <v>10731</v> </b> </bs> </hist> @@ -16079,12 +16213,12 @@ <b> <a>1</a> <b>2</b> - <v>4961826</v> + <v>4958804</v> </b> <b> <a>2</a> <b>759</b> - <v>350147</v> + <v>349934</v> </b> </bs> </hist> @@ -16100,12 +16234,12 @@ <b> <a>1</a> <b>2</b> - <v>5302637</v> + <v>5299407</v> </b> <b> <a>2</a> <b>6</b> - <v>9337</v> + <v>9331</v> </b> </bs> </hist> @@ -16115,26 +16249,26 @@ </relation> <relation> <name>var_def</name> - <cardinality>3994952</cardinality> + <cardinality>3992985</cardinality> <columnsizes> <e> <k>id</k> - <v>3994952</v> + <v>3992985</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>var_decl_specifiers</name> - <cardinality>378626</cardinality> + <cardinality>378395</cardinality> <columnsizes> <e> <k>id</k> - <v>378626</v> + <v>378395</v> </e> <e> <k>name</k> - <v>1867</v> + <v>1866</v> </e> </columnsizes> <dependencies> @@ -16148,7 +16282,7 @@ <b> <a>1</a> <b>2</b> - <v>378626</v> + <v>378395</v> </b> </bs> </hist> @@ -16189,30 +16323,30 @@ </relation> <relation> <name>is_structured_binding</name> - <cardinality>0</cardinality> + <cardinality>18</cardinality> <columnsizes> <e> <k>id</k> - <v>0</v> + <v>18</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>type_decls</name> - <cardinality>3283451</cardinality> + <cardinality>3281452</cardinality> <columnsizes> <e> <k>id</k> - <v>3283451</v> + <v>3281452</v> </e> <e> <k>type_id</k> - <v>3233030</v> + <v>3231061</v> </e> <e> <k>location</k> - <v>3166269</v> + <v>3164340</v> </e> </columnsizes> <dependencies> @@ -16226,7 +16360,7 @@ <b> <a>1</a> <b>2</b> - <v>3283451</v> + <v>3281452</v> </b> </bs> </hist> @@ -16242,7 +16376,7 @@ <b> <a>1</a> <b>2</b> - <v>3283451</v> + <v>3281452</v> </b> </bs> </hist> @@ -16258,12 +16392,12 @@ <b> <a>1</a> <b>2</b> - <v>3191479</v> + <v>3189536</v> </b> <b> <a>2</a> <b>5</b> - <v>41550</v> + <v>41525</v> </b> </bs> </hist> @@ -16279,12 +16413,12 @@ <b> <a>1</a> <b>2</b> - <v>3191479</v> + <v>3189536</v> </b> <b> <a>2</a> <b>5</b> - <v>41550</v> + <v>41525</v> </b> </bs> </hist> @@ -16300,12 +16434,12 @@ <b> <a>1</a> <b>2</b> - <v>3113980</v> + <v>3112083</v> </b> <b> <a>2</a> <b>20</b> - <v>52288</v> + <v>52256</v> </b> </bs> </hist> @@ -16321,12 +16455,12 @@ <b> <a>1</a> <b>2</b> - <v>3113980</v> + <v>3112083</v> </b> <b> <a>2</a> <b>20</b> - <v>52288</v> + <v>52256</v> </b> </bs> </hist> @@ -16336,22 +16470,22 @@ </relation> <relation> <name>type_def</name> - <cardinality>2641981</cardinality> + <cardinality>2640372</cardinality> <columnsizes> <e> <k>id</k> - <v>2641981</v> + <v>2640372</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>type_decl_top</name> - <cardinality>743713</cardinality> + <cardinality>743260</cardinality> <columnsizes> <e> <k>type_decl</k> - <v>743713</v> + <v>743260</v> </e> </columnsizes> <dependencies/> @@ -16724,19 +16858,19 @@ </relation> <relation> <name>usings</name> - <cardinality>369755</cardinality> + <cardinality>369530</cardinality> <columnsizes> <e> <k>id</k> - <v>369755</v> + <v>369530</v> </e> <e> <k>element_id</k> - <v>315599</v> + <v>315407</v> </e> <e> <k>location</k> - <v>247904</v> + <v>247753</v> </e> <e> <k>kind</k> @@ -16754,7 +16888,7 @@ <b> <a>1</a> <b>2</b> - <v>369755</v> + <v>369530</v> </b> </bs> </hist> @@ -16770,7 +16904,7 @@ <b> <a>1</a> <b>2</b> - <v>369755</v> + <v>369530</v> </b> </bs> </hist> @@ -16786,7 +16920,7 @@ <b> <a>1</a> <b>2</b> - <v>369755</v> + <v>369530</v> </b> </bs> </hist> @@ -16802,17 +16936,17 @@ <b> <a>1</a> <b>2</b> - <v>263311</v> + <v>263150</v> </b> <b> <a>2</a> <b>3</b> - <v>50888</v> + <v>50857</v> </b> <b> <a>3</a> <b>5</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -16828,17 +16962,17 @@ <b> <a>1</a> <b>2</b> - <v>263311</v> + <v>263150</v> </b> <b> <a>2</a> <b>3</b> - <v>50888</v> + <v>50857</v> </b> <b> <a>3</a> <b>5</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -16854,7 +16988,7 @@ <b> <a>1</a> <b>2</b> - <v>315599</v> + <v>315407</v> </b> </bs> </hist> @@ -16870,22 +17004,22 @@ <b> <a>1</a> <b>2</b> - <v>202618</v> + <v>202495</v> </b> <b> <a>2</a> <b>4</b> - <v>10737</v> + <v>10731</v> </b> <b> <a>4</a> <b>5</b> - <v>31279</v> + <v>31260</v> </b> <b> <a>5</a> <b>11</b> - <v>3268</v> + <v>3266</v> </b> </bs> </hist> @@ -16901,22 +17035,22 @@ <b> <a>1</a> <b>2</b> - <v>202618</v> + <v>202495</v> </b> <b> <a>2</a> <b>4</b> - <v>10737</v> + <v>10731</v> </b> <b> <a>4</a> <b>5</b> - <v>31279</v> + <v>31260</v> </b> <b> <a>5</a> <b>11</b> - <v>3268</v> + <v>3266</v> </b> </bs> </hist> @@ -16932,7 +17066,7 @@ <b> <a>1</a> <b>2</b> - <v>247904</v> + <v>247753</v> </b> </bs> </hist> @@ -17005,7 +17139,7 @@ </relation> <relation> <name>using_container</name> - <cardinality>466798</cardinality> + <cardinality>466800</cardinality> <columnsizes> <e> <k>parent</k> @@ -17013,7 +17147,7 @@ </e> <e> <k>child</k> - <v>295989</v> + <v>295990</v> </e> </columnsizes> <dependencies> @@ -17083,12 +17217,12 @@ <b> <a>1</a> <b>2</b> - <v>218311</v> + <v>218313</v> </b> <b> <a>2</a> <b>3</b> - <v>51724</v> + <v>51725</v> </b> <b> <a>3</a> @@ -17716,23 +17850,23 @@ </relation> <relation> <name>params</name> - <cardinality>6354480</cardinality> + <cardinality>6350610</cardinality> <columnsizes> <e> <k>id</k> - <v>6190611</v> + <v>6186841</v> </e> <e> <k>function</k> - <v>3491673</v> + <v>3489546</v> </e> <e> <k>index</k> - <v>7936</v> + <v>7931</v> </e> <e> <k>type_id</k> - <v>1846445</v> + <v>1845321</v> </e> </columnsizes> <dependencies> @@ -17746,7 +17880,7 @@ <b> <a>1</a> <b>2</b> - <v>6190611</v> + <v>6186841</v> </b> </bs> </hist> @@ -17762,7 +17896,7 @@ <b> <a>1</a> <b>2</b> - <v>6190611</v> + <v>6186841</v> </b> </bs> </hist> @@ -17778,12 +17912,12 @@ <b> <a>1</a> <b>2</b> - <v>6066892</v> + <v>6063198</v> </b> <b> <a>2</a> <b>4</b> - <v>123718</v> + <v>123643</v> </b> </bs> </hist> @@ -17799,22 +17933,22 @@ <b> <a>1</a> <b>2</b> - <v>1867454</v> + <v>1866317</v> </b> <b> <a>2</a> <b>3</b> - <v>952868</v> + <v>952288</v> </b> <b> <a>3</a> <b>4</b> - <v>429981</v> + <v>429719</v> </b> <b> <a>4</a> <b>18</b> - <v>241368</v> + <v>241221</v> </b> </bs> </hist> @@ -17830,22 +17964,22 @@ <b> <a>1</a> <b>2</b> - <v>1867454</v> + <v>1866317</v> </b> <b> <a>2</a> <b>3</b> - <v>952868</v> + <v>952288</v> </b> <b> <a>3</a> <b>4</b> - <v>429981</v> + <v>429719</v> </b> <b> <a>4</a> <b>18</b> - <v>241368</v> + <v>241221</v> </b> </bs> </hist> @@ -17861,22 +17995,22 @@ <b> <a>1</a> <b>2</b> - <v>2165780</v> + <v>2164461</v> </b> <b> <a>2</a> <b>3</b> - <v>826815</v> + <v>826311</v> </b> <b> <a>3</a> <b>4</b> - <v>346412</v> + <v>346201</v> </b> <b> <a>4</a> <b>12</b> - <v>152664</v> + <v>152571</v> </b> </bs> </hist> @@ -18074,7 +18208,7 @@ <b> <a>6</a> <b>7</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>7</a> @@ -18130,22 +18264,22 @@ <b> <a>1</a> <b>2</b> - <v>1183966</v> + <v>1183245</v> </b> <b> <a>2</a> <b>3</b> - <v>406171</v> + <v>405923</v> </b> <b> <a>3</a> <b>7</b> - <v>154064</v> + <v>153971</v> </b> <b> <a>7</a> <b>518</b> - <v>102243</v> + <v>102180</v> </b> </bs> </hist> @@ -18161,22 +18295,22 @@ <b> <a>1</a> <b>2</b> - <v>1404792</v> + <v>1403937</v> </b> <b> <a>2</a> <b>3</b> - <v>212422</v> + <v>212293</v> </b> <b> <a>3</a> <b>7</b> - <v>147528</v> + <v>147439</v> </b> <b> <a>7</a> <b>502</b> - <v>81701</v> + <v>81651</v> </b> </bs> </hist> @@ -18192,17 +18326,17 @@ <b> <a>1</a> <b>2</b> - <v>1420199</v> + <v>1419334</v> </b> <b> <a>2</a> <b>3</b> - <v>347346</v> + <v>347135</v> </b> <b> <a>3</a> <b>13</b> - <v>78899</v> + <v>78851</v> </b> </bs> </hist> @@ -18212,11 +18346,11 @@ </relation> <relation> <name>overrides</name> - <cardinality>125725</cardinality> + <cardinality>125735</cardinality> <columnsizes> <e> <k>new</k> - <v>122752</v> + <v>122762</v> </e> <e> <k>old</k> @@ -18234,7 +18368,7 @@ <b> <a>1</a> <b>2</b> - <v>119788</v> + <v>119797</v> </b> <b> <a>2</a> @@ -18642,11 +18776,11 @@ </relation> <relation> <name>localvariables</name> - <cardinality>576944</cardinality> + <cardinality>576952</cardinality> <columnsizes> <e> <k>id</k> - <v>576944</v> + <v>576952</v> </e> <e> <k>type_id</k> @@ -18654,7 +18788,7 @@ </e> <e> <k>name</k> - <v>90547</v> + <v>90549</v> </e> </columnsizes> <dependencies> @@ -18668,7 +18802,7 @@ <b> <a>1</a> <b>2</b> - <v>576944</v> + <v>576952</v> </b> </bs> </hist> @@ -18684,7 +18818,7 @@ <b> <a>1</a> <b>2</b> - <v>576944</v> + <v>576952</v> </b> </bs> </hist> @@ -18705,7 +18839,7 @@ <b> <a>2</a> <b>3</b> - <v>5362</v> + <v>5366</v> </b> <b> <a>3</a> @@ -18715,7 +18849,7 @@ <b> <a>4</a> <b>7</b> - <v>3380</v> + <v>3376</v> </b> <b> <a>7</a> @@ -18741,7 +18875,7 @@ <b> <a>1</a> <b>2</b> - <v>26908</v> + <v>26913</v> </b> <b> <a>2</a> @@ -18751,7 +18885,7 @@ <b> <a>3</a> <b>5</b> - <v>2918</v> + <v>2914</v> </b> <b> <a>5</a> @@ -18777,12 +18911,12 @@ <b> <a>1</a> <b>2</b> - <v>57031</v> + <v>57032</v> </b> <b> <a>2</a> <b>3</b> - <v>14284</v> + <v>14285</v> </b> <b> <a>3</a> @@ -18813,7 +18947,7 @@ <b> <a>1</a> <b>2</b> - <v>76491</v> + <v>76492</v> </b> <b> <a>2</a> @@ -18823,7 +18957,7 @@ <b> <a>3</a> <b>1486</b> - <v>6644</v> + <v>6645</v> </b> </bs> </hist> @@ -19851,31 +19985,31 @@ </relation> <relation> <name>builtintypes</name> - <cardinality>26144</cardinality> + <cardinality>26128</cardinality> <columnsizes> <e> <k>id</k> - <v>26144</v> + <v>26128</v> </e> <e> <k>name</k> - <v>26144</v> + <v>26128</v> </e> <e> <k>kind</k> - <v>26144</v> + <v>26128</v> </e> <e> <k>size</k> - <v>3268</v> + <v>3266</v> </e> <e> <k>sign</k> - <v>1400</v> + <v>1399</v> </e> <e> <k>alignment</k> - <v>2334</v> + <v>2332</v> </e> </columnsizes> <dependencies> @@ -19889,7 +20023,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19905,7 +20039,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19921,7 +20055,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19937,7 +20071,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19953,7 +20087,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19969,7 +20103,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -19985,7 +20119,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20001,7 +20135,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20017,7 +20151,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20033,7 +20167,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20049,7 +20183,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20065,7 +20199,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20081,7 +20215,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20097,7 +20231,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20113,7 +20247,7 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> </bs> </hist> @@ -20272,7 +20406,7 @@ <b> <a>3</a> <b>4</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -20288,12 +20422,12 @@ <b> <a>1</a> <b>2</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>2</a> <b>3</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -20408,7 +20542,7 @@ <b> <a>5</a> <b>6</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -20532,7 +20666,7 @@ <b> <a>2</a> <b>3</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -20548,7 +20682,7 @@ <b> <a>3</a> <b>4</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -20558,23 +20692,23 @@ </relation> <relation> <name>derivedtypes</name> - <cardinality>3669548</cardinality> + <cardinality>3667313</cardinality> <columnsizes> <e> <k>id</k> - <v>3669548</v> + <v>3667313</v> </e> <e> <k>name</k> - <v>1552788</v> + <v>1551842</v> </e> <e> <k>kind</k> - <v>2801</v> + <v>2799</v> </e> <e> <k>type_id</k> - <v>2362796</v> + <v>2361357</v> </e> </columnsizes> <dependencies> @@ -20588,7 +20722,7 @@ <b> <a>1</a> <b>2</b> - <v>3669548</v> + <v>3667313</v> </b> </bs> </hist> @@ -20604,7 +20738,7 @@ <b> <a>1</a> <b>2</b> - <v>3669548</v> + <v>3667313</v> </b> </bs> </hist> @@ -20620,7 +20754,7 @@ <b> <a>1</a> <b>2</b> - <v>3669548</v> + <v>3667313</v> </b> </bs> </hist> @@ -20636,17 +20770,17 @@ <b> <a>1</a> <b>2</b> - <v>1324025</v> + <v>1323218</v> </b> <b> <a>2</a> <b>4</b> - <v>120450</v> + <v>120377</v> </b> <b> <a>4</a> <b>1153</b> - <v>108312</v> + <v>108246</v> </b> </bs> </hist> @@ -20662,7 +20796,7 @@ <b> <a>1</a> <b>2</b> - <v>1551854</v> + <v>1550909</v> </b> <b> <a>2</a> @@ -20683,17 +20817,17 @@ <b> <a>1</a> <b>2</b> - <v>1324025</v> + <v>1323218</v> </b> <b> <a>2</a> <b>4</b> - <v>120450</v> + <v>120377</v> </b> <b> <a>4</a> <b>1135</b> - <v>108312</v> + <v>108246</v> </b> </bs> </hist> @@ -20832,22 +20966,22 @@ <b> <a>1</a> <b>2</b> - <v>1515439</v> + <v>1514516</v> </b> <b> <a>2</a> <b>3</b> - <v>546230</v> + <v>545897</v> </b> <b> <a>3</a> <b>4</b> - <v>218492</v> + <v>218359</v> </b> <b> <a>4</a> <b>72</b> - <v>82634</v> + <v>82584</v> </b> </bs> </hist> @@ -20863,22 +20997,22 @@ <b> <a>1</a> <b>2</b> - <v>1526644</v> + <v>1525714</v> </b> <b> <a>2</a> <b>3</b> - <v>538760</v> + <v>538432</v> </b> <b> <a>3</a> <b>4</b> - <v>215690</v> + <v>215559</v> </b> <b> <a>4</a> <b>72</b> - <v>81701</v> + <v>81651</v> </b> </bs> </hist> @@ -20894,22 +21028,22 @@ <b> <a>1</a> <b>2</b> - <v>1519641</v> + <v>1518715</v> </b> <b> <a>2</a> <b>3</b> - <v>549965</v> + <v>549630</v> </b> <b> <a>3</a> <b>4</b> - <v>217558</v> + <v>217425</v> </b> <b> <a>4</a> <b>6</b> - <v>75631</v> + <v>75585</v> </b> </bs> </hist> @@ -20919,11 +21053,11 @@ </relation> <relation> <name>pointerishsize</name> - <cardinality>2707342</cardinality> + <cardinality>2705693</cardinality> <columnsizes> <e> <k>id</k> - <v>2707342</v> + <v>2705693</v> </e> <e> <k>size</k> @@ -20945,7 +21079,7 @@ <b> <a>1</a> <b>2</b> - <v>2707342</v> + <v>2705693</v> </b> </bs> </hist> @@ -20961,7 +21095,7 @@ <b> <a>1</a> <b>2</b> - <v>2707342</v> + <v>2705693</v> </b> </bs> </hist> @@ -21035,23 +21169,23 @@ </relation> <relation> <name>arraysizes</name> - <cardinality>88237</cardinality> + <cardinality>88183</cardinality> <columnsizes> <e> <k>id</k> - <v>88237</v> + <v>88183</v> </e> <e> <k>num_elements</k> - <v>31746</v> + <v>31727</v> </e> <e> <k>bytesize</k> - <v>33147</v> + <v>33127</v> </e> <e> <k>alignment</k> - <v>1867</v> + <v>1866</v> </e> </columnsizes> <dependencies> @@ -21065,7 +21199,7 @@ <b> <a>1</a> <b>2</b> - <v>88237</v> + <v>88183</v> </b> </bs> </hist> @@ -21081,7 +21215,7 @@ <b> <a>1</a> <b>2</b> - <v>88237</v> + <v>88183</v> </b> </bs> </hist> @@ -21097,7 +21231,7 @@ <b> <a>1</a> <b>2</b> - <v>88237</v> + <v>88183</v> </b> </bs> </hist> @@ -21113,22 +21247,22 @@ <b> <a>1</a> <b>2</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>2</a> <b>3</b> - <v>23810</v> + <v>23795</v> </b> <b> <a>3</a> <b>5</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>5</a> <b>13</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>13</a> @@ -21149,17 +21283,17 @@ <b> <a>1</a> <b>2</b> - <v>26611</v> + <v>26595</v> </b> <b> <a>2</a> <b>3</b> - <v>2334</v> + <v>2332</v> </b> <b> <a>3</a> <b>7</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -21175,17 +21309,17 @@ <b> <a>1</a> <b>2</b> - <v>26611</v> + <v>26595</v> </b> <b> <a>2</a> <b>3</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>3</a> <b>5</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist> @@ -21201,27 +21335,27 @@ <b> <a>1</a> <b>2</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>2</a> <b>3</b> - <v>23810</v> + <v>23795</v> </b> <b> <a>3</a> <b>4</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>4</a> <b>6</b> - <v>2334</v> + <v>2332</v> </b> <b> <a>7</a> <b>16</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -21237,17 +21371,17 @@ <b> <a>1</a> <b>2</b> - <v>27544</v> + <v>27528</v> </b> <b> <a>2</a> <b>3</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>3</a> <b>5</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -21263,12 +21397,12 @@ <b> <a>1</a> <b>2</b> - <v>27544</v> + <v>27528</v> </b> <b> <a>2</a> <b>3</b> - <v>4668</v> + <v>4665</v> </b> <b> <a>4</a> @@ -21371,15 +21505,15 @@ </relation> <relation> <name>typedefbase</name> - <cardinality>1686099</cardinality> + <cardinality>1686109</cardinality> <columnsizes> <e> <k>id</k> - <v>1686099</v> + <v>1686109</v> </e> <e> <k>type_id</k> - <v>793481</v> + <v>793485</v> </e> </columnsizes> <dependencies> @@ -21393,7 +21527,7 @@ <b> <a>1</a> <b>2</b> - <v>1686099</v> + <v>1686109</v> </b> </bs> </hist> @@ -21409,12 +21543,12 @@ <b> <a>1</a> <b>2</b> - <v>617400</v> + <v>617404</v> </b> <b> <a>2</a> <b>3</b> - <v>83253</v> + <v>83254</v> </b> <b> <a>3</a> @@ -21720,19 +21854,19 @@ </relation> <relation> <name>usertypes</name> - <cardinality>5234008</cardinality> + <cardinality>5230820</cardinality> <columnsizes> <e> <k>id</k> - <v>5234008</v> + <v>5230820</v> </e> <e> <k>name</k> - <v>1352503</v> + <v>1351680</v> </e> <e> <k>kind</k> - <v>5135</v> + <v>5132</v> </e> </columnsizes> <dependencies> @@ -21746,7 +21880,7 @@ <b> <a>1</a> <b>2</b> - <v>5234008</v> + <v>5230820</v> </b> </bs> </hist> @@ -21762,7 +21896,7 @@ <b> <a>1</a> <b>2</b> - <v>5234008</v> + <v>5230820</v> </b> </bs> </hist> @@ -21778,27 +21912,27 @@ <b> <a>1</a> <b>2</b> - <v>983681</v> + <v>983082</v> </b> <b> <a>2</a> <b>3</b> - <v>153598</v> + <v>153504</v> </b> <b> <a>3</a> <b>7</b> - <v>104577</v> + <v>104513</v> </b> <b> <a>7</a> <b>61</b> - <v>101776</v> + <v>101714</v> </b> <b> <a>65</a> <b>874</b> - <v>8870</v> + <v>8865</v> </b> </bs> </hist> @@ -21814,17 +21948,17 @@ <b> <a>1</a> <b>2</b> - <v>1211977</v> + <v>1211239</v> </b> <b> <a>2</a> <b>3</b> - <v>125586</v> + <v>125509</v> </b> <b> <a>3</a> <b>7</b> - <v>14939</v> + <v>14930</v> </b> </bs> </hist> @@ -21966,19 +22100,19 @@ </relation> <relation> <name>usertypesize</name> - <cardinality>1706386</cardinality> + <cardinality>1705347</cardinality> <columnsizes> <e> <k>id</k> - <v>1706386</v> + <v>1705347</v> </e> <e> <k>size</k> - <v>13539</v> + <v>13530</v> </e> <e> <k>alignment</k> - <v>2334</v> + <v>2332</v> </e> </columnsizes> <dependencies> @@ -21992,7 +22126,7 @@ <b> <a>1</a> <b>2</b> - <v>1706386</v> + <v>1705347</v> </b> </bs> </hist> @@ -22008,7 +22142,7 @@ <b> <a>1</a> <b>2</b> - <v>1706386</v> + <v>1705347</v> </b> </bs> </hist> @@ -22024,12 +22158,12 @@ <b> <a>1</a> <b>2</b> - <v>3268</v> + <v>3266</v> </b> <b> <a>2</a> <b>3</b> - <v>4201</v> + <v>4199</v> </b> <b> <a>3</a> @@ -22080,12 +22214,12 @@ <b> <a>1</a> <b>2</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>2</a> <b>3</b> - <v>2801</v> + <v>2799</v> </b> <b> <a>3</a> @@ -22236,15 +22370,15 @@ </relation> <relation> <name>mangled_name</name> - <cardinality>9019338</cardinality> + <cardinality>9013845</cardinality> <columnsizes> <e> <k>id</k> - <v>9019338</v> + <v>9013845</v> </e> <e> <k>mangled_name</k> - <v>6061757</v> + <v>6058065</v> </e> <e> <k>is_complete</k> @@ -22262,7 +22396,7 @@ <b> <a>1</a> <b>2</b> - <v>9019338</v> + <v>9013845</v> </b> </bs> </hist> @@ -22278,7 +22412,7 @@ <b> <a>1</a> <b>2</b> - <v>9019338</v> + <v>9013845</v> </b> </bs> </hist> @@ -22294,12 +22428,12 @@ <b> <a>1</a> <b>2</b> - <v>5789108</v> + <v>5785583</v> </b> <b> <a>2</a> <b>874</b> - <v>272648</v> + <v>272482</v> </b> </bs> </hist> @@ -22315,7 +22449,7 @@ <b> <a>1</a> <b>2</b> - <v>6061757</v> + <v>6058065</v> </b> </bs> </hist> @@ -22357,59 +22491,59 @@ </relation> <relation> <name>is_pod_class</name> - <cardinality>534710</cardinality> + <cardinality>534713</cardinality> <columnsizes> <e> <k>id</k> - <v>534710</v> + <v>534713</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_standard_layout_class</name> - <cardinality>1253995</cardinality> + <cardinality>1253232</cardinality> <columnsizes> <e> <k>id</k> - <v>1253995</v> + <v>1253232</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_complete</name> - <cardinality>1645694</cardinality> + <cardinality>1644692</cardinality> <columnsizes> <e> <k>id</k> - <v>1645694</v> + <v>1644692</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>is_class_template</name> - <cardinality>398234</cardinality> + <cardinality>397992</cardinality> <columnsizes> <e> <k>id</k> - <v>398234</v> + <v>397992</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>class_instantiation</name> - <cardinality>1089659</cardinality> + <cardinality>1088996</cardinality> <columnsizes> <e> <k>to</k> - <v>1089659</v> + <v>1088996</v> </e> <e> <k>from</k> - <v>168537</v> + <v>168435</v> </e> </columnsizes> <dependencies> @@ -22423,7 +22557,7 @@ <b> <a>1</a> <b>2</b> - <v>1089659</v> + <v>1088996</v> </b> </bs> </hist> @@ -22439,47 +22573,47 @@ <b> <a>1</a> <b>2</b> - <v>59758</v> + <v>59722</v> </b> <b> <a>2</a> <b>3</b> - <v>29412</v> + <v>29394</v> </b> <b> <a>3</a> <b>4</b> - <v>15873</v> + <v>15863</v> </b> <b> <a>4</a> <b>5</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>5</a> <b>6</b> - <v>9804</v> + <v>9798</v> </b> <b> <a>6</a> <b>10</b> - <v>12605</v> + <v>12597</v> </b> <b> <a>10</a> <b>16</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>16</a> <b>70</b> - <v>13539</v> + <v>13530</v> </b> <b> <a>70</a> <b>84</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -22489,11 +22623,11 @@ </relation> <relation> <name>class_template_argument</name> - <cardinality>2882732</cardinality> + <cardinality>2882750</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1315503</v> + <v>1315511</v> </e> <e> <k>index</k> @@ -22501,7 +22635,7 @@ </e> <e> <k>arg_type</k> - <v>840385</v> + <v>840390</v> </e> </columnsizes> <dependencies> @@ -22515,22 +22649,22 @@ <b> <a>1</a> <b>2</b> - <v>540953</v> + <v>540956</v> </b> <b> <a>2</a> <b>3</b> - <v>399235</v> + <v>399237</v> </b> <b> <a>3</a> <b>4</b> - <v>231395</v> + <v>231396</v> </b> <b> <a>4</a> <b>7</b> - <v>120314</v> + <v>120315</v> </b> <b> <a>7</a> @@ -22551,17 +22685,17 @@ <b> <a>1</a> <b>2</b> - <v>567605</v> + <v>567609</v> </b> <b> <a>2</a> <b>3</b> - <v>410478</v> + <v>410481</v> </b> <b> <a>3</a> <b>4</b> - <v>244840</v> + <v>244841</v> </b> <b> <a>4</a> @@ -22674,17 +22808,17 @@ <b> <a>1</a> <b>2</b> - <v>523343</v> + <v>523346</v> </b> <b> <a>2</a> <b>3</b> - <v>174342</v> + <v>174343</v> </b> <b> <a>3</a> <b>4</b> - <v>51340</v> + <v>51341</v> </b> <b> <a>4</a> @@ -22710,7 +22844,7 @@ <b> <a>1</a> <b>2</b> - <v>746486</v> + <v>746490</v> </b> <b> <a>2</a> @@ -22730,19 +22864,19 @@ </relation> <relation> <name>class_template_argument_value</name> - <cardinality>495342</cardinality> + <cardinality>495040</cardinality> <columnsizes> <e> <k>type_id</k> - <v>304861</v> + <v>304676</v> </e> <e> <k>index</k> - <v>1867</v> + <v>1866</v> </e> <e> <k>arg_value</k> - <v>495342</v> + <v>495040</v> </e> </columnsizes> <dependencies> @@ -22756,17 +22890,17 @@ <b> <a>1</a> <b>2</b> - <v>249772</v> + <v>249619</v> </b> <b> <a>2</a> <b>3</b> - <v>53222</v> + <v>53190</v> </b> <b> <a>3</a> <b>4</b> - <v>1867</v> + <v>1866</v> </b> </bs> </hist> @@ -22782,22 +22916,22 @@ <b> <a>1</a> <b>2</b> - <v>189546</v> + <v>189431</v> </b> <b> <a>2</a> <b>3</b> - <v>81234</v> + <v>81184</v> </b> <b> <a>3</a> <b>4</b> - <v>12138</v> + <v>12131</v> </b> <b> <a>4</a> <b>9</b> - <v>21942</v> + <v>21929</v> </b> </bs> </hist> @@ -22875,7 +23009,7 @@ <b> <a>1</a> <b>2</b> - <v>495342</v> + <v>495040</v> </b> </bs> </hist> @@ -22891,7 +23025,7 @@ <b> <a>1</a> <b>2</b> - <v>495342</v> + <v>495040</v> </b> </bs> </hist> @@ -22901,15 +23035,15 @@ </relation> <relation> <name>is_proxy_class_for</name> - <cardinality>62092</cardinality> + <cardinality>62055</cardinality> <columnsizes> <e> <k>id</k> - <v>62092</v> + <v>62055</v> </e> <e> <k>templ_param_id</k> - <v>62092</v> + <v>62055</v> </e> </columnsizes> <dependencies> @@ -22923,7 +23057,7 @@ <b> <a>1</a> <b>2</b> - <v>62092</v> + <v>62055</v> </b> </bs> </hist> @@ -22939,7 +23073,7 @@ <b> <a>1</a> <b>2</b> - <v>62092</v> + <v>62055</v> </b> </bs> </hist> @@ -23245,11 +23379,11 @@ </relation> <relation> <name>is_function_template</name> - <cardinality>1402925</cardinality> + <cardinality>1402070</cardinality> <columnsizes> <e> <k>id</k> - <v>1402925</v> + <v>1402070</v> </e> </columnsizes> <dependencies/> @@ -24380,19 +24514,19 @@ </relation> <relation> <name>routinetypeargs</name> - <cardinality>983214</cardinality> + <cardinality>982616</cardinality> <columnsizes> <e> <k>routine</k> - <v>423445</v> + <v>423187</v> </e> <e> <k>index</k> - <v>7936</v> + <v>7931</v> </e> <e> <k>type_id</k> - <v>226895</v> + <v>226757</v> </e> </columnsizes> <dependencies> @@ -24406,27 +24540,27 @@ <b> <a>1</a> <b>2</b> - <v>152664</v> + <v>152571</v> </b> <b> <a>2</a> <b>3</b> - <v>133989</v> + <v>133908</v> </b> <b> <a>3</a> <b>4</b> - <v>63493</v> + <v>63454</v> </b> <b> <a>4</a> <b>5</b> - <v>45752</v> + <v>45724</v> </b> <b> <a>5</a> <b>18</b> - <v>27544</v> + <v>27528</v> </b> </bs> </hist> @@ -24442,27 +24576,27 @@ <b> <a>1</a> <b>2</b> - <v>182543</v> + <v>182432</v> </b> <b> <a>2</a> <b>3</b> - <v>133522</v> + <v>133441</v> </b> <b> <a>3</a> <b>4</b> - <v>58824</v> + <v>58788</v> </b> <b> <a>4</a> <b>5</b> - <v>33614</v> + <v>33593</v> </b> <b> <a>5</a> <b>11</b> - <v>14939</v> + <v>14930</v> </b> </bs> </hist> @@ -24503,7 +24637,7 @@ <b> <a>10</a> <b>11</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>13</a> @@ -24564,7 +24698,7 @@ <b> <a>4</a> <b>5</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>5</a> @@ -24620,27 +24754,27 @@ <b> <a>1</a> <b>2</b> - <v>146595</v> + <v>146505</v> </b> <b> <a>2</a> <b>3</b> - <v>30812</v> + <v>30794</v> </b> <b> <a>3</a> <b>5</b> - <v>16807</v> + <v>16796</v> </b> <b> <a>5</a> <b>12</b> - <v>18207</v> + <v>18196</v> </b> <b> <a>12</a> <b>110</b> - <v>14472</v> + <v>14463</v> </b> </bs> </hist> @@ -24656,22 +24790,22 @@ <b> <a>1</a> <b>2</b> - <v>172739</v> + <v>172634</v> </b> <b> <a>2</a> <b>3</b> - <v>30812</v> + <v>30794</v> </b> <b> <a>3</a> <b>6</b> - <v>18674</v> + <v>18663</v> </b> <b> <a>6</a> <b>14</b> - <v>4668</v> + <v>4665</v> </b> </bs> </hist> @@ -24681,19 +24815,19 @@ </relation> <relation> <name>ptrtomembers</name> - <cardinality>37815</cardinality> + <cardinality>37792</cardinality> <columnsizes> <e> <k>id</k> - <v>37815</v> + <v>37792</v> </e> <e> <k>type_id</k> - <v>37815</v> + <v>37792</v> </e> <e> <k>class_id</k> - <v>15406</v> + <v>15397</v> </e> </columnsizes> <dependencies> @@ -24707,7 +24841,7 @@ <b> <a>1</a> <b>2</b> - <v>37815</v> + <v>37792</v> </b> </bs> </hist> @@ -24723,7 +24857,7 @@ <b> <a>1</a> <b>2</b> - <v>37815</v> + <v>37792</v> </b> </bs> </hist> @@ -24739,7 +24873,7 @@ <b> <a>1</a> <b>2</b> - <v>37815</v> + <v>37792</v> </b> </bs> </hist> @@ -24755,7 +24889,7 @@ <b> <a>1</a> <b>2</b> - <v>37815</v> + <v>37792</v> </b> </bs> </hist> @@ -24771,12 +24905,12 @@ <b> <a>1</a> <b>2</b> - <v>13539</v> + <v>13530</v> </b> <b> <a>8</a> <b>9</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>28</a> @@ -24797,12 +24931,12 @@ <b> <a>1</a> <b>2</b> - <v>13539</v> + <v>13530</v> </b> <b> <a>8</a> <b>9</b> - <v>1400</v> + <v>1399</v> </b> <b> <a>28</a> @@ -24817,15 +24951,15 @@ </relation> <relation> <name>specifiers</name> - <cardinality>24743</cardinality> + <cardinality>24728</cardinality> <columnsizes> <e> <k>id</k> - <v>24743</v> + <v>24728</v> </e> <e> <k>str</k> - <v>24743</v> + <v>24728</v> </e> </columnsizes> <dependencies> @@ -24839,7 +24973,7 @@ <b> <a>1</a> <b>2</b> - <v>24743</v> + <v>24728</v> </b> </bs> </hist> @@ -24855,7 +24989,7 @@ <b> <a>1</a> <b>2</b> - <v>24743</v> + <v>24728</v> </b> </bs> </hist> @@ -24865,15 +24999,15 @@ </relation> <relation> <name>typespecifiers</name> - <cardinality>1132144</cardinality> + <cardinality>1131454</cardinality> <columnsizes> <e> <k>type_id</k> - <v>1113936</v> + <v>1113258</v> </e> <e> <k>spec_id</k> - <v>3734</v> + <v>3732</v> </e> </columnsizes> <dependencies> @@ -24887,12 +25021,12 @@ <b> <a>1</a> <b>2</b> - <v>1095728</v> + <v>1095061</v> </b> <b> <a>2</a> <b>3</b> - <v>18207</v> + <v>18196</v> </b> </bs> </hist> @@ -24948,15 +25082,15 @@ </relation> <relation> <name>funspecifiers</name> - <cardinality>10304614</cardinality> + <cardinality>10298338</cardinality> <columnsizes> <e> <k>func_id</k> - <v>4068249</v> + <v>4065772</v> </e> <e> <k>spec_id</k> - <v>8403</v> + <v>8398</v> </e> </columnsizes> <dependencies> @@ -24970,27 +25104,27 @@ <b> <a>1</a> <b>2</b> - <v>1357639</v> + <v>1356812</v> </b> <b> <a>2</a> <b>3</b> - <v>641003</v> + <v>640613</v> </b> <b> <a>3</a> <b>4</b> - <v>985082</v> + <v>984482</v> </b> <b> <a>4</a> <b>5</b> - <v>780129</v> + <v>779654</v> </b> <b> <a>5</a> <b>8</b> - <v>304395</v> + <v>304209</v> </b> </bs> </hist> @@ -25101,15 +25235,15 @@ </relation> <relation> <name>varspecifiers</name> - <cardinality>2246080</cardinality> + <cardinality>2244713</cardinality> <columnsizes> <e> <k>var_id</k> - <v>1225050</v> + <v>1224304</v> </e> <e> <k>spec_id</k> - <v>3734</v> + <v>3732</v> </e> </columnsizes> <dependencies> @@ -25123,22 +25257,22 @@ <b> <a>1</a> <b>2</b> - <v>730174</v> + <v>729730</v> </b> <b> <a>2</a> <b>3</b> - <v>202618</v> + <v>202495</v> </b> <b> <a>3</a> <b>4</b> - <v>58357</v> + <v>58322</v> </b> <b> <a>4</a> <b>5</b> - <v>233898</v> + <v>233756</v> </b> </bs> </hist> @@ -25247,19 +25381,19 @@ </relation> <relation> <name>attributes</name> - <cardinality>561636</cardinality> + <cardinality>561294</cardinality> <columnsizes> <e> <k>id</k> - <v>561636</v> + <v>561294</v> </e> <e> <k>kind</k> - <v>1400</v> + <v>1399</v> </e> <e> <k>name</k> - <v>11204</v> + <v>11197</v> </e> <e> <k>name_space</k> @@ -25267,7 +25401,7 @@ </e> <e> <k>location</k> - <v>481336</v> + <v>481043</v> </e> </columnsizes> <dependencies> @@ -25281,7 +25415,7 @@ <b> <a>1</a> <b>2</b> - <v>561636</v> + <v>561294</v> </b> </bs> </hist> @@ -25297,7 +25431,7 @@ <b> <a>1</a> <b>2</b> - <v>561636</v> + <v>561294</v> </b> </bs> </hist> @@ -25313,7 +25447,7 @@ <b> <a>1</a> <b>2</b> - <v>561636</v> + <v>561294</v> </b> </bs> </hist> @@ -25329,7 +25463,7 @@ <b> <a>1</a> <b>2</b> - <v>561636</v> + <v>561294</v> </b> </bs> </hist> @@ -25520,7 +25654,7 @@ <b> <a>1</a> <b>2</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>2</a> @@ -25541,7 +25675,7 @@ <b> <a>1</a> <b>2</b> - <v>11204</v> + <v>11197</v> </b> </bs> </hist> @@ -25712,17 +25846,17 @@ <b> <a>1</a> <b>2</b> - <v>431848</v> + <v>431585</v> </b> <b> <a>2</a> <b>3</b> - <v>20075</v> + <v>20062</v> </b> <b> <a>3</a> <b>7</b> - <v>29412</v> + <v>29394</v> </b> </bs> </hist> @@ -25738,7 +25872,7 @@ <b> <a>1</a> <b>2</b> - <v>481336</v> + <v>481043</v> </b> </bs> </hist> @@ -25754,17 +25888,17 @@ <b> <a>1</a> <b>2</b> - <v>433249</v> + <v>432985</v> </b> <b> <a>2</a> <b>3</b> - <v>19608</v> + <v>19596</v> </b> <b> <a>3</a> <b>4</b> - <v>28478</v> + <v>28461</v> </b> </bs> </hist> @@ -25780,7 +25914,7 @@ <b> <a>1</a> <b>2</b> - <v>481336</v> + <v>481043</v> </b> </bs> </hist> @@ -25790,27 +25924,27 @@ </relation> <relation> <name>attribute_args</name> - <cardinality>344078</cardinality> + <cardinality>343868</cardinality> <columnsizes> <e> <k>id</k> - <v>344078</v> + <v>343868</v> </e> <e> <k>kind</k> - <v>1400</v> + <v>1399</v> </e> <e> <k>attribute</k> - <v>262844</v> + <v>262684</v> </e> <e> <k>index</k> - <v>1400</v> + <v>1399</v> </e> <e> <k>location</k> - <v>327738</v> + <v>327538</v> </e> </columnsizes> <dependencies> @@ -25824,7 +25958,7 @@ <b> <a>1</a> <b>2</b> - <v>344078</v> + <v>343868</v> </b> </bs> </hist> @@ -25840,7 +25974,7 @@ <b> <a>1</a> <b>2</b> - <v>344078</v> + <v>343868</v> </b> </bs> </hist> @@ -25856,7 +25990,7 @@ <b> <a>1</a> <b>2</b> - <v>344078</v> + <v>343868</v> </b> </bs> </hist> @@ -25872,7 +26006,7 @@ <b> <a>1</a> <b>2</b> - <v>344078</v> + <v>343868</v> </b> </bs> </hist> @@ -25987,17 +26121,17 @@ <b> <a>1</a> <b>2</b> - <v>197483</v> + <v>197363</v> </b> <b> <a>2</a> <b>3</b> - <v>49487</v> + <v>49457</v> </b> <b> <a>3</a> <b>4</b> - <v>15873</v> + <v>15863</v> </b> </bs> </hist> @@ -26013,12 +26147,12 @@ <b> <a>1</a> <b>2</b> - <v>252573</v> + <v>252419</v> </b> <b> <a>2</a> <b>3</b> - <v>10270</v> + <v>10264</v> </b> </bs> </hist> @@ -26034,17 +26168,17 @@ <b> <a>1</a> <b>2</b> - <v>197483</v> + <v>197363</v> </b> <b> <a>2</a> <b>3</b> - <v>49487</v> + <v>49457</v> </b> <b> <a>3</a> <b>4</b> - <v>15873</v> + <v>15863</v> </b> </bs> </hist> @@ -26060,17 +26194,17 @@ <b> <a>1</a> <b>2</b> - <v>197483</v> + <v>197363</v> </b> <b> <a>2</a> <b>3</b> - <v>49487</v> + <v>49457</v> </b> <b> <a>3</a> <b>4</b> - <v>15873</v> + <v>15863</v> </b> </bs> </hist> @@ -26185,12 +26319,12 @@ <b> <a>1</a> <b>2</b> - <v>313732</v> + <v>313541</v> </b> <b> <a>2</a> <b>7</b> - <v>14005</v> + <v>13997</v> </b> </bs> </hist> @@ -26206,12 +26340,12 @@ <b> <a>1</a> <b>2</b> - <v>315132</v> + <v>314941</v> </b> <b> <a>2</a> <b>3</b> - <v>12605</v> + <v>12597</v> </b> </bs> </hist> @@ -26227,12 +26361,12 @@ <b> <a>1</a> <b>2</b> - <v>313732</v> + <v>313541</v> </b> <b> <a>2</a> <b>7</b> - <v>14005</v> + <v>13997</v> </b> </bs> </hist> @@ -26248,7 +26382,7 @@ <b> <a>1</a> <b>2</b> - <v>327738</v> + <v>327538</v> </b> </bs> </hist> @@ -26258,15 +26392,15 @@ </relation> <relation> <name>attribute_arg_value</name> - <cardinality>25210</cardinality> + <cardinality>25195</cardinality> <columnsizes> <e> <k>arg</k> - <v>25210</v> + <v>25195</v> </e> <e> <k>value</k> - <v>15873</v> + <v>15863</v> </e> </columnsizes> <dependencies> @@ -26280,7 +26414,7 @@ <b> <a>1</a> <b>2</b> - <v>25210</v> + <v>25195</v> </b> </bs> </hist> @@ -26296,12 +26430,12 @@ <b> <a>1</a> <b>2</b> - <v>14472</v> + <v>14463</v> </b> <b> <a>2</a> <b>16</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -26359,15 +26493,15 @@ </relation> <relation> <name>attribute_arg_constant</name> - <cardinality>318400</cardinality> + <cardinality>318207</cardinality> <columnsizes> <e> <k>arg</k> - <v>318400</v> + <v>318207</v> </e> <e> <k>constant</k> - <v>318400</v> + <v>318207</v> </e> </columnsizes> <dependencies> @@ -26381,7 +26515,7 @@ <b> <a>1</a> <b>2</b> - <v>318400</v> + <v>318207</v> </b> </bs> </hist> @@ -26397,7 +26531,7 @@ <b> <a>1</a> <b>2</b> - <v>318400</v> + <v>318207</v> </b> </bs> </hist> @@ -26407,15 +26541,15 @@ </relation> <relation> <name>attribute_arg_expr</name> - <cardinality>0</cardinality> + <cardinality>3</cardinality> <columnsizes> <e> <k>arg</k> - <v>0</v> + <v>3</v> </e> <e> <k>expr</k> - <v>0</v> + <v>3</v> </e> </columnsizes> <dependencies> @@ -26429,7 +26563,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>3</v> </b> </bs> </hist> @@ -26441,7 +26575,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>3</v> + </b> + </bs> </hist> </val> </dep> @@ -26449,15 +26589,15 @@ </relation> <relation> <name>attribute_arg_name</name> - <cardinality>0</cardinality> + <cardinality>6</cardinality> <columnsizes> <e> <k>arg</k> - <v>0</v> + <v>6</v> </e> <e> <k>name</k> - <v>0</v> + <v>5</v> </e> </columnsizes> <dependencies> @@ -26471,7 +26611,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>6</v> </b> </bs> </hist> @@ -26483,7 +26623,18 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + <b> + <a>2</a> + <b>3</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -26559,15 +26710,15 @@ </relation> <relation> <name>funcattributes</name> - <cardinality>630265</cardinality> + <cardinality>629882</cardinality> <columnsizes> <e> <k>func_id</k> - <v>443520</v> + <v>443250</v> </e> <e> <k>spec_id</k> - <v>524754</v> + <v>524435</v> </e> </columnsizes> <dependencies> @@ -26581,17 +26732,17 @@ <b> <a>1</a> <b>2</b> - <v>338476</v> + <v>338269</v> </b> <b> <a>2</a> <b>3</b> - <v>64427</v> + <v>64387</v> </b> <b> <a>3</a> <b>6</b> - <v>39683</v> + <v>39659</v> </b> <b> <a>6</a> @@ -26612,12 +26763,12 @@ <b> <a>1</a> <b>2</b> - <v>506080</v> + <v>505771</v> </b> <b> <a>2</a> <b>17</b> - <v>18674</v> + <v>18663</v> </b> </bs> </hist> @@ -26753,15 +26904,15 @@ </relation> <relation> <name>unspecifiedtype</name> - <cardinality>9488069</cardinality> + <cardinality>9482291</cardinality> <columnsizes> <e> <k>type_id</k> - <v>9488069</v> + <v>9482291</v> </e> <e> <k>unspecified_type_id</k> - <v>6490338</v> + <v>6486385</v> </e> </columnsizes> <dependencies> @@ -26775,7 +26926,7 @@ <b> <a>1</a> <b>2</b> - <v>9488069</v> + <v>9482291</v> </b> </bs> </hist> @@ -26791,17 +26942,17 @@ <b> <a>1</a> <b>2</b> - <v>4558923</v> + <v>4556146</v> </b> <b> <a>2</a> <b>3</b> - <v>1715723</v> + <v>1714678</v> </b> <b> <a>3</a> <b>145</b> - <v>215690</v> + <v>215559</v> </b> </bs> </hist> @@ -26811,19 +26962,19 @@ </relation> <relation> <name>member</name> - <cardinality>3881037</cardinality> + <cardinality>3878673</cardinality> <columnsizes> <e> <k>parent</k> - <v>545763</v> + <v>545431</v> </e> <e> <k>index</k> - <v>92905</v> + <v>92849</v> </e> <e> <k>child</k> - <v>3809607</v> + <v>3807287</v> </e> </columnsizes> <dependencies> @@ -26837,47 +26988,47 @@ <b> <a>1</a> <b>2</b> - <v>129788</v> + <v>129709</v> </b> <b> <a>2</a> <b>3</b> - <v>64894</v> + <v>64854</v> </b> <b> <a>3</a> <b>4</b> - <v>73297</v> + <v>73252</v> </b> <b> <a>4</a> <b>5</b> - <v>75165</v> + <v>75119</v> </b> <b> <a>5</a> <b>6</b> - <v>40617</v> + <v>40592</v> </b> <b> <a>6</a> <b>8</b> - <v>46686</v> + <v>46657</v> </b> <b> <a>8</a> <b>14</b> - <v>45752</v> + <v>45724</v> </b> <b> <a>14</a> <b>30</b> - <v>41550</v> + <v>41525</v> </b> <b> <a>30</a> <b>200</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -26893,52 +27044,52 @@ <b> <a>1</a> <b>2</b> - <v>129788</v> + <v>129709</v> </b> <b> <a>2</a> <b>3</b> - <v>64894</v> + <v>64854</v> </b> <b> <a>3</a> <b>4</b> - <v>73297</v> + <v>73252</v> </b> <b> <a>4</a> <b>5</b> - <v>76098</v> + <v>76052</v> </b> <b> <a>5</a> <b>6</b> - <v>39683</v> + <v>39659</v> </b> <b> <a>6</a> <b>7</b> - <v>24276</v> + <v>24262</v> </b> <b> <a>7</a> <b>9</b> - <v>42017</v> + <v>41992</v> </b> <b> <a>9</a> <b>17</b> - <v>43885</v> + <v>43858</v> </b> <b> <a>17</a> <b>41</b> - <v>41550</v> + <v>41525</v> </b> <b> <a>41</a> <b>200</b> - <v>10270</v> + <v>10264</v> </b> </bs> </hist> @@ -26954,62 +27105,62 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> <b> <a>2</a> <b>3</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>3</a> <b>4</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>4</a> <b>5</b> - <v>7936</v> + <v>7931</v> </b> <b> <a>5</a> <b>6</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>6</a> <b>7</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>7</a> <b>9</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>9</a> <b>16</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>16</a> <b>52</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>52</a> <b>107</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>108</a> <b>577</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>737</a> <b>1162</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -27025,62 +27176,62 @@ <b> <a>1</a> <b>2</b> - <v>26144</v> + <v>26128</v> </b> <b> <a>2</a> <b>3</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>3</a> <b>4</b> - <v>3734</v> + <v>3732</v> </b> <b> <a>4</a> <b>5</b> - <v>7936</v> + <v>7931</v> </b> <b> <a>5</a> <b>6</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>6</a> <b>7</b> - <v>5602</v> + <v>5598</v> </b> <b> <a>7</a> <b>9</b> - <v>7469</v> + <v>7465</v> </b> <b> <a>9</a> <b>16</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>16</a> <b>52</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>52</a> <b>107</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>108</a> <b>577</b> - <v>7002</v> + <v>6998</v> </b> <b> <a>738</a> <b>1163</b> - <v>1400</v> + <v>1399</v> </b> </bs> </hist> @@ -27096,7 +27247,7 @@ <b> <a>1</a> <b>2</b> - <v>3809607</v> + <v>3807287</v> </b> </bs> </hist> @@ -27112,12 +27263,12 @@ <b> <a>1</a> <b>2</b> - <v>3738177</v> + <v>3735900</v> </b> <b> <a>2</a> <b>3</b> - <v>71430</v> + <v>71386</v> </b> </bs> </hist> @@ -27127,11 +27278,11 @@ </relation> <relation> <name>enclosingfunction</name> - <cardinality>118327</cardinality> + <cardinality>118328</cardinality> <columnsizes> <e> <k>child</k> - <v>118327</v> + <v>118328</v> </e> <e> <k>parent</k> @@ -27149,7 +27300,7 @@ <b> <a>1</a> <b>2</b> - <v>118327</v> + <v>118328</v> </b> </bs> </hist> @@ -27180,7 +27331,7 @@ <b> <a>4</a> <b>45</b> - <v>4887</v> + <v>4888</v> </b> </bs> </hist> @@ -28647,15 +28798,15 @@ </relation> <relation> <name>commentbinding</name> - <cardinality>3091104</cardinality> + <cardinality>3089221</cardinality> <columnsizes> <e> <k>id</k> - <v>2445431</v> + <v>2443942</v> </e> <e> <k>element</k> - <v>3014538</v> + <v>3012702</v> </e> </columnsizes> <dependencies> @@ -28669,12 +28820,12 @@ <b> <a>1</a> <b>2</b> - <v>2368399</v> + <v>2366956</v> </b> <b> <a>2</a> <b>97</b> - <v>77032</v> + <v>76985</v> </b> </bs> </hist> @@ -28690,12 +28841,12 @@ <b> <a>1</a> <b>2</b> - <v>2937972</v> + <v>2936183</v> </b> <b> <a>2</a> <b>3</b> - <v>76565</v> + <v>76519</v> </b> </bs> </hist> @@ -29100,15 +29251,15 @@ </relation> <relation> <name>namespaces</name> - <cardinality>12138</cardinality> + <cardinality>12131</cardinality> <columnsizes> <e> <k>id</k> - <v>12138</v> + <v>12131</v> </e> <e> <k>name</k> - <v>9804</v> + <v>9798</v> </e> </columnsizes> <dependencies> @@ -29122,7 +29273,7 @@ <b> <a>1</a> <b>2</b> - <v>12138</v> + <v>12131</v> </b> </bs> </hist> @@ -29138,7 +29289,7 @@ <b> <a>1</a> <b>2</b> - <v>8403</v> + <v>8398</v> </b> <b> <a>2</a> @@ -29158,26 +29309,26 @@ </relation> <relation> <name>namespace_inline</name> - <cardinality>1400</cardinality> + <cardinality>1399</cardinality> <columnsizes> <e> <k>id</k> - <v>1400</v> + <v>1399</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>namespacembrs</name> - <cardinality>2388007</cardinality> + <cardinality>2386553</cardinality> <columnsizes> <e> <k>parentid</k> - <v>10270</v> + <v>10264</v> </e> <e> <k>memberid</k> - <v>2388007</v> + <v>2386553</v> </e> </columnsizes> <dependencies> @@ -29191,7 +29342,7 @@ <b> <a>1</a> <b>2</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>2</a> @@ -29252,7 +29403,7 @@ <b> <a>1</a> <b>2</b> - <v>2388007</v> + <v>2386553</v> </b> </bs> </hist> @@ -29748,7 +29899,7 @@ </e> <e> <k>qualifyingelement</k> - <v>97518</v> + <v>97537</v> </e> <e> <k>location</k> @@ -29862,7 +30013,7 @@ <b> <a>1</a> <b>2</b> - <v>58401</v> + <v>58420</v> </b> <b> <a>2</a> @@ -29898,7 +30049,7 @@ <b> <a>1</a> <b>2</b> - <v>58401</v> + <v>58420</v> </b> <b> <a>2</a> @@ -29934,7 +30085,7 @@ <b> <a>1</a> <b>2</b> - <v>63815</v> + <v>63834</v> </b> <b> <a>2</a> @@ -30047,12 +30198,12 @@ <b> <a>1</a> <b>2</b> - <v>137073</v> + <v>137054</v> </b> <b> <a>2</a> <b>3</b> - <v>55684</v> + <v>55703</v> </b> <b> <a>3</a> @@ -30173,7 +30324,7 @@ </e> <e> <k>fun</k> - <v>511304</v> + <v>511342</v> </e> </columnsizes> <dependencies> @@ -30208,12 +30359,12 @@ <b> <a>1</a> <b>2</b> - <v>315012</v> + <v>315088</v> </b> <b> <a>2</a> <b>3</b> - <v>77931</v> + <v>77893</v> </b> <b> <a>3</a> @@ -31993,15 +32144,15 @@ </relation> <relation> <name>expr_types</name> - <cardinality>18451396</cardinality> + <cardinality>18451397</cardinality> <columnsizes> <e> <k>id</k> - <v>18319782</v> + <v>18319781</v> </e> <e> <k>typeid</k> - <v>1214616</v> + <v>1214623</v> </e> <e> <k>value_category</k> @@ -32019,12 +32170,12 @@ <b> <a>1</a> <b>2</b> - <v>18188167</v> + <v>18188166</v> </b> <b> <a>2</a> <b>3</b> - <v>131614</v> + <v>131615</v> </b> </bs> </hist> @@ -32040,7 +32191,7 @@ <b> <a>1</a> <b>2</b> - <v>18319782</v> + <v>18319781</v> </b> </bs> </hist> @@ -32056,42 +32207,42 @@ <b> <a>1</a> <b>2</b> - <v>438565</v> + <v>438567</v> </b> <b> <a>2</a> <b>3</b> - <v>249332</v> + <v>249345</v> </b> <b> <a>3</a> <b>4</b> - <v>102839</v> + <v>102817</v> </b> <b> <a>4</a> <b>5</b> - <v>81865</v> + <v>81877</v> </b> <b> <a>5</a> <b>8</b> - <v>109274</v> + <v>109275</v> </b> <b> <a>8</a> <b>14</b> - <v>96495</v> + <v>96496</v> </b> <b> <a>14</a> <b>41</b> - <v>91664</v> + <v>91653</v> </b> <b> <a>41</a> <b>125325</b> - <v>44578</v> + <v>44590</v> </b> </bs> </hist> @@ -32107,7 +32258,7 @@ <b> <a>1</a> <b>2</b> - <v>1050230</v> + <v>1050237</v> </b> <b> <a>2</a> @@ -32141,8 +32292,8 @@ <v>11</v> </b> <b> - <a>1239489</a> - <b>1239490</b> + <a>1239479</a> + <b>1239480</b> <v>11</v> </b> </bs> @@ -32179,11 +32330,11 @@ </relation> <relation> <name>compound_requirement_is_noexcept</name> - <cardinality>0</cardinality> + <cardinality>1</cardinality> <columnsizes> <e> <k>expr</k> - <v>0</v> + <v>1</v> </e> </columnsizes> <dependencies/> @@ -33570,15 +33721,15 @@ </relation> <relation> <name>code_block</name> - <cardinality>0</cardinality> + <cardinality>15</cardinality> <columnsizes> <e> <k>block</k> - <v>0</v> + <v>15</v> </e> <e> <k>routine</k> - <v>0</v> + <v>15</v> </e> </columnsizes> <dependencies> @@ -33592,7 +33743,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>15</v> </b> </bs> </hist> @@ -33608,7 +33759,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>15</v> </b> </bs> </hist> @@ -33618,11 +33769,11 @@ </relation> <relation> <name>lambdas</name> - <cardinality>21475</cardinality> + <cardinality>21462</cardinality> <columnsizes> <e> <k>expr</k> - <v>21475</v> + <v>21462</v> </e> <e> <k>default_capture</k> @@ -33644,7 +33795,7 @@ <b> <a>1</a> <b>2</b> - <v>21475</v> + <v>21462</v> </b> </bs> </hist> @@ -33660,7 +33811,7 @@ <b> <a>1</a> <b>2</b> - <v>21475</v> + <v>21462</v> </b> </bs> </hist> @@ -33734,15 +33885,15 @@ </relation> <relation> <name>lambda_capture</name> - <cardinality>28011</cardinality> + <cardinality>27994</cardinality> <columnsizes> <e> <k>id</k> - <v>28011</v> + <v>27994</v> </e> <e> <k>lambda</k> - <v>20541</v> + <v>20529</v> </e> <e> <k>index</k> @@ -33750,7 +33901,7 @@ </e> <e> <k>field</k> - <v>28011</v> + <v>27994</v> </e> <e> <k>captured_by_reference</k> @@ -33762,7 +33913,7 @@ </e> <e> <k>location</k> - <v>2801</v> + <v>2799</v> </e> </columnsizes> <dependencies> @@ -33776,7 +33927,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33792,7 +33943,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33808,7 +33959,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33824,7 +33975,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33840,7 +33991,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33856,7 +34007,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -33872,12 +34023,12 @@ <b> <a>1</a> <b>2</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>2</a> <b>3</b> - <v>7469</v> + <v>7465</v> </b> </bs> </hist> @@ -33893,12 +34044,12 @@ <b> <a>1</a> <b>2</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>2</a> <b>3</b> - <v>7469</v> + <v>7465</v> </b> </bs> </hist> @@ -33914,12 +34065,12 @@ <b> <a>1</a> <b>2</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>2</a> <b>3</b> - <v>7469</v> + <v>7465</v> </b> </bs> </hist> @@ -33935,7 +34086,7 @@ <b> <a>1</a> <b>2</b> - <v>20541</v> + <v>20529</v> </b> </bs> </hist> @@ -33951,7 +34102,7 @@ <b> <a>1</a> <b>2</b> - <v>20541</v> + <v>20529</v> </b> </bs> </hist> @@ -33967,12 +34118,12 @@ <b> <a>1</a> <b>2</b> - <v>13072</v> + <v>13064</v> </b> <b> <a>2</a> <b>3</b> - <v>7469</v> + <v>7465</v> </b> </bs> </hist> @@ -34104,7 +34255,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34120,7 +34271,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34136,7 +34287,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34152,7 +34303,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34168,7 +34319,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34184,7 +34335,7 @@ <b> <a>1</a> <b>2</b> - <v>28011</v> + <v>27994</v> </b> </bs> </hist> @@ -34392,7 +34543,7 @@ <b> <a>8</a> <b>9</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>14</a> @@ -34413,7 +34564,7 @@ <b> <a>8</a> <b>9</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>14</a> @@ -34434,7 +34585,7 @@ <b> <a>1</a> <b>2</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -34450,7 +34601,7 @@ <b> <a>8</a> <b>9</b> - <v>1867</v> + <v>1866</v> </b> <b> <a>14</a> @@ -34471,7 +34622,7 @@ <b> <a>1</a> <b>2</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -34487,7 +34638,7 @@ <b> <a>1</a> <b>2</b> - <v>2801</v> + <v>2799</v> </b> </bs> </hist> @@ -34497,19 +34648,19 @@ </relation> <relation> <name>fold</name> - <cardinality>0</cardinality> + <cardinality>4</cardinality> <columnsizes> <e> <k>expr</k> - <v>0</v> + <v>4</v> </e> <e> <k>operator</k> - <v>0</v> + <v>4</v> </e> <e> <k>is_left_fold</k> - <v>0</v> + <v>2</v> </e> </columnsizes> <dependencies> @@ -34519,7 +34670,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + </bs> </hist> </val> </dep> @@ -34529,7 +34686,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + </bs> </hist> </val> </dep> @@ -34539,7 +34702,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + </bs> </hist> </val> </dep> @@ -34549,7 +34718,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>4</v> + </b> + </bs> </hist> </val> </dep> @@ -34559,7 +34734,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>2</a> + <b>3</b> + <v>2</v> + </b> + </bs> </hist> </val> </dep> @@ -34569,7 +34750,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>2</a> + <b>3</b> + <v>2</v> + </b> + </bs> </hist> </val> </dep> @@ -34893,15 +35080,15 @@ </relation> <relation> <name>type_vla</name> - <cardinality>0</cardinality> + <cardinality>1</cardinality> <columnsizes> <e> <k>type_id</k> - <v>0</v> + <v>1</v> </e> <e> <k>decl</k> - <v>0</v> + <v>1</v> </e> </columnsizes> <dependencies> @@ -34911,7 +35098,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -34921,7 +35114,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>1</v> + </b> + </bs> </hist> </val> </dep> @@ -35121,15 +35320,15 @@ </relation> <relation> <name>constexpr_if_initialization</name> - <cardinality>0</cardinality> + <cardinality>3</cardinality> <columnsizes> <e> <k>constexpr_if_stmt</k> - <v>0</v> + <v>3</v> </e> <e> <k>init_id</k> - <v>0</v> + <v>3</v> </e> </columnsizes> <dependencies> @@ -35143,7 +35342,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>3</v> </b> </bs> </hist> @@ -35155,7 +35354,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>3</v> + </b> + </bs> </hist> </val> </dep> @@ -35355,15 +35560,15 @@ </relation> <relation> <name>switch_initialization</name> - <cardinality>0</cardinality> + <cardinality>8</cardinality> <columnsizes> <e> <k>switch_stmt</k> - <v>0</v> + <v>8</v> </e> <e> <k>init_id</k> - <v>0</v> + <v>8</v> </e> </columnsizes> <dependencies> @@ -35377,7 +35582,7 @@ <b> <a>1</a> <b>2</b> - <v>17</v> + <v>8</v> </b> </bs> </hist> @@ -35389,7 +35594,13 @@ <val> <hist> <budget>12</budget> - <bs/> + <bs> + <b> + <a>1</a> + <b>2</b> + <v>8</v> + </b> + </bs> </hist> </val> </dep> @@ -36170,11 +36381,11 @@ </relation> <relation> <name>stmt_decl_bind</name> - <cardinality>580841</cardinality> + <cardinality>580849</cardinality> <columnsizes> <e> <k>stmt</k> - <v>541059</v> + <v>541066</v> </e> <e> <k>num</k> @@ -36182,7 +36393,7 @@ </e> <e> <k>decl</k> - <v>580737</v> + <v>580745</v> </e> </columnsizes> <dependencies> @@ -36196,7 +36407,7 @@ <b> <a>1</a> <b>2</b> - <v>520371</v> + <v>520377</v> </b> <b> <a>2</a> @@ -36217,7 +36428,7 @@ <b> <a>1</a> <b>2</b> - <v>520371</v> + <v>520377</v> </b> <b> <a>2</a> @@ -36420,7 +36631,7 @@ <b> <a>1</a> <b>2</b> - <v>580700</v> + <v>580707</v> </b> <b> <a>2</a> @@ -36441,7 +36652,7 @@ <b> <a>1</a> <b>2</b> - <v>580737</v> + <v>580745</v> </b> </bs> </hist> @@ -36451,11 +36662,11 @@ </relation> <relation> <name>stmt_decl_entry_bind</name> - <cardinality>580841</cardinality> + <cardinality>580849</cardinality> <columnsizes> <e> <k>stmt</k> - <v>541059</v> + <v>541066</v> </e> <e> <k>num</k> @@ -36463,7 +36674,7 @@ </e> <e> <k>decl_entry</k> - <v>580783</v> + <v>580791</v> </e> </columnsizes> <dependencies> @@ -36477,7 +36688,7 @@ <b> <a>1</a> <b>2</b> - <v>520371</v> + <v>520377</v> </b> <b> <a>2</a> @@ -36498,7 +36709,7 @@ <b> <a>1</a> <b>2</b> - <v>520371</v> + <v>520377</v> </b> <b> <a>2</a> @@ -36701,7 +36912,7 @@ <b> <a>1</a> <b>2</b> - <v>580762</v> + <v>580770</v> </b> <b> <a>3</a> @@ -36722,7 +36933,7 @@ <b> <a>1</a> <b>2</b> - <v>580783</v> + <v>580791</v> </b> </bs> </hist> @@ -36732,15 +36943,15 @@ </relation> <relation> <name>blockscope</name> - <cardinality>1410861</cardinality> + <cardinality>1410469</cardinality> <columnsizes> <e> <k>block</k> - <v>1410861</v> + <v>1410469</v> </e> <e> <k>enclosing</k> - <v>1295546</v> + <v>1295224</v> </e> </columnsizes> <dependencies> @@ -36754,7 +36965,7 @@ <b> <a>1</a> <b>2</b> - <v>1410861</v> + <v>1410469</v> </b> </bs> </hist> @@ -36770,12 +36981,12 @@ <b> <a>1</a> <b>2</b> - <v>1230185</v> + <v>1229903</v> </b> <b> <a>2</a> <b>13</b> - <v>65360</v> + <v>65321</v> </b> </bs> </hist> @@ -36971,19 +37182,19 @@ </relation> <relation> <name>preprocdirects</name> - <cardinality>4190567</cardinality> + <cardinality>4188015</cardinality> <columnsizes> <e> <k>id</k> - <v>4190567</v> + <v>4188015</v> </e> <e> <k>kind</k> - <v>5135</v> + <v>5132</v> </e> <e> <k>location</k> - <v>4149950</v> + <v>4147423</v> </e> </columnsizes> <dependencies> @@ -36997,7 +37208,7 @@ <b> <a>1</a> <b>2</b> - <v>4190567</v> + <v>4188015</v> </b> </bs> </hist> @@ -37013,7 +37224,7 @@ <b> <a>1</a> <b>2</b> - <v>4190567</v> + <v>4188015</v> </b> </bs> </hist> @@ -37161,7 +37372,7 @@ <b> <a>1</a> <b>2</b> - <v>4149483</v> + <v>4146956</v> </b> <b> <a>88</a> @@ -37182,7 +37393,7 @@ <b> <a>1</a> <b>2</b> - <v>4149950</v> + <v>4147423</v> </b> </bs> </hist> @@ -37192,15 +37403,15 @@ </relation> <relation> <name>preprocpair</name> - <cardinality>1431403</cardinality> + <cardinality>1430532</cardinality> <columnsizes> <e> <k>begin</k> - <v>1197038</v> + <v>1196309</v> </e> <e> <k>elseelifend</k> - <v>1431403</v> + <v>1430532</v> </e> </columnsizes> <dependencies> @@ -37214,17 +37425,17 @@ <b> <a>1</a> <b>2</b> - <v>978546</v> + <v>977950</v> </b> <b> <a>2</a> <b>3</b> - <v>208221</v> + <v>208094</v> </b> <b> <a>3</a> <b>11</b> - <v>10270</v> + <v>10264</v> </b> </bs> </hist> @@ -37240,7 +37451,7 @@ <b> <a>1</a> <b>2</b> - <v>1431403</v> + <v>1430532</v> </b> </bs> </hist> @@ -37250,22 +37461,22 @@ </relation> <relation> <name>preproctrue</name> - <cardinality>767056</cardinality> + <cardinality>766589</cardinality> <columnsizes> <e> <k>branch</k> - <v>767056</v> + <v>766589</v> </e> </columnsizes> <dependencies/> </relation> <relation> <name>preprocfalse</name> - <cardinality>331473</cardinality> + <cardinality>331271</cardinality> <columnsizes> <e> <k>branch</k> - <v>331473</v> + <v>331271</v> </e> </columnsizes> <dependencies/> @@ -37418,15 +37629,15 @@ </relation> <relation> <name>includes</name> - <cardinality>313265</cardinality> + <cardinality>313074</cardinality> <columnsizes> <e> <k>id</k> - <v>313265</v> + <v>313074</v> </e> <e> <k>included</k> - <v>117182</v> + <v>117111</v> </e> </columnsizes> <dependencies> @@ -37440,7 +37651,7 @@ <b> <a>1</a> <b>2</b> - <v>313265</v> + <v>313074</v> </b> </bs> </hist> @@ -37456,32 +37667,32 @@ <b> <a>1</a> <b>2</b> - <v>61159</v> + <v>61121</v> </b> <b> <a>2</a> <b>3</b> - <v>21942</v> + <v>21929</v> </b> <b> <a>3</a> <b>4</b> - <v>12605</v> + <v>12597</v> </b> <b> <a>4</a> <b>6</b> - <v>10270</v> + <v>10264</v> </b> <b> <a>6</a> <b>14</b> - <v>8870</v> + <v>8865</v> </b> <b> <a>14</a> <b>47</b> - <v>2334</v> + <v>2332</v> </b> </bs> </hist>