diff --git a/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme new file mode 100644 index 0000000000000..25e365d1e8147 --- /dev/null +++ b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme @@ -0,0 +1,2296 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..3d35dd6b50edf --- /dev/null +++ b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme @@ -0,0 +1,2289 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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 +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default 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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties new file mode 100644 index 0000000000000..1b70354537119 --- /dev/null +++ b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties @@ -0,0 +1,4 @@ +description: Revert support for using-enum declarations. +compatibility: partial +usings.rel: run usings.qlo +using_container.rel: run using_container.qlo diff --git a/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/using_container.ql b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/using_container.ql new file mode 100644 index 0000000000000..333543414233a --- /dev/null +++ b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/using_container.ql @@ -0,0 +1,14 @@ +class UsingEntry extends @using { + string toString() { none() } +} + +class Element extends @element { + string toString() { none() } +} + +from UsingEntry u, Element parent, int kind +where + usings(u, _, _, kind) and + using_container(parent, u) and + kind != 3 +select parent, u diff --git a/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/usings.ql b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/usings.ql new file mode 100644 index 0000000000000..c7653bd9accb3 --- /dev/null +++ b/cpp/downgrades/25e365d1e8147df0f759b604f96eb4bffea48271/usings.ql @@ -0,0 +1,17 @@ +class UsingEntry extends @using { + string toString() { none() } +} + +class Element extends @element { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from UsingEntry u, Element target, Location loc, int kind +where + usings(u, target, loc, kind) and + kind != 3 +select u, target, loc diff --git a/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/old.dbscheme b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/old.dbscheme new file mode 100644 index 0000000000000..9629fc87dab7d --- /dev/null +++ b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/old.dbscheme @@ -0,0 +1,2300 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/semmlecode.cpp.dbscheme b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..25e365d1e8147 --- /dev/null +++ b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/semmlecode.cpp.dbscheme @@ -0,0 +1,2296 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/upgrade.properties b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/upgrade.properties new file mode 100644 index 0000000000000..f2c1506bb8bdb --- /dev/null +++ b/cpp/downgrades/9629fc87dab7dbed0771bf5ce22bce4d7f943b52/upgrade.properties @@ -0,0 +1,2 @@ +description: Support destroying deletes +compatibility: full diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 61cbcd1318acd..9f01040830c11 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.3.0 + +### New Features + +* Models-as-data alert provenance information has been extended to the C/C++ language. Any qltests that include the edges relation in their output (for example, `.qlref`s that reference path-problem queries) will need to be have their expected output updated accordingly. +* Added subclasses of `BuiltInOperations` for `__builtin_has_attribute`, `__builtin_is_corresponding_member`, `__builtin_is_pointer_interconvertible_with_class`, `__is_assignable_no_precondition_check`, `__is_bounded_array`, `__is_convertible`, `__is_corresponding_member`, `__is_nothrow_convertible`, `__is_pointer_interconvertible_with_class`, `__is_referenceable`, `__is_same_as`, `__is_trivially_copy_assignable`, `__is_unbounded_array`, `__is_valid_winrt_type`, `_is_win_class`, `__is_win_interface`, `__reference_binds_to_temporary`, `__reference_constructs_from_temporary`, and `__reference_converts_from_temporary`. +* The class `NewArrayExpr` adds a predicate `getArraySize()` to allow a more convenient way to access the static size of the array when the extent is missing. + ## 1.2.0 ### New Features diff --git a/cpp/ql/lib/change-notes/2024-07-10-newarrayexpr-arraysize.md b/cpp/ql/lib/change-notes/2024-07-10-newarrayexpr-arraysize.md deleted file mode 100644 index 0a806c9324329..0000000000000 --- a/cpp/ql/lib/change-notes/2024-07-10-newarrayexpr-arraysize.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* The class `NewArrayExpr` adds a predicate `getArraySize()` to allow a more convenient way to access the static size of the array when the extent is missing. diff --git a/cpp/ql/lib/change-notes/2024-07-16-alert-provenance.md b/cpp/ql/lib/change-notes/2024-07-16-alert-provenance.md deleted file mode 100644 index 3f773028073bb..0000000000000 --- a/cpp/ql/lib/change-notes/2024-07-16-alert-provenance.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Models-as-data alert provenance information has been extended to the C/C++ language. Any qltests that include the edges relation in their output (for example, `.qlref`s that reference path-problem queries) will need to be have their expected output updated accordingly. diff --git a/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration copy.md b/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration copy.md new file mode 100644 index 0000000000000..eb2a69f5bac6e --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration copy.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* A `isDestroyingDeleteDeallocation` predicate was added to the `NewOrNewArrayExpr` and `DeleteOrDeleteArrayExpr` classes to indicate whether the deallocation function is a destroying delete. diff --git a/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration.md b/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration.md new file mode 100644 index 0000000000000..cf85b3cef4e87 --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-07-23-using-enum-declaration.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* A `UsingEnumDeclarationEntry` class has been added for C++ `using enum` declarations. As part of this, synthesized `UsingDeclarationEntry`s are no longer emitted for individual enumerators of the referenced enumeration. diff --git a/cpp/ql/lib/change-notes/2024-07-25-alias-analysis-perf.md b/cpp/ql/lib/change-notes/2024-07-25-alias-analysis-perf.md new file mode 100644 index 0000000000000..585e824e6f194 --- /dev/null +++ b/cpp/ql/lib/change-notes/2024-07-25-alias-analysis-perf.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Improved performance of alias analysis of large function bodies. In rare cases, alerts that depend on alias analysis of large function bodies may be affected. diff --git a/cpp/ql/lib/change-notes/2024-07-11-additional-builtin-support.md b/cpp/ql/lib/change-notes/released/1.3.0.md similarity index 57% rename from cpp/ql/lib/change-notes/2024-07-11-additional-builtin-support.md rename to cpp/ql/lib/change-notes/released/1.3.0.md index f389283ad1e14..3c3010da96d32 100644 --- a/cpp/ql/lib/change-notes/2024-07-11-additional-builtin-support.md +++ b/cpp/ql/lib/change-notes/released/1.3.0.md @@ -1,4 +1,7 @@ ---- -category: feature ---- +## 1.3.0 + +### New Features + +* Models-as-data alert provenance information has been extended to the C/C++ language. Any qltests that include the edges relation in their output (for example, `.qlref`s that reference path-problem queries) will need to be have their expected output updated accordingly. * Added subclasses of `BuiltInOperations` for `__builtin_has_attribute`, `__builtin_is_corresponding_member`, `__builtin_is_pointer_interconvertible_with_class`, `__is_assignable_no_precondition_check`, `__is_bounded_array`, `__is_convertible`, `__is_corresponding_member`, `__is_nothrow_convertible`, `__is_pointer_interconvertible_with_class`, `__is_referenceable`, `__is_same_as`, `__is_trivially_copy_assignable`, `__is_unbounded_array`, `__is_valid_winrt_type`, `_is_win_class`, `__is_win_interface`, `__reference_binds_to_temporary`, `__reference_constructs_from_temporary`, and `__reference_converts_from_temporary`. +* The class `NewArrayExpr` adds a predicate `getArraySize()` to allow a more convenient way to access the static size of the array when the extent is missing. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 75430e73d1c4d..ec16350ed6fd9 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.0 +lastReleaseVersion: 1.3.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 6b3f05d5f7c1a..5ef613e94c005 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 1.2.1-dev +version: 1.3.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/Namespace.qll b/cpp/ql/lib/semmle/code/cpp/Namespace.qll index 065e28c8429ef..2e75a783c14fe 100644 --- a/cpp/ql/lib/semmle/code/cpp/Namespace.qll +++ b/cpp/ql/lib/semmle/code/cpp/Namespace.qll @@ -156,7 +156,7 @@ class NamespaceDeclarationEntry extends Locatable, @namespace_decl { * A C++ `using` directive or `using` declaration. */ class UsingEntry extends Locatable, @using { - override Location getLocation() { usings(underlyingElement(this), _, result) } + override Location getLocation() { usings(underlyingElement(this), _, result, _) } } /** @@ -166,15 +166,13 @@ class UsingEntry extends Locatable, @using { * ``` */ class UsingDeclarationEntry extends UsingEntry { - UsingDeclarationEntry() { - not exists(Namespace n | usings(underlyingElement(this), unresolveElement(n), _)) - } + UsingDeclarationEntry() { usings(underlyingElement(this), _, _, 1) } /** * Gets the declaration that is referenced by this using declaration. For * example, `std::string` in `using std::string`. */ - Declaration getDeclaration() { usings(underlyingElement(this), unresolveElement(result), _) } + Declaration getDeclaration() { usings(underlyingElement(this), unresolveElement(result), _, _) } override string toString() { result = "using " + this.getDeclaration().getDescription() } } @@ -186,19 +184,36 @@ class UsingDeclarationEntry extends UsingEntry { * ``` */ class UsingDirectiveEntry extends UsingEntry { - UsingDirectiveEntry() { - exists(Namespace n | usings(underlyingElement(this), unresolveElement(n), _)) - } + UsingDirectiveEntry() { usings(underlyingElement(this), _, _, 2) } /** * Gets the namespace that is referenced by this using directive. For * example, `std` in `using namespace std`. */ - Namespace getNamespace() { usings(underlyingElement(this), unresolveElement(result), _) } + Namespace getNamespace() { usings(underlyingElement(this), unresolveElement(result), _, _) } override string toString() { result = "using namespace " + this.getNamespace().getFriendlyName() } } +/** + * A C++ `using enum` declaration. For example: + * ``` + * enum class Foo { a, b }; + * using enum Foo; + * ``` + */ +class UsingEnumDeclarationEntry extends UsingEntry { + UsingEnumDeclarationEntry() { usings(underlyingElement(this), _, _, 3) } + + /** + * Gets the enumeration that is referenced by this using directive. For + * example, `Foo` in `using enum Foo`. + */ + Enum getEnum() { usings(underlyingElement(this), unresolveElement(result), _, _) } + + override string toString() { result = "using enum " + this.getEnum().getQualifiedName() } +} + /** * Holds if `g` is an instance of `GlobalNamespace`. This predicate * is used suppress a warning in `GlobalNamespace.getADeclaration()` diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll index 364359dc9fdb6..b14979470b043 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowPrivate.qll @@ -215,19 +215,16 @@ predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } predicate localMustFlowStep(Node node1, Node node2) { none() } /** Gets the type of `n` used for type pruning. */ -Type getNodeType(Node n) { +DataFlowType getNodeType(Node n) { exists(n) and result instanceof VoidType // stub implementation } -/** Gets a string representation of a type returned by `getNodeType`. */ -string ppReprType(Type t) { none() } // stub implementation - /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. */ -predicate compatibleTypes(Type t1, Type t2) { +predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { t1 instanceof VoidType and t2 instanceof VoidType // stub implementation } @@ -243,7 +240,11 @@ class DataFlowCallable extends Function { } class DataFlowExpr = Expr; -class DataFlowType = Type; +final private class TypeFinal = Type; + +class DataFlowType extends TypeFinal { + string toString() { result = "" } +} /** A function call relevant for data flow. */ class DataFlowCall extends Expr instanceof Call { diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index 0d68bb1047fa0..8e5f5018c9f30 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -855,6 +855,16 @@ class NewOrNewArrayExpr extends Expr, @any_new_expr { ) } + /** + * Holds if the deallocation function is a destroying delete. + */ + predicate isDestroyingDeleteDeallocation() { + exists(int form | + expr_deallocator(underlyingElement(this), _, form) and + form.bitAnd(4) != 0 // Bit two is the "destroying delete" bit + ) + } + /** * Gets the type that is being allocated. * @@ -1025,6 +1035,16 @@ class DeleteOrDeleteArrayExpr extends Expr, TDeleteOrDeleteArrayExpr { ) } + /** + * Holds if the deallocation function is a destroying delete. + */ + predicate isDestroyingDeleteDeallocation() { + exists(int form | + expr_deallocator(underlyingElement(this), _, form) and + form.bitAnd(4) != 0 // Bit two is the "destroying delete" bit + ) + } + /** * Gets the object or array being deleted. */ diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll index 9381eb7f64548..ac6e898748aba 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowPrivate.qll @@ -994,9 +994,6 @@ DataFlowType getNodeType(Node n) { result instanceof VoidType // stub implementation } -/** Gets a string representation of a type returned by `getNodeType`. */ -string ppReprType(DataFlowType t) { none() } // stub implementation - /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. @@ -1097,7 +1094,11 @@ class SummarizedCallable extends DataFlowCallable, TSummarizedCallable { class DataFlowExpr = Expr; -class DataFlowType = Type; +final private class TypeFinal = Type; + +class DataFlowType extends TypeFinal { + string toString() { result = "" } +} cached private newtype TDataFlowCall = diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasAnalysis.qll index 8f3493c1065f9..5989f9bf0d52a 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasAnalysis.qll @@ -338,6 +338,56 @@ private predicate resultEscapesNonReturn(Instruction instr) { not instr.isResultModeled() } +/** Holds if `operand` may (transitively) flow to an `AddressOperand`. */ +private predicate consumedAsAddressOperand(Operand operand) { + operand instanceof AddressOperand + or + exists(Operand address | + consumedAsAddressOperand(address) and + operandIsPropagated(operand, _, address.getDef()) + ) +} + +/** + * Holds if `operand` may originate from a base instruction of an allocation, + * and that operand may transitively flow to an `AddressOperand`. + */ +private predicate propagatedFromAllocationBase(Operand operand, Configuration::Allocation allocation) { + consumedAsAddressOperand(operand) and + ( + not exists(Configuration::getOldAllocation(allocation)) and + operand.getDef() = allocation.getABaseInstruction() + or + exists(Operand address | + operandIsPropagated(address, _, operand.getDef()) and + propagatedFromAllocationBase(address, allocation) + ) + ) +} + +private predicate propagatedFromNonAllocationBase(Operand operand) { + exists(Instruction def | + def = operand.getDef() and + not operandIsPropagated(_, _, def) and + not def = any(Configuration::Allocation allocation).getABaseInstruction() + ) + or + exists(Operand address | + operandIsPropagated(address, _, operand.getDef()) and + propagatedFromNonAllocationBase(address) + ) +} + +/** + * Holds if we cannot see all producers of an operand for which allocation also flows into. + */ +private predicate operandConsumesEscaped(Configuration::Allocation allocation) { + exists(AddressOperand address | + propagatedFromAllocationBase(address, allocation) and + propagatedFromNonAllocationBase(address) + ) +} + /** * Holds if the address of `allocation` escapes outside the domain of the analysis. This can occur * either because the allocation's address is taken within the function and escapes, or because the @@ -346,12 +396,14 @@ private predicate resultEscapesNonReturn(Instruction instr) { predicate allocationEscapes(Configuration::Allocation allocation) { allocation.alwaysEscapes() or - exists(IREscapeAnalysisConfiguration config | - config.useSoundEscapeAnalysis() and resultEscapesNonReturn(allocation.getABaseInstruction()) + exists(IREscapeAnalysisConfiguration config | config.useSoundEscapeAnalysis() | + resultEscapesNonReturn(allocation.getABaseInstruction()) + or + operandConsumesEscaped(allocation) ) or Configuration::phaseNeedsSoundEscapeAnalysis() and - resultEscapesNonReturn(allocation.getABaseInstruction()) + (resultEscapesNonReturn(allocation.getABaseInstruction()) or operandConsumesEscaped(allocation)) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasConfiguration.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasConfiguration.qll index ba2c1d5a22c0d..8b53e12b8a04d 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasConfiguration.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasConfiguration.qll @@ -146,3 +146,8 @@ class DynamicAllocation extends Allocation, TDynamicAllocation { } predicate phaseNeedsSoundEscapeAnalysis() { none() } + +UnaliasedSsa::Allocation getOldAllocation(VariableAllocation allocation) { + UnaliasedSsa::canReuseSsaForVariable(allocation.getIRVariable()) and + result = allocation.getIRVariable() +} diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll index aba70f8771d2f..4db00eee60846 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/AliasedSSA.qll @@ -7,7 +7,7 @@ private import semmle.code.cpp.ir.implementation.unaliased_ssa.internal.SSAConst private import semmle.code.cpp.ir.internal.IntegerConstant as Ints private import semmle.code.cpp.ir.internal.IntegerInterval as Interval private import semmle.code.cpp.ir.implementation.internal.OperandTag -private import AliasConfiguration +import AliasConfiguration private import codeql.util.Boolean private class IntValue = Ints::IntValue; @@ -227,13 +227,15 @@ private newtype TMemoryLocation = TAllAliasedMemory(IRFunction irFunc, Boolean isMayAccess) /** - * Represents the memory location accessed by a memory operand or memory result. In this implementation, the location is + * A memory location accessed by a memory operand or memory result. In this implementation, the location is * one of the following: * - `VariableMemoryLocation` - A location within a known `IRVariable`, at an offset that is either a constant or is * unknown. * - `UnknownMemoryLocation` - A location not known to be within a specific `IRVariable`. + * + * Some of these memory locations will be filtered out for performance reasons before being passed to SSA construction. */ -abstract class MemoryLocation extends TMemoryLocation { +abstract private class MemoryLocation0 extends TMemoryLocation { final string toString() { if this.isMayAccess() then result = "?" + this.toStringInternal() @@ -294,9 +296,9 @@ abstract class MemoryLocation extends TMemoryLocation { * represented by a `MemoryLocation` that totally overlaps all other * `MemoryLocations` in the set. */ -abstract class VirtualVariable extends MemoryLocation { } +abstract class VirtualVariable extends MemoryLocation0 { } -abstract class AllocationMemoryLocation extends MemoryLocation { +abstract class AllocationMemoryLocation extends MemoryLocation0 { Allocation var; boolean isMayAccess; @@ -424,7 +426,7 @@ class VariableMemoryLocation extends TVariableMemoryLocation, AllocationMemoryLo * `{a, b}` into a memory location that represents _all_ of the allocations * in the set. */ -class GroupedMemoryLocation extends TGroupedMemoryLocation, MemoryLocation { +class GroupedMemoryLocation extends TGroupedMemoryLocation, MemoryLocation0 { VariableGroup vg; boolean isMayAccess; boolean isAll; @@ -528,7 +530,7 @@ class GroupedVirtualVariable extends GroupedMemoryLocation, VirtualVariable { /** * An access to memory that is not known to be confined to a specific `IRVariable`. */ -class UnknownMemoryLocation extends TUnknownMemoryLocation, MemoryLocation { +class UnknownMemoryLocation extends TUnknownMemoryLocation, MemoryLocation0 { IRFunction irFunc; boolean isMayAccess; @@ -555,7 +557,7 @@ class UnknownMemoryLocation extends TUnknownMemoryLocation, MemoryLocation { * An access to memory that is not known to be confined to a specific `IRVariable`, but is known to * not access memory on the current function's stack frame. */ -class AllNonLocalMemory extends TAllNonLocalMemory, MemoryLocation { +class AllNonLocalMemory extends TAllNonLocalMemory, MemoryLocation0 { IRFunction irFunc; boolean isMayAccess; @@ -589,7 +591,7 @@ class AllNonLocalMemory extends TAllNonLocalMemory, MemoryLocation { /** * An access to all aliased memory. */ -class AllAliasedMemory extends TAllAliasedMemory, MemoryLocation { +class AllAliasedMemory extends TAllAliasedMemory, MemoryLocation0 { IRFunction irFunc; boolean isMayAccess; @@ -620,7 +622,7 @@ class AliasedVirtualVariable extends AllAliasedMemory, VirtualVariable { /** * Gets the overlap relationship between the definition location `def` and the use location `use`. */ -Overlap getOverlap(MemoryLocation def, MemoryLocation use) { +Overlap getOverlap(MemoryLocation0 def, MemoryLocation0 use) { exists(Overlap overlap | // Compute the overlap based only on the extent. overlap = getExtentOverlap(def, use) and @@ -648,7 +650,7 @@ Overlap getOverlap(MemoryLocation def, MemoryLocation use) { * based only on the set of memory locations accessed. Handling of "may" accesses and read-only * locations occurs in `getOverlap()`. */ -private Overlap getExtentOverlap(MemoryLocation def, MemoryLocation use) { +private Overlap getExtentOverlap(MemoryLocation0 def, MemoryLocation0 use) { // The def and the use must have the same virtual variable, or no overlap is possible. ( // AllAliasedMemory must totally overlap any location within the same virtual variable. @@ -861,6 +863,40 @@ predicate canReuseSsaForOldResult(Instruction instr) { OldSsa::canReuseSsaForMem bindingset[result, b] private boolean unbindBool(boolean b) { result != b.booleanNot() } +/** Gets the number of overlapping uses of `def`. */ +private int numberOfOverlappingUses(MemoryLocation0 def) { + result = strictcount(MemoryLocation0 use | exists(getOverlap(def, use))) +} + +/** + * Holds if `def` is a busy definition. That is, it has a large number of + * overlapping uses. + */ +private predicate isBusyDef(MemoryLocation0 def) { numberOfOverlappingUses(def) > 1024 } + +/** Holds if `use` is a use that overlaps with a busy definition. */ +private predicate useOverlapWithBusyDef(MemoryLocation0 use) { + exists(MemoryLocation0 def | + exists(getOverlap(def, use)) and + isBusyDef(def) + ) +} + +final private class FinalMemoryLocation = MemoryLocation0; + +/** + * A memory location accessed by a memory operand or memory result. In this implementation, the location is + * one of the following: + * - `VariableMemoryLocation` - A location within a known `IRVariable`, at an offset that is either a constant or is + * unknown. + * - `UnknownMemoryLocation` - A location not known to be within a specific `IRVariable`. + * + * Compared to `MemoryLocation0`, this class does not contain memory locations that represent uses of busy definitions. + */ +class MemoryLocation extends FinalMemoryLocation { + MemoryLocation() { not useOverlapWithBusyDef(this) } +} + MemoryLocation getResultMemoryLocation(Instruction instr) { not canReuseSsaForOldResult(instr) and exists(MemoryAccessKind kind, boolean isMayAccess | @@ -905,9 +941,9 @@ MemoryLocation getResultMemoryLocation(Instruction instr) { ) } -MemoryLocation getOperandMemoryLocation(MemoryOperand operand) { +private MemoryLocation0 getOperandMemoryLocation0(MemoryOperand operand, boolean isMayAccess) { not canReuseSsaForOldResult(operand.getAnyDef()) and - exists(MemoryAccessKind kind, boolean isMayAccess | + exists(MemoryAccessKind kind | kind = operand.getMemoryAccess() and (if operand.hasMayReadMemoryAccess() then isMayAccess = true else isMayAccess = false) and ( @@ -948,6 +984,19 @@ MemoryLocation getOperandMemoryLocation(MemoryOperand operand) { ) } +MemoryLocation getOperandMemoryLocation(MemoryOperand operand) { + exists(MemoryLocation0 use0, boolean isMayAccess | + use0 = getOperandMemoryLocation0(operand, isMayAccess) + | + result = use0 + or + // If `use0` overlaps with a busy definition we turn it into a use + // of `UnknownMemoryLocation`. + not use0 instanceof MemoryLocation and + result = TUnknownMemoryLocation(operand.getEnclosingIRFunction(), isMayAccess) + ) +} + /** Gets the start bit offset of a `MemoryLocation`, if any. */ int getStartBitOffset(VariableMemoryLocation location) { result = location.getStartBitOffset() and Ints::hasValue(result) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll index 819f3906b8256..e0a6594e74008 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/aliased_ssa/internal/SSAConstruction.qll @@ -933,11 +933,15 @@ module DefUse { bindingset[index, block] pragma[inline_late] private int getNonChiOffset(int index, OldBlock block) { - exists(IRFunction func | func = block.getEnclosingIRFunction() | + exists(OldIR::IRFunction func, Instruction i, OldBlock entryBlock | + func = block.getEnclosingIRFunction() and + i = block.getInstruction(index) and + entryBlock = func.getEntryBlock() + | if - getNewBlock(block) = func.getEntryBlock() and - not block.getInstruction(index) instanceof InitializeNonLocalInstruction and - not block.getInstruction(index) instanceof AliasedDefinitionInstruction + block = entryBlock and + not i instanceof InitializeNonLocalInstruction and + not i instanceof AliasedDefinitionInstruction then result = 2 * (index + count(VariableGroup vg | vg.getIRFunction() = func)) else result = 2 * index ) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasAnalysis.qll index 8f3493c1065f9..5989f9bf0d52a 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasAnalysis.qll @@ -338,6 +338,56 @@ private predicate resultEscapesNonReturn(Instruction instr) { not instr.isResultModeled() } +/** Holds if `operand` may (transitively) flow to an `AddressOperand`. */ +private predicate consumedAsAddressOperand(Operand operand) { + operand instanceof AddressOperand + or + exists(Operand address | + consumedAsAddressOperand(address) and + operandIsPropagated(operand, _, address.getDef()) + ) +} + +/** + * Holds if `operand` may originate from a base instruction of an allocation, + * and that operand may transitively flow to an `AddressOperand`. + */ +private predicate propagatedFromAllocationBase(Operand operand, Configuration::Allocation allocation) { + consumedAsAddressOperand(operand) and + ( + not exists(Configuration::getOldAllocation(allocation)) and + operand.getDef() = allocation.getABaseInstruction() + or + exists(Operand address | + operandIsPropagated(address, _, operand.getDef()) and + propagatedFromAllocationBase(address, allocation) + ) + ) +} + +private predicate propagatedFromNonAllocationBase(Operand operand) { + exists(Instruction def | + def = operand.getDef() and + not operandIsPropagated(_, _, def) and + not def = any(Configuration::Allocation allocation).getABaseInstruction() + ) + or + exists(Operand address | + operandIsPropagated(address, _, operand.getDef()) and + propagatedFromNonAllocationBase(address) + ) +} + +/** + * Holds if we cannot see all producers of an operand for which allocation also flows into. + */ +private predicate operandConsumesEscaped(Configuration::Allocation allocation) { + exists(AddressOperand address | + propagatedFromAllocationBase(address, allocation) and + propagatedFromNonAllocationBase(address) + ) +} + /** * Holds if the address of `allocation` escapes outside the domain of the analysis. This can occur * either because the allocation's address is taken within the function and escapes, or because the @@ -346,12 +396,14 @@ private predicate resultEscapesNonReturn(Instruction instr) { predicate allocationEscapes(Configuration::Allocation allocation) { allocation.alwaysEscapes() or - exists(IREscapeAnalysisConfiguration config | - config.useSoundEscapeAnalysis() and resultEscapesNonReturn(allocation.getABaseInstruction()) + exists(IREscapeAnalysisConfiguration config | config.useSoundEscapeAnalysis() | + resultEscapesNonReturn(allocation.getABaseInstruction()) + or + operandConsumesEscaped(allocation) ) or Configuration::phaseNeedsSoundEscapeAnalysis() and - resultEscapesNonReturn(allocation.getABaseInstruction()) + (resultEscapesNonReturn(allocation.getABaseInstruction()) or operandConsumesEscaped(allocation)) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasConfiguration.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasConfiguration.qll index 110e673e1d272..2ca2b4c728498 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasConfiguration.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/AliasConfiguration.qll @@ -1,4 +1,5 @@ private import AliasConfigurationImports +private import codeql.util.Unit /** * A memory allocation that can be tracked by the SimpleSSA alias analysis. @@ -16,3 +17,5 @@ class Allocation extends IRAutomaticVariable { } predicate phaseNeedsSoundEscapeAnalysis() { any() } + +Unit getOldAllocation(Allocation allocation) { any() } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll index 819f3906b8256..e0a6594e74008 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SSAConstruction.qll @@ -933,11 +933,15 @@ module DefUse { bindingset[index, block] pragma[inline_late] private int getNonChiOffset(int index, OldBlock block) { - exists(IRFunction func | func = block.getEnclosingIRFunction() | + exists(OldIR::IRFunction func, Instruction i, OldBlock entryBlock | + func = block.getEnclosingIRFunction() and + i = block.getInstruction(index) and + entryBlock = func.getEntryBlock() + | if - getNewBlock(block) = func.getEntryBlock() and - not block.getInstruction(index) instanceof InitializeNonLocalInstruction and - not block.getInstruction(index) instanceof AliasedDefinitionInstruction + block = entryBlock and + not i instanceof InitializeNonLocalInstruction and + not i instanceof AliasedDefinitionInstruction then result = 2 * (index + count(VariableGroup vg | vg.getIRFunction() = func)) else result = 2 * index ) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll index 8d11fdeec38e3..648fa0e197b84 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/unaliased_ssa/internal/SimpleSSA.qll @@ -1,7 +1,7 @@ import AliasAnalysis private import SimpleSSAImports import SimpleSSAPublicImports -private import AliasConfiguration +import AliasConfiguration private import codeql.util.Unit private predicate isTotalAccess(Allocation var, AddressOperand addrOperand, IRType type) { diff --git a/cpp/ql/lib/semmle/code/cpp/models/Models.qll b/cpp/ql/lib/semmle/code/cpp/models/Models.qll index 0b104e5e936c3..90a97777d8fb8 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/Models.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/Models.qll @@ -27,6 +27,11 @@ private import implementations.StdPair private import implementations.StdMap private import implementations.StdSet private import implementations.StdString +private import implementations.StdFunction +private import implementations.StdException +private import implementations.StdAllocator +private import implementations.StdAlgorithm +private import implementations.StdMath private import implementations.Swap private import implementations.GetDelim private import implementations.SmartPointer diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll index a016210de5a04..3a93188e9ca6e 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Iterator.qll @@ -86,6 +86,41 @@ private class StdIterator extends Iterator, Class { override Type getValueType() { result = this.getTemplateArgument(1).(Type).getUnderlyingType() } } +private class StdReverseIterator extends Iterator, Class { + StdReverseIterator() { this.hasQualifiedName(["std", "bsl"], "reverse_iterator") } + + override Type getValueType() { result = this.getTemplateArgument(1).(Type).getUnderlyingType() } +} + +private class StdIstreamBufIterator extends Iterator, Class { + StdIstreamBufIterator() { this.hasQualifiedName(["std", "bsl"], "istreambuf_iterator") } + + override Type getValueType() { result = this.getTemplateArgument(1).(Type).getUnderlyingType() } +} + +private class StdIstreambufIteratorConstructor extends Constructor, SideEffectFunction, + AliasFunction +{ + StdIstreambufIteratorConstructor() { this.getDeclaringType() instanceof StdIstreamBufIterator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + /** * Gets the `FunctionInput` corresponding to an iterator parameter to * user-defined operator `op`, at `index`. @@ -579,23 +614,43 @@ private class IteratorAssignmentMemberOperatorModel extends IteratorAssignmentMe override predicate parameterEscapesOnlyViaReturn(int index) { index = -1 } } +private string beginName() { + result = ["begin", "cbegin", "rbegin", "crbegin", "before_begin", "cbefore_begin"] +} + /** * A `begin` member function, or a related function, that returns an iterator. */ -class BeginFunction extends MemberFunction { +class BeginFunction extends Function { BeginFunction() { - this.hasName(["begin", "cbegin", "rbegin", "crbegin", "before_begin", "cbefore_begin"]) and - this.getType().getUnspecifiedType() instanceof Iterator + this.getUnspecifiedType() instanceof Iterator and + ( + this.hasName(beginName()) and + this instanceof MemberFunction + or + this.hasGlobalOrStdOrBslName(beginName()) and + not this instanceof MemberFunction and + this.getNumberOfParameters() = 1 + ) } } +private string endName() { result = ["end", "cend", "rend", "crend"] } + /** * An `end` member function, or a related function, that returns an iterator. */ -class EndFunction extends MemberFunction { +class EndFunction extends Function { EndFunction() { - this.hasName(["end", "cend", "rend", "crend"]) and - this.getType().getUnspecifiedType() instanceof Iterator + this.getUnspecifiedType() instanceof Iterator and + ( + this.hasName(endName()) and + this instanceof MemberFunction + or + this.hasGlobalOrStdOrBslName(endName()) and + this instanceof MemberFunction and + this.getNumberOfParameters() = 1 + ) } } @@ -603,7 +658,7 @@ class EndFunction extends MemberFunction { * A `begin` or `end` member function, or a related member function, that * returns an iterator. */ -class BeginOrEndFunction extends MemberFunction { +class BeginOrEndFunction extends Function { BeginOrEndFunction() { this instanceof BeginFunction or this instanceof EndFunction diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/Printf.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/Printf.qll index 7474631397c16..677b9245b6b85 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/Printf.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/Printf.qll @@ -7,6 +7,7 @@ import semmle.code.cpp.models.interfaces.FormattingFunction import semmle.code.cpp.models.interfaces.Alias +import semmle.code.cpp.models.interfaces.SideEffect /** * The standard functions `printf`, `wprintf` and their glib variants. @@ -96,7 +97,7 @@ private class Sprintf extends FormattingFunction { /** * Implements `Snprintf`. */ -private class SnprintfImpl extends Snprintf { +private class SnprintfImpl extends Snprintf, AliasFunction, SideEffectFunction { SnprintfImpl() { this instanceof TopLevelFunction and ( @@ -143,6 +144,26 @@ private class SnprintfImpl extends Snprintf { } override int getSizeParameterIndex() { result = 1 } + + override predicate parameterNeverEscapes(int index) { + // We don't know how many parameters are passed to the function since it's varargs, but they also don't escape. + index = this.getFormatParameterIndex() + } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = this.getOutputParameterIndex(false) and buffer = true and mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + // We don't know how many parameters are passed to the function since it's varargs, but they also have read side effects. + i = this.getFormatParameterIndex() and buffer = true + } } /** diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAlgorithm.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAlgorithm.qll new file mode 100644 index 0000000000000..85b69fc8ac447 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAlgorithm.qll @@ -0,0 +1,115 @@ +/** + * Provides models for C++ functions from the `algorithms` header. + */ + +import semmle.code.cpp.models.interfaces.Taint +import semmle.code.cpp.models.interfaces.DataFlow +import semmle.code.cpp.models.interfaces.Iterator +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias + +private class StdPartialSort extends Function, SideEffectFunction, AliasFunction { + StdPartialSort() { this.hasGlobalOrStdName("partial_sort") } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = this.getAnIteratorParameterIndex() and buffer = true and mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = this.getAnIteratorParameterIndex() and + buffer = true and + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } + + private int getAnIteratorParameterIndex() { + this.getParameter(result).getUnspecifiedType() instanceof Iterator + } + + override predicate parameterNeverEscapes(int index) { + index = this.getAnIteratorParameterIndex() + or + this.getParameter(index).getUnspecifiedType() instanceof ReferenceType + } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } +} + +private class StdSortHeap extends Function, SideEffectFunction, AliasFunction { + StdSortHeap() { this.hasGlobalOrStdName("sort_heap") } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = this.getAnIteratorParameterIndex() and buffer = true and mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = this.getAnIteratorParameterIndex() and + buffer = true + } + + private int getAnIteratorParameterIndex() { + this.getParameter(result).getUnspecifiedType() instanceof Iterator + } + + override predicate parameterNeverEscapes(int index) { index = this.getAnIteratorParameterIndex() } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } +} + +private class StdGenerateN extends Function, SideEffectFunction, AliasFunction { + StdGenerateN() { this.hasGlobalOrStdName("generate_n") } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = this.getAnIteratorParameterIndex() and buffer = true and mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } + + private int getAnIteratorParameterIndex() { + this.getParameter(result).getUnspecifiedType() instanceof Iterator + } + + override predicate parameterNeverEscapes(int index) { index = this.getAnIteratorParameterIndex() } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } +} + +private class StdFindIfOrIfNot extends Function, SideEffectFunction, AliasFunction { + StdFindIfOrIfNot() { this.hasGlobalOrStdName(["find_if", "find_if_not"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = this.getAnIteratorParameterIndex() and buffer = true + or + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } + + private int getAnIteratorParameterIndex() { + this.getParameter(result).getUnspecifiedType() instanceof Iterator + } + + override predicate parameterNeverEscapes(int index) { + this.getParameter(index).getUnspecifiedType() instanceof ReferenceType + } + + override predicate parameterEscapesOnlyViaReturn(int index) { + index = this.getAnIteratorParameterIndex() + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAllocator.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAllocator.qll new file mode 100644 index 0000000000000..189d0ad862bab --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdAllocator.qll @@ -0,0 +1,256 @@ +/** + * Provides models for C++ `allocator` and `allocator_traits` classes. + */ + +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias + +/** The `std::allocator` class. */ +class StdAllocator extends Class { + StdAllocator() { this.hasGlobalOrStdOrBslName("allocator") } +} + +/** The `std::allocator_traits` class. */ +class StdAllocatorTraits extends Class { + StdAllocatorTraits() { this.hasGlobalOrStdOrBslName("allocator_traits") } +} + +private class StdAllocatorConstructor extends Constructor, AliasFunction, SideEffectFunction { + StdAllocatorConstructor() { this.getDeclaringType() instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } +} + +private class StdAllocatorDestructor extends Destructor, AliasFunction, SideEffectFunction { + StdAllocatorDestructor() { this.getDeclaringType() instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } +} + +private class StdAllocatorAddress extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorAddress() { this.getClassAndName("address") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class StdAllocatorAllocate extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorAllocate() { this.getClassAndName("allocate") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class StdAllocatorTraitsAllocate extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorTraitsAllocate() { + this.getClassAndName(["allocate", "allocate_at_least"]) instanceof StdAllocatorTraits + } + + override predicate parameterNeverEscapes(int index) { + this.getParameter(index).getUnspecifiedType() instanceof ReferenceType + } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } +} + +private class StdAllocatorDeallocate extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorDeallocate() { this.getClassAndName("deallocate") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 0 and + buffer = false and + mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = 0 and + buffer = false + } +} + +private class StdAllocatorTraitsDeallocate extends MemberFunction, AliasFunction, SideEffectFunction +{ + StdAllocatorTraitsDeallocate() { + this.getClassAndName("deallocate") instanceof StdAllocatorTraits + } + + override predicate parameterNeverEscapes(int index) { index = [0, 1] } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 1 and + buffer = false and + mustWrite = false + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = [0, 1] and + buffer = false + } +} + +private class StdAllocatorMaxSize extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorMaxSize() { this.getClassAndName("max_size") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class StdAllocatTraitsMaxSize extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatTraitsMaxSize() { this.getClassAndName("max_size") instanceof StdAllocatorTraits } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class StdAllocatorConstruct extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorConstruct() { this.getClassAndName("construct") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 0 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } +} + +class StdAllocatorTraitsConstruct extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorTraitsConstruct() { this.getClassAndName("construct") instanceof StdAllocatorTraits } + + override predicate parameterNeverEscapes(int index) { + index = 1 or this.getParameter(index).getUnspecifiedType() instanceof ReferenceType + } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + +class StdAllocatorDestroy extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorDestroy() { this.getClassAndName("destroy") instanceof StdAllocator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 0 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = 0 and buffer = false + } +} + +class StdAllocatorTraitsDestroy extends MemberFunction, AliasFunction, SideEffectFunction { + StdAllocatorTraitsDestroy() { this.getClassAndName("destroy") instanceof StdAllocatorTraits } + + override predicate parameterNeverEscapes(int index) { index = [0, 1] } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = 1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = 0 and buffer = false + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll index bf9e05991b4c3..a6145fa724ea1 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdContainer.qll @@ -4,6 +4,8 @@ import semmle.code.cpp.models.interfaces.FlowSource import semmle.code.cpp.models.interfaces.Iterator +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias /** * A sequence container template class (for example, `std::vector`) from the @@ -58,7 +60,7 @@ private class Vector extends StdSequenceContainer { /** * The standard container functions `push_back` and `push_front`. */ -class StdSequenceContainerPush extends MemberFunction { +class StdSequenceContainerPush extends MemberFunction, SideEffectFunction, AliasFunction { StdSequenceContainerPush() { this.getClassAndName("push_back") instanceof Vector or this.getClassAndName(["push_back", "push_front"]) instanceof Deque or @@ -74,12 +76,115 @@ class StdSequenceContainerPush extends MemberFunction { this.getParameter(result).getUnspecifiedType().(ReferenceType).getBaseType() = this.getDeclaringType().getTemplateArgument(0).(Type).getUnspecifiedType() // i.e. the `T` of this `std::vector` } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + // the `std::vector` specialization doesn't take a reference as a + // parameter. So we need to check that the parameter is actually a + // reference. + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + +private class StdSequenceContainerPopFrontOrBack extends MemberFunction, SideEffectFunction, + AliasFunction +{ + StdSequenceContainerPopFrontOrBack() { + this.getClassAndName("pop_back") instanceof Vector or + this.getClassAndName("pop_front") instanceof ForwardList or + this.getClassAndName(["pop_front", "pop_back"]) instanceof Deque or + this.getClassAndName(["pop_front", "pop_back"]) instanceof List + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and + buffer = false + } +} + +private class StdSequenceContainerClear extends MemberFunction, SideEffectFunction, AliasFunction { + StdSequenceContainerClear() { + this.getClassAndName("clear") instanceof Vector or + this.getClassAndName("clear") instanceof Deque or + this.getClassAndName("clear") instanceof ForwardList or + this.getClassAndName("clear") instanceof List + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and + buffer = false + } +} + +private class StdVectorReserve extends MemberFunction, SideEffectFunction, AliasFunction { + StdVectorReserve() { this.getClassAndName("reserve") instanceof Vector } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and + buffer = false + } } /** * The standard container functions `insert` and `insert_after`. */ -class StdSequenceContainerInsert extends MemberFunction { +class StdSequenceContainerInsert extends MemberFunction, SideEffectFunction, AliasFunction { StdSequenceContainerInsert() { this.getClassAndName("insert") instanceof Deque or this.getClassAndName("insert") instanceof List or @@ -100,17 +205,138 @@ class StdSequenceContainerInsert extends MemberFunction { * Gets the index of a parameter to this function that is an iterator. */ int getAnIteratorParameterIndex() { this.getParameter(result).getType() instanceof Iterator } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + +private class StdSequenceContainerFrontBack extends MemberFunction, SideEffectFunction, + AliasFunction +{ + StdSequenceContainerFrontBack() { + this.getClassAndName(["front", "back"]) instanceof Deque or + this.getClassAndName(["front", "back"]) instanceof List or + this.getClassAndName(["front", "back"]) instanceof Vector or + // forward_list does not have a 'back' member function + this.getClassAndName("front") instanceof ForwardList + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } } /** * The standard container functions `at` and `operator[]`. */ -class StdSequenceContainerAt extends MemberFunction { +class StdSequenceContainerAt extends MemberFunction, SideEffectFunction, AliasFunction { StdSequenceContainerAt() { this.getClassAndName(["at", "operator[]"]) instanceof Array or this.getClassAndName(["at", "operator[]"]) instanceof Deque or this.getClassAndName(["at", "operator[]"]) instanceof Vector } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + none() + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + +private class StdSequenceContainerMemberEquals extends MemberFunction, SideEffectFunction, + AliasFunction +{ + StdSequenceContainerMemberEquals() { + this.getClassAndName("operator==") instanceof Array or + this.getClassAndName("operator==") instanceof Deque or + this.getClassAndName("operator==") instanceof Vector + } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = -1 or index = 0 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + none() + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + or + i = 0 and buffer = false + } +} + +private class StdSequenceContainerEquals extends Function, SideEffectFunction, AliasFunction { + StdSequenceContainerEquals() { + this.hasGlobalOrStdOrBslName("operator==") and + not this instanceof MemberFunction and + this.getNumberOfParameters() = 2 and + ( + this.getParameter(0).getUnspecifiedType().(ReferenceType).getBaseType() instanceof Vector and + this.getParameter(1).getUnspecifiedType().(ReferenceType).getBaseType() instanceof Vector + or + this.getParameter(0).getUnspecifiedType().(ReferenceType).getBaseType() instanceof List and + this.getParameter(1).getUnspecifiedType().(ReferenceType).getBaseType() instanceof List + or + this.getParameter(0).getUnspecifiedType().(ReferenceType).getBaseType() instanceof Deque and + this.getParameter(1).getUnspecifiedType().(ReferenceType).getBaseType() instanceof Deque + ) + } + + override predicate parameterNeverEscapes(int index) { index = 0 or index = 1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + none() + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = [0, 1] and buffer = false + } } /** @@ -142,6 +368,115 @@ class StdVectorEmplace extends StdSequenceEmplace { StdVectorEmplace() { this.getDeclaringType() instanceof Vector } } +private class StdSequenceSize extends MemberFunction, SideEffectFunction, AliasFunction { + StdSequenceSize() { + this.getClassAndName("size") instanceof Vector + or + this.getClassAndName("size") instanceof List + or + this.getClassAndName("size") instanceof Deque + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + +private class StdSequenceDestructor extends Destructor, SideEffectFunction, AliasFunction { + StdSequenceDestructor() { + this.getDeclaringType() instanceof Vector + or + this.getDeclaringType() instanceof List + or + this.getDeclaringType() instanceof Deque + } + + private Destructor getElementDestructor() { + result.getDeclaringType() = this.getTemplateArgument(0) + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { + this.getElementDestructor().(SideEffectFunction).hasOnlySpecificReadSideEffects() + or + not exists(this.getElementDestructor()) + } + + override predicate hasOnlySpecificWriteSideEffects() { + this.getElementDestructor().(SideEffectFunction).hasOnlySpecificWriteSideEffects() + or + not exists(this.getElementDestructor()) + } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + +private class StdSequenceConstructor extends Constructor, SideEffectFunction, AliasFunction { + StdSequenceConstructor() { + this.getDeclaringType() instanceof Vector + or + this.getDeclaringType() instanceof List + or + this.getDeclaringType() instanceof Deque + } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + +private class InitializerList extends Class { + InitializerList() { this.hasQualifiedName(["std", "bsl"], "initializer_list") } + + Type getElementType() { result = this.getTemplateArgument(0) } +} + +private class InitializerListConstructor extends Constructor, SideEffectFunction, AliasFunction { + InitializerListConstructor() { this.getDeclaringType() instanceof InitializerList } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } +} + /** * The standard vector `emplace_back` function. */ diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdException.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdException.qll new file mode 100644 index 0000000000000..e0d45f46814ee --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdException.qll @@ -0,0 +1,38 @@ +/** + * Provides models for the C++ `std::exception` class and subclasses. + */ + +import semmle.code.cpp.models.interfaces.Taint +import semmle.code.cpp.models.interfaces.Alias +import semmle.code.cpp.models.interfaces.SideEffect + +/** The `std::exception` class. */ +class StdException extends Class { + StdException() { this.hasGlobalOrStdOrBslName("exception") } +} + +/** The `std::bad_alloc` class. */ +class StdBadAllocException extends Class { + StdBadAllocException() { this.hasGlobalOrStdOrBslName("bad_alloc") } +} + +private class StdBadAllocExceptionConstructor extends Constructor, SideEffectFunction, AliasFunction +{ + StdBadAllocExceptionConstructor() { this.getDeclaringType() instanceof StdBadAllocException } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdFunction.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdFunction.qll new file mode 100644 index 0000000000000..3b13c31b7c365 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdFunction.qll @@ -0,0 +1,53 @@ +/** + * Provides models for C++ `std::function` class. + */ + +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias + +/** + * An instantiation of the `std::function` class template. + */ +class StdFunction extends ClassTemplateInstantiation { + StdFunction() { this.hasGlobalOrStdOrBslName("function") } +} + +private class StdFunctionConstructor extends Constructor, SideEffectFunction, AliasFunction { + StdFunctionConstructor() { this.getDeclaringType() instanceof StdFunction } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and buffer = false + } +} + +private class StdFunctionDestructor extends Destructor, SideEffectFunction, AliasFunction { + StdFunctionDestructor() { this.getDeclaringType() instanceof StdFunction } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll index ce3c596f308aa..5d2133b6f4506 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMap.qll @@ -5,6 +5,8 @@ import semmle.code.cpp.models.interfaces.Taint import semmle.code.cpp.models.interfaces.DataFlow import semmle.code.cpp.models.interfaces.Iterator +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias /** * The `std::map` and `std::unordered_map` template classes. @@ -16,7 +18,9 @@ private class MapOrUnorderedMap extends Class { /** * Additional model for map constructors using iterator inputs. */ -private class StdMapConstructor extends Constructor, TaintFunction { +private class StdMapConstructor extends Constructor, TaintFunction, AliasFunction, + SideEffectFunction +{ StdMapConstructor() { this.getDeclaringType() instanceof MapOrUnorderedMap } /** @@ -35,6 +39,23 @@ private class StdMapConstructor extends Constructor, TaintFunction { output.isQualifierObject() ) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } } /** @@ -133,7 +154,7 @@ class StdMapAt extends MemberFunction { StdMapAt() { this.getClassAndName(["at", "operator[]"]) instanceof MapOrUnorderedMap } } -private class StdMapAtModels extends StdMapAt, TaintFunction { +private class StdMapAtModels extends StdMapAt, TaintFunction, AliasFunction, SideEffectFunction { override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { // flow from qualifier to referenced return value input.isQualifierObject() and @@ -144,6 +165,18 @@ private class StdMapAtModels extends StdMapAt, TaintFunction { output.isQualifierObject() } + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } + override predicate isPartialWrite(FunctionOutput output) { output.isQualifierObject() } } @@ -187,3 +220,63 @@ private class StdMapEqualRange extends TaintFunction { output.isReturnValue() } } + +class StdMapDestructor extends Destructor, SideEffectFunction, AliasFunction { + StdMapDestructor() { this.getDeclaringType() instanceof MapOrUnorderedMap } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + +private class StdMapClear extends MemberFunction, SideEffectFunction, AliasFunction { + StdMapClear() { this.getClassAndName("clear") instanceof MapOrUnorderedMap } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and + buffer = false and + mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and + buffer = false + } +} + +class StdMapSize extends MemberFunction, SideEffectFunction, AliasFunction { + StdMapSize() { this.getClassAndName("size") instanceof MapOrUnorderedMap } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and + buffer = false + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMath.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMath.qll new file mode 100644 index 0000000000000..6ee339c9b997b --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdMath.qll @@ -0,0 +1,108 @@ +/** + * Provides models for C++ functions from the `cmath` header. + */ + +private import semmle.code.cpp.models.interfaces.SideEffect +private import semmle.code.cpp.models.interfaces.Alias + +private class LdExp extends Function, SideEffectFunction { + LdExp() { this.hasGlobalOrStdOrBslName(["ldexp", "ldexpf", "ldexpl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Abs extends Function, SideEffectFunction { + Abs() { this.hasGlobalOrStdOrBslName(["abs", "fabs", "fabsf", "fabsl", "llabs", "imaxabs"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Div extends Function, SideEffectFunction { + Div() { this.hasGlobalOrStdOrBslName(["div", "ldiv", "lldiv", "imaxdiv"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class FMod extends Function, SideEffectFunction { + FMod() { this.hasGlobalOrStdOrBslName(["fmod", "fmodf", "fmodl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Remainder extends Function, SideEffectFunction { + Remainder() { this.hasGlobalOrStdOrBslName(["remainder", "remainderf", "remainderl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Remquo extends Function, SideEffectFunction { + Remquo() { this.hasGlobalOrStdOrBslName(["remquo", "remquof", "remquol"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + this.getParameter(i).getUnspecifiedType() instanceof PointerType and + buffer = false and + mustWrite = true + } +} + +private class Fma extends Function, SideEffectFunction { + Fma() { this.hasGlobalOrStdOrBslName(["fma", "fmaf", "fmal"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Fmax extends Function, SideEffectFunction { + Fmax() { this.hasGlobalOrStdOrBslName(["fmax", "fmaxf", "fmaxl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Fmin extends Function, SideEffectFunction { + Fmin() { this.hasGlobalOrStdOrBslName(["fmin", "fminf", "fminl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Fdim extends Function, SideEffectFunction { + Fdim() { this.hasGlobalOrStdOrBslName(["fdim", "fdimf", "fdiml"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } +} + +private class Nan extends Function, SideEffectFunction, AliasFunction { + Nan() { this.hasGlobalOrStdOrBslName(["nan", "nanf", "nanl"]) } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = 0 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = 0 and buffer = true + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdPair.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdPair.qll index 28d05e5c30691..54b6719e289ff 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdPair.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdPair.qll @@ -3,6 +3,8 @@ */ import semmle.code.cpp.models.interfaces.Taint +import semmle.code.cpp.models.interfaces.Alias +import semmle.code.cpp.models.interfaces.SideEffect /** * An instantiation of `std::pair`. @@ -37,7 +39,9 @@ class StdPairCopyishConstructor extends Constructor, TaintFunction { /** * Additional model for `std::pair` constructors. */ -private class StdPairConstructor extends Constructor, TaintFunction { +private class StdPairConstructor extends Constructor, TaintFunction, AliasFunction, + SideEffectFunction +{ StdPairConstructor() { this.getDeclaringType() instanceof StdPair } /** @@ -59,4 +63,77 @@ private class StdPairConstructor extends Constructor, TaintFunction { output.isQualifierObject() ) } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + // All the constructor parameters are references with the exception of this one: + // ``` + // template + // pair(std::piecewise_construct_t, std::tuple first_args, std::tuple second_args); + // ``` + // So we need to check that the parameters are actually references + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + } +} + +private class StdPairDestructor extends Destructor, AliasFunction, SideEffectFunction { + StdPairDestructor() { this.getDeclaringType() instanceof StdPair } + + private Type getFirstType() { result = this.getDeclaringType().getTemplateArgument(0) } + + private Type getSecondType() { result = this.getDeclaringType().getTemplateArgument(0) } + + private Type getAType() { result = [this.getFirstType(), this.getSecondType()] } + + /** + * Gets the destructor associated with the base type of this pair + */ + private Destructor getADestructor() { result.getDeclaringType() = this.getAType() } + + override predicate hasOnlySpecificReadSideEffects() { + this.getADestructor().(SideEffectFunction).hasOnlySpecificReadSideEffects() + or + // If there's no declared destructor for the base type then it won't have + // any strange read side effects. + not exists(this.getADestructor()) + } + + override predicate hasOnlySpecificWriteSideEffects() { + this.getADestructor().(SideEffectFunction).hasOnlySpecificWriteSideEffects() + or + // If there's no declared destructor for the base type then it won't have + // any strange write side effects. + not exists(this.getADestructor()) + } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate parameterNeverEscapes(int index) { + this.getADestructor().(AliasFunction).parameterNeverEscapes(index) + or + // If there's no declared destructor for the base type then it won't cause + // anything to escape. + not exists(this.getADestructor()) and + index = -1 + } } diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdString.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdString.qll index fd28363297a63..00dc8d26ad39e 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/StdString.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/StdString.qll @@ -7,6 +7,8 @@ import semmle.code.cpp.models.interfaces.Taint import semmle.code.cpp.models.interfaces.Iterator import semmle.code.cpp.models.interfaces.DataFlow +import semmle.code.cpp.models.interfaces.SideEffect +import semmle.code.cpp.models.interfaces.Alias /** * The `std::basic_string` template class instantiations. @@ -78,7 +80,9 @@ abstract private class StdStringTaintFunction extends TaintFunction { * std::string b(a.begin(), a.end()); * ``` */ -private class StdStringConstructor extends Constructor, StdStringTaintFunction { +private class StdStringConstructor extends Constructor, StdStringTaintFunction, SideEffectFunction, + AliasFunction +{ StdStringConstructor() { this.getDeclaringType() instanceof StdBasicString } override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { @@ -94,6 +98,42 @@ private class StdStringConstructor extends Constructor, StdStringTaintFunction { output.isQualifierObject() ) } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + +private class StdStringDestructor extends Destructor, SideEffectFunction, AliasFunction { + StdStringDestructor() { this.getDeclaringType() instanceof StdBasicString } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } } /** @@ -164,7 +204,7 @@ private class StdStringFrontBack extends StdStringTaintFunction { /** * The (non-member) `std::string` function `operator+`. */ -private class StdStringPlus extends StdStringTaintFunction { +private class StdStringPlus extends StdStringTaintFunction, SideEffectFunction, AliasFunction { StdStringPlus() { this.hasQualifiedName(["std", "bsl"], "operator+") and this.getUnspecifiedType() instanceof StdBasicString @@ -178,6 +218,22 @@ private class StdStringPlus extends StdStringTaintFunction { ) and output.isReturnValue() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + this.getParameter(i).getUnspecifiedType() instanceof ReferenceType and + buffer = false + or + this.getParameter(i).getUnspecifiedType() instanceof PointerType and + buffer = true + } + + override predicate parameterNeverEscapes(int index) { index = [0, 1] } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } } /** @@ -185,7 +241,7 @@ private class StdStringPlus extends StdStringTaintFunction { * All of these functions combine the existing string with a new * string (or character) from one of the arguments. */ -private class StdStringAppend extends StdStringTaintFunction { +private class StdStringAppend extends StdStringTaintFunction, SideEffectFunction, AliasFunction { StdStringAppend() { this.getClassAndName(["operator+=", "append", "replace"]) instanceof StdBasicString } @@ -210,6 +266,22 @@ private class StdStringAppend extends StdStringTaintFunction { } override predicate isPartialWrite(FunctionOutput output) { output.isQualifierObject() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and mustWrite = false and buffer = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = [-1, 0] and buffer = true + } + + override predicate parameterNeverEscapes(int index) { index = [-1, 0] } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } } /** @@ -301,7 +373,7 @@ private class StdStringSubstr extends StdStringTaintFunction { /** * The `std::string` functions `at` and `operator[]`. */ -private class StdStringAt extends StdStringTaintFunction { +private class StdStringAt extends StdStringTaintFunction, SideEffectFunction, AliasFunction { StdStringAt() { this.getClassAndName(["at", "operator[]"]) instanceof StdBasicString } override predicate hasTaintFlow(FunctionInput input, FunctionOutput output) { @@ -315,6 +387,22 @@ private class StdStringAt extends StdStringTaintFunction { } override predicate isPartialWrite(FunctionOutput output) { output.isQualifierObject() } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + none() + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } } /** @@ -324,6 +412,54 @@ private class StdBasicIStream extends ClassTemplateInstantiation { StdBasicIStream() { this.hasQualifiedName(["std", "bsl"], "basic_istream") } } +private class StdBasicIfStream extends ClassTemplateInstantiation { + StdBasicIfStream() { this.hasQualifiedName(["std", "bsl"], "basic_ifstream") } +} + +class StdBasicIfStreamConstructor extends Constructor, SideEffectFunction, AliasFunction { + StdBasicIfStreamConstructor() { this.getDeclaringType() instanceof StdBasicIfStream } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + exists(Type t | t = this.getParameter(i).getUnspecifiedType() | + t instanceof PointerType and buffer = true + or + t instanceof ReferenceType and buffer = false + ) + } +} + +class StdBasicIfStreamDestructor extends Destructor, SideEffectFunction, AliasFunction { + StdBasicIfStreamDestructor() { this.getDeclaringType() instanceof StdBasicIfStream } + + override predicate parameterNeverEscapes(int index) { index = -1 } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + i = -1 and buffer = false and mustWrite = true + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = -1 and buffer = false + } +} + /** * The `std::istream` function `operator>>` (defined as a member function). */ @@ -542,6 +678,33 @@ private class StdBasicOStream extends ClassTemplateInstantiation { StdBasicOStream() { this.hasQualifiedName(["std", "bsl"], "basic_ostream") } } +private class StdStringLessThan extends Function, AliasFunction, SideEffectFunction { + StdStringLessThan() { + this.hasQualifiedName(["std", "bsl"], "operator<") and + this.getNumberOfParameters() = 2 and + this.getParameter(0).getUnspecifiedType().(ReferenceType).getBaseType() instanceof + StdBasicString and + this.getParameter(1).getUnspecifiedType().(ReferenceType).getBaseType() instanceof + StdBasicString + } + + override predicate parameterNeverEscapes(int index) { index = [0, 1] } + + override predicate parameterEscapesOnlyViaReturn(int index) { none() } + + override predicate hasOnlySpecificReadSideEffects() { any() } + + override predicate hasOnlySpecificWriteSideEffects() { any() } + + override predicate hasSpecificWriteSideEffect(ParameterIndex i, boolean buffer, boolean mustWrite) { + none() + } + + override predicate hasSpecificReadSideEffect(ParameterIndex i, boolean buffer) { + i = [0, 1] and buffer = false + } +} + /** * The `std::ostream` functions `operator<<` (defined as a member function), * `put` and `write`. diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 3d35dd6b50edf..9629fc87dab7d 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -485,10 +485,17 @@ namespace_decls( 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 location: @location_default ref, + int kind: int ref ); /** The element which contains the `using` declaration. */ @@ -1358,6 +1365,8 @@ funbind( @assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr /* + Binary encoding of the allocator form. + case @allocator.form of 0 = plain | 1 = alignment @@ -1376,11 +1385,13 @@ expr_allocator( ); /* + Binary encoding of the deallocator form. + case @deallocator.form of 0 = plain | 1 = size | 2 = alignment - | 3 = size_and_alignment + | 4 = destroying_delete ; */ diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index fbb177927c725..d1ed132e903e9 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ @compilation - 9651 + 9742 @externalDataElement @@ -17,72 +17,80 @@ 575525 - @location_default - 29785199 + @location_stmt + 3819884 - @location_stmt - 3820138 + @location_default + 29765023 @location_expr - 13188829 + 13187951 @diagnostic - 4979 + 4996 @file - 123129 + 123252 @folder - 16323 + 16340 @macro_expansion - 32951596 + 33257900 @other_macro_reference - 858174 + 859032 @function - 4645804 + 4179381 @fun_decl - 5009596 + 4543537 @var_decl - 8422707 + 8039427 @type_decl - 3280187 + 3283466 @namespace_decl - 311514 + 311691 - @using - 369388 + @using_declaration + 363221 + + + @using_directive + 6536 + + + @using_enum_declaration + 2 @static_assert - 134648 + 134725 @parameter - 6575765 + 6190639 @membervariable - 1054767 + 1054697 @globalvariable @@ -90,11 +98,11 @@ @localvariable - 576915 + 576947 @enumconstant - 241686 + 241670 @errortype @@ -322,35 +330,35 @@ @pointer - 567608 + 568175 @type_with_specifiers - 1010221 + 852029 @array - 110070 + 110180 @routineptr - 624146 + 625429 @reference - 1720096 + 1276410 @gnu_vector - 693 + 699 @routinereference - 234 + 237 @rvalue_reference - 620183 + 333342 @block @@ -358,43 +366,43 @@ @decltype - 27051 + 27078 @usertype - 5228803 + 5234031 @mangledname - 6447972 + 6061784 @type_mention - 4029404 + 4029136 @routinetype - 537719 + 538824 @ptrtomember - 37778 + 37816 @specifier - 24719 + 24743 @gnuattribute - 686073 + 686759 @stdattribute - 476990 + 478572 @declspec - 243125 + 243108 @msattribute @@ -402,15 +410,15 @@ @alignas - 9794 + 9804 @attribute_arg_token - 39177 + 39216 @attribute_arg_constant_expr - 370787 + 371158 @attribute_arg_empty @@ -430,35 +438,35 @@ @derivation - 390765 + 391568 @frienddecl - 705602 + 707052 @comment - 8267972 + 8295380 @namespace - 12126 - - - @namequalifier - 1508764 + 12138 @specialnamequalifyingelement 466 + + @namequalifier + 1513800 + @value - 10777417 + 10776699 @initialiser - 1710171 + 1711073 @address_of @@ -466,15 +474,15 @@ @indirect - 292665 + 292646 @array_to_pointer - 1430934 + 1430839 @parexpr - 3587718 + 3587480 @arithnegexpr @@ -486,111 +494,111 @@ @complementexpr - 27839 + 27837 @notexpr - 276443 + 276425 @postincrexpr - 62049 + 62045 @postdecrexpr - 42038 + 42035 @preincrexpr - 70578 + 70573 @predecrexpr - 26209 + 26207 @conditionalexpr - 657281 + 657238 @addexpr - 398421 + 398394 @subexpr - 340781 + 340758 @mulexpr - 306377 + 306356 @divexpr - 133175 + 133166 @remexpr - 15609 + 15641 @paddexpr - 86668 + 86662 @psubexpr - 49903 + 49900 @pdiffexpr - 33697 + 33809 @lshiftexpr - 566340 + 566303 @rshiftexpr - 140849 + 140840 @andexpr - 489088 + 489056 @orexpr - 145475 + 145465 @xorexpr - 54178 + 54175 @eqexpr - 470681 + 470650 @neexpr - 301687 + 301667 @gtexpr - 104007 + 104111 @ltexpr - 101675 + 101776 @geexpr - 59253 + 59249 @leexpr - 212540 + 212526 @assignexpr - 937019 + 936957 @assignaddexpr @@ -598,11 +606,11 @@ @assignsubexpr - 11200 + 11199 @assignmulexpr - 8209 + 8285 @assigndivexpr @@ -610,7 +618,7 @@ @assignremexpr - 689 + 692 @assignlshiftexpr @@ -626,15 +634,15 @@ @assignorexpr - 23626 + 23627 @assignxorexpr - 21845 + 21844 @assignpaddexpr - 13629 + 13628 @assignpsubexpr @@ -642,27 +650,27 @@ @andlogicalexpr - 249969 + 249952 @orlogicalexpr - 866168 + 866110 @commaexpr - 122868 + 123276 @subscriptexpr - 364458 + 364479 @callexpr - 316218 + 316534 @vastartexpr - 3738 + 3740 @vaargexpr @@ -670,7 +678,7 @@ @vaendexpr - 2798 + 2801 @vacopyexpr @@ -678,35 +686,35 @@ @varaccess - 6029528 + 6029127 @runtime_sizeof - 295856 + 295836 @runtime_alignof - 49158 + 49259 @expr_stmt - 94393 + 94387 @routineexpr - 3176148 + 3186314 @type_operand - 1128831 + 1128756 @offsetofexpr - 19994 + 19993 @typescompexpr - 563815 + 563777 @literal @@ -722,27 +730,27 @@ @temp_init - 791807 + 794460 @errorexpr - 46203 + 46298 @reference_to - 1568970 + 1572195 @ref_indirect - 1905327 + 1901648 @vacuous_destructor_call - 8030 + 8047 @assume - 3230 + 3232 @conjugation @@ -750,11 +758,11 @@ @realpartexpr - 78 + 79 @imagpartexpr - 78 + 79 @jmulexpr @@ -794,35 +802,35 @@ @thisaccess - 1117527 + 1116975 @new_expr - 46968 + 47064 @delete_expr - 11611 + 11635 @throw_expr - 21048 + 21143 @condition_decl - 40577 + 40713 @braced_init_list - 1060 + 1063 @type_id - 35947 + 36021 @sizeof_pack - 5596 + 5602 @hasassignexpr @@ -874,7 +882,7 @@ @isclassexpr - 1853 + 1854 @isconvtoexpr @@ -882,15 +890,15 @@ @isemptyexpr - 1460 + 1463 @isenumexpr - 492 + 494 @ispodexpr - 615 + 620 @ispolyexpr @@ -910,15 +918,15 @@ @uuidof - 20292 + 20304 @delete_array_expr - 1364 + 1377 @new_array_expr - 5097 + 5099 @foldexpr @@ -926,55 +934,55 @@ @ctordirectinit - 111319 + 110607 @ctorvirtualinit - 6318 + 5384 @ctorfieldinit - 198163 + 190976 @ctordelegatinginit - 3302 + 3309 @dtordirectdestruct - 41197 + 40236 @dtorvirtualdestruct - 4067 + 4075 @dtorfielddestruct - 41092 + 40863 @static_cast - 214320 + 215644 @reinterpret_cast - 31628 + 31733 @const_cast - 34584 + 34699 @dynamic_cast - 1006 + 1015 @lambdaexpr - 21454 + 21475 @param_ref - 234832 + 235619 @noopexpr @@ -982,7 +990,7 @@ @istriviallyconstructibleexpr - 1280 + 1285 @isdestructibleexpr @@ -994,7 +1002,7 @@ @istriviallydestructibleexpr - 788 + 790 @istriviallyassignableexpr @@ -1002,11 +1010,11 @@ @isnothrowassignableexpr - 3941 + 3954 @istrivialexpr - 932 + 933 @isstandardlayoutexpr @@ -1014,7 +1022,7 @@ @istriviallycopyableexpr - 3731 + 3734 @isliteraltypeexpr @@ -1038,7 +1046,7 @@ @isnothrowconstructibleexpr - 13597 + 13642 @hasfinalizerexpr @@ -1074,11 +1082,11 @@ @isfinalexpr - 1668 + 1672 @noexceptexpr - 24558 + 24641 @builtinshufflevector @@ -1090,7 +1098,7 @@ @builtinaddressof - 13106 + 13133 @vec_fill @@ -1134,7 +1142,7 @@ @builtinshuffle - 1901 + 1919 @blockassignexpr @@ -1250,7 +1258,7 @@ @reuseexpr - 372471 + 373719 @istriviallycopyassignable @@ -1330,75 +1338,75 @@ @lambdacapture - 27983 + 28011 @stmt_expr - 1486124 + 1486025 @stmt_if - 725963 + 725914 @stmt_while - 29134 + 29316 @stmt_goto - 110698 + 110691 @stmt_label - 53145 + 53142 @stmt_return - 1284930 + 1280145 @stmt_block - 1423917 + 1419271 @stmt_end_test_while - 148884 + 148874 @stmt_for - 61560 + 61556 @stmt_switch_case - 206808 + 207501 @stmt_switch - 20788 + 20786 @stmt_asm - 109990 + 109982 @stmt_decl - 588851 + 593110 @stmt_empty - 192673 + 192683 @stmt_continue - 22563 + 22562 @stmt_break - 103190 + 103249 @stmt_try_block - 44876 + 45026 @stmt_microsoft_try @@ -1414,19 +1422,19 @@ @stmt_assigned_goto - 9076 + 9075 @stmt_range_based_for - 8395 + 8403 @stmt_handler - 62466 + 62676 @stmt_constexpr_if - 53108 + 53185 @stmt_co_return @@ -1434,47 +1442,47 @@ @ppd_if - 666484 + 667151 @ppd_ifdef - 263049 + 263312 @ppd_ifndef - 266314 + 266580 @ppd_elif - 25185 + 25210 @ppd_else - 208946 + 209155 @ppd_endif - 1195848 + 1197043 @ppd_plain_include - 311088 + 311399 @ppd_define - 2292433 + 2300032 @ppd_undef - 258385 + 258643 @ppd_include_next - 1865 + 1867 @ppd_line - 27519 + 27520 @ppd_error @@ -1482,7 +1490,7 @@ @ppd_pragma - 296776 + 297760 @ppd_objc_import @@ -1494,7 +1502,7 @@ @link_target - 814 + 816 @xmldtd @@ -1524,11 +1532,11 @@ compilations - 9651 + 9742 id - 9651 + 9742 cwd @@ -1546,7 +1554,7 @@ 1 2 - 9651 + 9742 @@ -1572,7 +1580,7 @@ compilation_args - 652594 + 652551 id @@ -1584,7 +1592,7 @@ arg - 34463 + 34461 @@ -1618,7 +1626,7 @@ 131 132 - 815 + 814 134 @@ -1659,7 +1667,7 @@ 109 110 - 815 + 814 111 @@ -1822,12 +1830,12 @@ 1 2 - 32399 + 32397 2 1043 - 2064 + 2063 @@ -1843,7 +1851,7 @@ 1 2 - 33256 + 33254 2 @@ -1870,7 +1878,7 @@ file - 10028 + 10027 @@ -1986,7 +1994,7 @@ 1 2 - 1758 + 1757 2 @@ -2022,7 +2030,7 @@ 1 2 - 1758 + 1757 2 @@ -2063,7 +2071,7 @@ 2 4 - 839 + 838 4 @@ -2084,7 +2092,7 @@ 1 2 - 9189 + 9188 2 @@ -2104,7 +2112,7 @@ compilation_time - 46187 + 46184 id @@ -2120,7 +2128,7 @@ seconds - 9948 + 9468 @@ -2201,12 +2209,12 @@ 3 4 - 759 + 639 4 5 - 239 + 359 5 @@ -2214,9 +2222,9 @@ 159 - 9 + 8 10 - 159 + 119 10 @@ -2225,8 +2233,8 @@ 11 - 14 - 119 + 15 + 159 16 @@ -2234,13 +2242,13 @@ 159 - 19 - 27 + 18 + 24 159 - 38 - 96 + 41 + 90 119 @@ -2257,7 +2265,7 @@ 1 2 - 1758 + 1757 2 @@ -2309,17 +2317,17 @@ 3 4 - 1318 + 1438 4 5 - 439 + 319 5 6 - 199 + 279 6 @@ -2329,7 +2337,7 @@ 7 8 - 159 + 79 8 @@ -2338,12 +2346,12 @@ 9 - 23 + 21 279 25 - 92 + 93 279 @@ -2392,21 +2400,16 @@ 3 4 - 39 - - - 4 - 5 - 39 + 79 - 136 - 137 + 126 + 127 39 - 145 - 146 + 135 + 136 39 @@ -2423,27 +2426,27 @@ 1 2 - 4954 + 4794 2 3 - 2796 + 2317 3 4 - 1118 + 1078 4 - 6 - 918 + 5 + 599 - 7 + 5 47 - 159 + 679 @@ -2459,32 +2462,32 @@ 1 2 - 4235 + 4115 2 3 - 2317 + 1797 3 4 - 1358 + 1797 4 5 - 1158 + 719 5 - 12 - 759 + 8 + 799 - 26 - 75 - 119 + 8 + 74 + 239 @@ -2500,12 +2503,12 @@ 1 2 - 8390 + 8270 2 3 - 1558 + 1198 @@ -2515,15 +2518,15 @@ diagnostic_for - 5434 + 5452 diagnostic - 4979 + 4996 compilation - 814 + 816 file_number @@ -2531,7 +2534,7 @@ file_number_diagnostic_number - 397 + 398 @@ -2545,7 +2548,7 @@ 1 2 - 4828 + 4844 2 @@ -2566,7 +2569,7 @@ 1 2 - 4979 + 4996 @@ -2582,7 +2585,7 @@ 1 2 - 4979 + 4996 @@ -2598,7 +2601,7 @@ 5 6 - 605 + 607 7 @@ -2634,7 +2637,7 @@ 1 2 - 814 + 816 @@ -2650,7 +2653,7 @@ 5 6 - 605 + 607 7 @@ -2831,7 +2834,7 @@ 1 2 - 397 + 398 @@ -2841,19 +2844,19 @@ compilation_finished - 9651 + 9742 id - 9651 + 9742 cpu_seconds - 6990 + 7258 elapsed_seconds - 134 + 135 @@ -2867,7 +2870,7 @@ 1 2 - 9651 + 9742 @@ -2883,7 +2886,7 @@ 1 2 - 9651 + 9742 @@ -2899,17 +2902,17 @@ 1 2 - 5457 + 5870 2 3 - 1073 + 914 3 - 16 - 458 + 12 + 474 @@ -2925,12 +2928,12 @@ 1 2 - 6341 + 6547 2 3 - 648 + 711 @@ -2954,43 +2957,38 @@ 11 - 8 - 9 - 11 - - - 10 - 11 - 11 + 9 + 10 + 22 - 11 - 12 + 18 + 19 11 - 54 - 55 + 43 + 44 11 - 156 - 157 + 161 + 162 11 - 173 - 174 + 169 + 170 11 - 177 - 178 + 197 + 198 11 - 261 - 262 + 244 + 245 11 @@ -3015,43 +3013,38 @@ 11 - 8 - 9 - 11 - - - 10 - 11 - 11 + 9 + 10 + 22 - 11 - 12 + 16 + 17 11 - 48 - 49 + 40 + 41 11 - 109 - 110 + 116 + 117 11 - 120 - 121 + 132 + 133 11 - 132 - 133 + 143 + 144 11 - 232 - 233 + 228 + 229 11 @@ -4824,31 +4817,31 @@ locations_default - 29785199 + 29765023 id - 29785199 + 29765023 container - 123129 + 123252 startLine - 2093200 + 2095293 startColumn - 36845 + 36882 endLine - 2097398 + 2099495 endColumn - 48039 + 48087 @@ -4862,7 +4855,7 @@ 1 2 - 29785199 + 29765023 @@ -4878,7 +4871,7 @@ 1 2 - 29785199 + 29765023 @@ -4894,7 +4887,7 @@ 1 2 - 29785199 + 29765023 @@ -4910,7 +4903,7 @@ 1 2 - 29785199 + 29765023 @@ -4926,7 +4919,7 @@ 1 2 - 29785199 + 29765023 @@ -4942,67 +4935,67 @@ 1 11 - 9794 + 9804 11 18 - 10260 + 10271 18 30 - 9327 + 9337 30 42 - 9794 + 9804 43 61 - 9794 + 9804 61 79 - 9327 + 9337 80 106 - 9794 + 9804 - 109 + 108 149 - 9327 + 9337 149 199 - 9327 + 9337 206 - 292 - 9327 + 291 + 9337 - 305 + 304 469 - 9327 + 9337 482 850 - 9327 + 9337 - 939 + 936 2380 - 8395 + 8403 @@ -5018,72 +5011,72 @@ 1 8 - 9327 + 9337 8 13 - 9327 + 9337 13 20 - 9794 + 9804 20 32 - 9327 + 9337 32 43 - 9794 + 9804 44 61 - 9327 + 9337 62 72 - 9327 + 9337 73 93 - 9327 + 9337 97 128 - 9327 + 9337 128 180 - 9327 + 9337 180 267 - 9327 + 9337 277 414 - 9327 + 9337 439 1465 - 9327 + 9337 1557 1569 - 932 + 933 @@ -5099,67 +5092,67 @@ 1 4 - 8861 + 8870 4 5 - 7928 + 7936 5 6 - 7462 + 7469 6 8 - 11193 + 11204 8 10 - 9327 + 9337 10 15 - 10727 + 10737 15 23 - 9794 + 9804 23 28 - 11193 + 11204 28 34 - 9794 + 9804 34 44 - 9327 + 9337 44 55 - 9327 + 9337 55 66 - 9794 + 9804 66 77 - 8395 + 8403 @@ -5175,72 +5168,72 @@ 1 8 - 9327 + 9337 8 13 - 9327 + 9337 13 20 - 9794 + 9804 20 32 - 9327 + 9337 32 43 - 9794 + 9804 43 60 - 9327 + 9337 61 71 - 9327 + 9337 72 93 - 9327 + 9337 94 127 - 9327 + 9337 128 179 - 9327 + 9337 180 268 - 9327 + 9337 278 413 - 9327 + 9337 437 1465 - 9327 + 9337 1554 1566 - 932 + 933 @@ -5256,67 +5249,67 @@ 1 9 - 9794 + 9804 9 13 - 9327 + 9337 13 18 - 9327 + 9337 18 26 - 10260 + 10271 27 33 - 9327 + 9337 33 39 - 9327 + 9337 39 47 - 10260 + 10271 47 - 54 - 9327 + 53 + 9337 - 54 + 53 60 - 10260 + 10271 60 66 - 9327 + 9337 66 74 - 9794 + 9804 74 78 - 9794 + 9804 78 90 - 6995 + 7002 @@ -5332,52 +5325,52 @@ 1 2 - 581133 + 583115 2 3 - 314819 + 314200 3 4 - 194954 + 195616 4 6 - 162306 + 162002 6 10 - 183294 + 183011 10 16 - 161840 + 162936 16 25 - 168370 + 169005 25 - 45 - 157176 + 46 + 161068 - 45 - 160 - 157643 + 46 + 169 + 157333 - 160 + 169 265 - 11659 + 7002 @@ -5393,42 +5386,42 @@ 1 2 - 870301 + 871171 2 3 - 273310 + 273583 3 5 - 193555 + 193749 5 8 - 173500 + 173674 8 13 - 187958 + 188146 13 20 - 160907 + 161068 20 51 - 159508 + 159668 51 265 - 74157 + 74231 @@ -5444,47 +5437,47 @@ 1 2 - 611449 + 612060 2 3 - 312954 + 313266 3 4 - 198219 + 198417 4 6 - 182828 + 183011 6 9 - 173034 + 173207 9 13 - 163239 + 163402 13 19 - 173966 + 174607 19 29 - 165105 + 164803 29 52 - 112402 + 112514 @@ -5500,22 +5493,22 @@ 1 2 - 1530256 + 1531786 2 3 - 348400 + 348748 3 5 - 161840 + 162002 5 16 - 52703 + 52755 @@ -5531,47 +5524,52 @@ 1 2 - 585797 + 587783 2 3 - 316218 + 316068 3 4 - 197753 + 197484 4 6 - 168370 + 168538 6 - 10 - 191690 + 9 + 158267 - 10 - 15 - 165571 + 9 + 14 + 170872 - 15 - 22 - 167903 + 14 + 21 + 175074 - 22 - 34 - 164172 + 21 + 32 + 162469 - 34 + 32 + 63 + 157800 + + + 64 66 - 135722 + 933 @@ -5587,67 +5585,67 @@ 1 31 - 2798 + 2801 42 85 - 2798 + 2801 86 128 - 2798 + 2801 129 229 - 2798 + 2801 247 286 - 2798 + 2801 291 360 - 2798 + 2801 373 457 - 2798 + 2801 - 475 + 473 565 - 2798 + 2801 566 - 620 - 2798 + 619 + 2801 - 623 + 619 689 - 2798 + 2801 696 807 - 2798 + 2801 - 820 + 819 1563 - 2798 + 2801 - 1638 - 5632 - 2798 + 1634 + 5631 + 2801 15295 @@ -5668,67 +5666,67 @@ 1 18 - 2798 + 2801 23 35 - 3264 + 3268 38 43 - 2798 + 2801 44 61 - 2798 + 2801 65 73 - 2798 + 2801 73 84 - 3264 + 3268 84 96 - 2798 + 2801 96 101 - 3264 + 3268 101 105 - 3264 + 3268 107 112 - 2798 + 2801 112 126 - 2798 + 2801 137 170 - 2798 + 2801 195 265 - 1399 + 1400 @@ -5744,67 +5742,67 @@ 1 19 - 2798 + 2801 30 72 - 2798 + 2801 83 122 - 2798 + 2801 122 205 - 2798 + 2801 214 261 - 2798 + 2801 265 322 - 2798 + 2801 322 379 - 2798 + 2801 404 430 - 2798 + 2801 453 474 - 2798 + 2801 478 505 - 2798 + 2801 511 583 - 2798 + 2801 585 836 - 2798 + 2801 1104 2196 - 2798 + 2801 2387 @@ -5825,67 +5823,67 @@ 1 19 - 2798 + 2801 30 72 - 2798 + 2801 83 122 - 2798 + 2801 122 205 - 2798 + 2801 214 261 - 2798 + 2801 265 322 - 2798 + 2801 322 380 - 2798 + 2801 404 430 - 2798 + 2801 453 474 - 2798 + 2801 477 504 - 2798 + 2801 514 582 - 2798 + 2801 585 835 - 2798 + 2801 1109 2203 - 2798 + 2801 2382 @@ -5906,67 +5904,67 @@ 1 7 - 2798 + 2801 7 11 - 3264 + 3268 11 16 - 3264 + 3268 16 22 - 2798 + 2801 22 24 - 3264 + 3268 24 28 - 2798 + 2801 29 34 - 3264 + 3268 34 41 - 3264 + 3268 41 46 - 2798 + 2801 47 49 - 1865 + 1867 49 54 - 2798 + 2801 54 74 - 2798 + 2801 75 86 - 1865 + 1867 @@ -5982,52 +5980,52 @@ 1 2 - 591394 + 593386 2 3 - 306890 + 306263 3 4 - 198219 + 198417 4 6 - 159508 + 159668 6 10 - 182828 + 182544 10 16 - 160441 + 162002 16 25 - 170702 + 171339 25 - 45 - 158109 + 46 + 158734 - 45 - 160 - 158109 + 46 + 161 + 158267 - 160 + 162 265 - 11193 + 8870 @@ -6043,47 +6041,47 @@ 1 2 - 885692 + 886577 2 3 - 259784 + 260044 3 4 - 124995 + 125120 4 6 - 140852 + 140993 6 10 - 184694 + 184878 10 15 - 168370 + 168538 15 26 - 163239 + 163402 26 120 - 158109 + 158267 121 265 - 11659 + 11671 @@ -6099,22 +6097,22 @@ 1 2 - 1527924 + 1529452 2 3 - 341404 + 341745 3 5 - 170702 + 170872 5 10 - 57367 + 57424 @@ -6130,47 +6128,47 @@ 1 2 - 622643 + 623265 2 3 - 303159 + 303462 3 4 - 201484 + 201685 4 6 - 183761 + 183945 6 9 - 169769 + 169939 9 13 - 166504 + 166671 13 19 - 174899 + 175074 19 29 - 160907 + 161068 29 52 - 114267 + 114382 @@ -6186,52 +6184,52 @@ 1 2 - 597924 + 599922 2 3 - 306890 + 306263 3 4 - 196354 + 197017 4 6 - 169302 + 169005 6 9 - 154844 + 156400 9 14 - 168370 + 169005 14 21 - 178630 + 177875 21 32 - 163239 + 162002 32 60 - 158109 + 158267 60 65 - 3731 + 3734 @@ -6247,67 +6245,67 @@ 1 2 - 5130 + 5135 2 8 - 3731 + 3734 9 186 - 3731 + 3734 193 288 - 3731 + 3734 294 495 - 3731 + 3734 503 555 - 3731 + 3734 561 - 634 - 3731 + 633 + 3734 640 758 - 3731 + 3734 758 869 - 3731 + 3734 - 876 + 875 1074 - 3731 + 3734 - 1075 + 1074 1281 - 3731 + 3734 1289 1590 - 3731 + 3734 1685 2418 - 1865 + 1867 @@ -6323,67 +6321,62 @@ 1 2 - 5596 + 5602 2 5 - 3731 + 3734 5 65 - 3731 + 3734 70 100 - 3731 + 3734 100 111 - 3731 + 3734 112 122 - 3731 + 4201 122 - 134 - 3731 - - - 139 - 152 - 3731 + 140 + 3734 - 152 - 160 - 3731 + 143 + 153 + 3734 - 160 - 171 - 3731 + 153 + 161 + 4201 - 171 - 175 - 3731 + 161 + 173 + 4201 - 176 - 192 - 3731 + 173 + 178 + 3734 - 207 + 188 265 - 1399 + 3734 @@ -6399,67 +6392,67 @@ 1 2 - 5596 + 5602 2 8 - 3731 + 3734 9 105 - 3731 + 3734 155 241 - 3731 + 3734 253 336 - 3731 + 3734 340 426 - 3731 + 3734 434 488 - 3731 + 3734 489 572 - 3731 + 3734 573 623 - 3731 + 3734 - 628 + 626 696 - 4197 + 4201 701 - 819 - 3731 + 813 + 3734 - 837 + 818 1095 - 3731 + 3734 1172 1174 - 932 + 933 @@ -6475,67 +6468,67 @@ 1 2 - 6063 + 6069 2 4 - 3731 + 3734 4 8 - 4197 + 4201 8 15 - 3731 + 3734 15 23 - 3731 + 3734 23 29 - 3731 + 3734 29 35 - 4197 + 4201 35 39 - 3264 + 3268 39 42 - 3264 + 3268 42 44 - 3264 + 3268 44 46 - 3731 + 3734 46 49 - 3731 + 3734 49 53 - 1399 + 1400 @@ -6551,67 +6544,67 @@ 1 2 - 5596 + 5602 2 8 - 3731 + 3734 9 156 - 3731 + 3734 159 240 - 3731 + 3734 251 335 - 3731 + 3734 342 430 - 3731 + 3734 432 490 - 3731 + 3734 490 573 - 3731 + 3734 574 622 - 3731 + 3734 - 628 + 626 698 - 3731 + 3734 700 - 812 - 3731 + 798 + 3734 - 812 + 811 987 - 3731 + 3734 1096 1180 - 1399 + 1400 @@ -6621,11 +6614,11 @@ locations_stmt - 3820138 + 3819884 id - 3820138 + 3819884 container @@ -6633,7 +6626,7 @@ startLine - 200185 + 200172 startColumn @@ -6641,7 +6634,7 @@ endLine - 194441 + 194428 endColumn @@ -6659,7 +6652,7 @@ 1 2 - 3820138 + 3819884 @@ -6675,7 +6668,7 @@ 1 2 - 3820138 + 3819884 @@ -6691,7 +6684,7 @@ 1 2 - 3820138 + 3819884 @@ -6707,7 +6700,7 @@ 1 2 - 3820138 + 3819884 @@ -6723,7 +6716,7 @@ 1 2 - 3820138 + 3819884 @@ -7124,17 +7117,17 @@ 1 2 - 21577 + 21575 2 3 - 15318 + 15317 3 4 - 12497 + 12496 4 @@ -7144,47 +7137,47 @@ 6 8 - 12538 + 12537 8 11 - 16738 + 16737 11 16 - 17294 + 17293 16 22 - 15379 + 15378 22 29 - 17006 + 17005 29 37 - 17397 + 17396 37 45 - 15112 + 15111 45 56 - 16203 + 16202 56 73 - 8647 + 8646 @@ -7200,62 +7193,62 @@ 1 2 - 22338 + 22337 2 3 - 15750 + 15749 3 4 - 12703 + 12702 4 6 - 14412 + 14411 6 8 - 12744 + 12743 8 11 - 17603 + 17602 11 16 - 16388 + 16387 16 22 - 16244 + 16243 22 29 - 16985 + 16984 29 36 - 16018 + 16017 36 44 - 16347 + 16346 44 54 - 15668 + 15667 54 @@ -7276,52 +7269,52 @@ 1 2 - 26868 + 26866 2 3 - 20877 + 20875 3 4 - 16841 + 16840 4 5 - 16100 + 16099 5 6 - 17459 + 17458 6 7 - 19888 + 19887 7 8 - 22791 + 22790 8 9 - 20424 + 20422 9 10 - 15029 + 15028 10 12 - 16676 + 16675 12 @@ -7342,67 +7335,67 @@ 1 2 - 34651 + 34648 2 3 - 25839 + 25837 3 4 - 18468 + 18466 4 5 - 16244 + 16243 5 6 - 12806 + 12805 6 7 - 12044 + 12043 7 8 - 10191 + 10190 8 9 - 10994 + 10993 9 10 - 10747 + 10746 10 11 - 10541 + 10540 11 12 - 10191 + 10190 12 14 - 15812 + 15811 14 24 - 11653 + 11652 @@ -7418,12 +7411,12 @@ 1 2 - 22174 + 22172 2 3 - 16224 + 16222 3 @@ -7433,47 +7426,47 @@ 4 6 - 16100 + 16099 6 8 - 14721 + 14720 8 10 - 13218 + 13217 10 14 - 18324 + 18322 14 18 - 17047 + 17046 18 22 - 17603 + 17602 22 26 - 18529 + 18528 26 30 - 16409 + 16408 30 36 - 15256 + 15255 36 @@ -7864,67 +7857,67 @@ 1 2 - 17438 + 17437 2 3 - 14432 + 14431 3 4 - 11509 + 11508 4 6 - 15626 + 15625 6 8 - 12518 + 12517 8 11 - 15482 + 15481 11 15 - 14659 + 14658 15 21 - 16121 + 16120 21 27 - 15441 + 15440 27 34 - 14968 + 14967 34 42 - 15771 + 15770 42 52 - 16038 + 16037 52 130 - 14432 + 14431 @@ -7940,62 +7933,62 @@ 1 2 - 24994 + 24993 2 3 - 16162 + 16161 3 4 - 12785 + 12784 4 6 - 15688 + 15687 6 8 - 15029 + 15028 8 11 - 15915 + 15914 11 16 - 17479 + 17478 16 20 - 14618 + 14617 20 26 - 17191 + 17190 26 32 - 16285 + 16284 32 39 - 14885 + 14884 39 59 - 13403 + 13402 @@ -8011,62 +8004,62 @@ 1 2 - 32530 + 32528 2 3 - 23800 + 23799 3 4 - 18488 + 18487 4 5 - 15173 + 15172 5 6 - 13897 + 13896 6 7 - 11694 + 11693 7 8 - 11756 + 11755 8 9 - 10932 + 10931 9 10 - 10191 + 10190 10 12 - 17994 + 17993 12 15 - 17747 + 17746 15 100 - 10232 + 10231 @@ -8082,52 +8075,52 @@ 1 2 - 24994 + 24993 2 3 - 20424 + 20422 3 4 - 16862 + 16861 4 5 - 17829 + 17828 5 6 - 18612 + 18611 6 7 - 20465 + 20463 7 8 - 22462 + 22460 8 9 - 18777 + 18775 9 10 - 12950 + 12949 10 12 - 15050 + 15049 12 @@ -8148,62 +8141,62 @@ 1 2 - 24747 + 24746 2 3 - 16656 + 16655 3 4 - 12559 + 12558 4 6 - 17850 + 17849 6 8 - 15359 + 15358 8 10 - 12847 + 12846 10 13 - 14432 + 14431 13 16 - 15050 + 15049 16 19 - 14679 + 14678 19 22 - 14062 + 14061 22 26 - 17150 + 17149 26 31 - 15359 + 15358 31 @@ -8603,19 +8596,19 @@ locations_expr - 13188829 + 13187951 id - 13188829 + 13187951 container - 4653 + 4652 startLine - 192238 + 192225 startColumn @@ -8623,11 +8616,11 @@ endLine - 192217 + 192204 endColumn - 2800 + 2799 @@ -8641,7 +8634,7 @@ 1 2 - 13188829 + 13187951 @@ -8657,7 +8650,7 @@ 1 2 - 13188829 + 13187951 @@ -8673,7 +8666,7 @@ 1 2 - 13188829 + 13187951 @@ -8689,7 +8682,7 @@ 1 2 - 13188829 + 13187951 @@ -8705,7 +8698,7 @@ 1 2 - 13188829 + 13187951 @@ -8741,47 +8734,47 @@ 27 96 - 350 + 349 100 514 - 350 + 349 525 1401 - 350 + 349 1526 2343 - 350 + 349 2404 3615 - 350 + 349 3668 5162 - 350 + 349 5341 7345 - 350 + 349 7399 9307 - 350 + 349 9382 16759 - 350 + 349 18811 @@ -8817,47 +8810,47 @@ 10 20 - 350 + 349 20 51 - 350 + 349 65 151 - 350 + 349 161 360 - 350 + 349 361 577 - 350 + 349 590 923 - 350 + 349 928 1265 - 350 + 349 1268 1742 - 350 + 349 1781 2320 - 350 + 349 2491 @@ -8883,7 +8876,7 @@ 2 4 - 350 + 349 4 @@ -8893,12 +8886,12 @@ 7 16 - 350 + 349 16 37 - 350 + 349 37 @@ -8979,47 +8972,47 @@ 10 20 - 350 + 349 20 51 - 350 + 349 65 151 - 350 + 349 162 360 - 350 + 349 361 578 - 350 + 349 591 926 - 350 + 349 930 1266 - 350 + 349 1272 1742 - 350 + 349 1785 2324 - 350 + 349 2500 @@ -9055,22 +9048,22 @@ 7 15 - 350 + 349 15 36 - 350 + 349 36 61 - 350 + 349 61 70 - 350 + 349 70 @@ -9095,12 +9088,12 @@ 77 79 - 350 + 349 79 84 - 350 + 349 84 @@ -9121,67 +9114,67 @@ 1 5 - 16141 + 16140 5 9 - 16512 + 16511 9 15 - 16059 + 16058 15 23 - 15132 + 15131 23 32 - 15173 + 15172 32 44 - 15029 + 15028 44 60 - 14782 + 14781 60 80 - 14844 + 14843 80 103 - 14659 + 14658 103 130 - 14803 + 14802 130 159 - 14556 + 14555 159 194 - 14638 + 14637 194 302 - 9903 + 9902 @@ -9197,62 +9190,62 @@ 1 2 - 23553 + 23552 2 3 - 15647 + 15646 3 4 - 11365 + 11364 4 6 - 16388 + 16387 6 8 - 13650 + 13649 8 11 - 16471 + 16469 11 16 - 17376 + 17375 16 21 - 16471 + 16469 21 28 - 16676 + 16675 28 35 - 15832 + 15831 35 43 - 15874 + 15872 43 60 - 12929 + 12928 @@ -9268,62 +9261,62 @@ 1 4 - 15997 + 15996 4 7 - 17562 + 17561 7 11 - 16718 + 16717 11 16 - 17438 + 17437 16 21 - 17541 + 17540 21 26 - 15091 + 15090 26 31 - 16203 + 16202 31 36 - 17747 + 17746 36 40 - 15729 + 15728 40 44 - 16326 + 16325 44 49 - 16924 + 16922 49 63 - 8956 + 8955 @@ -9339,22 +9332,22 @@ 1 2 - 102120 + 102113 2 3 - 44698 + 44695 3 4 - 27692 + 27690 4 6 - 14597 + 14596 6 @@ -9375,57 +9368,57 @@ 1 4 - 16985 + 16984 4 7 - 16676 + 16675 7 11 - 16450 + 16449 11 16 - 16244 + 16243 16 21 - 16471 + 16469 21 27 - 16800 + 16799 27 33 - 16471 + 16469 33 38 - 14494 + 14493 38 43 - 15565 + 15564 43 47 - 14721 + 14720 47 52 - 16800 + 16799 52 @@ -9836,67 +9829,67 @@ 1 5 - 16162 + 16161 5 9 - 16512 + 16511 9 15 - 15832 + 15831 15 23 - 15112 + 15111 23 32 - 15668 + 15667 32 44 - 14762 + 14761 44 60 - 14515 + 14514 60 80 - 15276 + 15275 80 103 - 14556 + 14555 103 130 - 14782 + 14781 130 160 - 14906 + 14905 160 195 - 14576 + 14575 195 299 - 9553 + 9552 @@ -9912,62 +9905,62 @@ 1 2 - 23553 + 23552 2 3 - 15585 + 15584 3 4 - 11365 + 11364 4 6 - 16079 + 16078 6 8 - 13506 + 13505 8 11 - 16532 + 16531 11 15 - 14453 + 14452 15 20 - 16800 + 16799 20 26 - 15009 + 15008 26 33 - 16079 + 16078 33 40 - 14659 + 14658 40 49 - 14618 + 14617 49 @@ -9988,22 +9981,22 @@ 1 2 - 95635 + 95628 2 3 - 50092 + 50089 3 4 - 29421 + 29419 4 6 - 15626 + 15625 6 @@ -10024,62 +10017,62 @@ 1 4 - 15853 + 15852 4 7 - 17479 + 17478 7 11 - 16512 + 16511 11 16 - 17376 + 17375 16 21 - 17335 + 17334 21 26 - 15173 + 15172 26 31 - 16326 + 16325 31 36 - 17706 + 17705 36 40 - 15318 + 15317 40 44 - 16471 + 16469 44 49 - 17006 + 17005 49 63 - 9656 + 9655 @@ -10095,62 +10088,62 @@ 1 4 - 17212 + 17211 4 7 - 16821 + 16819 7 11 - 16450 + 16449 11 16 - 16903 + 16902 16 21 - 16038 + 16037 21 26 - 14535 + 14534 26 32 - 16182 + 16181 32 38 - 17521 + 17519 38 43 - 16162 + 16161 43 47 - 14494 + 14493 47 52 - 16594 + 16593 52 69 - 13300 + 13299 @@ -10535,23 +10528,23 @@ numlines - 1382407 + 1383789 element_id - 1375411 + 1376786 num_lines - 101675 + 101776 num_code - 84884 + 84969 num_comment - 59699 + 59758 @@ -10565,12 +10558,12 @@ 1 2 - 1368415 + 1369783 2 3 - 6995 + 7002 @@ -10586,12 +10579,12 @@ 1 2 - 1369348 + 1370717 2 3 - 6063 + 6069 @@ -10607,7 +10600,7 @@ 1 2 - 1375411 + 1376786 @@ -10623,27 +10616,27 @@ 1 2 - 68094 + 68162 2 3 - 12126 + 12138 3 4 - 7462 + 7469 4 21 - 7928 + 7936 29 921 - 6063 + 6069 @@ -10659,27 +10652,27 @@ 1 2 - 70426 + 70496 2 3 - 12126 + 12138 3 4 - 8395 + 8403 4 6 - 9327 + 9337 6 7 - 1399 + 1400 @@ -10695,22 +10688,22 @@ 1 2 - 69493 + 69562 2 3 - 14924 + 14939 3 4 - 10727 + 10737 4 7 - 6529 + 6536 @@ -10726,27 +10719,27 @@ 1 2 - 52703 + 52755 2 3 - 14458 + 14472 3 5 - 6529 + 6536 5 42 - 6529 + 6536 44 922 - 4663 + 4668 @@ -10762,27 +10755,27 @@ 1 2 - 52703 + 52755 2 3 - 16790 + 16807 3 5 - 6063 + 6069 5 8 - 6529 + 6536 8 12 - 2798 + 2801 @@ -10798,27 +10791,27 @@ 1 2 - 53169 + 53222 2 3 - 15857 + 15873 3 5 - 7462 + 7469 5 7 - 5130 + 5135 7 10 - 3264 + 3268 @@ -10834,32 +10827,32 @@ 1 2 - 34513 + 34548 2 3 - 9327 + 9337 3 4 - 4197 + 4201 4 6 - 4663 + 4668 6 11 - 5130 + 5135 17 2596 - 1865 + 1867 @@ -10875,32 +10868,32 @@ 1 2 - 34513 + 34548 2 3 - 9327 + 9337 3 4 - 4197 + 4201 4 6 - 4663 + 4668 6 8 - 4663 + 4668 10 38 - 2331 + 2334 @@ -10916,32 +10909,32 @@ 1 2 - 34513 + 34548 2 3 - 9327 + 9337 3 4 - 4197 + 4201 4 6 - 4663 + 4668 6 10 - 4663 + 4668 10 37 - 2331 + 2334 @@ -10951,11 +10944,11 @@ diagnostics - 4979 + 4996 id - 4979 + 4996 severity @@ -10967,11 +10960,11 @@ error_message - 397 + 398 full_error_message - 4184 + 4198 location @@ -10989,7 +10982,7 @@ 1 2 - 4979 + 4996 @@ -11005,7 +10998,7 @@ 1 2 - 4979 + 4996 @@ -11021,7 +11014,7 @@ 1 2 - 4979 + 4996 @@ -11037,7 +11030,7 @@ 1 2 - 4979 + 4996 @@ -11053,7 +11046,7 @@ 1 2 - 4979 + 4996 @@ -11285,7 +11278,7 @@ 1 2 - 397 + 398 @@ -11301,7 +11294,7 @@ 1 2 - 397 + 398 @@ -11379,7 +11372,7 @@ 1 2 - 4165 + 4179 43 @@ -11400,7 +11393,7 @@ 1 2 - 4184 + 4198 @@ -11416,7 +11409,7 @@ 1 2 - 4184 + 4198 @@ -11432,7 +11425,7 @@ 1 2 - 4184 + 4198 @@ -11448,7 +11441,7 @@ 1 2 - 4184 + 4198 @@ -11583,15 +11576,15 @@ files - 123129 + 123252 id - 123129 + 123252 name - 123129 + 123252 @@ -11605,7 +11598,7 @@ 1 2 - 123129 + 123252 @@ -11621,7 +11614,7 @@ 1 2 - 123129 + 123252 @@ -11631,15 +11624,15 @@ folders - 16323 + 16340 id - 16323 + 16340 name - 16323 + 16340 @@ -11653,7 +11646,7 @@ 1 2 - 16323 + 16340 @@ -11669,7 +11662,7 @@ 1 2 - 16323 + 16340 @@ -11679,15 +11672,15 @@ containerparent - 138520 + 138659 parent - 16323 + 16340 child - 138520 + 138659 @@ -11701,32 +11694,32 @@ 1 2 - 7462 + 7469 2 3 - 3264 + 3268 3 4 - 1399 + 1400 4 12 - 1399 + 1400 23 28 - 1399 + 1400 40 67 - 1399 + 1400 @@ -11742,7 +11735,7 @@ 1 2 - 138520 + 138659 @@ -11752,11 +11745,11 @@ fileannotations - 5081854 + 5129328 id - 4853 + 4899 kind @@ -11764,11 +11757,11 @@ name - 54265 + 54771 value - 45619 + 46045 @@ -11782,12 +11775,12 @@ 1 2 - 167 + 169 2 3 - 4686 + 4729 @@ -11803,57 +11796,57 @@ 1 102 - 380 + 383 102 225 - 369 + 372 227 299 - 369 + 372 301 452 - 391 + 395 452 555 - 369 + 372 559 626 - 369 + 372 626 716 - 369 + 372 729 904 - 369 + 372 904 934 - 78 + 79 936 937 - 1409 + 1422 1083 2036 - 369 + 372 2293 @@ -11874,57 +11867,57 @@ 1 114 - 380 + 383 114 275 - 369 + 372 275 363 - 369 + 372 393 638 - 369 + 372 643 744 - 369 + 372 751 955 - 369 + 372 955 1087 - 369 + 372 1088 1501 - 246 + 248 1501 1502 - 1409 + 1422 1504 1874 - 369 + 372 1972 4080 - 234 + 237 @@ -12003,62 +11996,62 @@ 1 2 - 8779 + 8861 2 3 - 6162 + 6219 3 5 - 4138 + 4176 5 9 - 4227 + 4267 9 14 - 3947 + 3984 14 18 - 4138 + 4176 18 20 - 4674 + 4718 20 34 - 4182 + 4221 34 128 - 4462 + 4504 128 229 - 4082 + 4120 229 387 - 4205 + 4244 387 434 - 1263 + 1275 @@ -12074,7 +12067,7 @@ 1 2 - 54265 + 54771 @@ -12090,62 +12083,62 @@ 1 2 - 8790 + 8872 2 3 - 7985 + 8060 3 4 - 2538 + 2562 4 6 - 4473 + 4515 6 9 - 4093 + 4131 9 14 - 4171 + 4210 14 17 - 4093 + 4131 17 22 - 4551 + 4594 22 41 - 4171 + 4210 41 82 - 4126 + 4165 82 157 - 4070 + 4109 158 1895 - 1196 + 1207 @@ -12161,67 +12154,67 @@ 1 2 - 7090 + 7156 2 5 - 2214 + 2235 5 8 - 3299 + 3330 8 15 - 3500 + 3533 15 17 - 2516 + 2539 17 19 - 4104 + 4142 19 34 - 3299 + 3330 34 189 - 3590 + 3623 189 201 - 3578 + 3612 201 266 - 3522 + 3555 266 321 - 3646 + 3680 322 399 - 3914 + 3950 399 435 - 1342 + 1354 @@ -12237,7 +12230,7 @@ 1 2 - 45608 + 46034 2 @@ -12258,67 +12251,67 @@ 1 2 - 7113 + 7179 2 5 - 2561 + 2585 5 8 - 3478 + 3510 8 15 - 3522 + 3555 15 17 - 2807 + 2833 17 19 - 3556 + 3589 19 29 - 3478 + 3510 29 39 - 3634 + 3668 39 48 - 3578 + 3612 48 74 - 3534 + 3567 74 102 - 3422 + 3454 102 119 - 3567 + 3601 119 146 - 1364 + 1377 @@ -12328,15 +12321,15 @@ inmacroexpansion - 109786483 + 109779198 id - 18028566 + 18027369 inv - 2700352 + 2700171 @@ -12350,37 +12343,37 @@ 1 3 - 1582063 + 1581956 3 5 - 1077870 + 1077799 5 6 - 1184962 + 1184884 6 7 - 4820246 + 4819927 7 8 - 6386387 + 6385963 8 9 - 2605427 + 2605255 9 21 - 371608 + 371583 @@ -12396,32 +12389,32 @@ 1 2 - 378450 + 378424 2 3 - 544144 + 544101 3 4 - 351538 + 351515 4 7 - 200672 + 200659 7 8 - 207166 + 207152 8 9 - 241904 + 241888 9 @@ -12431,22 +12424,22 @@ 10 11 - 325508 + 325487 11 337 - 224861 + 224853 339 423 - 206367 + 206353 423 7616 - 17526 + 17524 @@ -12456,15 +12449,15 @@ affectedbymacroexpansion - 35691465 + 35689096 id - 5157087 + 5156743 inv - 2784960 + 2784774 @@ -12478,37 +12471,37 @@ 1 2 - 2816122 + 2815934 2 3 - 560166 + 560129 3 4 - 264924 + 264906 4 5 - 565832 + 565794 5 12 - 391929 + 391903 12 50 - 407428 + 407401 50 9900 - 150682 + 150672 @@ -12524,67 +12517,67 @@ 1 4 - 229132 + 229116 4 7 - 231804 + 231788 7 9 - 220493 + 220478 9 12 - 251104 + 251088 12 13 - 334000 + 333978 13 14 - 165599 + 165588 14 15 - 298864 + 298844 15 16 - 121851 + 121843 16 17 - 276627 + 276608 17 18 - 146950 + 146940 18 20 - 252152 + 252135 20 25 - 208993 + 208979 25 109 - 47386 + 47383 @@ -12594,19 +12587,19 @@ macroinvocations - 33182692 + 33491155 id - 33182692 + 33491155 macro_id - 78746 + 79482 location - 753335 + 760372 kind @@ -12624,7 +12617,7 @@ 1 2 - 33182692 + 33491155 @@ -12640,7 +12633,7 @@ 1 2 - 33182692 + 33491155 @@ -12656,7 +12649,7 @@ 1 2 - 33182692 + 33491155 @@ -12672,57 +12665,57 @@ 1 2 - 16105 + 16255 2 3 - 16418 + 16571 3 4 - 3086 + 3115 4 5 - 5222 + 5271 5 8 - 5636 + 5689 8 13 - 6050 + 6107 13 26 - 6117 + 6174 26 61 - 6005 + 6061 61 199 - 5916 + 5971 199 1697 - 5961 + 6016 1716 - 168807 - 2225 + 168783 + 2246 @@ -12738,37 +12731,37 @@ 1 2 - 42074 + 42467 2 3 - 10300 + 10396 3 4 - 5111 + 5158 4 6 - 6777 + 6840 6 13 - 6419 + 6479 13 66 - 5949 + 6005 66 3614 - 2113 + 2133 @@ -12784,12 +12777,12 @@ 1 2 - 73065 + 73747 2 3 - 5681 + 5734 @@ -12805,37 +12798,37 @@ 1 2 - 278617 + 281219 2 3 - 168051 + 169655 3 4 - 70101 + 70733 4 5 - 59734 + 60325 5 9 - 69743 + 70361 9 21 - 58559 + 59106 21 244764 - 48527 + 48969 @@ -12851,12 +12844,12 @@ 1 2 - 707592 + 714202 2 350 - 45742 + 46170 @@ -12872,7 +12865,7 @@ 1 2 - 753335 + 760372 @@ -12891,8 +12884,8 @@ 11 - 2946302 - 2946303 + 2946167 + 2946168 11 @@ -12945,15 +12938,15 @@ macroparent - 29673573 + 29950462 id - 29673573 + 29950462 parent_id - 23071649 + 23286864 @@ -12967,7 +12960,7 @@ 1 2 - 29673573 + 29950462 @@ -12983,17 +12976,17 @@ 1 2 - 17826541 + 17992757 2 3 - 4418192 + 4459466 3 88 - 826915 + 834640 @@ -13003,15 +12996,15 @@ macrolocationbind - 4044068 + 4043799 id - 2831338 + 2831150 location - 2021204 + 2021069 @@ -13025,22 +13018,22 @@ 1 2 - 2230070 + 2229922 2 3 - 341148 + 341125 3 7 - 230540 + 230525 7 57 - 29579 + 29577 @@ -13056,22 +13049,22 @@ 1 2 - 1611131 + 1611024 2 3 - 177694 + 177682 3 8 - 156880 + 156869 8 723 - 75498 + 75493 @@ -13081,19 +13074,19 @@ macro_argument_unexpanded - 83767514 + 84548260 invocation - 25973117 + 26214646 argument_index - 738 + 745 text - 315356 + 318302 @@ -13107,22 +13100,22 @@ 1 2 - 7364296 + 7432674 2 3 - 10575752 + 10673860 3 4 - 6082391 + 6139211 4 67 - 1950677 + 1968900 @@ -13138,22 +13131,22 @@ 1 2 - 7433804 + 7502832 2 3 - 10720943 + 10820407 3 4 - 5917605 + 5972886 4 67 - 1900763 + 1918519 @@ -13169,16 +13162,16 @@ 41230 41231 - 648 + 654 41432 174417 - 55 + 56 718261 - 2322336 + 2322238 33 @@ -13195,12 +13188,12 @@ 2 3 - 648 + 654 13 995 - 55 + 56 6559 @@ -13221,57 +13214,57 @@ 1 2 - 34748 + 35073 2 3 - 60695 + 61262 3 4 - 17581 + 17745 4 5 - 44646 + 45086 5 7 - 23699 + 23931 7 12 - 18353 + 18490 12 16 - 21417 + 21617 16 23 - 24750 + 24981 23 42 - 24101 + 24326 42 - 129 - 23855 + 128 + 23875 - 129 - 522417 - 21506 + 128 + 522393 + 21911 @@ -13287,17 +13280,17 @@ 1 2 - 228065 + 230195 2 3 - 77102 + 77823 3 9 - 10188 + 10283 @@ -13307,19 +13300,19 @@ macro_argument_expanded - 83767514 + 84548260 invocation - 25973117 + 26214646 argument_index - 738 + 745 text - 191113 + 192898 @@ -13333,22 +13326,22 @@ 1 2 - 7364296 + 7432674 2 3 - 10575752 + 10673860 3 4 - 6082391 + 6139211 4 67 - 1950677 + 1968900 @@ -13364,22 +13357,22 @@ 1 2 - 10590693 + 10688941 2 3 - 9116971 + 9201722 3 4 - 5159975 + 5208178 4 9 - 1105476 + 1115803 @@ -13395,16 +13388,16 @@ 41230 41231 - 648 + 654 41432 174417 - 55 + 56 718261 - 2322336 + 2322238 33 @@ -13421,17 +13414,17 @@ 1 2 - 637 + 643 2 76 - 55 + 56 870 13879 - 44 + 45 @@ -13447,62 +13440,62 @@ 1 2 - 20601 + 20793 2 3 - 36963 + 37308 3 4 - 8980 + 9064 4 5 - 16228 + 16402 5 6 - 2393 + 2415 6 7 - 22636 + 22859 7 9 - 14662 + 14776 9 14 - 11933 + 12044 14 19 - 14416 + 14539 19 48 - 14337 + 14483 48 151 - 14349 + 14471 152 - 1060462 - 13610 + 1060426 + 13738 @@ -13518,17 +13511,17 @@ 1 2 - 96719 + 97623 2 3 - 80122 + 80871 3 66 - 14270 + 14404 @@ -13538,19 +13531,19 @@ functions - 4645804 + 4179381 id - 4645804 + 4179381 name - 1916901 + 1895474 kind - 3264 + 3268 @@ -13564,7 +13557,7 @@ 1 2 - 4645804 + 4179381 @@ -13580,7 +13573,7 @@ 1 2 - 4645804 + 4179381 @@ -13596,22 +13589,22 @@ 1 2 - 1504138 + 1498172 2 3 - 152046 + 153131 3 5 - 150180 + 142860 5 - 1676 - 110536 + 952 + 101309 @@ -13627,7 +13620,7 @@ 1 2 - 1916435 + 1895007 2 @@ -13656,8 +13649,8 @@ 466 - 173 - 174 + 167 + 168 466 @@ -13666,13 +13659,13 @@ 466 - 1354 - 1355 + 1075 + 1076 466 - 2382 - 2383 + 1658 + 1659 466 @@ -13714,12 +13707,7 @@ 195 196 - 466 - - - 245 - 246 - 466 + 933 3504 @@ -13734,15 +13722,15 @@ function_entry_point - 1156670 + 1151757 id - 1146876 + 1141953 entry_point - 1156670 + 1151757 @@ -13756,12 +13744,12 @@ 1 2 - 1137081 + 1132149 2 3 - 9794 + 9804 @@ -13777,7 +13765,7 @@ 1 2 - 1156670 + 1151757 @@ -13787,15 +13775,15 @@ function_return_type - 4650935 + 4184517 id - 4645804 + 4179381 return_type - 987367 + 817948 @@ -13809,12 +13797,12 @@ 1 2 - 4640674 + 4174246 2 3 - 5130 + 5135 @@ -13830,22 +13818,22 @@ 1 2 - 510240 + 506082 2 3 - 375917 + 211490 3 - 10 - 75090 + 7 + 66294 - 10 - 2516 - 26118 + 7 + 2231 + 34081 @@ -14197,59 +14185,59 @@ purefunctions - 100911 + 100969 id - 100911 + 100969 function_deleted - 137587 + 96174 id - 137587 + 96174 function_defaulted - 73691 + 73764 id - 73691 + 73764 function_prototyped - 4553923 + 4087409 id - 4553923 + 4087409 member_function_this_type - 545645 + 536525 id - 545645 + 536525 this_type - 187282 + 185332 @@ -14263,7 +14251,7 @@ 1 2 - 545645 + 536525 @@ -14279,32 +14267,32 @@ 1 2 - 67619 + 67897 2 3 - 44812 + 45148 3 4 - 30176 + 28775 4 5 - 15331 + 14805 5 7 - 15366 + 14910 7 66 - 13975 + 13795 @@ -14314,27 +14302,27 @@ fun_decls - 5014726 + 4548672 id - 5009596 + 4543537 function - 4502153 + 4035587 type_id - 985968 + 816548 name - 1819424 + 1797899 location - 3418241 + 3370770 @@ -14348,7 +14336,7 @@ 1 2 - 5009596 + 4543537 @@ -14364,12 +14352,12 @@ 1 2 - 5004465 + 4538401 2 3 - 5130 + 5135 @@ -14385,7 +14373,7 @@ 1 2 - 5009596 + 4543537 @@ -14401,7 +14389,7 @@ 1 2 - 5009596 + 4543537 @@ -14417,17 +14405,17 @@ 1 2 - 4073532 + 3606537 2 3 - 355862 + 356218 3 7 - 72758 + 72831 @@ -14443,12 +14431,12 @@ 1 2 - 4462509 + 3995903 2 3 - 39643 + 39683 @@ -14464,7 +14452,7 @@ 1 2 - 4502153 + 4035587 @@ -14480,17 +14468,17 @@ 1 2 - 4129966 + 3663028 2 - 4 - 371253 + 3 + 311866 - 5 + 3 6 - 932 + 60692 @@ -14506,22 +14494,22 @@ 1 2 - 435617 + 431383 2 3 - 438415 + 274050 3 - 8 - 75090 + 6 + 63493 - 8 - 2761 - 36845 + 6 + 2476 + 47620 @@ -14537,22 +14525,22 @@ 1 2 - 519568 + 515419 2 3 - 367522 + 203086 3 - 11 - 75556 + 7 + 63026 - 11 - 2477 - 23319 + 7 + 2192 + 35014 @@ -14568,17 +14556,17 @@ 1 2 - 858641 + 690027 2 - 5 - 89548 + 4 + 67228 - 5 - 823 - 37778 + 4 + 773 + 59291 @@ -14594,22 +14582,22 @@ 1 2 - 754634 + 595253 2 3 - 131524 + 121385 3 - 10 - 74623 + 7 + 63493 - 10 - 2030 - 25185 + 7 + 1959 + 36415 @@ -14625,27 +14613,27 @@ 1 2 - 1234559 + 1228323 2 3 - 266780 + 267047 3 4 - 80687 + 77966 4 - 6 - 136655 + 7 + 146128 - 6 - 1710 - 100742 + 7 + 986 + 78433 @@ -14661,22 +14649,22 @@ 1 2 - 1413656 + 1407600 2 3 - 151113 + 152198 3 5 - 144117 + 136791 5 - 1660 - 110536 + 936 + 101309 @@ -14692,17 +14680,17 @@ 1 2 - 1601149 + 1579406 2 4 - 134789 + 134924 4 - 930 - 83485 + 562 + 83568 @@ -14718,27 +14706,27 @@ 1 2 - 1255547 + 1236260 2 3 - 293365 + 293191 3 4 - 79754 + 78900 4 8 - 137587 + 137258 8 - 653 - 53169 + 542 + 52288 @@ -14754,17 +14742,17 @@ 1 2 - 2962102 + 2966464 2 4 - 296163 + 277785 4 55 - 159975 + 126520 @@ -14780,17 +14768,17 @@ 1 2 - 3029264 + 3033693 2 - 6 - 262582 + 7 + 244170 - 6 + 7 55 - 126394 + 92906 @@ -14806,12 +14794,12 @@ 1 2 - 3208361 + 3207367 2 - 25 - 209879 + 18 + 163402 @@ -14827,12 +14815,12 @@ 1 2 - 3246139 + 3232578 2 13 - 172101 + 138192 @@ -14842,22 +14830,22 @@ fun_def - 1935091 + 1888938 id - 1935091 + 1888938 fun_specialized - 26118 + 26144 id - 26118 + 26144 @@ -14875,15 +14863,15 @@ fun_decl_specifiers - 2903802 + 2906705 id - 1687899 + 1689587 name - 2798 + 2801 @@ -14897,17 +14885,17 @@ 1 2 - 490652 + 491142 2 3 - 1178591 + 1179769 3 4 - 18655 + 18674 @@ -15079,26 +15067,26 @@ fun_decl_empty_throws - 1933692 + 1472027 fun_decl - 1933692 + 1472027 fun_decl_noexcept - 61680 + 61885 fun_decl - 61680 + 61885 constant - 61582 + 61786 @@ -15112,7 +15100,7 @@ 1 2 - 61680 + 61885 @@ -15128,7 +15116,7 @@ 1 2 - 61483 + 61687 2 @@ -15143,11 +15131,11 @@ fun_decl_empty_noexcept - 869834 + 863234 fun_decl - 869834 + 863234 @@ -15252,19 +15240,19 @@ param_decl_bind - 7379371 + 6995048 id - 7379371 + 6995048 index - 7928 + 7936 fun_decl - 4222780 + 3835301 @@ -15278,7 +15266,7 @@ 1 2 - 7379371 + 6995048 @@ -15294,7 +15282,7 @@ 1 2 - 7379371 + 6995048 @@ -15310,7 +15298,7 @@ 2 3 - 932 + 933 5 @@ -15325,7 +15313,7 @@ 10 11 - 932 + 933 11 @@ -15335,7 +15323,7 @@ 12 13 - 932 + 933 13 @@ -15373,8 +15361,8 @@ 466 - 9054 - 9055 + 8215 + 8216 466 @@ -15391,7 +15379,7 @@ 2 3 - 932 + 933 5 @@ -15406,7 +15394,7 @@ 10 11 - 932 + 933 11 @@ -15416,7 +15404,7 @@ 12 13 - 932 + 933 13 @@ -15454,8 +15442,8 @@ 466 - 9054 - 9055 + 8215 + 8216 466 @@ -15472,22 +15460,27 @@ 1 2 - 2363245 + 1973908 2 3 - 1060592 + 1061652 3 4 - 502312 + 502814 4 + 8 + 290857 + + + 8 18 - 296630 + 6069 @@ -15503,22 +15496,27 @@ 1 2 - 2363245 + 1973908 2 3 - 1060592 + 1061652 3 4 - 502312 + 502814 4 + 8 + 290857 + + + 8 18 - 296630 + 6069 @@ -15528,27 +15526,27 @@ var_decls - 8493599 + 8110391 id - 8422707 + 8039427 variable - 7411553 + 7027262 type_id - 2384233 + 2043471 name - 666951 + 667617 location - 5306692 + 5311998 @@ -15562,7 +15560,7 @@ 1 2 - 8422707 + 8039427 @@ -15578,12 +15576,12 @@ 1 2 - 8354612 + 7971265 2 3 - 68094 + 68162 @@ -15599,7 +15597,7 @@ 1 2 - 8422707 + 8039427 @@ -15615,12 +15613,12 @@ 1 2 - 8419908 + 8036626 2 3 - 2798 + 2801 @@ -15636,17 +15634,17 @@ 1 2 - 6560374 + 6175232 2 3 - 697733 + 698431 3 7 - 153445 + 153598 @@ -15662,12 +15660,12 @@ 1 2 - 7240384 + 6855922 2 4 - 171168 + 171339 @@ -15683,12 +15681,12 @@ 1 2 - 7296352 + 6911946 2 3 - 115200 + 115315 @@ -15704,12 +15702,17 @@ 1 2 - 6866798 + 6481963 2 + 3 + 542964 + + + 3 4 - 544754 + 2334 @@ -15725,27 +15728,27 @@ 1 2 - 1469158 + 1165763 2 3 - 509308 + 477136 3 4 - 97943 + 94773 4 7 - 187026 + 184878 7 762 - 120797 + 120918 @@ -15761,22 +15764,22 @@ 1 2 - 1602548 + 1299287 2 3 - 484588 + 452392 3 - 7 - 186559 + 6 + 155933 - 7 + 6 724 - 110536 + 135857 @@ -15792,17 +15795,17 @@ 1 2 - 1877257 + 1539256 2 3 - 384779 + 383296 3 128 - 122196 + 120918 @@ -15818,22 +15821,22 @@ 1 2 - 1705156 + 1365582 2 3 - 401569 + 404305 3 - 8 - 188425 + 7 + 173207 - 8 + 7 592 - 89082 + 100376 @@ -15849,37 +15852,37 @@ 1 2 - 340937 + 341278 2 3 - 86750 + 86837 3 4 - 48505 + 48554 4 6 - 51770 + 51822 6 12 - 52236 + 52288 12 33 - 50371 + 50421 34 - 3223 - 36379 + 2384 + 36415 @@ -15895,37 +15898,37 @@ 1 2 - 368455 + 368823 2 3 - 77888 + 77966 3 4 - 45240 + 45285 4 6 - 49438 + 49487 6 14 - 53169 + 53222 14 56 - 50837 + 50888 56 - 3140 - 21920 + 2301 + 21942 @@ -15941,27 +15944,27 @@ 1 2 - 456605 + 457061 2 3 - 93746 + 93840 3 5 - 46639 + 46686 5 19 - 50837 + 50888 19 - 1927 - 19122 + 1182 + 19141 @@ -15977,32 +15980,32 @@ 1 2 - 378716 + 379094 2 3 - 90481 + 90571 3 5 - 59699 + 59758 5 9 - 51303 + 51355 9 21 - 50371 + 50421 21 1010 - 36379 + 36415 @@ -16018,17 +16021,17 @@ 1 2 - 4491892 + 4496383 2 3 - 531228 + 531760 3 - 1735 - 283570 + 896 + 283854 @@ -16044,17 +16047,17 @@ 1 2 - 4880869 + 4885749 2 17 - 415095 + 415510 17 - 1731 - 10727 + 892 + 10737 @@ -16070,12 +16073,12 @@ 1 2 - 4956893 + 4961848 2 - 1513 - 349799 + 759 + 350149 @@ -16091,12 +16094,12 @@ 1 2 - 5297364 + 5302660 2 6 - 9327 + 9337 @@ -16106,26 +16109,26 @@ var_def - 4024560 + 3994969 id - 4024560 + 3994969 var_decl_specifiers - 378249 + 378628 id - 378249 + 378628 name - 1865 + 1867 @@ -16139,7 +16142,7 @@ 1 2 - 378249 + 378628 @@ -16191,19 +16194,19 @@ type_decls - 3280187 + 3283466 id - 3280187 + 3283466 type_id - 3229815 + 3233045 location - 3163120 + 3166283 @@ -16217,7 +16220,7 @@ 1 2 - 3280187 + 3283466 @@ -16233,7 +16236,7 @@ 1 2 - 3280187 + 3283466 @@ -16249,12 +16252,12 @@ 1 2 - 3188306 + 3191493 2 5 - 41509 + 41551 @@ -16270,12 +16273,12 @@ 1 2 - 3188306 + 3191493 2 5 - 41509 + 41551 @@ -16291,12 +16294,12 @@ 1 2 - 3110884 + 3113994 2 20 - 52236 + 52288 @@ -16312,12 +16315,12 @@ 1 2 - 3110884 + 3113994 2 20 - 52236 + 52288 @@ -16327,33 +16330,33 @@ type_def - 2639354 + 2641993 id - 2639354 + 2641993 type_decl_top - 742974 + 743717 type_decl - 742974 + 743717 namespace_decls - 311514 + 311691 id - 311514 + 311691 namespace_id @@ -16361,11 +16364,11 @@ location - 311514 + 311691 bodylocation - 311514 + 311691 @@ -16379,7 +16382,7 @@ 1 2 - 311514 + 311691 @@ -16395,7 +16398,7 @@ 1 2 - 311514 + 311691 @@ -16411,7 +16414,7 @@ 1 2 - 311514 + 311691 @@ -16427,7 +16430,7 @@ 1 2 - 291 + 292 2 @@ -16493,7 +16496,7 @@ 1 2 - 291 + 292 2 @@ -16559,7 +16562,7 @@ 1 2 - 291 + 292 2 @@ -16625,7 +16628,7 @@ 1 2 - 311514 + 311691 @@ -16641,7 +16644,7 @@ 1 2 - 311514 + 311691 @@ -16657,7 +16660,7 @@ 1 2 - 311514 + 311691 @@ -16673,7 +16676,7 @@ 1 2 - 311514 + 311691 @@ -16689,7 +16692,7 @@ 1 2 - 311514 + 311691 @@ -16705,7 +16708,7 @@ 1 2 - 311514 + 311691 @@ -16715,19 +16718,23 @@ usings - 369388 + 369757 id - 369388 + 369757 element_id - 315286 + 315601 location - 247658 + 247905 + + + kind + 933 @@ -16741,7 +16748,7 @@ 1 2 - 369388 + 369757 @@ -16757,7 +16764,23 @@ 1 2 - 369388 + 369757 + + + + + + + id + kind + + + 12 + + + 1 + 2 + 369757 @@ -16773,17 +16796,17 @@ 1 2 - 263049 + 263312 2 3 - 50837 + 50888 3 5 - 1399 + 1400 @@ -16799,17 +16822,33 @@ 1 2 - 263049 + 263312 2 3 - 50837 + 50888 3 5 - 1399 + 1400 + + + + + + + element_id + kind + + + 12 + + + 1 + 2 + 315601 @@ -16825,22 +16864,22 @@ 1 2 - 202417 + 202619 2 4 - 10727 + 10737 4 5 - 31248 + 31280 5 11 - 3264 + 3268 @@ -16856,22 +16895,101 @@ 1 2 - 202417 + 202619 2 4 - 10727 + 10737 4 5 - 31248 + 31280 5 11 - 3264 + 3268 + + + + + + + location + kind + + + 12 + + + 1 + 2 + 247905 + + + + + + + kind + id + + + 12 + + + 14 + 15 + 466 + + + 778 + 779 + 466 + + + + + + + kind + element_id + + + 12 + + + 9 + 10 + 466 + + + 667 + 668 + 466 + + + + + + + kind + location + + + 12 + + + 14 + 15 + 466 + + + 517 + 518 + 466 @@ -16881,15 +16999,15 @@ using_container - 462471 + 466792 parent - 10949 + 11051 child - 293245 + 295985 @@ -16903,47 +17021,47 @@ 1 2 - 3265 + 3296 2 4 - 928 + 936 4 6 - 413 + 417 6 7 - 2471 + 2494 7 17 - 894 + 903 19 143 - 760 + 767 178 179 - 1286 + 1298 179 183 - 849 + 857 201 488 - 78 + 79 @@ -16959,22 +17077,22 @@ 1 2 - 216288 + 218308 2 3 - 51245 + 51724 3 11 - 23598 + 23818 13 41 - 2113 + 2133 @@ -16984,27 +17102,27 @@ static_asserts - 134648 + 134725 id - 134648 + 134725 condition - 134648 + 134725 message - 30220 + 30237 location - 17563 + 17573 enclosing - 4646 + 4648 @@ -17018,7 +17136,7 @@ 1 2 - 134648 + 134725 @@ -17034,7 +17152,7 @@ 1 2 - 134648 + 134725 @@ -17050,7 +17168,7 @@ 1 2 - 134648 + 134725 @@ -17066,7 +17184,7 @@ 1 2 - 134648 + 134725 @@ -17082,7 +17200,7 @@ 1 2 - 134648 + 134725 @@ -17098,7 +17216,7 @@ 1 2 - 134648 + 134725 @@ -17114,7 +17232,7 @@ 1 2 - 134648 + 134725 @@ -17130,7 +17248,7 @@ 1 2 - 134648 + 134725 @@ -17146,7 +17264,7 @@ 1 2 - 22235 + 22247 2 @@ -17156,17 +17274,17 @@ 3 4 - 2875 + 2877 4 12 - 1612 + 1613 12 17 - 2431 + 2432 17 @@ -17187,7 +17305,7 @@ 1 2 - 22235 + 22247 2 @@ -17197,17 +17315,17 @@ 3 4 - 2875 + 2877 4 12 - 1612 + 1613 12 17 - 2431 + 2432 17 @@ -17228,12 +17346,12 @@ 1 2 - 28005 + 28020 2 33 - 2215 + 2216 @@ -17249,7 +17367,7 @@ 1 2 - 23663 + 23676 2 @@ -17259,17 +17377,17 @@ 3 4 - 2672 + 2673 4 12 - 1453 + 1454 12 37 - 2170 + 2172 @@ -17285,17 +17403,17 @@ 1 2 - 3287 + 3289 2 3 - 2830 + 2832 3 4 - 1402 + 1403 4 @@ -17305,7 +17423,7 @@ 5 6 - 3694 + 3696 6 @@ -17315,7 +17433,7 @@ 14 15 - 2069 + 2070 16 @@ -17325,12 +17443,12 @@ 17 18 - 3433 + 3435 19 52 - 380 + 381 @@ -17346,17 +17464,17 @@ 1 2 - 3287 + 3289 2 3 - 2830 + 2832 3 4 - 1402 + 1403 4 @@ -17366,7 +17484,7 @@ 5 6 - 3694 + 3696 6 @@ -17376,7 +17494,7 @@ 14 15 - 2069 + 2070 16 @@ -17386,12 +17504,12 @@ 17 18 - 3433 + 3435 19 52 - 380 + 381 @@ -17407,17 +17525,17 @@ 1 2 - 5300 + 5303 2 3 - 5998 + 6001 3 4 - 6080 + 6084 4 @@ -17438,12 +17556,12 @@ 1 2 - 3897 + 3899 2 3 - 6277 + 6281 3 @@ -17453,17 +17571,17 @@ 4 5 - 3706 + 3709 5 13 - 380 + 381 13 14 - 2069 + 2070 16 @@ -17484,7 +17602,7 @@ 1 2 - 3776 + 3778 2 @@ -17494,7 +17612,7 @@ 3 210 - 361 + 362 223 @@ -17515,7 +17633,7 @@ 1 2 - 3776 + 3778 2 @@ -17525,7 +17643,7 @@ 3 210 - 361 + 362 223 @@ -17546,7 +17664,7 @@ 1 2 - 3948 + 3950 2 @@ -17572,7 +17690,7 @@ 1 2 - 3935 + 3937 2 @@ -17592,23 +17710,23 @@ params - 6739471 + 6354509 id - 6575765 + 6190639 function - 3879510 + 3491688 index - 7928 + 7936 type_id - 2188812 + 1846453 @@ -17622,7 +17740,7 @@ 1 2 - 6575765 + 6190639 @@ -17638,7 +17756,7 @@ 1 2 - 6575765 + 6190639 @@ -17654,12 +17772,12 @@ 1 2 - 6452169 + 6066919 2 4 - 123595 + 123719 @@ -17675,22 +17793,22 @@ 1 2 - 2256906 + 1867462 2 3 - 951921 + 952872 3 4 - 429553 + 429983 4 18 - 241128 + 241369 @@ -17706,22 +17824,22 @@ 1 2 - 2256906 + 1867462 2 3 - 951921 + 952872 3 4 - 429553 + 429983 4 18 - 241128 + 241369 @@ -17737,22 +17855,22 @@ 1 2 - 2554936 + 2165790 2 3 - 825993 + 826819 3 4 - 346068 + 346414 4 12 - 152512 + 152665 @@ -17768,7 +17886,7 @@ 2 3 - 932 + 933 4 @@ -17783,7 +17901,7 @@ 8 9 - 932 + 933 9 @@ -17793,7 +17911,7 @@ 10 11 - 932 + 933 11 @@ -17831,8 +17949,8 @@ 466 - 8318 - 8319 + 7479 + 7480 466 @@ -17849,7 +17967,7 @@ 2 3 - 932 + 933 4 @@ -17864,7 +17982,7 @@ 8 9 - 932 + 933 9 @@ -17874,7 +17992,7 @@ 10 11 - 932 + 933 11 @@ -17912,8 +18030,8 @@ 466 - 8318 - 8319 + 7479 + 7480 466 @@ -17930,7 +18048,7 @@ 1 2 - 932 + 933 3 @@ -17950,12 +18068,12 @@ 6 7 - 1399 + 1400 7 8 - 932 + 933 11 @@ -17988,8 +18106,8 @@ 466 - 3609 - 3610 + 2868 + 2869 466 @@ -18006,22 +18124,22 @@ 1 2 - 1488280 + 1183971 2 3 - 440281 + 406173 3 - 8 - 170235 + 7 + 154065 - 8 + 7 518 - 90015 + 102243 @@ -18037,22 +18155,22 @@ 1 2 - 1707954 + 1404798 2 3 - 248124 + 212423 3 - 9 - 168370 + 7 + 147529 - 9 + 7 502 - 64363 + 81701 @@ -18068,17 +18186,17 @@ 1 2 - 1761590 + 1420205 2 3 - 348400 + 347348 3 13 - 78821 + 78900 @@ -18088,11 +18206,11 @@ overrides - 125718 + 125725 new - 122746 + 122753 old @@ -18110,7 +18228,7 @@ 1 2 - 119782 + 119788 2 @@ -18171,19 +18289,19 @@ membervariables - 1056565 + 1056495 id - 1054767 + 1054697 type_id - 327749 + 327727 name - 451649 + 451619 @@ -18197,12 +18315,12 @@ 1 2 - 1053049 + 1052979 2 4 - 1718 + 1717 @@ -18218,7 +18336,7 @@ 1 2 - 1054767 + 1054697 @@ -18234,17 +18352,17 @@ 1 2 - 243045 + 243029 2 3 - 51901 + 51897 3 10 - 25531 + 25529 10 @@ -18265,17 +18383,17 @@ 1 2 - 255271 + 255254 2 3 - 46467 + 46464 3 40 - 24612 + 24610 41 @@ -18296,22 +18414,22 @@ 1 2 - 295346 + 295326 2 3 - 86542 + 86536 3 5 - 41193 + 41190 5 646 - 28567 + 28565 @@ -18327,17 +18445,17 @@ 1 2 - 367864 + 367839 2 3 - 51741 + 51738 3 650 - 32043 + 32041 @@ -18518,19 +18636,19 @@ localvariables - 576915 + 576947 id - 576915 + 576947 type_id - 37715 + 37717 name - 90543 + 90548 @@ -18544,7 +18662,7 @@ 1 2 - 576915 + 576947 @@ -18560,7 +18678,7 @@ 1 2 - 576915 + 576947 @@ -18576,12 +18694,12 @@ 1 2 - 21174 + 21175 2 3 - 5362 + 5366 3 @@ -18591,7 +18709,7 @@ 4 7 - 3380 + 3376 7 @@ -18617,17 +18735,17 @@ 1 2 - 26907 + 26913 2 3 - 4562 + 4563 3 5 - 2918 + 2914 5 @@ -18653,22 +18771,22 @@ 1 2 - 57028 + 57031 2 3 - 14284 + 14285 3 5 - 8309 + 8310 5 15 - 6981 + 6982 15 @@ -18689,12 +18807,12 @@ 1 2 - 76488 + 76492 2 3 - 7410 + 7411 3 @@ -18709,15 +18827,15 @@ autoderivation - 149570 + 148484 var - 149570 + 148484 derivation_type - 492 + 494 @@ -18731,7 +18849,7 @@ 1 2 - 149570 + 148484 @@ -18750,13 +18868,13 @@ 98 - 101 - 102 + 93 + 94 98 - 377 - 378 + 369 + 370 98 @@ -18777,15 +18895,15 @@ orphaned_variables - 37338 + 37414 var - 37338 + 37414 function - 32818 + 32886 @@ -18799,7 +18917,7 @@ 1 2 - 37338 + 37414 @@ -18815,12 +18933,12 @@ 1 2 - 30767 + 30830 2 47 - 2051 + 2055 @@ -18830,19 +18948,19 @@ enumconstants - 241686 + 241670 id - 241686 + 241670 parent - 28527 + 28525 index - 10228 + 10227 type_id @@ -18850,11 +18968,11 @@ name - 241407 + 241391 location - 221589 + 221574 @@ -18868,7 +18986,7 @@ 1 2 - 241686 + 241670 @@ -18884,7 +19002,7 @@ 1 2 - 241686 + 241670 @@ -18900,7 +19018,7 @@ 1 2 - 241686 + 241670 @@ -18916,7 +19034,7 @@ 1 2 - 241686 + 241670 @@ -18932,7 +19050,7 @@ 1 2 - 241686 + 241670 @@ -18983,7 +19101,7 @@ 8 11 - 2597 + 2596 11 @@ -19049,7 +19167,7 @@ 8 11 - 2597 + 2596 11 @@ -19080,7 +19198,7 @@ 1 2 - 28527 + 28525 @@ -19131,7 +19249,7 @@ 8 11 - 2597 + 2596 11 @@ -19167,7 +19285,7 @@ 2 3 - 4195 + 4194 3 @@ -19197,7 +19315,7 @@ 8 11 - 2517 + 2516 11 @@ -19233,12 +19351,12 @@ 3 4 - 1758 + 1757 4 5 - 879 + 878 5 @@ -19248,12 +19366,12 @@ 9 12 - 839 + 838 12 20 - 879 + 878 20 @@ -19289,12 +19407,12 @@ 3 4 - 1758 + 1757 4 5 - 879 + 878 5 @@ -19304,12 +19422,12 @@ 9 12 - 839 + 838 12 20 - 879 + 878 20 @@ -19335,7 +19453,7 @@ 1 2 - 10228 + 10227 @@ -19361,12 +19479,12 @@ 3 4 - 1758 + 1757 4 5 - 879 + 878 5 @@ -19376,12 +19494,12 @@ 9 12 - 839 + 838 12 20 - 879 + 878 20 @@ -19417,12 +19535,12 @@ 3 4 - 1758 + 1757 4 5 - 879 + 878 5 @@ -19432,12 +19550,12 @@ 9 12 - 839 + 838 12 20 - 879 + 878 20 @@ -19543,7 +19661,7 @@ 1 2 - 241127 + 241111 2 @@ -19564,7 +19682,7 @@ 1 2 - 241127 + 241111 2 @@ -19585,7 +19703,7 @@ 1 2 - 241407 + 241391 @@ -19601,7 +19719,7 @@ 1 2 - 241407 + 241391 @@ -19617,7 +19735,7 @@ 1 2 - 241127 + 241111 2 @@ -19638,7 +19756,7 @@ 1 2 - 220830 + 220815 2 @@ -19659,7 +19777,7 @@ 1 2 - 221589 + 221574 @@ -19675,7 +19793,7 @@ 1 2 - 220830 + 220815 2 @@ -19696,7 +19814,7 @@ 1 2 - 221589 + 221574 @@ -19712,7 +19830,7 @@ 1 2 - 220830 + 220815 2 @@ -19727,31 +19845,31 @@ builtintypes - 26118 + 26144 id - 26118 + 26144 name - 26118 + 26144 kind - 26118 + 26144 size - 3264 + 3268 sign - 1399 + 1400 alignment - 2331 + 2334 @@ -19765,7 +19883,7 @@ 1 2 - 26118 + 26144 @@ -19781,7 +19899,7 @@ 1 2 - 26118 + 26144 @@ -19797,7 +19915,7 @@ 1 2 - 26118 + 26144 @@ -19813,7 +19931,7 @@ 1 2 - 26118 + 26144 @@ -19829,7 +19947,7 @@ 1 2 - 26118 + 26144 @@ -19845,7 +19963,7 @@ 1 2 - 26118 + 26144 @@ -19861,7 +19979,7 @@ 1 2 - 26118 + 26144 @@ -19877,7 +19995,7 @@ 1 2 - 26118 + 26144 @@ -19893,7 +20011,7 @@ 1 2 - 26118 + 26144 @@ -19909,7 +20027,7 @@ 1 2 - 26118 + 26144 @@ -19925,7 +20043,7 @@ 1 2 - 26118 + 26144 @@ -19941,7 +20059,7 @@ 1 2 - 26118 + 26144 @@ -19957,7 +20075,7 @@ 1 2 - 26118 + 26144 @@ -19973,7 +20091,7 @@ 1 2 - 26118 + 26144 @@ -19989,7 +20107,7 @@ 1 2 - 26118 + 26144 @@ -20143,12 +20261,12 @@ 1 2 - 932 + 933 3 4 - 2331 + 2334 @@ -20164,12 +20282,12 @@ 1 2 - 1865 + 1867 2 3 - 1399 + 1400 @@ -20263,7 +20381,7 @@ 5 6 - 932 + 933 7 @@ -20284,7 +20402,7 @@ 5 6 - 1399 + 1400 @@ -20408,7 +20526,7 @@ 2 3 - 2331 + 2334 @@ -20424,7 +20542,7 @@ 3 4 - 2331 + 2334 @@ -20434,23 +20552,23 @@ derivedtypes - 4330518 + 3669564 id - 4330518 + 3669564 name - 2160828 + 1552795 kind - 2798 + 2801 type_id - 2670603 + 2362807 @@ -20464,7 +20582,7 @@ 1 2 - 4330518 + 3669564 @@ -20480,7 +20598,7 @@ 1 2 - 4330518 + 3669564 @@ -20496,7 +20614,7 @@ 1 2 - 4330518 + 3669564 @@ -20512,17 +20630,17 @@ 1 2 - 1899178 + 1324031 2 - 5 - 164638 + 4 + 120451 - 5 + 4 1153 - 97011 + 108312 @@ -20538,12 +20656,12 @@ 1 2 - 2159895 + 1551861 2 3 - 932 + 933 @@ -20559,17 +20677,17 @@ 1 2 - 1899178 + 1324031 2 - 5 - 164638 + 4 + 120451 - 5 + 4 1135 - 97011 + 108312 @@ -20588,8 +20706,8 @@ 466 - 1077 - 1078 + 714 + 715 466 @@ -20603,13 +20721,13 @@ 466 - 2166 - 2167 + 1825 + 1826 466 - 3455 - 3456 + 2734 + 2735 466 @@ -20634,23 +20752,23 @@ 466 - 606 - 607 + 428 + 429 466 - 760 - 761 + 606 + 607 466 - 1128 - 1129 + 814 + 815 466 - 1939 - 1940 + 1278 + 1279 466 @@ -20670,8 +20788,8 @@ 466 - 1077 - 1078 + 714 + 715 466 @@ -20685,13 +20803,13 @@ 466 - 2121 - 2122 + 1780 + 1781 466 - 3455 - 3456 + 2734 + 2735 466 @@ -20708,22 +20826,22 @@ 1 2 - 1651053 + 1515446 2 3 - 560145 + 546232 3 4 - 353997 + 218493 4 72 - 105406 + 82635 @@ -20739,22 +20857,22 @@ 1 2 - 1662247 + 1526650 2 3 - 552683 + 538763 3 4 - 351198 + 215691 4 72 - 104473 + 81701 @@ -20770,22 +20888,22 @@ 1 2 - 1655251 + 1519647 2 3 - 563876 + 549967 3 4 - 353064 + 217559 4 6 - 98410 + 75632 @@ -20795,11 +20913,11 @@ pointerishsize - 3210227 + 2707354 id - 3210227 + 2707354 size @@ -20821,7 +20939,7 @@ 1 2 - 3210227 + 2707354 @@ -20837,7 +20955,7 @@ 1 2 - 3210227 + 2707354 @@ -20851,8 +20969,8 @@ 12 - 6883 - 6884 + 5799 + 5800 466 @@ -20883,8 +21001,8 @@ 12 - 6883 - 6884 + 5799 + 5800 466 @@ -20911,23 +21029,23 @@ arraysizes - 88149 + 88237 id - 88149 + 88237 num_elements - 31715 + 31746 bytesize - 33114 + 33147 alignment - 1865 + 1867 @@ -20941,7 +21059,7 @@ 1 2 - 88149 + 88237 @@ -20957,7 +21075,7 @@ 1 2 - 88149 + 88237 @@ -20973,7 +21091,7 @@ 1 2 - 88149 + 88237 @@ -20989,22 +21107,22 @@ 1 2 - 1865 + 1867 2 3 - 23786 + 23810 3 5 - 2798 + 2801 5 13 - 2798 + 2801 13 @@ -21025,17 +21143,17 @@ 1 2 - 26584 + 26611 2 3 - 2331 + 2334 3 7 - 2798 + 2801 @@ -21051,17 +21169,17 @@ 1 2 - 26584 + 26611 2 3 - 2798 + 2801 3 5 - 2331 + 2334 @@ -21077,27 +21195,27 @@ 1 2 - 1865 + 1867 2 3 - 23786 + 23810 3 4 - 3264 + 3268 4 6 - 2331 + 2334 7 16 - 1865 + 1867 @@ -21113,17 +21231,17 @@ 1 2 - 27517 + 27545 2 3 - 3731 + 3734 3 5 - 1865 + 1867 @@ -21139,17 +21257,17 @@ 1 2 - 27517 + 27545 2 3 - 4663 + 4668 4 5 - 932 + 933 @@ -21201,7 +21319,7 @@ 7 8 - 932 + 933 68 @@ -21247,15 +21365,15 @@ typedefbase - 1671747 + 1686077 id - 1671747 + 1686077 type_id - 786932 + 793470 @@ -21269,7 +21387,7 @@ 1 2 - 1671747 + 1686077 @@ -21285,22 +21403,22 @@ 1 2 - 612416 + 617392 2 3 - 82538 + 83252 3 6 - 61467 + 62030 6 5437 - 30510 + 30795 @@ -21310,19 +21428,19 @@ decltypes - 165094 + 165647 id - 16587 + 16642 expr - 165094 + 165647 base_type - 9903 + 9936 parentheses_would_change_meaning @@ -21340,37 +21458,37 @@ 1 2 - 5055 + 5072 2 3 - 6153 + 6174 3 5 - 1098 + 1101 5 12 - 1287 + 1291 12 18 - 1344 + 1348 18 46 - 1249 + 1253 51 740 - 397 + 398 @@ -21386,7 +21504,7 @@ 1 2 - 16587 + 16642 @@ -21402,7 +21520,7 @@ 1 2 - 16587 + 16642 @@ -21418,7 +21536,7 @@ 1 2 - 165094 + 165647 @@ -21434,7 +21552,7 @@ 1 2 - 165094 + 165647 @@ -21450,7 +21568,7 @@ 1 2 - 165094 + 165647 @@ -21466,17 +21584,17 @@ 1 2 - 7195 + 7219 2 3 - 2253 + 2260 4 149 - 454 + 455 @@ -21492,32 +21610,32 @@ 1 2 - 719 + 721 2 3 - 6097 + 6117 3 4 - 340 + 341 4 5 - 965 + 968 5 7 - 757 + 759 7 32 - 795 + 797 32 @@ -21538,7 +21656,7 @@ 1 2 - 9903 + 9936 @@ -21596,19 +21714,19 @@ usertypes - 5228803 + 5234031 id - 5228803 + 5234031 name - 1351159 + 1352509 kind - 5130 + 5135 @@ -21622,7 +21740,7 @@ 1 2 - 5228803 + 5234031 @@ -21638,7 +21756,7 @@ 1 2 - 5228803 + 5234031 @@ -21654,27 +21772,27 @@ 1 2 - 982703 + 983686 2 3 - 153445 + 153598 3 7 - 104473 + 104577 7 61 - 101675 + 101776 65 874 - 8861 + 8870 @@ -21690,17 +21808,17 @@ 1 2 - 1210772 + 1211983 2 3 - 125461 + 125586 3 7 - 14924 + 14939 @@ -21842,19 +21960,19 @@ usertypesize - 1704689 + 1706394 id - 1704689 + 1706394 size - 13525 + 13539 alignment - 2331 + 2334 @@ -21868,7 +21986,7 @@ 1 2 - 1704689 + 1706394 @@ -21884,7 +22002,7 @@ 1 2 - 1704689 + 1706394 @@ -21900,12 +22018,12 @@ 1 2 - 3264 + 3268 2 3 - 4197 + 4201 3 @@ -21915,32 +22033,32 @@ 4 5 - 932 + 933 6 8 - 932 + 933 9 15 - 932 + 933 37 84 - 932 + 933 92 163 - 932 + 933 740 2470 - 932 + 933 @@ -21956,12 +22074,12 @@ 1 2 - 10260 + 10271 2 3 - 2798 + 2801 3 @@ -22048,26 +22166,26 @@ usertype_final - 8966 + 8996 id - 8966 + 8996 usertype_uuid - 36637 + 36658 id - 36637 + 36658 uuid - 36263 + 36283 @@ -22081,7 +22199,7 @@ 1 2 - 36637 + 36658 @@ -22097,7 +22215,7 @@ 1 2 - 35888 + 35908 2 @@ -22112,15 +22230,15 @@ mangled_name - 9476303 + 9019378 id - 9476303 + 9019378 mangled_name - 6447972 + 6061784 is_complete @@ -22138,7 +22256,7 @@ 1 2 - 9476303 + 9019378 @@ -22154,7 +22272,7 @@ 1 2 - 9476303 + 9019378 @@ -22170,12 +22288,12 @@ 1 2 - 6167199 + 5789134 2 874 - 280772 + 272649 @@ -22191,7 +22309,7 @@ 1 2 - 6447972 + 6061784 @@ -22205,8 +22323,8 @@ 12 - 20318 - 20319 + 19319 + 19320 466 @@ -22221,8 +22339,8 @@ 12 - 13825 - 13826 + 12984 + 12985 466 @@ -22233,59 +22351,59 @@ is_pod_class - 530392 + 534692 id - 530392 + 534692 is_standard_layout_class - 1252748 + 1254001 id - 1252748 + 1254001 is_complete - 1644057 + 1645701 id - 1644057 + 1645701 is_class_template - 397838 + 398236 id - 397838 + 398236 class_instantiation - 1088576 + 1089664 to - 1088576 + 1089664 from - 168370 + 168538 @@ -22299,7 +22417,7 @@ 1 2 - 1088576 + 1089664 @@ -22315,47 +22433,47 @@ 1 2 - 59699 + 59758 2 3 - 29383 + 29412 3 4 - 15857 + 15873 4 5 - 13059 + 13072 5 6 - 9794 + 9804 6 10 - 12592 + 12605 10 16 - 13059 + 13072 16 70 - 13525 + 13539 70 84 - 1399 + 1400 @@ -22365,19 +22483,19 @@ class_template_argument - 2857290 + 2883045 type_id - 1304038 + 1315588 index - 1252 + 1264 arg_type - 832719 + 840476 @@ -22391,27 +22509,27 @@ 1 2 - 536264 + 540946 2 3 - 395848 + 399241 3 4 - 229284 + 231426 4 7 - 119255 + 120369 7 113 - 23385 + 23604 @@ -22427,22 +22545,22 @@ 1 2 - 562669 + 567598 2 3 - 406987 + 410484 3 4 - 242604 + 244870 4 113 - 91776 + 92633 @@ -22463,32 +22581,32 @@ 2 3 - 794 + 801 3 26 - 100 + 101 29 64 - 100 + 101 69 411 - 100 + 101 592 8901 - 100 + 101 13095 - 114267 - 44 + 114211 + 45 @@ -22509,31 +22627,31 @@ 2 3 - 794 + 801 3 14 - 111 + 112 14 26 - 100 + 101 28 145 - 100 + 101 195 3469 - 100 + 101 - 10524 - 39738 + 10523 + 39736 33 @@ -22550,27 +22668,27 @@ 1 2 - 518414 + 523381 2 3 - 172815 + 174385 3 4 - 50853 + 51317 4 10 - 63480 + 64017 10 10265 - 27154 + 27374 @@ -22586,17 +22704,17 @@ 1 2 - 733975 + 740821 2 3 - 80581 + 81424 3 22 - 18162 + 18230 @@ -22606,19 +22724,19 @@ class_template_argument_value - 494849 + 495344 type_id - 304558 + 304863 index - 1865 + 1867 arg_value - 494849 + 495344 @@ -22632,17 +22750,17 @@ 1 2 - 249523 + 249773 2 3 - 53169 + 53222 3 4 - 1865 + 1867 @@ -22658,22 +22776,22 @@ 1 2 - 189358 + 189547 2 3 - 81153 + 81234 3 4 - 12126 + 12138 4 9 - 21920 + 21942 @@ -22751,7 +22869,7 @@ 1 2 - 494849 + 495344 @@ -22767,7 +22885,7 @@ 1 2 - 494849 + 495344 @@ -22777,15 +22895,15 @@ is_proxy_class_for - 62031 + 62093 id - 62031 + 62093 templ_param_id - 62031 + 62093 @@ -22799,7 +22917,7 @@ 1 2 - 62031 + 62093 @@ -22815,7 +22933,7 @@ 1 2 - 62031 + 62093 @@ -22825,19 +22943,19 @@ type_mentions - 4029404 + 4029136 id - 4029404 + 4029136 type_id - 198215 + 198202 location - 3995882 + 3995616 kind @@ -22855,7 +22973,7 @@ 1 2 - 4029404 + 4029136 @@ -22871,7 +22989,7 @@ 1 2 - 4029404 + 4029136 @@ -22887,7 +23005,7 @@ 1 2 - 4029404 + 4029136 @@ -22903,12 +23021,12 @@ 1 2 - 97609 + 97603 2 3 - 21735 + 21733 3 @@ -22923,22 +23041,22 @@ 5 7 - 14383 + 14382 7 12 - 15862 + 15861 12 27 - 15182 + 15181 27 8555 - 14423 + 14422 @@ -22954,12 +23072,12 @@ 1 2 - 97609 + 97603 2 3 - 21735 + 21733 3 @@ -22974,22 +23092,22 @@ 5 7 - 14383 + 14382 7 12 - 15862 + 15861 12 27 - 15182 + 15181 27 8555 - 14423 + 14422 @@ -23005,7 +23123,7 @@ 1 2 - 198215 + 198202 @@ -23021,12 +23139,12 @@ 1 2 - 3962360 + 3962096 2 3 - 33522 + 33519 @@ -23042,12 +23160,12 @@ 1 2 - 3962360 + 3962096 2 3 - 33522 + 33519 @@ -23063,7 +23181,7 @@ 1 2 - 3995882 + 3995616 @@ -23121,26 +23239,26 @@ is_function_template - 1401530 + 1402931 id - 1401530 + 1402931 function_instantiation - 894135 + 894823 to - 894135 + 894823 from - 144138 + 144434 @@ -23154,7 +23272,7 @@ 1 2 - 894135 + 894823 @@ -23170,27 +23288,27 @@ 1 2 - 99951 + 100156 2 3 - 14219 + 14248 3 6 - 11855 + 11879 6 21 - 11889 + 11914 22 870 - 6223 + 6235 @@ -23200,19 +23318,19 @@ function_template_argument - 2308747 + 2313492 function_id - 1318866 + 1321577 index - 556 + 557 arg_type - 300617 + 301235 @@ -23226,22 +23344,22 @@ 1 2 - 673026 + 674410 2 3 - 389687 + 390488 3 4 - 186413 + 186796 4 15 - 69739 + 69883 @@ -23257,22 +23375,22 @@ 1 2 - 690409 + 691828 2 3 - 399456 + 400277 3 4 - 166527 + 166869 4 9 - 62473 + 62602 @@ -23288,7 +23406,7 @@ 1 2 - 208 + 209 7 @@ -23354,7 +23472,7 @@ 1 2 - 208 + 209 3 @@ -23420,32 +23538,32 @@ 1 2 - 184153 + 184531 2 3 - 44013 + 44103 3 5 - 23153 + 23201 5 16 - 23188 + 23236 16 107 - 22701 + 22748 108 957 - 3407 + 3414 @@ -23461,17 +23579,17 @@ 1 2 - 270893 + 271450 2 4 - 25656 + 25709 4 17 - 4067 + 4075 @@ -23481,19 +23599,19 @@ function_template_argument_value - 358259 + 358995 function_id - 192357 + 192753 index - 556 + 557 arg_value - 355651 + 356382 @@ -23507,12 +23625,12 @@ 1 2 - 183110 + 183486 2 8 - 9247 + 9266 @@ -23528,17 +23646,17 @@ 1 2 - 175774 + 176136 2 31 - 15088 + 15119 32 97 - 1494 + 1497 @@ -23554,7 +23672,7 @@ 1 2 - 208 + 209 2 @@ -23615,7 +23733,7 @@ 1 2 - 208 + 209 2 @@ -23676,12 +23794,12 @@ 1 2 - 353044 + 353770 2 3 - 2607 + 2612 @@ -23697,7 +23815,7 @@ 1 2 - 355651 + 356382 @@ -23707,26 +23825,26 @@ is_variable_template - 40299 + 40432 id - 40299 + 40432 variable_instantiation - 178341 + 178834 to - 178341 + 178834 from - 24829 + 24912 @@ -23740,7 +23858,7 @@ 1 2 - 178341 + 178834 @@ -23756,42 +23874,42 @@ 1 2 - 12217 + 12258 2 3 - 2857 + 2866 3 4 - 1182 + 1186 4 6 - 2167 + 2174 6 8 - 1280 + 1285 8 11 - 2069 + 2076 11 31 - 1872 + 1878 33 291 - 1182 + 1186 @@ -23801,19 +23919,19 @@ variable_template_argument - 322099 + 323068 variable_id - 169671 + 170134 index - 1675 + 1680 arg_type - 175287 + 175868 @@ -23827,22 +23945,22 @@ 1 2 - 86017 + 86204 2 3 - 54192 + 54371 3 4 - 19213 + 19277 4 17 - 10247 + 10281 @@ -23858,22 +23976,22 @@ 1 2 - 90353 + 90554 2 3 - 55473 + 55657 3 4 - 14385 + 14433 4 17 - 9459 + 9490 @@ -23894,12 +24012,12 @@ 20 21 - 591 + 593 27 28 - 295 + 296 28 @@ -23932,8 +24050,8 @@ 98 - 1392 - 1393 + 1391 + 1392 98 @@ -23955,7 +24073,7 @@ 10 11 - 394 + 395 11 @@ -23965,7 +24083,7 @@ 12 13 - 295 + 296 13 @@ -24016,22 +24134,22 @@ 1 2 - 138338 + 138895 2 3 - 21578 + 21551 3 11 - 13301 + 13345 11 119 - 2069 + 2076 @@ -24047,17 +24165,17 @@ 1 2 - 158241 + 158766 2 3 - 14976 + 15026 3 7 - 2069 + 2076 @@ -24067,19 +24185,19 @@ variable_template_argument_value - 11922 + 11961 variable_id - 8079 + 8106 index - 394 + 395 arg_value - 11922 + 11961 @@ -24093,12 +24211,12 @@ 1 2 - 7685 + 7710 2 3 - 394 + 395 @@ -24114,17 +24232,17 @@ 1 2 - 4828 + 4844 2 3 - 2955 + 2965 4 5 - 295 + 296 @@ -24202,7 +24320,7 @@ 1 2 - 11922 + 11961 @@ -24218,7 +24336,7 @@ 1 2 - 11922 + 11961 @@ -24228,15 +24346,15 @@ routinetypes - 537719 + 538824 id - 537719 + 538824 return_type - 280175 + 280751 @@ -24250,7 +24368,7 @@ 1 2 - 537719 + 538824 @@ -24266,17 +24384,17 @@ 1 2 - 244019 + 244521 2 3 - 20928 + 20971 3 3595 - 15227 + 15258 @@ -24286,19 +24404,19 @@ routinetypeargs - 982237 + 983219 routine - 423024 + 423447 index - 7928 + 7936 type_id - 226670 + 226896 @@ -24312,27 +24430,27 @@ 1 2 - 152512 + 152665 2 3 - 133856 + 133990 3 4 - 63430 + 63493 4 5 - 45707 + 45752 5 18 - 27517 + 27545 @@ -24348,27 +24466,27 @@ 1 2 - 182362 + 182544 2 3 - 133390 + 133523 3 4 - 58766 + 58825 4 5 - 33580 + 33614 5 11 - 14924 + 14939 @@ -24384,7 +24502,7 @@ 2 3 - 932 + 933 4 @@ -24399,7 +24517,7 @@ 8 9 - 932 + 933 9 @@ -24409,7 +24527,7 @@ 10 11 - 1399 + 1400 13 @@ -24460,27 +24578,27 @@ 1 2 - 932 + 933 3 4 - 932 + 933 4 5 - 1399 + 1400 5 6 - 932 + 933 6 7 - 932 + 933 10 @@ -24526,27 +24644,27 @@ 1 2 - 146449 + 146595 2 3 - 30782 + 30813 3 5 - 16790 + 16807 5 12 - 18189 + 18207 12 110 - 14458 + 14472 @@ -24562,22 +24680,22 @@ 1 2 - 172567 + 172740 2 3 - 30782 + 30813 3 6 - 18655 + 18674 6 14 - 4663 + 4668 @@ -24587,19 +24705,19 @@ ptrtomembers - 37778 + 37816 id - 37778 + 37816 type_id - 37778 + 37816 class_id - 15391 + 15406 @@ -24613,7 +24731,7 @@ 1 2 - 37778 + 37816 @@ -24629,7 +24747,7 @@ 1 2 - 37778 + 37816 @@ -24645,7 +24763,7 @@ 1 2 - 37778 + 37816 @@ -24661,7 +24779,7 @@ 1 2 - 37778 + 37816 @@ -24677,12 +24795,12 @@ 1 2 - 13525 + 13539 8 9 - 1399 + 1400 28 @@ -24703,12 +24821,12 @@ 1 2 - 13525 + 13539 8 9 - 1399 + 1400 28 @@ -24723,15 +24841,15 @@ specifiers - 24719 + 24743 id - 24719 + 24743 str - 24719 + 24743 @@ -24745,7 +24863,7 @@ 1 2 - 24719 + 24743 @@ -24761,7 +24879,7 @@ 1 2 - 24719 + 24743 @@ -24771,15 +24889,15 @@ typespecifiers - 1290060 + 1132149 type_id - 1271871 + 1113941 spec_id - 3731 + 3734 @@ -24793,12 +24911,12 @@ 1 2 - 1253681 + 1095733 2 3 - 18189 + 18207 @@ -24839,11 +24957,11 @@ 219 220 - 932 + 933 - 2042 - 2043 + 1701 + 1702 466 @@ -24854,15 +24972,15 @@ funspecifiers - 12596680 + 10305126 func_id - 3851434 + 4068267 spec_id - 695 + 8403 @@ -24876,27 +24994,27 @@ 1 2 - 310491 + 1357645 2 3 - 539770 + 640539 3 4 - 1132801 + 985553 4 5 - 1622683 + 780132 5 8 - 245688 + 304396 @@ -24910,99 +25028,94 @@ 12 - 13 - 14 - 69 - - - 98 - 99 - 34 + 1 + 2 + 466 - 202 - 203 - 34 + 23 + 24 + 466 - 296 - 297 - 34 + 31 + 32 + 466 - 304 - 305 - 34 + 35 + 36 + 466 - 572 - 573 - 34 + 56 + 57 + 466 - 709 - 710 - 34 + 166 + 167 + 466 - 1599 - 1600 - 34 + 189 + 190 + 466 - 1646 - 1647 - 34 + 192 + 193 + 466 - 3782 - 3783 - 34 + 218 + 219 + 466 - 3923 - 3924 - 34 + 276 + 277 + 466 - 5095 - 5096 - 34 + 315 + 316 + 466 - 6823 - 6824 - 34 + 827 + 828 + 466 - 9692 - 9693 - 34 + 846 + 847 + 466 - 12228 - 12229 - 34 + 942 + 943 + 466 - 50664 - 50665 - 34 + 1824 + 1825 + 466 - 77775 - 77776 - 34 + 4200 + 4201 + 466 - 89276 - 89277 - 34 + 5497 + 5498 + 466 - 97622 - 97623 - 34 + 6435 + 6436 + 466 @@ -25012,15 +25125,15 @@ varspecifiers - 2243847 + 2246090 var_id - 1223832 + 1225055 spec_id - 3731 + 3734 @@ -25034,22 +25147,22 @@ 1 2 - 729448 + 730177 2 3 - 202417 + 202619 3 4 - 58299 + 58358 4 5 - 233666 + 233899 @@ -25110,19 +25223,19 @@ attributes - 707258 + 709603 id - 707258 + 709603 kind - 295 + 296 name - 1576 + 1581 name_space @@ -25130,7 +25243,7 @@ location - 456496 + 458009 @@ -25144,7 +25257,7 @@ 1 2 - 707258 + 709603 @@ -25160,7 +25273,7 @@ 1 2 - 707258 + 709603 @@ -25176,7 +25289,7 @@ 1 2 - 707258 + 709603 @@ -25192,7 +25305,7 @@ 1 2 - 707258 + 709603 @@ -25383,7 +25496,7 @@ 1 2 - 1379 + 1384 2 @@ -25404,7 +25517,7 @@ 1 2 - 1576 + 1581 @@ -25420,7 +25533,7 @@ 1 2 - 295 + 296 2 @@ -25580,17 +25693,17 @@ 1 2 - 398559 + 399880 2 3 - 35274 + 35391 3 202 - 22662 + 22737 @@ -25606,7 +25719,7 @@ 1 2 - 456496 + 458009 @@ -25622,12 +25735,12 @@ 1 2 - 452456 + 453956 2 3 - 4039 + 4053 @@ -25643,7 +25756,7 @@ 1 2 - 456496 + 458009 @@ -25653,27 +25766,27 @@ attribute_args - 410431 + 410841 id - 410431 + 410841 kind - 1399 + 1400 attribute - 298495 + 298794 index - 1399 + 1400 location - 327412 + 327739 @@ -25687,7 +25800,7 @@ 1 2 - 410431 + 410841 @@ -25703,7 +25816,7 @@ 1 2 - 410431 + 410841 @@ -25719,7 +25832,7 @@ 1 2 - 410431 + 410841 @@ -25735,7 +25848,7 @@ 1 2 - 410431 + 410841 @@ -25803,7 +25916,7 @@ 1 2 - 932 + 933 3 @@ -25850,17 +25963,17 @@ 1 2 - 216409 + 216625 2 3 - 52236 + 52288 3 4 - 29849 + 29879 @@ -25876,12 +25989,12 @@ 1 2 - 274242 + 274517 2 3 - 24252 + 24277 @@ -25897,17 +26010,17 @@ 1 2 - 216409 + 216625 2 3 - 52236 + 52288 3 4 - 29849 + 29879 @@ -25923,17 +26036,17 @@ 1 2 - 216409 + 216625 2 3 - 52236 + 52288 3 4 - 29849 + 29879 @@ -25975,7 +26088,7 @@ 1 2 - 932 + 933 3 @@ -26048,17 +26161,17 @@ 1 2 - 278440 + 278718 2 3 - 23786 + 23810 3 9 - 24719 + 24743 17 @@ -26079,12 +26192,12 @@ 1 2 - 314819 + 315134 2 3 - 12592 + 12605 @@ -26100,17 +26213,17 @@ 1 2 - 278440 + 278718 2 3 - 23786 + 23810 3 9 - 24719 + 24743 17 @@ -26131,7 +26244,7 @@ 1 2 - 327412 + 327739 @@ -26141,15 +26254,15 @@ attribute_arg_value - 39177 + 39216 arg - 39177 + 39216 value - 15857 + 15873 @@ -26163,7 +26276,7 @@ 1 2 - 39177 + 39216 @@ -26179,12 +26292,12 @@ 1 2 - 14458 + 14472 2 34 - 1399 + 1400 @@ -26242,15 +26355,15 @@ attribute_arg_constant - 370787 + 371158 arg - 370787 + 371158 constant - 370787 + 371158 @@ -26264,7 +26377,7 @@ 1 2 - 370787 + 371158 @@ -26280,7 +26393,7 @@ 1 2 - 370787 + 371158 @@ -26391,15 +26504,15 @@ typeattributes - 82963 + 83238 type_id - 58330 + 58523 spec_id - 82963 + 83238 @@ -26413,17 +26526,17 @@ 1 2 - 49659 + 49824 2 3 - 6897 + 6920 3 13 - 1773 + 1779 @@ -26439,7 +26552,7 @@ 1 2 - 82963 + 83238 @@ -26449,15 +26562,15 @@ funcattributes - 652026 + 652678 func_id - 443079 + 443522 spec_id - 652026 + 652678 @@ -26471,22 +26584,22 @@ 1 2 - 333941 + 334275 2 3 - 65762 + 65828 3 6 - 34979 + 35014 6 9 - 8395 + 8403 @@ -26502,7 +26615,7 @@ 1 2 - 652026 + 652678 @@ -26570,15 +26683,15 @@ stmtattributes - 973 + 982 stmt_id - 973 + 982 spec_id - 973 + 982 @@ -26592,7 +26705,7 @@ 1 2 - 973 + 982 @@ -26608,7 +26721,7 @@ 1 2 - 973 + 982 @@ -26618,15 +26731,15 @@ unspecifiedtype - 10143254 + 9488111 type_id - 10143254 + 9488111 unspecified_type_id - 6815961 + 6490367 @@ -26640,7 +26753,7 @@ 1 2 - 10143254 + 9488111 @@ -26656,17 +26769,17 @@ 1 2 - 4583307 + 4558943 2 3 - 1995256 + 1715731 3 145 - 237397 + 215691 @@ -26676,19 +26789,19 @@ member - 4941022 + 3881054 parent - 638852 + 545766 index - 8691 + 92906 child - 4896383 + 3809624 @@ -26701,43 +26814,48 @@ 1 + 2 + 129788 + + + 2 3 - 19051 + 64894 3 4 - 344213 + 73297 4 5 - 37755 + 75165 5 - 7 - 52461 + 6 + 40617 - 7 - 10 - 52148 + 6 + 8 + 46686 - 10 - 15 - 49540 + 8 + 14 + 45752 - 15 - 24 - 48915 + 14 + 30 + 41551 - 24 - 251 - 34765 + 30 + 200 + 28011 @@ -26752,43 +26870,53 @@ 1 + 2 + 129788 + + + 2 3 - 19051 + 64894 3 4 - 344144 + 73297 4 5 - 37790 + 76099 5 + 6 + 39683 + + + 6 7 - 52565 + 24277 7 - 10 - 52496 + 9 + 42017 - 10 - 15 - 49158 + 9 + 17 + 43885 - 15 - 24 - 48984 + 17 + 41 + 41551 - 24 - 255 - 34661 + 41 + 200 + 10271 @@ -26804,62 +26932,62 @@ 1 2 - 1390 + 26144 2 3 - 799 + 7002 3 4 - 938 + 3734 - 5 - 22 - 660 + 4 + 5 + 7936 - 22 - 42 - 660 + 5 + 6 + 5602 - 42 - 56 - 660 + 6 + 7 + 5602 - 56 - 100 - 660 + 7 + 9 + 7469 - 104 - 164 - 660 + 9 + 16 + 7002 - 181 - 299 - 660 + 16 + 52 + 7002 - 300 - 727 - 660 + 52 + 107 + 7002 - 845 - 4002 - 660 + 108 + 577 + 7002 - 4606 - 18045 - 278 + 737 + 1162 + 1400 @@ -26875,62 +27003,62 @@ 1 2 - 799 + 26144 2 3 - 869 + 7002 3 4 - 1147 + 3734 4 - 15 - 660 + 5 + 7936 - 16 - 35 - 730 + 5 + 6 + 5602 - 36 - 55 - 660 + 6 + 7 + 5602 - 57 - 93 - 730 + 7 + 9 + 7469 - 97 - 135 - 660 + 9 + 16 + 7002 - 140 - 256 - 660 + 16 + 52 + 7002 - 268 - 612 - 660 + 52 + 107 + 7002 - 619 - 2611 - 660 + 108 + 577 + 7002 - 2770 - 18057 - 451 + 738 + 1163 + 1400 @@ -26946,7 +27074,7 @@ 1 2 - 4896383 + 3809624 @@ -26962,12 +27090,12 @@ 1 2 - 4853100 + 3738193 2 - 8 - 43283 + 3 + 71430 @@ -26977,15 +27105,15 @@ enclosingfunction - 117812 + 118326 child - 117812 + 118326 parent - 67294 + 67663 @@ -26999,7 +27127,7 @@ 1 2 - 117812 + 118326 @@ -27015,22 +27143,22 @@ 1 2 - 35565 + 35762 2 3 - 20880 + 21053 3 4 - 5905 + 5960 4 45 - 4943 + 4887 @@ -27040,27 +27168,27 @@ derivations - 390765 + 391568 derivation - 390765 + 391568 sub - 370531 + 371293 index - 208 + 209 super - 202335 + 202751 location - 37651 + 37728 @@ -27074,7 +27202,7 @@ 1 2 - 390765 + 391568 @@ -27090,7 +27218,7 @@ 1 2 - 390765 + 391568 @@ -27106,7 +27234,7 @@ 1 2 - 390765 + 391568 @@ -27122,7 +27250,7 @@ 1 2 - 390765 + 391568 @@ -27138,12 +27266,12 @@ 1 2 - 355582 + 356313 2 7 - 14949 + 14979 @@ -27159,12 +27287,12 @@ 1 2 - 355582 + 356313 2 7 - 14949 + 14979 @@ -27180,12 +27308,12 @@ 1 2 - 355582 + 356313 2 7 - 14949 + 14979 @@ -27201,12 +27329,12 @@ 1 2 - 355582 + 356313 2 7 - 14949 + 14979 @@ -27351,12 +27479,12 @@ 1 2 - 194965 + 195366 2 1519 - 7370 + 7385 @@ -27372,12 +27500,12 @@ 1 2 - 194965 + 195366 2 1519 - 7370 + 7385 @@ -27393,12 +27521,12 @@ 1 2 - 201883 + 202298 2 4 - 451 + 452 @@ -27414,12 +27542,12 @@ 1 2 - 198685 + 199093 2 108 - 3650 + 3657 @@ -27435,27 +27563,27 @@ 1 2 - 27986 + 28043 2 5 - 3198 + 3205 5 15 - 2885 + 2891 15 134 - 2850 + 2856 136 476 - 730 + 731 @@ -27471,27 +27599,27 @@ 1 2 - 27986 + 28043 2 5 - 3198 + 3205 5 15 - 2885 + 2891 15 134 - 2850 + 2856 136 476 - 730 + 731 @@ -27507,7 +27635,7 @@ 1 2 - 37651 + 37728 @@ -27523,22 +27651,22 @@ 1 2 - 30350 + 30412 2 5 - 3337 + 3344 5 45 - 2850 + 2856 54 415 - 1112 + 1114 @@ -27548,11 +27676,11 @@ derspecifiers - 392642 + 393449 der_id - 390382 + 391184 spec_id @@ -27570,12 +27698,12 @@ 1 2 - 388122 + 388920 2 3 - 2259 + 2264 @@ -27616,15 +27744,15 @@ direct_base_offsets - 361874 + 362618 der_id - 361874 + 362618 offset - 347 + 348 @@ -27638,7 +27766,7 @@ 1 2 - 361874 + 362618 @@ -27689,19 +27817,19 @@ virtual_base_offsets - 6442 + 6502 sub - 3556 + 3589 super - 492 + 496 offset - 246 + 248 @@ -27715,22 +27843,22 @@ 1 2 - 2796 + 2822 2 4 - 313 + 316 4 7 - 257 + 259 7 11 - 190 + 191 @@ -27746,17 +27874,17 @@ 1 2 - 2997 + 3025 2 4 - 301 + 304 4 8 - 257 + 259 @@ -27772,22 +27900,22 @@ 1 2 - 78 + 79 2 3 - 44 + 45 3 4 - 55 + 56 4 5 - 89 + 90 5 @@ -27797,22 +27925,22 @@ 8 13 - 44 + 45 13 15 - 44 + 45 15 23 - 44 + 45 24 60 - 44 + 45 194 @@ -27833,12 +27961,12 @@ 1 2 - 279 + 282 2 3 - 78 + 79 4 @@ -27848,12 +27976,12 @@ 6 8 - 44 + 45 8 10 - 44 + 45 14 @@ -27940,7 +28068,7 @@ 1 2 - 78 + 79 2 @@ -27950,7 +28078,7 @@ 3 4 - 44 + 45 5 @@ -27980,23 +28108,23 @@ frienddecls - 705602 + 707052 id - 705602 + 707052 type_id - 41822 + 41908 decl_id - 69253 + 69395 location - 6257 + 6270 @@ -28010,7 +28138,7 @@ 1 2 - 705602 + 707052 @@ -28026,7 +28154,7 @@ 1 2 - 705602 + 707052 @@ -28042,7 +28170,7 @@ 1 2 - 705602 + 707052 @@ -28058,47 +28186,47 @@ 1 2 - 6118 + 6131 2 3 - 13037 + 13063 3 6 - 2920 + 2926 6 10 - 3163 + 3170 10 17 - 3233 + 3239 17 24 - 3302 + 3309 25 36 - 3267 + 3274 37 55 - 3198 + 3205 55 103 - 3580 + 3588 @@ -28114,47 +28242,47 @@ 1 2 - 6118 + 6131 2 3 - 13037 + 13063 3 6 - 2920 + 2926 6 10 - 3163 + 3170 10 17 - 3233 + 3239 17 24 - 3302 + 3309 25 36 - 3267 + 3274 37 55 - 3198 + 3205 55 103 - 3580 + 3588 @@ -28170,12 +28298,12 @@ 1 2 - 40397 + 40480 2 13 - 1425 + 1428 @@ -28191,37 +28319,37 @@ 1 2 - 39945 + 40027 2 3 - 5805 + 5817 3 8 - 5944 + 5957 8 15 - 5353 + 5364 15 32 - 5214 + 5225 32 71 - 5214 + 5225 72 160 - 1773 + 1776 @@ -28237,37 +28365,37 @@ 1 2 - 39945 + 40027 2 3 - 5805 + 5817 3 8 - 5944 + 5957 8 15 - 5353 + 5364 15 32 - 5214 + 5225 32 71 - 5214 + 5225 72 160 - 1773 + 1776 @@ -28283,12 +28411,12 @@ 1 2 - 68592 + 68733 2 5 - 660 + 661 @@ -28304,12 +28432,12 @@ 1 2 - 5875 + 5887 2 20106 - 382 + 383 @@ -28325,7 +28453,7 @@ 1 2 - 6118 + 6131 2 @@ -28346,12 +28474,12 @@ 1 2 - 5910 + 5922 2 1837 - 347 + 348 @@ -28361,19 +28489,19 @@ comments - 8267972 + 8295380 id - 8267972 + 8295380 contents - 3148277 + 3158713 location - 8267972 + 8295380 @@ -28387,7 +28515,7 @@ 1 2 - 8267972 + 8295380 @@ -28403,7 +28531,7 @@ 1 2 - 8267972 + 8295380 @@ -28419,17 +28547,17 @@ 1 2 - 2879976 + 2889523 2 7 - 236672 + 237457 7 32784 - 31628 + 31733 @@ -28445,17 +28573,17 @@ 1 2 - 2879976 + 2889523 2 7 - 236672 + 237457 7 32784 - 31628 + 31733 @@ -28471,7 +28599,7 @@ 1 2 - 8267972 + 8295380 @@ -28487,7 +28615,7 @@ 1 2 - 8267972 + 8295380 @@ -28497,15 +28625,15 @@ commentbinding - 3088030 + 3091117 id - 2443000 + 2445442 element - 3011541 + 3014551 @@ -28519,12 +28647,12 @@ 1 2 - 2366044 + 2368409 2 97 - 76955 + 77032 @@ -28540,12 +28668,12 @@ 1 2 - 2935051 + 2937985 2 3 - 76489 + 76565 @@ -28555,15 +28683,15 @@ exprconv - 7033492 + 7033025 converted - 7033492 + 7033025 conversion - 7033492 + 7033025 @@ -28577,7 +28705,7 @@ 1 2 - 7033492 + 7033025 @@ -28593,7 +28721,7 @@ 1 2 - 7033492 + 7033025 @@ -28603,30 +28731,30 @@ compgenerated - 9273474 + 7908075 id - 9273474 + 7908075 synthetic_destructor_call - 510792 + 512503 element - 324717 + 325805 i - 359 + 360 destructor_call - 510792 + 512503 @@ -28640,27 +28768,27 @@ 1 2 - 227088 + 227848 2 3 - 50651 + 50820 3 4 - 21775 + 21848 4 8 - 24539 + 24622 8 20 - 662 + 664 @@ -28676,27 +28804,27 @@ 1 2 - 227088 + 227848 2 3 - 50651 + 50820 3 4 - 21775 + 21848 4 8 - 24539 + 24622 8 20 - 662 + 664 @@ -28924,7 +29052,7 @@ 1 2 - 510792 + 512503 @@ -28940,7 +29068,7 @@ 1 2 - 510792 + 512503 @@ -28950,15 +29078,15 @@ namespaces - 12126 + 12138 id - 12126 + 12138 name - 9794 + 9804 @@ -28972,7 +29100,7 @@ 1 2 - 12126 + 12138 @@ -28988,7 +29116,7 @@ 1 2 - 8395 + 8403 2 @@ -28998,7 +29126,7 @@ 3 4 - 932 + 933 @@ -29008,26 +29136,26 @@ namespace_inline - 1399 + 1400 id - 1399 + 1400 namespacembrs - 2385633 + 2388018 parentid - 10260 + 10271 memberid - 2385633 + 2388018 @@ -29041,52 +29169,52 @@ 1 2 - 1865 + 1867 2 4 - 932 + 933 4 5 - 932 + 933 5 7 - 932 + 933 7 8 - 932 + 933 8 12 - 932 + 933 17 30 - 932 + 933 43 47 - 932 + 933 52 143 - 932 + 933 258 4468 - 932 + 933 @@ -29102,7 +29230,7 @@ 1 2 - 2385633 + 2388018 @@ -29112,19 +29240,19 @@ exprparents - 14207462 + 14206517 expr_id - 14207462 + 14206517 child_index - 14659 + 14658 parent_id - 9454319 + 9453690 @@ -29138,7 +29266,7 @@ 1 2 - 14207462 + 14206517 @@ -29154,7 +29282,7 @@ 1 2 - 14207462 + 14206517 @@ -29272,17 +29400,17 @@ 1 2 - 5409721 + 5409361 2 3 - 3706838 + 3706591 3 712 - 337760 + 337737 @@ -29298,17 +29426,17 @@ 1 2 - 5409721 + 5409361 2 3 - 3706838 + 3706591 3 712 - 337760 + 337737 @@ -29318,11 +29446,11 @@ expr_isload - 5082911 + 5082393 expr_id - 5082911 + 5082393 @@ -29402,11 +29530,11 @@ iscall - 3208148 + 3218003 caller - 3208148 + 3218003 kind @@ -29424,7 +29552,7 @@ 1 2 - 3208148 + 3218003 @@ -29448,8 +29576,8 @@ 18 - 165637 - 165638 + 165590 + 165591 18 @@ -29460,15 +29588,15 @@ numtemplatearguments - 393024 + 393832 expr_id - 393024 + 393832 num - 312 + 313 @@ -29482,7 +29610,7 @@ 1 2 - 393024 + 393832 @@ -29586,23 +29714,23 @@ namequalifiers - 1508764 + 1513800 id - 1508764 + 1513800 qualifiableelement - 1508764 + 1513800 qualifyingelement - 97193 + 97538 location - 303282 + 304298 @@ -29616,7 +29744,7 @@ 1 2 - 1508764 + 1513800 @@ -29632,7 +29760,7 @@ 1 2 - 1508764 + 1513800 @@ -29648,7 +29776,7 @@ 1 2 - 1508764 + 1513800 @@ -29664,7 +29792,7 @@ 1 2 - 1508764 + 1513800 @@ -29680,7 +29808,7 @@ 1 2 - 1508764 + 1513800 @@ -29696,7 +29824,7 @@ 1 2 - 1508764 + 1513800 @@ -29712,27 +29840,27 @@ 1 2 - 58206 + 58420 2 3 - 22324 + 22399 3 5 - 8880 + 8910 5 92 - 7346 + 7371 96 - 21584 - 435 + 21583 + 436 @@ -29748,27 +29876,27 @@ 1 2 - 58206 + 58420 2 3 - 22324 + 22399 3 5 - 8880 + 8910 5 92 - 7346 + 7371 96 - 21584 - 435 + 21583 + 436 @@ -29784,22 +29912,22 @@ 1 2 - 63602 + 63834 2 3 - 20582 + 20651 3 5 - 8350 + 8378 5 7095 - 4658 + 4673 @@ -29815,32 +29943,32 @@ 1 2 - 100223 + 100559 2 3 - 28307 + 28402 3 4 - 44459 + 44608 4 6 - 13727 + 13773 6 7 - 95262 + 95581 7 790 - 21301 + 21373 @@ -29856,32 +29984,32 @@ 1 2 - 100223 + 100559 2 3 - 28307 + 28402 3 4 - 44459 + 44608 4 6 - 13727 + 13773 6 7 - 95262 + 95581 7 790 - 21301 + 21373 @@ -29897,22 +30025,22 @@ 1 2 - 136616 + 137055 2 3 - 55498 + 55703 3 4 - 102003 + 102344 4 143 - 9164 + 9195 @@ -29922,15 +30050,15 @@ varbind - 6029528 + 6029127 expr - 6029528 + 6029127 var - 768581 + 768530 @@ -29944,7 +30072,7 @@ 1 2 - 6029528 + 6029127 @@ -29960,52 +30088,52 @@ 1 2 - 126230 + 126221 2 3 - 137883 + 137874 3 4 - 106300 + 106293 4 5 - 85217 + 85211 5 6 - 61293 + 61288 6 7 - 48116 + 48112 7 9 - 59625 + 59621 9 13 - 59275 + 59271 13 28 - 58884 + 58880 28 5137 - 25756 + 25754 @@ -30015,15 +30143,15 @@ funbind - 3214624 + 3224501 expr - 3208432 + 3218288 fun - 510072 + 511344 @@ -30037,12 +30165,12 @@ 1 2 - 3202241 + 3212076 2 3 - 6191 + 6212 @@ -30058,32 +30186,32 @@ 1 2 - 314454 + 315090 2 3 - 77652 + 77893 3 4 - 31261 + 31385 4 7 - 45955 + 46128 7 121 - 38305 + 38395 123 5011 - 2442 + 2450 @@ -30093,11 +30221,11 @@ expr_allocator - 45925 + 46019 expr - 45925 + 46019 func @@ -30119,7 +30247,7 @@ 1 2 - 45925 + 46019 @@ -30135,7 +30263,7 @@ 1 2 - 45925 + 46019 @@ -30219,11 +30347,11 @@ expr_deallocator - 54581 + 54694 expr - 54581 + 54694 func @@ -30245,7 +30373,7 @@ 1 2 - 54581 + 54694 @@ -30261,7 +30389,7 @@ 1 2 - 54581 + 54694 @@ -30366,15 +30494,15 @@ expr_cond_guard - 657281 + 657238 cond - 657281 + 657238 guard - 657281 + 657238 @@ -30388,7 +30516,7 @@ 1 2 - 657281 + 657238 @@ -30404,7 +30532,7 @@ 1 2 - 657281 + 657238 @@ -30414,15 +30542,15 @@ expr_cond_true - 657279 + 657235 cond - 657279 + 657235 true - 657279 + 657235 @@ -30436,7 +30564,7 @@ 1 2 - 657279 + 657235 @@ -30452,7 +30580,7 @@ 1 2 - 657279 + 657235 @@ -30462,15 +30590,15 @@ expr_cond_false - 657281 + 657238 cond - 657281 + 657238 false - 657281 + 657238 @@ -30484,7 +30612,7 @@ 1 2 - 657281 + 657238 @@ -30500,7 +30628,7 @@ 1 2 - 657281 + 657238 @@ -30510,15 +30638,15 @@ values - 10777417 + 10776699 id - 10777417 + 10776699 str - 88069 + 88063 @@ -30532,7 +30660,7 @@ 1 2 - 10777417 + 10776699 @@ -30548,22 +30676,22 @@ 1 2 - 59549 + 59545 2 3 - 12410 + 12409 3 6 - 6917 + 6916 6 56 - 6631 + 6630 57 @@ -30641,15 +30769,15 @@ valuebind - 11211667 + 11210920 val - 10777417 + 10776699 expr - 11211667 + 11210920 @@ -30663,12 +30791,12 @@ 1 2 - 10365712 + 10365022 2 7 - 411704 + 411677 @@ -30684,7 +30812,7 @@ 1 2 - 11211667 + 11210920 @@ -30694,15 +30822,15 @@ fieldoffsets - 1054767 + 1054697 id - 1054767 + 1054697 byteoffset - 22694 + 22692 bitoffset @@ -30720,7 +30848,7 @@ 1 2 - 1054767 + 1054697 @@ -30736,7 +30864,7 @@ 1 2 - 1054767 + 1054697 @@ -30752,12 +30880,12 @@ 1 2 - 13025 + 13024 2 3 - 1718 + 1717 3 @@ -30772,12 +30900,12 @@ 12 35 - 1718 + 1717 35 205 - 1718 + 1717 244 @@ -30798,7 +30926,7 @@ 1 2 - 22015 + 22013 2 @@ -30895,19 +31023,19 @@ bitfield - 19706 + 19771 id - 19706 + 19771 bits - 2463 + 2471 declared_bits - 2463 + 2471 @@ -30921,7 +31049,7 @@ 1 2 - 19706 + 19771 @@ -30937,7 +31065,7 @@ 1 2 - 19706 + 19771 @@ -30953,12 +31081,12 @@ 1 2 - 689 + 692 2 3 - 591 + 593 3 @@ -31004,7 +31132,7 @@ 1 2 - 2463 + 2471 @@ -31020,12 +31148,12 @@ 1 2 - 689 + 692 2 3 - 591 + 593 3 @@ -31071,7 +31199,7 @@ 1 2 - 2463 + 2471 @@ -31081,23 +31209,23 @@ initialisers - 1710171 + 1711073 init - 1710171 + 1711073 var - 719548 + 719887 expr - 1710171 + 1711073 location - 394501 + 394718 @@ -31111,7 +31239,7 @@ 1 2 - 1710171 + 1711073 @@ -31127,7 +31255,7 @@ 1 2 - 1710171 + 1711073 @@ -31143,7 +31271,7 @@ 1 2 - 1710171 + 1711073 @@ -31159,17 +31287,17 @@ 1 2 - 633806 + 634097 2 15 - 28722 + 28738 16 25 - 57019 + 57051 @@ -31185,17 +31313,17 @@ 1 2 - 633806 + 634097 2 15 - 28722 + 28738 16 25 - 57019 + 57051 @@ -31211,7 +31339,7 @@ 1 2 - 719541 + 719880 2 @@ -31232,7 +31360,7 @@ 1 2 - 1710171 + 1711073 @@ -31248,7 +31376,7 @@ 1 2 - 1710171 + 1711073 @@ -31264,7 +31392,7 @@ 1 2 - 1710171 + 1711073 @@ -31280,22 +31408,22 @@ 1 2 - 321587 + 321770 2 3 - 23955 + 23968 3 15 - 30975 + 30986 15 111551 - 17982 + 17992 @@ -31311,17 +31439,17 @@ 1 2 - 344470 + 344666 2 4 - 36085 + 36105 4 12073 - 13945 + 13946 @@ -31337,22 +31465,22 @@ 1 2 - 321587 + 321770 2 3 - 23955 + 23968 3 15 - 30975 + 30986 15 111551 - 17982 + 17992 @@ -31362,26 +31490,26 @@ braced_initialisers - 41701 + 41698 init - 41701 + 41698 expr_ancestor - 514901 + 516626 exp - 514901 + 516626 ancestor - 307486 + 308516 @@ -31395,7 +31523,7 @@ 1 2 - 514901 + 516626 @@ -31411,27 +31539,27 @@ 1 2 - 202889 + 203568 2 3 - 54930 + 55114 3 4 - 22400 + 22475 4 7 - 25070 + 25154 7 26 - 2196 + 2203 @@ -31441,11 +31569,11 @@ exprs - 18388730 + 18387506 id - 18388730 + 18387506 kind @@ -31453,7 +31581,7 @@ location - 8488659 + 8488094 @@ -31467,7 +31595,7 @@ 1 2 - 18388730 + 18387506 @@ -31483,7 +31611,7 @@ 1 2 - 18388730 + 18387506 @@ -31661,22 +31789,22 @@ 1 2 - 7145629 + 7145154 2 3 - 663075 + 663031 3 18 - 638145 + 638103 18 71656 - 41808 + 41805 @@ -31692,17 +31820,17 @@ 1 2 - 7251705 + 7251222 2 3 - 618283 + 618242 3 32 - 618671 + 618630 @@ -31712,15 +31840,15 @@ expr_reuse - 372471 + 373719 reuse - 372471 + 373719 original - 372452 + 373700 value_category @@ -31738,7 +31866,7 @@ 1 2 - 372471 + 373719 @@ -31754,7 +31882,7 @@ 1 2 - 372471 + 373719 @@ -31770,7 +31898,7 @@ 1 2 - 372433 + 373681 2 @@ -31791,7 +31919,7 @@ 1 2 - 372452 + 373700 @@ -31843,15 +31971,15 @@ expr_types - 18452210 + 18451523 id - 18321703 + 18319865 typeid - 1236464 + 1214578 value_category @@ -31869,12 +31997,12 @@ 1 2 - 18191197 + 18188206 2 3 - 130506 + 131658 @@ -31890,7 +32018,7 @@ 1 2 - 18321703 + 18319865 @@ -31906,42 +32034,42 @@ 1 2 - 447977 + 438548 2 3 - 256729 + 249329 3 4 - 102714 + 102804 4 5 - 84159 + 81887 5 8 - 110118 + 109284 8 14 - 98307 + 96471 14 - 42 - 93532 + 41 + 91662 - 42 - 125371 - 42924 + 41 + 125330 + 44589 @@ -31957,17 +32085,17 @@ 1 2 - 1068826 + 1050194 2 3 - 157225 + 154190 3 4 - 10412 + 10193 @@ -31981,18 +32109,18 @@ 12 - 14892 - 14893 + 14874 + 14875 11 - 372567 - 372568 + 368484 + 368485 11 - 1250740 - 1250741 + 1239516 + 1239517 11 @@ -32007,18 +32135,18 @@ 12 - 2722 - 2723 + 2712 + 2713 11 - 30862 - 30863 + 29920 + 29921 11 - 92892 - 92893 + 90427 + 90428 11 @@ -32029,15 +32157,15 @@ new_allocated_type - 46968 + 47064 expr - 46968 + 47064 type_id - 27777 + 27834 @@ -32051,7 +32179,7 @@ 1 2 - 46968 + 47064 @@ -32067,17 +32195,17 @@ 1 2 - 11611 + 11635 2 3 - 14705 + 14736 3 19 - 1460 + 1463 @@ -32087,15 +32215,15 @@ new_array_allocated_type - 5097 + 5099 expr - 5097 + 5099 type_id - 2189 + 2191 @@ -32109,7 +32237,7 @@ 1 2 - 5097 + 5099 @@ -32130,7 +32258,7 @@ 2 3 - 1935 + 1937 3 @@ -33172,15 +33300,15 @@ condition_decl_bind - 40577 + 40713 expr - 40577 + 40713 decl - 40577 + 40713 @@ -33194,7 +33322,7 @@ 1 2 - 40577 + 40713 @@ -33210,7 +33338,7 @@ 1 2 - 40577 + 40713 @@ -33220,15 +33348,15 @@ typeid_bind - 35947 + 36021 expr - 35947 + 36021 type_id - 16165 + 16199 @@ -33242,7 +33370,7 @@ 1 2 - 35947 + 36021 @@ -33258,12 +33386,12 @@ 1 2 - 15748 + 15781 3 328 - 417 + 418 @@ -33273,15 +33401,15 @@ uuidof_bind - 20292 + 20304 expr - 20292 + 20304 type_id - 20096 + 20107 @@ -33295,7 +33423,7 @@ 1 2 - 20292 + 20304 @@ -33311,7 +33439,7 @@ 1 2 - 19931 + 19942 2 @@ -33326,15 +33454,15 @@ sizeof_bind - 199197 + 199184 expr - 199197 + 199184 type_id - 8224 + 8223 @@ -33348,7 +33476,7 @@ 1 2 - 199197 + 199184 @@ -33457,11 +33585,11 @@ lambdas - 21454 + 21475 expr - 21454 + 21475 default_capture @@ -33483,7 +33611,7 @@ 1 2 - 21454 + 21475 @@ -33499,7 +33627,7 @@ 1 2 - 21454 + 21475 @@ -33573,23 +33701,23 @@ lambda_capture - 27983 + 28011 id - 27983 + 28011 lambda - 20521 + 20542 index - 932 + 933 field - 27983 + 28011 captured_by_reference @@ -33601,7 +33729,7 @@ location - 2798 + 2801 @@ -33615,7 +33743,7 @@ 1 2 - 27983 + 28011 @@ -33631,7 +33759,7 @@ 1 2 - 27983 + 28011 @@ -33647,7 +33775,7 @@ 1 2 - 27983 + 28011 @@ -33663,7 +33791,7 @@ 1 2 - 27983 + 28011 @@ -33679,7 +33807,7 @@ 1 2 - 27983 + 28011 @@ -33695,7 +33823,7 @@ 1 2 - 27983 + 28011 @@ -33711,12 +33839,12 @@ 1 2 - 13059 + 13072 2 3 - 7462 + 7469 @@ -33732,12 +33860,12 @@ 1 2 - 13059 + 13072 2 3 - 7462 + 7469 @@ -33753,12 +33881,12 @@ 1 2 - 13059 + 13072 2 3 - 7462 + 7469 @@ -33774,7 +33902,7 @@ 1 2 - 20521 + 20542 @@ -33790,7 +33918,7 @@ 1 2 - 20521 + 20542 @@ -33806,12 +33934,12 @@ 1 2 - 13059 + 13072 2 3 - 7462 + 7469 @@ -33890,7 +34018,7 @@ 1 2 - 932 + 933 @@ -33906,7 +34034,7 @@ 1 2 - 932 + 933 @@ -33943,7 +34071,7 @@ 1 2 - 27983 + 28011 @@ -33959,7 +34087,7 @@ 1 2 - 27983 + 28011 @@ -33975,7 +34103,7 @@ 1 2 - 27983 + 28011 @@ -33991,7 +34119,7 @@ 1 2 - 27983 + 28011 @@ -34007,7 +34135,7 @@ 1 2 - 27983 + 28011 @@ -34023,7 +34151,7 @@ 1 2 - 27983 + 28011 @@ -34231,12 +34359,12 @@ 8 9 - 1865 + 1867 14 15 - 932 + 933 @@ -34252,12 +34380,12 @@ 8 9 - 1865 + 1867 14 15 - 932 + 933 @@ -34273,7 +34401,7 @@ 1 2 - 2798 + 2801 @@ -34289,12 +34417,12 @@ 8 9 - 1865 + 1867 14 15 - 932 + 933 @@ -34310,7 +34438,7 @@ 1 2 - 2798 + 2801 @@ -34326,7 +34454,7 @@ 1 2 - 2798 + 2801 @@ -34452,19 +34580,19 @@ stmts - 4652754 + 4646725 id - 4652754 + 4646725 kind - 1872 + 1878 location - 2173505 + 2179425 @@ -34478,7 +34606,7 @@ 1 2 - 4652754 + 4646725 @@ -34494,7 +34622,7 @@ 1 2 - 4652754 + 4646725 @@ -34568,38 +34696,38 @@ 98 - 539 - 540 + 538 + 539 98 - 1372 - 1373 + 1371 + 1372 98 - 2811 - 2812 + 2810 + 2811 98 - 4882 - 4883 + 4866 + 4867 98 - 9278 - 9279 + 9205 + 9206 98 - 12170 - 12171 + 12120 + 12121 98 - 14180 - 14181 + 14105 + 14106 98 @@ -34684,8 +34812,8 @@ 98 - 1754 - 1755 + 1753 + 1754 98 @@ -34694,18 +34822,18 @@ 98 - 4253 - 4254 + 4244 + 4245 98 - 6102 - 6103 + 6101 + 6102 98 - 6617 - 6618 + 6607 + 6608 98 @@ -34722,22 +34850,22 @@ 1 2 - 1726665 + 1731894 2 3 - 178637 + 178933 3 8 - 166419 + 167959 8 - 689 - 101783 + 653 + 100637 @@ -34753,12 +34881,12 @@ 1 2 - 2118820 + 2125350 2 8 - 54684 + 54075 @@ -34864,15 +34992,15 @@ if_initialization - 295 + 296 if_stmt - 295 + 296 init_id - 295 + 296 @@ -34886,7 +35014,7 @@ 1 2 - 295 + 296 @@ -34902,7 +35030,7 @@ 1 2 - 295 + 296 @@ -34912,15 +35040,15 @@ if_then - 725963 + 725914 if_stmt - 725963 + 725914 then_id - 725963 + 725914 @@ -34934,7 +35062,7 @@ 1 2 - 725963 + 725914 @@ -34950,7 +35078,7 @@ 1 2 - 725963 + 725914 @@ -34960,15 +35088,15 @@ if_else - 184682 + 184669 if_stmt - 184682 + 184669 else_id - 184682 + 184669 @@ -34982,7 +35110,7 @@ 1 2 - 184682 + 184669 @@ -34998,7 +35126,7 @@ 1 2 - 184682 + 184669 @@ -35056,15 +35184,15 @@ constexpr_if_then - 53108 + 53185 constexpr_if_stmt - 53108 + 53185 then_id - 53108 + 53185 @@ -35078,7 +35206,7 @@ 1 2 - 53108 + 53185 @@ -35094,7 +35222,7 @@ 1 2 - 53108 + 53185 @@ -35104,15 +35232,15 @@ constexpr_if_else - 30840 + 30843 constexpr_if_stmt - 30840 + 30843 else_id - 30840 + 30843 @@ -35126,7 +35254,7 @@ 1 2 - 30840 + 30843 @@ -35142,7 +35270,7 @@ 1 2 - 30840 + 30843 @@ -35152,15 +35280,15 @@ while_body - 29134 + 29316 while_stmt - 29134 + 29316 body_id - 29134 + 29316 @@ -35174,7 +35302,7 @@ 1 2 - 29134 + 29316 @@ -35190,7 +35318,7 @@ 1 2 - 29134 + 29316 @@ -35200,15 +35328,15 @@ do_body - 148884 + 148874 do_stmt - 148884 + 148874 body_id - 148884 + 148874 @@ -35222,7 +35350,7 @@ 1 2 - 148884 + 148874 @@ -35238,7 +35366,7 @@ 1 2 - 148884 + 148874 @@ -35296,19 +35424,19 @@ switch_case - 206808 + 207501 switch_stmt - 10982 + 11019 index - 4658 + 4673 case_id - 206808 + 207501 @@ -35327,52 +35455,52 @@ 3 4 - 2385 + 2393 4 5 - 1760 + 1766 5 6 - 1041 + 1044 6 8 - 984 + 987 8 9 - 530 + 531 9 10 - 1022 + 1025 10 11 - 359 + 360 11 14 - 1003 + 1006 14 31 - 927 + 930 36 247 - 908 + 911 @@ -35393,52 +35521,52 @@ 3 4 - 2385 + 2393 4 5 - 1760 + 1766 5 6 - 1041 + 1044 6 8 - 984 + 987 8 9 - 530 + 531 9 10 - 1022 + 1025 10 11 - 359 + 360 11 14 - 1003 + 1006 14 31 - 927 + 930 36 247 - 908 + 911 @@ -35454,27 +35582,27 @@ 14 15 - 1230 + 1234 19 20 - 568 + 569 33 34 - 2007 + 2013 34 63 - 397 + 398 68 304 - 359 + 360 358 @@ -35495,27 +35623,27 @@ 14 15 - 1230 + 1234 19 20 - 568 + 569 33 34 - 2007 + 2013 34 63 - 397 + 398 68 304 - 359 + 360 358 @@ -35536,7 +35664,7 @@ 1 2 - 206808 + 207501 @@ -35552,7 +35680,7 @@ 1 2 - 206808 + 207501 @@ -35562,15 +35690,15 @@ switch_body - 20788 + 20786 switch_stmt - 20788 + 20786 body_id - 20788 + 20786 @@ -35584,7 +35712,7 @@ 1 2 - 20788 + 20786 @@ -35600,7 +35728,7 @@ 1 2 - 20788 + 20786 @@ -35610,15 +35738,15 @@ for_initialization - 53407 + 53403 for_stmt - 53407 + 53403 init_id - 53407 + 53403 @@ -35632,7 +35760,7 @@ 1 2 - 53407 + 53403 @@ -35648,7 +35776,7 @@ 1 2 - 53407 + 53403 @@ -35658,15 +35786,15 @@ for_condition - 55672 + 55668 for_stmt - 55672 + 55668 condition_id - 55672 + 55668 @@ -35680,7 +35808,7 @@ 1 2 - 55672 + 55668 @@ -35696,7 +35824,7 @@ 1 2 - 55672 + 55668 @@ -35706,15 +35834,15 @@ for_update - 53510 + 53506 for_stmt - 53510 + 53506 update_id - 53510 + 53506 @@ -35728,7 +35856,7 @@ 1 2 - 53510 + 53506 @@ -35744,7 +35872,7 @@ 1 2 - 53510 + 53506 @@ -35754,15 +35882,15 @@ for_body - 61560 + 61556 for_stmt - 61560 + 61556 body_id - 61560 + 61556 @@ -35776,7 +35904,7 @@ 1 2 - 61560 + 61556 @@ -35792,7 +35920,7 @@ 1 2 - 61560 + 61556 @@ -35802,19 +35930,19 @@ stmtparents - 4054504 + 4054166 id - 4054504 + 4054166 index - 12326 + 12333 parent - 1721253 + 1720155 @@ -35828,7 +35956,7 @@ 1 2 - 4054504 + 4054166 @@ -35844,7 +35972,7 @@ 1 2 - 4054504 + 4054166 @@ -35860,7 +35988,7 @@ 1 2 - 4049 + 4051 2 @@ -35875,7 +36003,7 @@ 4 5 - 1567 + 1568 7 @@ -35885,17 +36013,17 @@ 8 12 - 799 + 800 12 29 - 1085 + 1086 29 38 - 926 + 927 41 @@ -35904,7 +36032,7 @@ 77 - 195141 + 194851 704 @@ -35921,7 +36049,7 @@ 1 2 - 4049 + 4051 2 @@ -35936,7 +36064,7 @@ 4 5 - 1567 + 1568 7 @@ -35946,17 +36074,17 @@ 8 12 - 799 + 800 12 29 - 1085 + 1086 29 38 - 926 + 927 41 @@ -35965,7 +36093,7 @@ 77 - 195141 + 194851 704 @@ -35982,32 +36110,32 @@ 1 2 - 989112 + 987870 2 3 - 372551 + 372687 3 4 - 105697 + 105656 4 6 - 111251 + 111219 6 17 - 130357 + 130431 17 1943 - 12282 + 12289 @@ -36023,32 +36151,32 @@ 1 2 - 989112 + 987870 2 3 - 372551 + 372687 3 4 - 105697 + 105656 4 6 - 111251 + 111219 6 17 - 130357 + 130431 17 1943 - 12282 + 12289 @@ -36058,22 +36186,22 @@ ishandler - 62466 + 62676 block - 62466 + 62676 stmt_decl_bind - 580812 + 580844 stmt - 541032 + 541062 num @@ -36081,7 +36209,7 @@ decl - 580708 + 580740 @@ -36095,12 +36223,12 @@ 1 2 - 520345 + 520373 2 19 - 20687 + 20688 @@ -36116,12 +36244,12 @@ 1 2 - 520345 + 520373 2 19 - 20687 + 20688 @@ -36319,7 +36447,7 @@ 1 2 - 580671 + 580703 2 @@ -36340,7 +36468,7 @@ 1 2 - 580708 + 580740 @@ -36350,11 +36478,11 @@ stmt_decl_entry_bind - 580812 + 580844 stmt - 541032 + 541062 num @@ -36362,7 +36490,7 @@ decl_entry - 580754 + 580786 @@ -36376,12 +36504,12 @@ 1 2 - 520345 + 520373 2 19 - 20687 + 20688 @@ -36397,12 +36525,12 @@ 1 2 - 520345 + 520373 2 19 - 20687 + 20688 @@ -36600,7 +36728,7 @@ 1 2 - 580733 + 580765 3 @@ -36621,7 +36749,7 @@ 1 2 - 580754 + 580786 @@ -36631,15 +36759,15 @@ blockscope - 1415522 + 1410868 block - 1415522 + 1410868 enclosing - 1300321 + 1295552 @@ -36653,7 +36781,7 @@ 1 2 - 1415522 + 1410868 @@ -36669,12 +36797,12 @@ 1 2 - 1235025 + 1230191 2 13 - 65295 + 65361 @@ -36684,19 +36812,19 @@ jumpinfo - 254474 + 254457 id - 254474 + 254457 str - 21192 + 21191 target - 53145 + 53142 @@ -36710,7 +36838,7 @@ 1 2 - 254474 + 254457 @@ -36726,7 +36854,7 @@ 1 2 - 254474 + 254457 @@ -36742,7 +36870,7 @@ 2 3 - 9894 + 9893 3 @@ -36788,7 +36916,7 @@ 1 2 - 16748 + 16747 2 @@ -36824,17 +36952,17 @@ 2 3 - 26478 + 26476 3 4 - 12921 + 12920 4 5 - 5353 + 5352 5 @@ -36860,7 +36988,7 @@ 1 2 - 53145 + 53142 @@ -36870,19 +36998,19 @@ preprocdirects - 4186401 + 4191484 id - 4186401 + 4191484 kind - 5130 + 1087 location - 4145824 + 4189012 @@ -36896,7 +37024,7 @@ 1 2 - 4186401 + 4191484 @@ -36912,7 +37040,7 @@ 1 2 - 4186401 + 4191484 @@ -36926,59 +37054,59 @@ 12 - 4 - 5 - 466 + 1 + 2 + 98 - 54 - 55 - 466 + 122 + 123 + 98 - 151 - 152 - 466 + 694 + 695 + 98 - 448 - 449 - 466 + 799 + 800 + 98 - 554 - 555 - 466 + 932 + 933 + 98 - 564 - 565 - 466 + 1689 + 1690 + 98 - 571 - 572 - 466 + 1792 + 1793 + 98 - 667 - 668 - 466 + 3012 + 3013 + 98 - 1429 - 1430 - 466 + 3802 + 3803 + 98 - 1970 - 1971 - 466 + 6290 + 6291 + 98 - 2564 - 2565 - 466 + 23266 + 23267 + 98 @@ -36992,59 +37120,59 @@ 12 - 4 - 5 - 466 + 1 + 2 + 98 - 54 - 55 - 466 + 122 + 123 + 98 - 151 - 152 - 466 + 694 + 695 + 98 - 448 - 449 - 466 + 799 + 800 + 98 - 554 - 555 - 466 + 932 + 933 + 98 - 564 - 565 - 466 + 1689 + 1690 + 98 - 571 - 572 - 466 + 1792 + 1793 + 98 - 667 - 668 - 466 + 3012 + 3013 + 98 - 1429 - 1430 - 466 + 3802 + 3803 + 98 - 1883 - 1884 - 466 + 6290 + 6291 + 98 - 2564 - 2565 - 466 + 23241 + 23242 + 98 @@ -37060,12 +37188,12 @@ 1 2 - 4145358 + 4188913 - 88 - 89 - 466 + 26 + 27 + 98 @@ -37081,7 +37209,7 @@ 1 2 - 4145824 + 4189012 @@ -37091,15 +37219,15 @@ preprocpair - 1429980 + 1431410 begin - 1195848 + 1197043 elseelifend - 1429980 + 1431410 @@ -37113,17 +37241,17 @@ 1 2 - 977573 + 978550 2 3 - 208014 + 208222 3 11 - 10260 + 10271 @@ -37139,7 +37267,7 @@ 1 2 - 1429980 + 1431410 @@ -37149,41 +37277,41 @@ preproctrue - 766294 + 767060 branch - 766294 + 767060 preprocfalse - 331143 + 331474 branch - 331143 + 331474 preproctext - 3368495 + 3379661 id - 3368495 + 3379661 head - 2441215 + 2449308 body - 1426735 + 1431465 @@ -37197,7 +37325,7 @@ 1 2 - 3368495 + 3379661 @@ -37213,7 +37341,7 @@ 1 2 - 3368495 + 3379661 @@ -37229,12 +37357,12 @@ 1 2 - 2302384 + 2310017 2 740 - 138830 + 139291 @@ -37250,12 +37378,12 @@ 1 2 - 2382490 + 2390388 2 5 - 58724 + 58919 @@ -37271,17 +37399,17 @@ 1 2 - 1291550 + 1295831 2 6 - 107005 + 107359 6 11630 - 28179 + 28273 @@ -37297,17 +37425,17 @@ 1 2 - 1294407 + 1298698 2 7 - 107300 + 107656 7 2980 - 25026 + 25109 @@ -37317,15 +37445,15 @@ includes - 312954 + 313266 id - 312954 + 313266 included - 117066 + 117183 @@ -37339,7 +37467,7 @@ 1 2 - 312954 + 313266 @@ -37355,32 +37483,32 @@ 1 2 - 61098 + 61159 2 3 - 21920 + 21942 3 4 - 12592 + 12605 4 6 - 10260 + 10271 6 14 - 8861 + 8870 14 47 - 2331 + 2334 @@ -37390,15 +37518,15 @@ link_targets - 814 + 816 id - 814 + 816 binary - 814 + 816 @@ -37412,7 +37540,7 @@ 1 2 - 814 + 816 @@ -37428,7 +37556,7 @@ 1 2 - 814 + 816 @@ -37438,15 +37566,15 @@ link_parent - 38845246 + 28676866 element - 4923570 + 3584451 link_target - 347 + 348 @@ -37460,17 +37588,17 @@ 1 2 - 663709 + 432954 2 9 - 25830 + 20344 9 10 - 4234029 + 3131152 @@ -37489,48 +37617,48 @@ 34 - 121970 - 121971 + 90034 + 90035 34 - 122082 - 122083 + 90100 + 90101 34 - 122181 - 122182 + 90152 + 90153 34 - 122212 - 122213 + 90159 + 90160 34 - 122224 - 122225 + 90195 + 90196 34 - 122241 - 122242 + 90252 + 90253 34 - 124241 - 124242 + 91339 + 91340 34 - 128895 - 128896 + 94665 + 94666 34 - 131299 - 131300 + 96273 + 96274 34 diff --git a/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme new file mode 100644 index 0000000000000..25e365d1e8147 --- /dev/null +++ b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/old.dbscheme @@ -0,0 +1,2296 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..9629fc87dab7d --- /dev/null +++ b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/semmlecode.cpp.dbscheme @@ -0,0 +1,2300 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties new file mode 100644 index 0000000000000..abbd5dfd69822 --- /dev/null +++ b/cpp/ql/lib/upgrades/25e365d1e8147df0f759b604f96eb4bffea48271/upgrade.properties @@ -0,0 +1,2 @@ +description: Support destroying deletes +compatibility: partial diff --git a/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/old.dbscheme b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/old.dbscheme new file mode 100644 index 0000000000000..3d35dd6b50edf --- /dev/null +++ b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/old.dbscheme @@ -0,0 +1,2289 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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 +); + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default 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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/semmlecode.cpp.dbscheme new file mode 100644 index 0000000000000..25e365d1e8147 --- /dev/null +++ b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/semmlecode.cpp.dbscheme @@ -0,0 +1,2296 @@ + +/** + * 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, + int handle: @variable ref, + int promise: @variable 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) + +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: @functionorblock 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 +); + +/* + Fixed point types + precision(1) = short, precision(2) = default, precision(3) = long + is_unsigned(1) = unsigned is_unsigned(2) = signed + is_fract_type(1) = declared with _Fract + saturating(1) = declared with _Sat +*/ +/* TODO +fixedpointtypes( + unique int id: @fixedpointtype, + int precision: int ref, + int is_unsigned: int ref, + int is_fract_type: int ref, + int saturating: int 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 +); + +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 + ; + +/* +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 + +/* + 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 +); + +/* + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 3 = size_and_alignment + ; +*/ + +/** + * 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 +; + +@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 + ; + +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; + +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 +); + +@functionorblock = @function | @stmt_block; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @functionorblock 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/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/upgrade.properties b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/upgrade.properties new file mode 100644 index 0000000000000..8516eec182e7d --- /dev/null +++ b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/upgrade.properties @@ -0,0 +1,3 @@ +description: Support using-enum declarations. +compatibility: partial +usings.rel: run usings.qlo diff --git a/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/usings.ql b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/usings.ql new file mode 100644 index 0000000000000..32a830070241e --- /dev/null +++ b/cpp/ql/lib/upgrades/3d35dd6b50edfc540c14c6757e0c7b3c5b7b04dd/usings.ql @@ -0,0 +1,17 @@ +class UsingEntry extends @using { + string toString() { none() } +} + +class Element extends @element { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from UsingEntry u, Element target, Location loc, int kind +where + usings(u, target, loc) and + if target instanceof @namespace then kind = 2 else kind = 1 +select u, target, loc, kind diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index badaa459be17b..9f10be7db9094 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.1.0 + +### Query Metadata Changes + +* The precision of `cpp/iterator-to-expired-container` ("Iterator to expired container") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. +* The precision of `cpp/unsafe-strncat` ("Potentially unsafe call to strncat") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. + +### Minor Analysis Improvements + +* The `cpp/unsigned-difference-expression-compared-zero` ("Unsigned difference expression compared to zero") query now produces fewer false positives. + ## 1.0.3 No user-facing changes. diff --git a/cpp/ql/src/Critical/ScanfChecks.qll b/cpp/ql/src/Critical/ScanfChecks.qll index 6f50172537e40..00c6f482828a3 100644 --- a/cpp/ql/src/Critical/ScanfChecks.qll +++ b/cpp/ql/src/Critical/ScanfChecks.qll @@ -38,11 +38,18 @@ private string getEofValue() { private predicate checkedForEof(ScanfFunctionCall call) { exists(IRGuardCondition gc | exists(Instruction i | i.getUnconvertedResultExpression() = call | - // call == EOF - gc.comparesEq(valueNumber(i).getAUse(), getEofValue().toInt(), _, _) + exists(int val | gc.comparesEq(valueNumber(i).getAUse(), val, _, _) | + // call == EOF + val = getEofValue().toInt() + or + // call == [any positive number] + val > 0 + ) or - // call < 0 (EOF is guaranteed to be negative) - gc.comparesLt(valueNumber(i).getAUse(), 0, true, _) + exists(int val | gc.comparesLt(valueNumber(i).getAUse(), val, true, _) | + // call < [any non-negative number] (EOF is guaranteed to be negative) + val >= 0 + ) ) ) } diff --git a/cpp/ql/src/Critical/SizeCheck2.ql b/cpp/ql/src/Critical/SizeCheck2.ql index eb3aec9a5fe51..3ce865641993a 100644 --- a/cpp/ql/src/Critical/SizeCheck2.ql +++ b/cpp/ql/src/Critical/SizeCheck2.ql @@ -15,6 +15,7 @@ import cpp import semmle.code.cpp.models.Models +import semmle.code.cpp.commons.Buffer predicate baseType(AllocationExpr alloc, Type base) { exists(PointerType pointer | @@ -30,7 +31,8 @@ predicate baseType(AllocationExpr alloc, Type base) { } predicate decideOnSize(Type t, int size) { - // If the codebase has more than one type with the same name, it can have more than one size. + // If the codebase has more than one type with the same name, it can have more than one size. For + // most purposes in this query, we use the smallest. size = min(t.getSize()) } @@ -45,7 +47,8 @@ where size = 0 or (allocated / size) * size = allocated ) and - not basesize > allocated // covered by SizeCheck.ql + not basesize > allocated and // covered by SizeCheck.ql + not memberMayBeVarSize(base.getUnspecifiedType(), _) // exclude variable size types select alloc, "Allocated memory (" + allocated.toString() + " bytes) is not a multiple of the size of '" + base.getName() + "' (" + basesize.toString() + " bytes)." diff --git a/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.qhelp b/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.qhelp index 2c087e37eaa8b..15b94a44ec857 100644 --- a/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-014/MemsetMayBeDeleted.qhelp @@ -10,11 +10,12 @@ contains sensitive data that could somehow be retrieved by an attacker.

-

Use alternative platform-supplied functions that will not get optimized away. Examples of such -functions include memset_s, SecureZeroMemory, and bzero_explicit. -Alternatively, passing the -fno-builtin-memset option to the GCC/Clang compiler usually -also prevents the optimization. Finally, you can use the public-domain secure_memzero function -(see references below). This function, however, is not guaranteed to work on all platforms and compilers.

+

Use memset_s (from C11) instead of memset, as memset_s will not +get optimized away. Alternatively use platform-supplied functions such as SecureZeroMemory or +bzero_explicit that make the same guarantee. Passing the -fno-builtin-memset +option to the GCC/Clang compiler usually also prevents the optimization. Finally, you can use the +public-domain secure_memzero function (see references below). This function, however, is not +guaranteed to work on all platforms and compilers.

diff --git a/cpp/ql/src/Security/CWE/CWE-191/UnsignedDifferenceExpressionComparedZero.ql b/cpp/ql/src/Security/CWE/CWE-191/UnsignedDifferenceExpressionComparedZero.ql index 61ee5d4cad1d8..02de4223c185c 100644 --- a/cpp/ql/src/Security/CWE/CWE-191/UnsignedDifferenceExpressionComparedZero.ql +++ b/cpp/ql/src/Security/CWE/CWE-191/UnsignedDifferenceExpressionComparedZero.ql @@ -5,7 +5,7 @@ * @id cpp/unsigned-difference-expression-compared-zero * @problem.severity warning * @security-severity 9.8 - * @precision medium + * @precision high * @tags security * correctness * external/cwe/cwe-191 diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.c b/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.c index e0600cc4d2f2e..7f7f6186041a5 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.c +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.c @@ -1,12 +1,31 @@ -void writeCredentials() { - char *password = "cleartext password"; - FILE* file = fopen("credentials.txt", "w"); - +#include +#include +#include + +void writeCredentialsBad(FILE *file, const char *cleartextCredentials) { // BAD: write password to disk in cleartext - fputs(password, file); - - // GOOD: encrypt password first - char *encrypted = encrypt(password); - fputs(encrypted, file); + fputs(cleartextCredentials, file); } +int writeCredentialsGood(FILE *file, const char *cleartextCredentials, const unsigned char *key, const unsigned char *nonce) { + size_t credentialsLen = strlen(cleartextCredentials); + size_t ciphertext_len = crypto_secretbox_MACBYTES + credentialsLen; + unsigned char *ciphertext = malloc(ciphertext_len); + if (!ciphertext) { + logError(); + return -1; + } + + // encrypt the password first + if (crypto_secretbox_easy(ciphertext, (const unsigned char *)cleartextCredentials, credentialsLen, nonce, key) != 0) { + free(ciphertext); + logError(); + return -1; + } + + // GOOD: write encrypted password to disk + fwrite(ciphertext, 1, ciphertext_len, file); + + free(ciphertext); + return 0; +} diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.inc.qhelp b/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.inc.qhelp index f5e978e05cbac..984afdcf28a67 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.inc.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextStorage.inc.qhelp @@ -19,15 +19,20 @@ cleartext.

The following example shows two ways of storing user credentials in a file. In the 'BAD' case, -the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are encrypted before +the credentials are simply stored in cleartext. In the 'GOOD' case, the credentials are encrypted before storing them.

+

Note that for the 'GOOD' example to work we need to link against an encryption library (in this case libsodium), +initialize it with a call to sodium_init, and create the key and nonce with +crypto_secretbox_keygen and randombytes_buf respectively. We also need to store those +details securely so they can be used for decryption.

+
-
  • M. Dowd, J. McDonald and J. Schuhm, The Art of Software Security Assessment, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.
  • +
  • M. Dowd, J. McDonald and J. Schuhm, The Art of Software Security Assessment, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.
  • M. Howard and D. LeBlanc, Writing Secure Code, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.
  • diff --git a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.c b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.c index f92aa8c38684b..8c6a8f439d992 100644 --- a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.c +++ b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.c @@ -1,6 +1,6 @@ void bad(void) { - char *password = "cleartext password"; + const char *password = "cleartext password"; sqlite3 *credentialsDB; sqlite3_stmt *stmt; @@ -16,14 +16,15 @@ void bad(void) { } } -void good(void) { - char *password = "cleartext password"; +void good(const char *secretKey) { + const char *password = "cleartext password"; sqlite3 *credentialsDB; sqlite3_stmt *stmt; if (sqlite3_open("credentials.db", &credentialsDB) == SQLITE_OK) { // GOOD: database encryption enabled: - sqlite3_exec(credentialsDB, "PRAGMA key = 'secretKey!'", NULL, NULL, NULL); + std::string setKeyString = std::string("PRAGMA key = '") + secretKey + "'"; + sqlite3_exec(credentialsDB, setKeyString.c_str(), NULL, NULL, NULL); sqlite3_exec(credentialsDB, "CREATE TABLE IF NOT EXISTS creds (password TEXT);", NULL, NULL, NULL); if (sqlite3_prepare_v2(credentialsDB, "INSERT INTO creds(password) VALUES(?)", -1, &stmt, NULL) == SQLITE_OK) { sqlite3_bind_text(stmt, 1, password, -1, SQLITE_TRANSIENT); @@ -33,4 +34,3 @@ void good(void) { } } } - diff --git a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.qhelp b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.qhelp index c8edcccb92f5a..4047f3b2cdc03 100644 --- a/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.qhelp +++ b/cpp/ql/src/Security/CWE/CWE-313/CleartextSqliteDatabase.qhelp @@ -20,10 +20,12 @@ In the 'GOOD' case, the database (and thus the credentials) are encrypted.

    +

    Note that for the 'GOOD' example to work we need to provide a secret key. Secure key generation and storage is required.

    +
    -
  • M. Dowd, J. McDonald and J. Schuhm, The Art of Software Security Assessment, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.
  • +
  • M. Dowd, J. McDonald and J. Schuhm, The Art of Software Security Assessment, 1st Edition, Chapter 2 - 'Common Vulnerabilities of Encryption', p. 43. Addison Wesley, 2006.
  • M. Howard and D. LeBlanc, Writing Secure Code, 2nd Edition, Chapter 9 - 'Protecting Secret Data', p. 299. Microsoft, 2002.
  • diff --git a/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql b/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql index 4b2f1ffcb62f7..7f74c229ceb38 100644 --- a/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql +++ b/cpp/ql/src/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.ql @@ -232,6 +232,7 @@ predicate nullCheckInThrowingNew(NewOrNewArrayExpr newExpr, GuardCondition guard from NewOrNewArrayExpr newExpr, Element element, string msg, string elementString where not newExpr.isFromUninstantiatedTemplate(_) and + not newExpr.isFromTemplateInstantiation(_) and ( noThrowInTryBlock(newExpr, element) and msg = "This allocation cannot throw. $@ is unnecessary." and diff --git a/cpp/ql/src/change-notes/2024-07-08-unsafe-strncat-query.md b/cpp/ql/src/change-notes/2024-07-08-unsafe-strncat-query.md deleted file mode 100644 index a85958bc6ba8f..0000000000000 --- a/cpp/ql/src/change-notes/2024-07-08-unsafe-strncat-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The precision of `cpp/unsafe-strncat` ("Potentially unsafe call to strncat") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. diff --git a/cpp/ql/src/change-notes/2024-07-11-iterator-to-expired-container-query.md b/cpp/ql/src/change-notes/2024-07-11-iterator-to-expired-container-query.md deleted file mode 100644 index 37d1f9eda4a91..0000000000000 --- a/cpp/ql/src/change-notes/2024-07-11-iterator-to-expired-container-query.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The precision of `cpp/iterator-to-expired-container` ("Iterator to expired container") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. diff --git a/cpp/ql/src/change-notes/2024-07-11-unsigned-difference-expression-compared-zero-query.md b/cpp/ql/src/change-notes/2024-07-11-unsigned-difference-expression-compared-zero-query.md new file mode 100644 index 0000000000000..7a1469464c277 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-07-11-unsigned-difference-expression-compared-zero-query.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* The precision of `cpp/unsigned-difference-expression-compared-zero` ("Unsigned difference expression compared to zero") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. diff --git a/cpp/ql/src/change-notes/2024-07-16-unsigned-difference-expression-compared-zero-.md b/cpp/ql/src/change-notes/2024-07-16-unsigned-difference-expression-compared-zero-.md deleted file mode 100644 index a4fb27acc4137..0000000000000 --- a/cpp/ql/src/change-notes/2024-07-16-unsigned-difference-expression-compared-zero-.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `cpp/unsigned-difference-expression-compared-zero` ("Unsigned difference expression compared to zero") query now produces fewer false positives. diff --git a/cpp/ql/src/change-notes/2024-07-22-incorrect-allocation-error-handling.md b/cpp/ql/src/change-notes/2024-07-22-incorrect-allocation-error-handling.md new file mode 100644 index 0000000000000..5e95cd05678ef --- /dev/null +++ b/cpp/ql/src/change-notes/2024-07-22-incorrect-allocation-error-handling.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/incorrect-allocation-error-handling` ("Incorrect allocation-error handling") query no longer produces occasional false positive results inside template instantiations. diff --git a/cpp/ql/src/change-notes/2024-07-22-suspicious-allocation-size.md b/cpp/ql/src/change-notes/2024-07-22-suspicious-allocation-size.md new file mode 100644 index 0000000000000..8b55e61e85a78 --- /dev/null +++ b/cpp/ql/src/change-notes/2024-07-22-suspicious-allocation-size.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/suspicious-allocation-size` ("Not enough memory allocated for array of pointer type") query no longer produces false positives on "variable size" `struct`s. diff --git a/cpp/ql/src/change-notes/2024-07-23-incorrectly-checked-scanf.md b/cpp/ql/src/change-notes/2024-07-23-incorrectly-checked-scanf.md new file mode 100644 index 0000000000000..9149c7611f5bb --- /dev/null +++ b/cpp/ql/src/change-notes/2024-07-23-incorrectly-checked-scanf.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/incorrectly-checked-scanf` ("Incorrect return-value check for a 'scanf'-like function") query now produces fewer false positive results. diff --git a/cpp/ql/src/change-notes/released/1.1.0.md b/cpp/ql/src/change-notes/released/1.1.0.md new file mode 100644 index 0000000000000..50e703a5814aa --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.1.0.md @@ -0,0 +1,10 @@ +## 1.1.0 + +### Query Metadata Changes + +* The precision of `cpp/iterator-to-expired-container` ("Iterator to expired container") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. +* The precision of `cpp/unsafe-strncat` ("Potentially unsafe call to strncat") has been increased to `high`. As a result, it will be run by default as part of the Code Scanning suite. + +### Minor Analysis Improvements + +* The `cpp/unsigned-difference-expression-compared-zero` ("Unsigned difference expression compared to zero") query now produces fewer false positives. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 06fa75b96cbce..2ac15439f561a 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.1.0 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index ec7e9e095edf1..97b40ad7de2d1 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.0.4-dev +version: 1.1.1-dev groups: - cpp - queries diff --git a/cpp/ql/test/library-tests/allocators/allocators.cpp b/cpp/ql/test/library-tests/allocators/allocators.cpp index 3e4a6cec8dfc7..7db48bc9a8e81 100644 --- a/cpp/ql/test/library-tests/allocators/allocators.cpp +++ b/cpp/ql/test/library-tests/allocators/allocators.cpp @@ -1,7 +1,12 @@ -// semmle-extractor-options: -std=c++17 +// semmle-extractor-options: -std=c++20 typedef unsigned long size_t; namespace std { enum class align_val_t : size_t {}; + + struct destroying_delete_t { + explicit destroying_delete_t() = default; + }; + inline constexpr destroying_delete_t destroying_delete{}; } void* operator new(size_t, float); @@ -37,6 +42,11 @@ struct SizedDealloc { void operator delete[](void*, size_t); }; +struct DestroyingDealloc { + void* operator new(size_t); + void operator delete(DestroyingDealloc*, std::destroying_delete_t); +}; + struct alignas(128) Overaligned { char a[256]; }; @@ -59,6 +69,7 @@ void OperatorDelete() { delete static_cast(nullptr); // No destructor delete static_cast(nullptr); // Non-virtual destructor, with size. delete static_cast(nullptr); // No destructor, with size. + delete static_cast(nullptr); // No destructor, with destroying delete. delete static_cast(nullptr); // No destructor, with size and alignment. delete static_cast(nullptr); // Virtual destructor delete static_cast(nullptr); // Pointer to const @@ -103,11 +114,20 @@ struct alignas(128) FailedInitOveraligned { void operator delete[](void*, std::align_val_t, float); // Aligned placement }; +struct alignas(128) FailedInitDestroyingDelete { + FailedInitDestroyingDelete(); + ~FailedInitDestroyingDelete(); + + void* operator new(size_t); // Non-placement + void operator delete(FailedInitDestroyingDelete*, std::destroying_delete_t); // Destroying delete +}; + void TestFailedInit(int n) { new FailedInit(); new FailedInit[n]; new(1.0f) FailedInitOveraligned(); new(1.0f) FailedInitOveraligned[10]; + new FailedInitDestroyingDelete(); } // --- non-allocating placement new --- diff --git a/cpp/ql/test/library-tests/allocators/allocators.expected b/cpp/ql/test/library-tests/allocators/allocators.expected index 8ed64b76dfeb7..2bb436f847b38 100644 --- a/cpp/ql/test/library-tests/allocators/allocators.expected +++ b/cpp/ql/test/library-tests/allocators/allocators.expected @@ -1,118 +1,123 @@ newExprs -| allocators.cpp:49:3:49:9 | new | int | void* operator new(unsigned long) | 4 | 4 | | | -| allocators.cpp:50:3:50:15 | new | int | void* operator new(size_t, float) | 4 | 4 | | | -| allocators.cpp:51:3:51:11 | new | int | void* operator new(unsigned long) | 4 | 4 | | | -| allocators.cpp:52:3:52:14 | new | String | void* operator new(unsigned long) | 8 | 8 | | | -| allocators.cpp:53:3:53:27 | new | String | void* operator new(size_t, float) | 8 | 8 | | | -| allocators.cpp:54:3:54:17 | new | Overaligned | void* operator new(unsigned long, std::align_val_t) | 256 | 128 | aligned | | -| allocators.cpp:55:3:55:25 | new | Overaligned | void* operator new(size_t, std::align_val_t, float) | 256 | 128 | aligned | | -| allocators.cpp:107:3:107:18 | new | FailedInit | void* FailedInit::operator new(size_t) | 1 | 1 | | | -| allocators.cpp:109:3:109:35 | new | FailedInitOveraligned | void* FailedInitOveraligned::operator new(size_t, std::align_val_t, float) | 128 | 128 | aligned | | -| allocators.cpp:129:3:129:21 | new | int | void* operator new(std::size_t, void*) | 4 | 4 | | & ... | -| allocators.cpp:135:3:135:26 | new | int | void* operator new(std::size_t, std::nothrow_t const&) | 4 | 4 | | | +| allocators.cpp:59:3:59:9 | new | int | void* operator new(unsigned long) | 4 | 4 | | | +| allocators.cpp:60:3:60:15 | new | int | void* operator new(size_t, float) | 4 | 4 | | | +| allocators.cpp:61:3:61:11 | new | int | void* operator new(unsigned long) | 4 | 4 | | | +| allocators.cpp:62:3:62:14 | new | String | void* operator new(unsigned long) | 8 | 8 | | | +| allocators.cpp:63:3:63:27 | new | String | void* operator new(size_t, float) | 8 | 8 | | | +| allocators.cpp:64:3:64:17 | new | Overaligned | void* operator new(unsigned long, std::align_val_t) | 256 | 128 | aligned | | +| allocators.cpp:65:3:65:25 | new | Overaligned | void* operator new(size_t, std::align_val_t, float) | 256 | 128 | aligned | | +| allocators.cpp:126:3:126:18 | new | FailedInit | void* FailedInit::operator new(size_t) | 1 | 1 | | | +| allocators.cpp:128:3:128:35 | new | FailedInitOveraligned | void* FailedInitOveraligned::operator new(size_t, std::align_val_t, float) | 128 | 128 | aligned | | +| allocators.cpp:130:3:130:34 | new | FailedInitDestroyingDelete | void* FailedInitDestroyingDelete::operator new(size_t) | 128 | 128 | | | +| allocators.cpp:149:3:149:21 | new | int | void* operator new(std::size_t, void*) | 4 | 4 | | & ... | +| allocators.cpp:155:3:155:26 | new | int | void* operator new(std::size_t, std::nothrow_t const&) | 4 | 4 | | | newArrayExprs -| allocators.cpp:68:3:68:12 | new[] | int[] | int | void* operator new[](unsigned long) | 4 | 4 | | n | | -| allocators.cpp:69:3:69:18 | new[] | int[] | int | void* operator new[](size_t, float) | 4 | 4 | | n | | -| allocators.cpp:70:3:70:15 | new[] | String[] | String | void* operator new[](unsigned long) | 8 | 8 | | n | | -| allocators.cpp:71:3:71:20 | new[] | Overaligned[] | Overaligned | void* operator new[](unsigned long, std::align_val_t) | 256 | 128 | aligned | n | | -| allocators.cpp:72:3:72:16 | new[] | String[10] | String | void* operator new[](unsigned long) | 8 | 8 | | | | -| allocators.cpp:108:3:108:19 | new[] | FailedInit[] | FailedInit | void* FailedInit::operator new[](size_t) | 1 | 1 | | n | | -| allocators.cpp:110:3:110:37 | new[] | FailedInitOveraligned[10] | FailedInitOveraligned | void* FailedInitOveraligned::operator new[](size_t, std::align_val_t, float) | 128 | 128 | aligned | | | -| allocators.cpp:132:3:132:17 | new[] | int[1] | int | void* operator new[](std::size_t, void*) | 4 | 4 | | | buf | -| allocators.cpp:136:3:136:26 | new[] | int[2] | int | void* operator new[](std::size_t, std::nothrow_t const&) | 4 | 4 | | | | -| allocators.cpp:142:13:142:27 | new[] | char[][10] | char[10] | void* operator new[](unsigned long) | 10 | 1 | | x | | -| allocators.cpp:143:13:143:28 | new[] | char[20][20] | char[20] | void* operator new[](unsigned long) | 20 | 1 | | | | -| allocators.cpp:144:13:144:31 | new[] | char[][30][30] | char[30][30] | void* operator new[](unsigned long) | 900 | 1 | | x | | +| allocators.cpp:79:3:79:12 | new[] | int[] | int | void* operator new[](unsigned long) | 4 | 4 | | n | | +| allocators.cpp:80:3:80:18 | new[] | int[] | int | void* operator new[](size_t, float) | 4 | 4 | | n | | +| allocators.cpp:81:3:81:15 | new[] | String[] | String | void* operator new[](unsigned long) | 8 | 8 | | n | | +| allocators.cpp:82:3:82:20 | new[] | Overaligned[] | Overaligned | void* operator new[](unsigned long, std::align_val_t) | 256 | 128 | aligned | n | | +| allocators.cpp:83:3:83:16 | new[] | String[10] | String | void* operator new[](unsigned long) | 8 | 8 | | | | +| allocators.cpp:127:3:127:19 | new[] | FailedInit[] | FailedInit | void* FailedInit::operator new[](size_t) | 1 | 1 | | n | | +| allocators.cpp:129:3:129:37 | new[] | FailedInitOveraligned[10] | FailedInitOveraligned | void* FailedInitOveraligned::operator new[](size_t, std::align_val_t, float) | 128 | 128 | aligned | | | +| allocators.cpp:152:3:152:17 | new[] | int[1] | int | void* operator new[](std::size_t, void*) | 4 | 4 | | | buf | +| allocators.cpp:156:3:156:26 | new[] | int[2] | int | void* operator new[](std::size_t, std::nothrow_t const&) | 4 | 4 | | | | +| allocators.cpp:162:13:162:27 | new[] | char[][10] | char[10] | void* operator new[](unsigned long) | 10 | 1 | | x | | +| allocators.cpp:163:13:163:28 | new[] | char[20][20] | char[20] | void* operator new[](unsigned long) | 20 | 1 | | | | +| allocators.cpp:164:13:164:31 | new[] | char[][30][30] | char[30][30] | void* operator new[](unsigned long) | 900 | 1 | | x | | newExprDeallocators -| allocators.cpp:52:3:52:14 | new | String | void operator delete(void*, unsigned long) | 8 | 8 | sized | -| allocators.cpp:53:3:53:27 | new | String | void operator delete(void*, float) | 8 | 8 | | -| allocators.cpp:107:3:107:18 | new | FailedInit | void FailedInit::operator delete(void*, size_t) | 1 | 1 | sized | -| allocators.cpp:109:3:109:35 | new | FailedInitOveraligned | void FailedInitOveraligned::operator delete(void*, std::align_val_t, float) | 128 | 128 | aligned | +| allocators.cpp:62:3:62:14 | new | String | void operator delete(void*, unsigned long) | 8 | 8 | sized | +| allocators.cpp:63:3:63:27 | new | String | void operator delete(void*, float) | 8 | 8 | | +| allocators.cpp:126:3:126:18 | new | FailedInit | void FailedInit::operator delete(void*, size_t) | 1 | 1 | sized | +| allocators.cpp:128:3:128:35 | new | FailedInitOveraligned | void FailedInitOveraligned::operator delete(void*, std::align_val_t, float) | 128 | 128 | aligned | +| allocators.cpp:130:3:130:34 | new | FailedInitDestroyingDelete | void FailedInitDestroyingDelete::operator delete(FailedInitDestroyingDelete*, std::destroying_delete_t) | 128 | 128 | destroying | newArrayExprDeallocators -| allocators.cpp:70:3:70:15 | new[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | -| allocators.cpp:72:3:72:16 | new[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | -| allocators.cpp:108:3:108:19 | new[] | FailedInit | void FailedInit::operator delete[](void*, size_t) | 1 | 1 | sized | -| allocators.cpp:110:3:110:37 | new[] | FailedInitOveraligned | void FailedInitOveraligned::operator delete[](void*, std::align_val_t, float) | 128 | 128 | aligned | +| allocators.cpp:81:3:81:15 | new[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | +| allocators.cpp:83:3:83:16 | new[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | +| allocators.cpp:127:3:127:19 | new[] | FailedInit | void FailedInit::operator delete[](void*, size_t) | 1 | 1 | sized | +| allocators.cpp:129:3:129:37 | new[] | FailedInitOveraligned | void FailedInitOveraligned::operator delete[](void*, std::align_val_t, float) | 128 | 128 | aligned | deleteExprs -| allocators.cpp:59:3:59:35 | delete | int | void operator delete(void*, unsigned long) | 4 | 4 | sized | false | -| allocators.cpp:60:3:60:38 | delete | String | void operator delete(void*, unsigned long) | 8 | 8 | sized | false | -| allocators.cpp:61:3:61:44 | delete | SizedDealloc | void SizedDealloc::operator delete(void*, size_t) | 32 | 1 | sized | true | -| allocators.cpp:62:3:62:43 | delete | Overaligned | void operator delete(void*, unsigned long, std::align_val_t) | 256 | 128 | sized aligned | false | -| allocators.cpp:64:3:64:44 | delete | const String | void operator delete(void*, unsigned long) | 8 | 8 | sized | false | +| allocators.cpp:69:3:69:35 | delete | int | void operator delete(void*, unsigned long) | 4 | 4 | sized | false | +| allocators.cpp:70:3:70:38 | delete | String | void operator delete(void*, unsigned long) | 8 | 8 | sized | false | +| allocators.cpp:71:3:71:44 | delete | SizedDealloc | void SizedDealloc::operator delete(void*, size_t) | 32 | 1 | sized | true | +| allocators.cpp:72:3:72:49 | delete | DestroyingDealloc | void DestroyingDealloc::operator delete(DestroyingDealloc*, std::destroying_delete_t) | 1 | 1 | destroying | true | +| allocators.cpp:73:3:73:43 | delete | Overaligned | void operator delete(void*, unsigned long, std::align_val_t) | 256 | 128 | sized aligned | false | +| allocators.cpp:75:3:75:44 | delete | const String | void operator delete(void*, unsigned long) | 8 | 8 | sized | false | deleteArrayExprs -| allocators.cpp:78:3:78:37 | delete[] | int | void operator delete[](void*, unsigned long) | 4 | 4 | sized | -| allocators.cpp:79:3:79:40 | delete[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | -| allocators.cpp:80:3:80:46 | delete[] | SizedDealloc | void SizedDealloc::operator delete[](void*, size_t) | 32 | 1 | sized | -| allocators.cpp:81:3:81:45 | delete[] | Overaligned | void operator delete[](void*, unsigned long, std::align_val_t) | 256 | 128 | sized aligned | -| allocators.cpp:82:3:82:49 | delete[] | PolymorphicBase | void operator delete[](void*, unsigned long) | 8 | 8 | sized | -| allocators.cpp:83:3:83:23 | delete[] | int | void operator delete[](void*, unsigned long) | 4 | 4 | sized | +| allocators.cpp:89:3:89:37 | delete[] | int | void operator delete[](void*, unsigned long) | 4 | 4 | sized | +| allocators.cpp:90:3:90:40 | delete[] | String | void operator delete[](void*, unsigned long) | 8 | 8 | sized | +| allocators.cpp:91:3:91:46 | delete[] | SizedDealloc | void SizedDealloc::operator delete[](void*, size_t) | 32 | 1 | sized | +| allocators.cpp:92:3:92:45 | delete[] | Overaligned | void operator delete[](void*, unsigned long, std::align_val_t) | 256 | 128 | sized aligned | +| allocators.cpp:93:3:93:49 | delete[] | PolymorphicBase | void operator delete[](void*, unsigned long) | 8 | 8 | sized | +| allocators.cpp:94:3:94:23 | delete[] | int | void operator delete[](void*, unsigned long) | 4 | 4 | sized | allocationFunctions -| allocators.cpp:7:7:7:18 | operator new | getSizeArg = 0, requiresDealloc | -| allocators.cpp:8:7:8:20 | operator new[] | getSizeArg = 0, requiresDealloc | -| allocators.cpp:9:7:9:18 | operator new | getSizeArg = 0, requiresDealloc | -| allocators.cpp:10:7:10:20 | operator new[] | getSizeArg = 0, requiresDealloc | -| allocators.cpp:121:7:121:18 | operator new | getPlacementArgument = 1, getSizeArg = 0 | -| allocators.cpp:122:7:122:20 | operator new[] | getPlacementArgument = 1, getSizeArg = 0 | -| allocators.cpp:123:7:123:18 | operator new | getSizeArg = 0, requiresDealloc | -| allocators.cpp:124:7:124:20 | operator new[] | getSizeArg = 0, requiresDealloc | -| allocators.cpp:153:7:153:12 | malloc | getSizeArg = 0, requiresDealloc | +| allocators.cpp:12:7:12:18 | operator new | getSizeArg = 0, requiresDealloc | +| allocators.cpp:13:7:13:20 | operator new[] | getSizeArg = 0, requiresDealloc | +| allocators.cpp:14:7:14:18 | operator new | getSizeArg = 0, requiresDealloc | +| allocators.cpp:15:7:15:20 | operator new[] | getSizeArg = 0, requiresDealloc | +| allocators.cpp:141:7:141:18 | operator new | getPlacementArgument = 1, getSizeArg = 0 | +| allocators.cpp:142:7:142:20 | operator new[] | getPlacementArgument = 1, getSizeArg = 0 | +| allocators.cpp:143:7:143:18 | operator new | getSizeArg = 0, requiresDealloc | +| allocators.cpp:144:7:144:20 | operator new[] | getSizeArg = 0, requiresDealloc | +| allocators.cpp:173:7:173:12 | malloc | getSizeArg = 0, requiresDealloc | | file://:0:0:0:0 | operator new | getSizeArg = 0, requiresDealloc | | file://:0:0:0:0 | operator new | getSizeArg = 0, requiresDealloc | | file://:0:0:0:0 | operator new[] | getSizeArg = 0, requiresDealloc | | file://:0:0:0:0 | operator new[] | getSizeArg = 0, requiresDealloc | allocationExprs -| allocators.cpp:49:3:49:9 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | -| allocators.cpp:50:3:50:15 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | -| allocators.cpp:51:3:51:11 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | -| allocators.cpp:52:3:52:14 | new | getAllocatedElementType = String, getSizeBytes = 8, requiresDealloc | -| allocators.cpp:53:3:53:27 | new | getAllocatedElementType = String, getSizeBytes = 8, requiresDealloc | -| allocators.cpp:54:3:54:17 | new | getAllocatedElementType = Overaligned, getSizeBytes = 256, requiresDealloc | -| allocators.cpp:55:3:55:25 | new | getAllocatedElementType = Overaligned, getSizeBytes = 256, requiresDealloc | -| allocators.cpp:68:3:68:12 | new[] | getAllocatedElementType = int, getSizeExpr = n, getSizeMult = 4, requiresDealloc | -| allocators.cpp:69:3:69:18 | new[] | getAllocatedElementType = int, getSizeExpr = n, getSizeMult = 4, requiresDealloc | -| allocators.cpp:70:3:70:15 | new[] | getAllocatedElementType = String, getSizeExpr = n, getSizeMult = 8, requiresDealloc | -| allocators.cpp:71:3:71:20 | new[] | getAllocatedElementType = Overaligned, getSizeExpr = n, getSizeMult = 256, requiresDealloc | -| allocators.cpp:72:3:72:16 | new[] | getAllocatedElementType = String, getSizeBytes = 80, requiresDealloc | -| allocators.cpp:107:3:107:18 | new | getAllocatedElementType = FailedInit, getSizeBytes = 1, requiresDealloc | -| allocators.cpp:108:3:108:19 | new[] | getAllocatedElementType = FailedInit, getSizeExpr = n, getSizeMult = 1, requiresDealloc | -| allocators.cpp:109:3:109:35 | new | getAllocatedElementType = FailedInitOveraligned, getSizeBytes = 128, requiresDealloc | -| allocators.cpp:110:3:110:37 | new[] | getAllocatedElementType = FailedInitOveraligned, getSizeBytes = 1280, requiresDealloc | -| allocators.cpp:129:3:129:21 | new | getAllocatedElementType = int, getSizeBytes = 4 | -| allocators.cpp:132:3:132:17 | new[] | getAllocatedElementType = int, getSizeBytes = 4 | -| allocators.cpp:135:3:135:26 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | -| allocators.cpp:136:3:136:26 | new[] | getAllocatedElementType = int, getSizeBytes = 8, requiresDealloc | -| allocators.cpp:142:13:142:27 | new[] | getAllocatedElementType = char[10], getSizeExpr = x, getSizeMult = 10, requiresDealloc | -| allocators.cpp:143:13:143:28 | new[] | getAllocatedElementType = char[20], getSizeBytes = 400, requiresDealloc | -| allocators.cpp:144:13:144:31 | new[] | getAllocatedElementType = char[30][30], getSizeExpr = x, getSizeMult = 900, requiresDealloc | -| allocators.cpp:149:8:149:19 | call to operator new | getSizeBytes = 4, getSizeExpr = sizeof(int), getSizeMult = 1, requiresDealloc | -| allocators.cpp:157:50:157:55 | call to malloc | getAllocatedElementType = const volatile int, getSizeBytes = 5, getSizeExpr = 5, getSizeMult = 1, requiresDealloc | -| allocators.cpp:158:26:158:31 | call to malloc | getAllocatedElementType = int, getSizeBytes = 20, getSizeExpr = 5, getSizeMult = 4, requiresDealloc | -| allocators.cpp:159:31:159:36 | call to malloc | getAllocatedElementType = volatile long, getSizeExpr = count, getSizeMult = 1, requiresDealloc | -| allocators.cpp:160:16:160:21 | call to malloc | getAllocatedElementType = volatile long, getSizeExpr = count, getSizeMult = 4, requiresDealloc | -| allocators.cpp:161:34:161:39 | call to malloc | getAllocatedElementType = const char, getSizeExpr = ... + ..., getSizeMult = 1, requiresDealloc | -| allocators.cpp:162:23:162:28 | call to malloc | getSizeExpr = count, getSizeMult = 8, requiresDealloc | -| allocators.cpp:163:3:163:8 | call to malloc | getSizeBytes = 32, getSizeExpr = ... * ..., getSizeMult = 1, requiresDealloc | +| allocators.cpp:59:3:59:9 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | +| allocators.cpp:60:3:60:15 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | +| allocators.cpp:61:3:61:11 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | +| allocators.cpp:62:3:62:14 | new | getAllocatedElementType = String, getSizeBytes = 8, requiresDealloc | +| allocators.cpp:63:3:63:27 | new | getAllocatedElementType = String, getSizeBytes = 8, requiresDealloc | +| allocators.cpp:64:3:64:17 | new | getAllocatedElementType = Overaligned, getSizeBytes = 256, requiresDealloc | +| allocators.cpp:65:3:65:25 | new | getAllocatedElementType = Overaligned, getSizeBytes = 256, requiresDealloc | +| allocators.cpp:79:3:79:12 | new[] | getAllocatedElementType = int, getSizeExpr = n, getSizeMult = 4, requiresDealloc | +| allocators.cpp:80:3:80:18 | new[] | getAllocatedElementType = int, getSizeExpr = n, getSizeMult = 4, requiresDealloc | +| allocators.cpp:81:3:81:15 | new[] | getAllocatedElementType = String, getSizeExpr = n, getSizeMult = 8, requiresDealloc | +| allocators.cpp:82:3:82:20 | new[] | getAllocatedElementType = Overaligned, getSizeExpr = n, getSizeMult = 256, requiresDealloc | +| allocators.cpp:83:3:83:16 | new[] | getAllocatedElementType = String, getSizeBytes = 80, requiresDealloc | +| allocators.cpp:126:3:126:18 | new | getAllocatedElementType = FailedInit, getSizeBytes = 1, requiresDealloc | +| allocators.cpp:127:3:127:19 | new[] | getAllocatedElementType = FailedInit, getSizeExpr = n, getSizeMult = 1, requiresDealloc | +| allocators.cpp:128:3:128:35 | new | getAllocatedElementType = FailedInitOveraligned, getSizeBytes = 128, requiresDealloc | +| allocators.cpp:129:3:129:37 | new[] | getAllocatedElementType = FailedInitOveraligned, getSizeBytes = 1280, requiresDealloc | +| allocators.cpp:130:3:130:34 | new | getAllocatedElementType = FailedInitDestroyingDelete, getSizeBytes = 128, requiresDealloc | +| allocators.cpp:149:3:149:21 | new | getAllocatedElementType = int, getSizeBytes = 4 | +| allocators.cpp:152:3:152:17 | new[] | getAllocatedElementType = int, getSizeBytes = 4 | +| allocators.cpp:155:3:155:26 | new | getAllocatedElementType = int, getSizeBytes = 4, requiresDealloc | +| allocators.cpp:156:3:156:26 | new[] | getAllocatedElementType = int, getSizeBytes = 8, requiresDealloc | +| allocators.cpp:162:13:162:27 | new[] | getAllocatedElementType = char[10], getSizeExpr = x, getSizeMult = 10, requiresDealloc | +| allocators.cpp:163:13:163:28 | new[] | getAllocatedElementType = char[20], getSizeBytes = 400, requiresDealloc | +| allocators.cpp:164:13:164:31 | new[] | getAllocatedElementType = char[30][30], getSizeExpr = x, getSizeMult = 900, requiresDealloc | +| allocators.cpp:169:8:169:19 | call to operator new | getSizeBytes = 4, getSizeExpr = sizeof(int), getSizeMult = 1, requiresDealloc | +| allocators.cpp:177:50:177:55 | call to malloc | getAllocatedElementType = const volatile int, getSizeBytes = 5, getSizeExpr = 5, getSizeMult = 1, requiresDealloc | +| allocators.cpp:178:26:178:31 | call to malloc | getAllocatedElementType = int, getSizeBytes = 20, getSizeExpr = 5, getSizeMult = 4, requiresDealloc | +| allocators.cpp:179:31:179:36 | call to malloc | getAllocatedElementType = volatile long, getSizeExpr = count, getSizeMult = 1, requiresDealloc | +| allocators.cpp:180:16:180:21 | call to malloc | getAllocatedElementType = volatile long, getSizeExpr = count, getSizeMult = 4, requiresDealloc | +| allocators.cpp:181:34:181:39 | call to malloc | getAllocatedElementType = const char, getSizeExpr = ... + ..., getSizeMult = 1, requiresDealloc | +| allocators.cpp:182:23:182:28 | call to malloc | getSizeExpr = count, getSizeMult = 8, requiresDealloc | +| allocators.cpp:183:3:183:8 | call to malloc | getSizeBytes = 32, getSizeExpr = ... * ..., getSizeMult = 1, requiresDealloc | deallocationFunctions -| allocators.cpp:11:6:11:20 | operator delete | getFreedArg = 0 | -| allocators.cpp:12:6:12:22 | operator delete[] | getFreedArg = 0 | -| allocators.cpp:13:6:13:20 | operator delete | getFreedArg = 0 | -| allocators.cpp:14:6:14:22 | operator delete[] | getFreedArg = 0 | +| allocators.cpp:16:6:16:20 | operator delete | getFreedArg = 0 | +| allocators.cpp:17:6:17:22 | operator delete[] | getFreedArg = 0 | +| allocators.cpp:18:6:18:20 | operator delete | getFreedArg = 0 | +| allocators.cpp:19:6:19:22 | operator delete[] | getFreedArg = 0 | | file://:0:0:0:0 | operator delete | getFreedArg = 0 | | file://:0:0:0:0 | operator delete | getFreedArg = 0 | | file://:0:0:0:0 | operator delete | getFreedArg = 0 | | file://:0:0:0:0 | operator delete[] | getFreedArg = 0 | | file://:0:0:0:0 | operator delete[] | getFreedArg = 0 | deallocationExprs -| allocators.cpp:59:3:59:35 | delete | getFreedExpr = 0 | -| allocators.cpp:60:3:60:38 | delete | getFreedExpr = 0 | -| allocators.cpp:61:3:61:44 | delete | getFreedExpr = 0 | -| allocators.cpp:62:3:62:43 | delete | getFreedExpr = 0 | -| allocators.cpp:63:3:63:47 | delete | getFreedExpr = 0 | -| allocators.cpp:64:3:64:44 | delete | getFreedExpr = 0 | -| allocators.cpp:78:3:78:37 | delete[] | getFreedExpr = 0 | -| allocators.cpp:79:3:79:40 | delete[] | getFreedExpr = 0 | -| allocators.cpp:80:3:80:46 | delete[] | getFreedExpr = 0 | -| allocators.cpp:81:3:81:45 | delete[] | getFreedExpr = 0 | -| allocators.cpp:82:3:82:49 | delete[] | getFreedExpr = 0 | -| allocators.cpp:83:3:83:23 | delete[] | getFreedExpr = call to GetPointer | -| allocators.cpp:150:2:150:16 | call to operator delete | getFreedExpr = ptr | +| allocators.cpp:69:3:69:35 | delete | getFreedExpr = 0 | +| allocators.cpp:70:3:70:38 | delete | getFreedExpr = 0 | +| allocators.cpp:71:3:71:44 | delete | getFreedExpr = 0 | +| allocators.cpp:72:3:72:49 | delete | getFreedExpr = 0 | +| allocators.cpp:73:3:73:43 | delete | getFreedExpr = 0 | +| allocators.cpp:74:3:74:47 | delete | getFreedExpr = 0 | +| allocators.cpp:75:3:75:44 | delete | getFreedExpr = 0 | +| allocators.cpp:89:3:89:37 | delete[] | getFreedExpr = 0 | +| allocators.cpp:90:3:90:40 | delete[] | getFreedExpr = 0 | +| allocators.cpp:91:3:91:46 | delete[] | getFreedExpr = 0 | +| allocators.cpp:92:3:92:45 | delete[] | getFreedExpr = 0 | +| allocators.cpp:93:3:93:49 | delete[] | getFreedExpr = 0 | +| allocators.cpp:94:3:94:23 | delete[] | getFreedExpr = call to GetPointer | +| allocators.cpp:170:2:170:16 | call to operator delete | getFreedExpr = ptr | diff --git a/cpp/ql/test/library-tests/allocators/allocators.ql b/cpp/ql/test/library-tests/allocators/allocators.ql index aba72adf5ba96..acb8e8cba2660 100644 --- a/cpp/ql/test/library-tests/allocators/allocators.ql +++ b/cpp/ql/test/library-tests/allocators/allocators.ql @@ -50,10 +50,11 @@ query predicate newExprDeallocators( type = allocatedType.toString() and size = allocatedType.getSize() and alignment = allocatedType.getAlignment() and - exists(string sized, string aligned | + exists(string sized, string aligned, string destroying | (if expr.hasAlignedDeallocation() then aligned = "aligned" else aligned = "") and (if expr.hasSizedDeallocation() then sized = "sized" else sized = "") and - form = sized + " " + aligned + (if expr.isDestroyingDeleteDeallocation() then destroying = "destroying" else destroying = "") and + form = sized + " " + aligned + " " + destroying ) ) } @@ -68,10 +69,11 @@ query predicate newArrayExprDeallocators( type = elementType.toString() and size = elementType.getSize() and alignment = elementType.getAlignment() and - exists(string sized, string aligned | + exists(string sized, string aligned, string destroying | (if expr.hasAlignedDeallocation() then aligned = "aligned" else aligned = "") and (if expr.hasSizedDeallocation() then sized = "sized" else sized = "") and - form = sized + " " + aligned + (if expr.isDestroyingDeleteDeallocation() then destroying = "destroying" else destroying = "") and + form = sized + " " + aligned + " " + destroying ) ) } @@ -87,10 +89,11 @@ query predicate deleteExprs( type = deletedType.toString() and size = deletedType.getSize() and alignment = deletedType.getAlignment() and - exists(string sized, string aligned | + exists(string sized, string aligned, string destroying | (if expr.hasAlignedDeallocation() then aligned = "aligned" else aligned = "") and (if expr.hasSizedDeallocation() then sized = "sized" else sized = "") and - form = sized + " " + aligned + (if expr.isDestroyingDeleteDeallocation() then destroying = "destroying" else destroying = "") and + form = sized + " " + aligned + " " + destroying ) and if exists(expr.getDeallocatorCall()) then hasDeallocatorCall = true @@ -108,10 +111,11 @@ query predicate deleteArrayExprs( type = elementType.toString() and size = elementType.getSize() and alignment = elementType.getAlignment() and - exists(string sized, string aligned | + exists(string sized, string aligned, string destroying | (if expr.hasAlignedDeallocation() then aligned = "aligned" else aligned = "") and (if expr.hasSizedDeallocation() then sized = "sized" else sized = "") and - form = sized + " " + aligned + (if expr.isDestroyingDeleteDeallocation() then destroying = "destroying" else destroying = "") and + form = sized + " " + aligned + " " + destroying ) ) } diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected b/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected index 363b5ed1c7e6d..2d331cb1532d4 100644 --- a/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/arguments.expected @@ -1,7 +1,5 @@ | declspec.cpp:4:23:4:43 | Use fatal() instead | declspec.cpp:4:59:4:62 | exit | declspec.cpp:4:12:4:21 | deprecated | Use fatal() instead | | routine_attributes2.cpp:5:6:5:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | hidden | -| routine_attributes2.cpp:5:6:5:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | hidden | -| routine_attributes2.h:3:6:3:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | hidden | | routine_attributes2.h:3:6:3:11 | hidden | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | hidden | | routine_attributes.c:3:53:3:59 | dummy | routine_attributes.c:3:12:3:24 | named_weakref | routine_attributes.c:3:44:3:50 | weakref | dummy | | routine_attributes.c:4:62:4:68 | dummy | routine_attributes.c:4:12:4:26 | aliased_weakref | routine_attributes.c:4:55:4:59 | alias | dummy | diff --git a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected index 529b2d5f78c53..e0b906e23d034 100644 --- a/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected +++ b/cpp/ql/test/library-tests/attributes/routine_attributes/routine_attributes.expected @@ -19,8 +19,6 @@ | header_export.cpp:18:6:18:16 | myFunction5 | header.h:10:2:10:10 | dllexport | | header_export.cpp:18:6:18:16 | myFunction5 | header.h:10:2:10:10 | dllimport | | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | -| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.cpp:5:6:5:11 | visibility | -| routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | | routine_attributes2.cpp:5:13:5:21 | a_routine | routine_attributes2.h:3:6:3:11 | visibility | | routine_attributes.c:3:12:3:24 | named_weakref | routine_attributes.c:3:44:3:50 | weakref | | routine_attributes.c:4:12:4:26 | aliased_weakref | routine_attributes.c:4:46:4:52 | weakref | diff --git a/cpp/ql/test/library-tests/attributes/type_attributes/arguments.expected b/cpp/ql/test/library-tests/attributes/type_attributes/arguments.expected index bf1fac006103f..8128a19891e3d 100644 --- a/cpp/ql/test/library-tests/attributes/type_attributes/arguments.expected +++ b/cpp/ql/test/library-tests/attributes/type_attributes/arguments.expected @@ -1,6 +1,5 @@ | type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.cpp:5:7:5:12 | visibility | type_attributes2.cpp:5:7:5:12 | hidden | | type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.h:3:7:3:12 | visibility | type_attributes2.h:3:7:3:12 | hidden | -| type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.h:3:7:3:12 | visibility | type_attributes2.h:3:7:3:12 | hidden | | type_attributes_ms.cpp:4:67:4:75 | IDispatch | type_attributes_ms.cpp:4:19:4:22 | uuid | type_attributes_ms.cpp:4:24:4:63 | {00020400-0000-0000-c000-000000000046} | | type_attributes_ms.cpp:5:30:5:33 | Str1 | type_attributes_ms.cpp:5:12:5:16 | align | type_attributes_ms.cpp:5:18:5:19 | 32 | | type_attributes_ms.cpp:6:55:6:62 | IUnknown | type_attributes_ms.cpp:6:2:6:2 | uuid | type_attributes_ms.cpp:6:2:6:2 | 00000000-0000-0000-c000-000000000046 | diff --git a/cpp/ql/test/library-tests/attributes/type_attributes/type_attributes.expected b/cpp/ql/test/library-tests/attributes/type_attributes/type_attributes.expected index d03209b4bfe9f..ba58d7f1fecd5 100644 --- a/cpp/ql/test/library-tests/attributes/type_attributes/type_attributes.expected +++ b/cpp/ql/test/library-tests/attributes/type_attributes/type_attributes.expected @@ -1,7 +1,6 @@ | file://:0:0:0:0 | short __attribute((__may_alias__)) | type_attributes.c:25:30:25:42 | may_alias | | type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.cpp:5:7:5:12 | visibility | | type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.h:3:7:3:12 | visibility | -| type_attributes2.cpp:5:14:5:20 | a_class | type_attributes2.h:3:7:3:12 | visibility | | type_attributes.c:5:36:5:51 | my_packed_struct | type_attributes.c:5:23:5:32 | packed | | type_attributes.c:10:54:10:54 | (unnamed class/struct/union) | type_attributes.c:10:30:10:50 | transparent_union | | type_attributes.c:16:54:16:54 | (unnamed class/struct/union) | type_attributes.c:16:30:16:50 | transparent_union | diff --git a/cpp/ql/test/library-tests/attributes/var_attributes/var_attributes.expected b/cpp/ql/test/library-tests/attributes/var_attributes/var_attributes.expected index 96e2d5defc766..436e275b835c3 100644 --- a/cpp/ql/test/library-tests/attributes/var_attributes/var_attributes.expected +++ b/cpp/ql/test/library-tests/attributes/var_attributes/var_attributes.expected @@ -7,8 +7,6 @@ | ms_var_attributes.cpp:20:34:20:37 | pBuf | ms_var_attributes.cpp:20:12:20:12 | SAL_volatile | | ms_var_attributes.h:5:22:5:27 | myInt3 | ms_var_attributes.h:5:1:5:9 | dllexport | | var_attributes2.cpp:5:12:5:21 | a_variable | var_attributes2.cpp:5:5:5:10 | visibility | -| var_attributes2.cpp:5:12:5:21 | a_variable | var_attributes2.cpp:5:5:5:10 | visibility | -| var_attributes2.cpp:5:12:5:21 | a_variable | var_attributes2.h:3:12:3:17 | visibility | | var_attributes2.cpp:5:12:5:21 | a_variable | var_attributes2.h:3:12:3:17 | visibility | | var_attributes.c:1:12:1:19 | weak_var | var_attributes.c:1:36:1:39 | weak | | var_attributes.c:2:12:2:22 | weakref_var | var_attributes.c:2:39:2:45 | weakref | diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index cba8a74758a2e..7f7a474598204 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -23259,6 +23259,24611 @@ ir.cpp: # 2686| Value = [CStyleCast] 0 # 2686| ValueCategory = prvalue # 2687| getStmt(1): [ReturnStmt] return ... +many-defs-per-use.cpp: +# 17| [TopLevelFunction] void many_defs_per_use() +# 17| : +# 17| getEntryPoint(): [BlockStmt] { ... } +# 18| getStmt(0): [DoStmt] do (...) ... +# 20| getCondition(): [Literal] 0 +# 20| Type = [IntType] int +# 20| Value = [Literal] 0 +# 20| ValueCategory = prvalue +# 18| getStmt(): [BlockStmt] { ... } +# 19| getStmt(0): [DeclStmt] declaration +# 19| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x0 +# 19| Type = [Struct] String +# 19| getVariable().getInitializer(): [Initializer] initializer for x0 +# 19| getExpr(): [ConstructorCall] call to String +# 19| Type = [VoidType] void +# 19| ValueCategory = prvalue +# 20| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 20| Type = [VoidType] void +# 20| ValueCategory = prvalue +# 20| getQualifier(): [VariableAccess] x0 +# 20| Type = [Struct] String +# 20| ValueCategory = lvalue +# 20| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 20| Conversion = [BoolConversion] conversion to bool +# 20| Type = [BoolType] bool +# 20| Value = [CStyleCast] 0 +# 20| ValueCategory = prvalue +# 21| getStmt(1): [DoStmt] do (...) ... +# 23| getCondition(): [Literal] 0 +# 23| Type = [IntType] int +# 23| Value = [Literal] 0 +# 23| ValueCategory = prvalue +# 21| getStmt(): [BlockStmt] { ... } +# 22| getStmt(0): [DeclStmt] declaration +# 22| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1 +# 22| Type = [Struct] String +# 22| getVariable().getInitializer(): [Initializer] initializer for x1 +# 22| getExpr(): [ConstructorCall] call to String +# 22| Type = [VoidType] void +# 22| ValueCategory = prvalue +# 23| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 23| Type = [VoidType] void +# 23| ValueCategory = prvalue +# 23| getQualifier(): [VariableAccess] x1 +# 23| Type = [Struct] String +# 23| ValueCategory = lvalue +# 23| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 23| Conversion = [BoolConversion] conversion to bool +# 23| Type = [BoolType] bool +# 23| Value = [CStyleCast] 0 +# 23| ValueCategory = prvalue +# 24| getStmt(2): [DoStmt] do (...) ... +# 26| getCondition(): [Literal] 0 +# 26| Type = [IntType] int +# 26| Value = [Literal] 0 +# 26| ValueCategory = prvalue +# 24| getStmt(): [BlockStmt] { ... } +# 25| getStmt(0): [DeclStmt] declaration +# 25| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x2 +# 25| Type = [Struct] String +# 25| getVariable().getInitializer(): [Initializer] initializer for x2 +# 25| getExpr(): [ConstructorCall] call to String +# 25| Type = [VoidType] void +# 25| ValueCategory = prvalue +# 26| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 26| Type = [VoidType] void +# 26| ValueCategory = prvalue +# 26| getQualifier(): [VariableAccess] x2 +# 26| Type = [Struct] String +# 26| ValueCategory = lvalue +# 26| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 26| Conversion = [BoolConversion] conversion to bool +# 26| Type = [BoolType] bool +# 26| Value = [CStyleCast] 0 +# 26| ValueCategory = prvalue +# 27| getStmt(3): [DoStmt] do (...) ... +# 29| getCondition(): [Literal] 0 +# 29| Type = [IntType] int +# 29| Value = [Literal] 0 +# 29| ValueCategory = prvalue +# 27| getStmt(): [BlockStmt] { ... } +# 28| getStmt(0): [DeclStmt] declaration +# 28| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x3 +# 28| Type = [Struct] String +# 28| getVariable().getInitializer(): [Initializer] initializer for x3 +# 28| getExpr(): [ConstructorCall] call to String +# 28| Type = [VoidType] void +# 28| ValueCategory = prvalue +# 29| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 29| Type = [VoidType] void +# 29| ValueCategory = prvalue +# 29| getQualifier(): [VariableAccess] x3 +# 29| Type = [Struct] String +# 29| ValueCategory = lvalue +# 29| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 29| Conversion = [BoolConversion] conversion to bool +# 29| Type = [BoolType] bool +# 29| Value = [CStyleCast] 0 +# 29| ValueCategory = prvalue +# 30| getStmt(4): [DoStmt] do (...) ... +# 32| getCondition(): [Literal] 0 +# 32| Type = [IntType] int +# 32| Value = [Literal] 0 +# 32| ValueCategory = prvalue +# 30| getStmt(): [BlockStmt] { ... } +# 31| getStmt(0): [DeclStmt] declaration +# 31| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x4 +# 31| Type = [Struct] String +# 31| getVariable().getInitializer(): [Initializer] initializer for x4 +# 31| getExpr(): [ConstructorCall] call to String +# 31| Type = [VoidType] void +# 31| ValueCategory = prvalue +# 32| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 32| Type = [VoidType] void +# 32| ValueCategory = prvalue +# 32| getQualifier(): [VariableAccess] x4 +# 32| Type = [Struct] String +# 32| ValueCategory = lvalue +# 32| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 32| Conversion = [BoolConversion] conversion to bool +# 32| Type = [BoolType] bool +# 32| Value = [CStyleCast] 0 +# 32| ValueCategory = prvalue +# 33| getStmt(5): [DoStmt] do (...) ... +# 35| getCondition(): [Literal] 0 +# 35| Type = [IntType] int +# 35| Value = [Literal] 0 +# 35| ValueCategory = prvalue +# 33| getStmt(): [BlockStmt] { ... } +# 34| getStmt(0): [DeclStmt] declaration +# 34| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x5 +# 34| Type = [Struct] String +# 34| getVariable().getInitializer(): [Initializer] initializer for x5 +# 34| getExpr(): [ConstructorCall] call to String +# 34| Type = [VoidType] void +# 34| ValueCategory = prvalue +# 35| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 35| Type = [VoidType] void +# 35| ValueCategory = prvalue +# 35| getQualifier(): [VariableAccess] x5 +# 35| Type = [Struct] String +# 35| ValueCategory = lvalue +# 35| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 35| Conversion = [BoolConversion] conversion to bool +# 35| Type = [BoolType] bool +# 35| Value = [CStyleCast] 0 +# 35| ValueCategory = prvalue +# 36| getStmt(6): [DoStmt] do (...) ... +# 38| getCondition(): [Literal] 0 +# 38| Type = [IntType] int +# 38| Value = [Literal] 0 +# 38| ValueCategory = prvalue +# 36| getStmt(): [BlockStmt] { ... } +# 37| getStmt(0): [DeclStmt] declaration +# 37| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x6 +# 37| Type = [Struct] String +# 37| getVariable().getInitializer(): [Initializer] initializer for x6 +# 37| getExpr(): [ConstructorCall] call to String +# 37| Type = [VoidType] void +# 37| ValueCategory = prvalue +# 38| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 38| Type = [VoidType] void +# 38| ValueCategory = prvalue +# 38| getQualifier(): [VariableAccess] x6 +# 38| Type = [Struct] String +# 38| ValueCategory = lvalue +# 38| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 38| Conversion = [BoolConversion] conversion to bool +# 38| Type = [BoolType] bool +# 38| Value = [CStyleCast] 0 +# 38| ValueCategory = prvalue +# 39| getStmt(7): [DoStmt] do (...) ... +# 41| getCondition(): [Literal] 0 +# 41| Type = [IntType] int +# 41| Value = [Literal] 0 +# 41| ValueCategory = prvalue +# 39| getStmt(): [BlockStmt] { ... } +# 40| getStmt(0): [DeclStmt] declaration +# 40| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x7 +# 40| Type = [Struct] String +# 40| getVariable().getInitializer(): [Initializer] initializer for x7 +# 40| getExpr(): [ConstructorCall] call to String +# 40| Type = [VoidType] void +# 40| ValueCategory = prvalue +# 41| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 41| Type = [VoidType] void +# 41| ValueCategory = prvalue +# 41| getQualifier(): [VariableAccess] x7 +# 41| Type = [Struct] String +# 41| ValueCategory = lvalue +# 41| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 41| Conversion = [BoolConversion] conversion to bool +# 41| Type = [BoolType] bool +# 41| Value = [CStyleCast] 0 +# 41| ValueCategory = prvalue +# 42| getStmt(8): [DoStmt] do (...) ... +# 44| getCondition(): [Literal] 0 +# 44| Type = [IntType] int +# 44| Value = [Literal] 0 +# 44| ValueCategory = prvalue +# 42| getStmt(): [BlockStmt] { ... } +# 43| getStmt(0): [DeclStmt] declaration +# 43| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x8 +# 43| Type = [Struct] String +# 43| getVariable().getInitializer(): [Initializer] initializer for x8 +# 43| getExpr(): [ConstructorCall] call to String +# 43| Type = [VoidType] void +# 43| ValueCategory = prvalue +# 44| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 44| Type = [VoidType] void +# 44| ValueCategory = prvalue +# 44| getQualifier(): [VariableAccess] x8 +# 44| Type = [Struct] String +# 44| ValueCategory = lvalue +# 44| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 44| Conversion = [BoolConversion] conversion to bool +# 44| Type = [BoolType] bool +# 44| Value = [CStyleCast] 0 +# 44| ValueCategory = prvalue +# 45| getStmt(9): [DoStmt] do (...) ... +# 47| getCondition(): [Literal] 0 +# 47| Type = [IntType] int +# 47| Value = [Literal] 0 +# 47| ValueCategory = prvalue +# 45| getStmt(): [BlockStmt] { ... } +# 46| getStmt(0): [DeclStmt] declaration +# 46| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x9 +# 46| Type = [Struct] String +# 46| getVariable().getInitializer(): [Initializer] initializer for x9 +# 46| getExpr(): [ConstructorCall] call to String +# 46| Type = [VoidType] void +# 46| ValueCategory = prvalue +# 47| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 47| Type = [VoidType] void +# 47| ValueCategory = prvalue +# 47| getQualifier(): [VariableAccess] x9 +# 47| Type = [Struct] String +# 47| ValueCategory = lvalue +# 47| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 47| Conversion = [BoolConversion] conversion to bool +# 47| Type = [BoolType] bool +# 47| Value = [CStyleCast] 0 +# 47| ValueCategory = prvalue +# 48| getStmt(10): [DoStmt] do (...) ... +# 50| getCondition(): [Literal] 0 +# 50| Type = [IntType] int +# 50| Value = [Literal] 0 +# 50| ValueCategory = prvalue +# 48| getStmt(): [BlockStmt] { ... } +# 49| getStmt(0): [DeclStmt] declaration +# 49| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x10 +# 49| Type = [Struct] String +# 49| getVariable().getInitializer(): [Initializer] initializer for x10 +# 49| getExpr(): [ConstructorCall] call to String +# 49| Type = [VoidType] void +# 49| ValueCategory = prvalue +# 50| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 50| Type = [VoidType] void +# 50| ValueCategory = prvalue +# 50| getQualifier(): [VariableAccess] x10 +# 50| Type = [Struct] String +# 50| ValueCategory = lvalue +# 50| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 50| Conversion = [BoolConversion] conversion to bool +# 50| Type = [BoolType] bool +# 50| Value = [CStyleCast] 0 +# 50| ValueCategory = prvalue +# 51| getStmt(11): [DoStmt] do (...) ... +# 53| getCondition(): [Literal] 0 +# 53| Type = [IntType] int +# 53| Value = [Literal] 0 +# 53| ValueCategory = prvalue +# 51| getStmt(): [BlockStmt] { ... } +# 52| getStmt(0): [DeclStmt] declaration +# 52| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x11 +# 52| Type = [Struct] String +# 52| getVariable().getInitializer(): [Initializer] initializer for x11 +# 52| getExpr(): [ConstructorCall] call to String +# 52| Type = [VoidType] void +# 52| ValueCategory = prvalue +# 53| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 53| Type = [VoidType] void +# 53| ValueCategory = prvalue +# 53| getQualifier(): [VariableAccess] x11 +# 53| Type = [Struct] String +# 53| ValueCategory = lvalue +# 53| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 53| Conversion = [BoolConversion] conversion to bool +# 53| Type = [BoolType] bool +# 53| Value = [CStyleCast] 0 +# 53| ValueCategory = prvalue +# 54| getStmt(12): [DoStmt] do (...) ... +# 56| getCondition(): [Literal] 0 +# 56| Type = [IntType] int +# 56| Value = [Literal] 0 +# 56| ValueCategory = prvalue +# 54| getStmt(): [BlockStmt] { ... } +# 55| getStmt(0): [DeclStmt] declaration +# 55| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x12 +# 55| Type = [Struct] String +# 55| getVariable().getInitializer(): [Initializer] initializer for x12 +# 55| getExpr(): [ConstructorCall] call to String +# 55| Type = [VoidType] void +# 55| ValueCategory = prvalue +# 56| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 56| Type = [VoidType] void +# 56| ValueCategory = prvalue +# 56| getQualifier(): [VariableAccess] x12 +# 56| Type = [Struct] String +# 56| ValueCategory = lvalue +# 56| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 56| Conversion = [BoolConversion] conversion to bool +# 56| Type = [BoolType] bool +# 56| Value = [CStyleCast] 0 +# 56| ValueCategory = prvalue +# 57| getStmt(13): [DoStmt] do (...) ... +# 59| getCondition(): [Literal] 0 +# 59| Type = [IntType] int +# 59| Value = [Literal] 0 +# 59| ValueCategory = prvalue +# 57| getStmt(): [BlockStmt] { ... } +# 58| getStmt(0): [DeclStmt] declaration +# 58| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x13 +# 58| Type = [Struct] String +# 58| getVariable().getInitializer(): [Initializer] initializer for x13 +# 58| getExpr(): [ConstructorCall] call to String +# 58| Type = [VoidType] void +# 58| ValueCategory = prvalue +# 59| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 59| Type = [VoidType] void +# 59| ValueCategory = prvalue +# 59| getQualifier(): [VariableAccess] x13 +# 59| Type = [Struct] String +# 59| ValueCategory = lvalue +# 59| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 59| Conversion = [BoolConversion] conversion to bool +# 59| Type = [BoolType] bool +# 59| Value = [CStyleCast] 0 +# 59| ValueCategory = prvalue +# 60| getStmt(14): [DoStmt] do (...) ... +# 62| getCondition(): [Literal] 0 +# 62| Type = [IntType] int +# 62| Value = [Literal] 0 +# 62| ValueCategory = prvalue +# 60| getStmt(): [BlockStmt] { ... } +# 61| getStmt(0): [DeclStmt] declaration +# 61| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x14 +# 61| Type = [Struct] String +# 61| getVariable().getInitializer(): [Initializer] initializer for x14 +# 61| getExpr(): [ConstructorCall] call to String +# 61| Type = [VoidType] void +# 61| ValueCategory = prvalue +# 62| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 62| Type = [VoidType] void +# 62| ValueCategory = prvalue +# 62| getQualifier(): [VariableAccess] x14 +# 62| Type = [Struct] String +# 62| ValueCategory = lvalue +# 62| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 62| Conversion = [BoolConversion] conversion to bool +# 62| Type = [BoolType] bool +# 62| Value = [CStyleCast] 0 +# 62| ValueCategory = prvalue +# 63| getStmt(15): [DoStmt] do (...) ... +# 65| getCondition(): [Literal] 0 +# 65| Type = [IntType] int +# 65| Value = [Literal] 0 +# 65| ValueCategory = prvalue +# 63| getStmt(): [BlockStmt] { ... } +# 64| getStmt(0): [DeclStmt] declaration +# 64| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x15 +# 64| Type = [Struct] String +# 64| getVariable().getInitializer(): [Initializer] initializer for x15 +# 64| getExpr(): [ConstructorCall] call to String +# 64| Type = [VoidType] void +# 64| ValueCategory = prvalue +# 65| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 65| Type = [VoidType] void +# 65| ValueCategory = prvalue +# 65| getQualifier(): [VariableAccess] x15 +# 65| Type = [Struct] String +# 65| ValueCategory = lvalue +# 65| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 65| Conversion = [BoolConversion] conversion to bool +# 65| Type = [BoolType] bool +# 65| Value = [CStyleCast] 0 +# 65| ValueCategory = prvalue +# 66| getStmt(16): [DoStmt] do (...) ... +# 68| getCondition(): [Literal] 0 +# 68| Type = [IntType] int +# 68| Value = [Literal] 0 +# 68| ValueCategory = prvalue +# 66| getStmt(): [BlockStmt] { ... } +# 67| getStmt(0): [DeclStmt] declaration +# 67| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x16 +# 67| Type = [Struct] String +# 67| getVariable().getInitializer(): [Initializer] initializer for x16 +# 67| getExpr(): [ConstructorCall] call to String +# 67| Type = [VoidType] void +# 67| ValueCategory = prvalue +# 68| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 68| Type = [VoidType] void +# 68| ValueCategory = prvalue +# 68| getQualifier(): [VariableAccess] x16 +# 68| Type = [Struct] String +# 68| ValueCategory = lvalue +# 68| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 68| Conversion = [BoolConversion] conversion to bool +# 68| Type = [BoolType] bool +# 68| Value = [CStyleCast] 0 +# 68| ValueCategory = prvalue +# 69| getStmt(17): [DoStmt] do (...) ... +# 71| getCondition(): [Literal] 0 +# 71| Type = [IntType] int +# 71| Value = [Literal] 0 +# 71| ValueCategory = prvalue +# 69| getStmt(): [BlockStmt] { ... } +# 70| getStmt(0): [DeclStmt] declaration +# 70| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x17 +# 70| Type = [Struct] String +# 70| getVariable().getInitializer(): [Initializer] initializer for x17 +# 70| getExpr(): [ConstructorCall] call to String +# 70| Type = [VoidType] void +# 70| ValueCategory = prvalue +# 71| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 71| Type = [VoidType] void +# 71| ValueCategory = prvalue +# 71| getQualifier(): [VariableAccess] x17 +# 71| Type = [Struct] String +# 71| ValueCategory = lvalue +# 71| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 71| Conversion = [BoolConversion] conversion to bool +# 71| Type = [BoolType] bool +# 71| Value = [CStyleCast] 0 +# 71| ValueCategory = prvalue +# 72| getStmt(18): [DoStmt] do (...) ... +# 74| getCondition(): [Literal] 0 +# 74| Type = [IntType] int +# 74| Value = [Literal] 0 +# 74| ValueCategory = prvalue +# 72| getStmt(): [BlockStmt] { ... } +# 73| getStmt(0): [DeclStmt] declaration +# 73| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x18 +# 73| Type = [Struct] String +# 73| getVariable().getInitializer(): [Initializer] initializer for x18 +# 73| getExpr(): [ConstructorCall] call to String +# 73| Type = [VoidType] void +# 73| ValueCategory = prvalue +# 74| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 74| Type = [VoidType] void +# 74| ValueCategory = prvalue +# 74| getQualifier(): [VariableAccess] x18 +# 74| Type = [Struct] String +# 74| ValueCategory = lvalue +# 74| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 74| Conversion = [BoolConversion] conversion to bool +# 74| Type = [BoolType] bool +# 74| Value = [CStyleCast] 0 +# 74| ValueCategory = prvalue +# 75| getStmt(19): [DoStmt] do (...) ... +# 77| getCondition(): [Literal] 0 +# 77| Type = [IntType] int +# 77| Value = [Literal] 0 +# 77| ValueCategory = prvalue +# 75| getStmt(): [BlockStmt] { ... } +# 76| getStmt(0): [DeclStmt] declaration +# 76| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x19 +# 76| Type = [Struct] String +# 76| getVariable().getInitializer(): [Initializer] initializer for x19 +# 76| getExpr(): [ConstructorCall] call to String +# 76| Type = [VoidType] void +# 76| ValueCategory = prvalue +# 77| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 77| Type = [VoidType] void +# 77| ValueCategory = prvalue +# 77| getQualifier(): [VariableAccess] x19 +# 77| Type = [Struct] String +# 77| ValueCategory = lvalue +# 77| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 77| Conversion = [BoolConversion] conversion to bool +# 77| Type = [BoolType] bool +# 77| Value = [CStyleCast] 0 +# 77| ValueCategory = prvalue +# 78| getStmt(20): [DoStmt] do (...) ... +# 80| getCondition(): [Literal] 0 +# 80| Type = [IntType] int +# 80| Value = [Literal] 0 +# 80| ValueCategory = prvalue +# 78| getStmt(): [BlockStmt] { ... } +# 79| getStmt(0): [DeclStmt] declaration +# 79| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x20 +# 79| Type = [Struct] String +# 79| getVariable().getInitializer(): [Initializer] initializer for x20 +# 79| getExpr(): [ConstructorCall] call to String +# 79| Type = [VoidType] void +# 79| ValueCategory = prvalue +# 80| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 80| Type = [VoidType] void +# 80| ValueCategory = prvalue +# 80| getQualifier(): [VariableAccess] x20 +# 80| Type = [Struct] String +# 80| ValueCategory = lvalue +# 80| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 80| Conversion = [BoolConversion] conversion to bool +# 80| Type = [BoolType] bool +# 80| Value = [CStyleCast] 0 +# 80| ValueCategory = prvalue +# 81| getStmt(21): [DoStmt] do (...) ... +# 83| getCondition(): [Literal] 0 +# 83| Type = [IntType] int +# 83| Value = [Literal] 0 +# 83| ValueCategory = prvalue +# 81| getStmt(): [BlockStmt] { ... } +# 82| getStmt(0): [DeclStmt] declaration +# 82| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x21 +# 82| Type = [Struct] String +# 82| getVariable().getInitializer(): [Initializer] initializer for x21 +# 82| getExpr(): [ConstructorCall] call to String +# 82| Type = [VoidType] void +# 82| ValueCategory = prvalue +# 83| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 83| Type = [VoidType] void +# 83| ValueCategory = prvalue +# 83| getQualifier(): [VariableAccess] x21 +# 83| Type = [Struct] String +# 83| ValueCategory = lvalue +# 83| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 83| Conversion = [BoolConversion] conversion to bool +# 83| Type = [BoolType] bool +# 83| Value = [CStyleCast] 0 +# 83| ValueCategory = prvalue +# 84| getStmt(22): [DoStmt] do (...) ... +# 86| getCondition(): [Literal] 0 +# 86| Type = [IntType] int +# 86| Value = [Literal] 0 +# 86| ValueCategory = prvalue +# 84| getStmt(): [BlockStmt] { ... } +# 85| getStmt(0): [DeclStmt] declaration +# 85| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x22 +# 85| Type = [Struct] String +# 85| getVariable().getInitializer(): [Initializer] initializer for x22 +# 85| getExpr(): [ConstructorCall] call to String +# 85| Type = [VoidType] void +# 85| ValueCategory = prvalue +# 86| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 86| Type = [VoidType] void +# 86| ValueCategory = prvalue +# 86| getQualifier(): [VariableAccess] x22 +# 86| Type = [Struct] String +# 86| ValueCategory = lvalue +# 86| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 86| Conversion = [BoolConversion] conversion to bool +# 86| Type = [BoolType] bool +# 86| Value = [CStyleCast] 0 +# 86| ValueCategory = prvalue +# 87| getStmt(23): [DoStmt] do (...) ... +# 89| getCondition(): [Literal] 0 +# 89| Type = [IntType] int +# 89| Value = [Literal] 0 +# 89| ValueCategory = prvalue +# 87| getStmt(): [BlockStmt] { ... } +# 88| getStmt(0): [DeclStmt] declaration +# 88| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x23 +# 88| Type = [Struct] String +# 88| getVariable().getInitializer(): [Initializer] initializer for x23 +# 88| getExpr(): [ConstructorCall] call to String +# 88| Type = [VoidType] void +# 88| ValueCategory = prvalue +# 89| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 89| Type = [VoidType] void +# 89| ValueCategory = prvalue +# 89| getQualifier(): [VariableAccess] x23 +# 89| Type = [Struct] String +# 89| ValueCategory = lvalue +# 89| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 89| Conversion = [BoolConversion] conversion to bool +# 89| Type = [BoolType] bool +# 89| Value = [CStyleCast] 0 +# 89| ValueCategory = prvalue +# 90| getStmt(24): [DoStmt] do (...) ... +# 92| getCondition(): [Literal] 0 +# 92| Type = [IntType] int +# 92| Value = [Literal] 0 +# 92| ValueCategory = prvalue +# 90| getStmt(): [BlockStmt] { ... } +# 91| getStmt(0): [DeclStmt] declaration +# 91| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x24 +# 91| Type = [Struct] String +# 91| getVariable().getInitializer(): [Initializer] initializer for x24 +# 91| getExpr(): [ConstructorCall] call to String +# 91| Type = [VoidType] void +# 91| ValueCategory = prvalue +# 92| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 92| Type = [VoidType] void +# 92| ValueCategory = prvalue +# 92| getQualifier(): [VariableAccess] x24 +# 92| Type = [Struct] String +# 92| ValueCategory = lvalue +# 92| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 92| Conversion = [BoolConversion] conversion to bool +# 92| Type = [BoolType] bool +# 92| Value = [CStyleCast] 0 +# 92| ValueCategory = prvalue +# 93| getStmt(25): [DoStmt] do (...) ... +# 95| getCondition(): [Literal] 0 +# 95| Type = [IntType] int +# 95| Value = [Literal] 0 +# 95| ValueCategory = prvalue +# 93| getStmt(): [BlockStmt] { ... } +# 94| getStmt(0): [DeclStmt] declaration +# 94| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x25 +# 94| Type = [Struct] String +# 94| getVariable().getInitializer(): [Initializer] initializer for x25 +# 94| getExpr(): [ConstructorCall] call to String +# 94| Type = [VoidType] void +# 94| ValueCategory = prvalue +# 95| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 95| Type = [VoidType] void +# 95| ValueCategory = prvalue +# 95| getQualifier(): [VariableAccess] x25 +# 95| Type = [Struct] String +# 95| ValueCategory = lvalue +# 95| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 95| Conversion = [BoolConversion] conversion to bool +# 95| Type = [BoolType] bool +# 95| Value = [CStyleCast] 0 +# 95| ValueCategory = prvalue +# 96| getStmt(26): [DoStmt] do (...) ... +# 98| getCondition(): [Literal] 0 +# 98| Type = [IntType] int +# 98| Value = [Literal] 0 +# 98| ValueCategory = prvalue +# 96| getStmt(): [BlockStmt] { ... } +# 97| getStmt(0): [DeclStmt] declaration +# 97| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x26 +# 97| Type = [Struct] String +# 97| getVariable().getInitializer(): [Initializer] initializer for x26 +# 97| getExpr(): [ConstructorCall] call to String +# 97| Type = [VoidType] void +# 97| ValueCategory = prvalue +# 98| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 98| Type = [VoidType] void +# 98| ValueCategory = prvalue +# 98| getQualifier(): [VariableAccess] x26 +# 98| Type = [Struct] String +# 98| ValueCategory = lvalue +# 98| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 98| Conversion = [BoolConversion] conversion to bool +# 98| Type = [BoolType] bool +# 98| Value = [CStyleCast] 0 +# 98| ValueCategory = prvalue +# 99| getStmt(27): [DoStmt] do (...) ... +# 101| getCondition(): [Literal] 0 +# 101| Type = [IntType] int +# 101| Value = [Literal] 0 +# 101| ValueCategory = prvalue +# 99| getStmt(): [BlockStmt] { ... } +# 100| getStmt(0): [DeclStmt] declaration +# 100| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x27 +# 100| Type = [Struct] String +# 100| getVariable().getInitializer(): [Initializer] initializer for x27 +# 100| getExpr(): [ConstructorCall] call to String +# 100| Type = [VoidType] void +# 100| ValueCategory = prvalue +# 101| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 101| Type = [VoidType] void +# 101| ValueCategory = prvalue +# 101| getQualifier(): [VariableAccess] x27 +# 101| Type = [Struct] String +# 101| ValueCategory = lvalue +# 101| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 101| Conversion = [BoolConversion] conversion to bool +# 101| Type = [BoolType] bool +# 101| Value = [CStyleCast] 0 +# 101| ValueCategory = prvalue +# 102| getStmt(28): [DoStmt] do (...) ... +# 104| getCondition(): [Literal] 0 +# 104| Type = [IntType] int +# 104| Value = [Literal] 0 +# 104| ValueCategory = prvalue +# 102| getStmt(): [BlockStmt] { ... } +# 103| getStmt(0): [DeclStmt] declaration +# 103| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x28 +# 103| Type = [Struct] String +# 103| getVariable().getInitializer(): [Initializer] initializer for x28 +# 103| getExpr(): [ConstructorCall] call to String +# 103| Type = [VoidType] void +# 103| ValueCategory = prvalue +# 104| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 104| Type = [VoidType] void +# 104| ValueCategory = prvalue +# 104| getQualifier(): [VariableAccess] x28 +# 104| Type = [Struct] String +# 104| ValueCategory = lvalue +# 104| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 104| Conversion = [BoolConversion] conversion to bool +# 104| Type = [BoolType] bool +# 104| Value = [CStyleCast] 0 +# 104| ValueCategory = prvalue +# 105| getStmt(29): [DoStmt] do (...) ... +# 107| getCondition(): [Literal] 0 +# 107| Type = [IntType] int +# 107| Value = [Literal] 0 +# 107| ValueCategory = prvalue +# 105| getStmt(): [BlockStmt] { ... } +# 106| getStmt(0): [DeclStmt] declaration +# 106| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x29 +# 106| Type = [Struct] String +# 106| getVariable().getInitializer(): [Initializer] initializer for x29 +# 106| getExpr(): [ConstructorCall] call to String +# 106| Type = [VoidType] void +# 106| ValueCategory = prvalue +# 107| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 107| Type = [VoidType] void +# 107| ValueCategory = prvalue +# 107| getQualifier(): [VariableAccess] x29 +# 107| Type = [Struct] String +# 107| ValueCategory = lvalue +# 107| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 107| Conversion = [BoolConversion] conversion to bool +# 107| Type = [BoolType] bool +# 107| Value = [CStyleCast] 0 +# 107| ValueCategory = prvalue +# 108| getStmt(30): [DoStmt] do (...) ... +# 110| getCondition(): [Literal] 0 +# 110| Type = [IntType] int +# 110| Value = [Literal] 0 +# 110| ValueCategory = prvalue +# 108| getStmt(): [BlockStmt] { ... } +# 109| getStmt(0): [DeclStmt] declaration +# 109| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x30 +# 109| Type = [Struct] String +# 109| getVariable().getInitializer(): [Initializer] initializer for x30 +# 109| getExpr(): [ConstructorCall] call to String +# 109| Type = [VoidType] void +# 109| ValueCategory = prvalue +# 110| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 110| Type = [VoidType] void +# 110| ValueCategory = prvalue +# 110| getQualifier(): [VariableAccess] x30 +# 110| Type = [Struct] String +# 110| ValueCategory = lvalue +# 110| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 110| Conversion = [BoolConversion] conversion to bool +# 110| Type = [BoolType] bool +# 110| Value = [CStyleCast] 0 +# 110| ValueCategory = prvalue +# 111| getStmt(31): [DoStmt] do (...) ... +# 113| getCondition(): [Literal] 0 +# 113| Type = [IntType] int +# 113| Value = [Literal] 0 +# 113| ValueCategory = prvalue +# 111| getStmt(): [BlockStmt] { ... } +# 112| getStmt(0): [DeclStmt] declaration +# 112| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x31 +# 112| Type = [Struct] String +# 112| getVariable().getInitializer(): [Initializer] initializer for x31 +# 112| getExpr(): [ConstructorCall] call to String +# 112| Type = [VoidType] void +# 112| ValueCategory = prvalue +# 113| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 113| Type = [VoidType] void +# 113| ValueCategory = prvalue +# 113| getQualifier(): [VariableAccess] x31 +# 113| Type = [Struct] String +# 113| ValueCategory = lvalue +# 113| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 113| Conversion = [BoolConversion] conversion to bool +# 113| Type = [BoolType] bool +# 113| Value = [CStyleCast] 0 +# 113| ValueCategory = prvalue +# 114| getStmt(32): [DoStmt] do (...) ... +# 116| getCondition(): [Literal] 0 +# 116| Type = [IntType] int +# 116| Value = [Literal] 0 +# 116| ValueCategory = prvalue +# 114| getStmt(): [BlockStmt] { ... } +# 115| getStmt(0): [DeclStmt] declaration +# 115| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x32 +# 115| Type = [Struct] String +# 115| getVariable().getInitializer(): [Initializer] initializer for x32 +# 115| getExpr(): [ConstructorCall] call to String +# 115| Type = [VoidType] void +# 115| ValueCategory = prvalue +# 116| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 116| Type = [VoidType] void +# 116| ValueCategory = prvalue +# 116| getQualifier(): [VariableAccess] x32 +# 116| Type = [Struct] String +# 116| ValueCategory = lvalue +# 116| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 116| Conversion = [BoolConversion] conversion to bool +# 116| Type = [BoolType] bool +# 116| Value = [CStyleCast] 0 +# 116| ValueCategory = prvalue +# 117| getStmt(33): [DoStmt] do (...) ... +# 119| getCondition(): [Literal] 0 +# 119| Type = [IntType] int +# 119| Value = [Literal] 0 +# 119| ValueCategory = prvalue +# 117| getStmt(): [BlockStmt] { ... } +# 118| getStmt(0): [DeclStmt] declaration +# 118| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x33 +# 118| Type = [Struct] String +# 118| getVariable().getInitializer(): [Initializer] initializer for x33 +# 118| getExpr(): [ConstructorCall] call to String +# 118| Type = [VoidType] void +# 118| ValueCategory = prvalue +# 119| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 119| Type = [VoidType] void +# 119| ValueCategory = prvalue +# 119| getQualifier(): [VariableAccess] x33 +# 119| Type = [Struct] String +# 119| ValueCategory = lvalue +# 119| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 119| Conversion = [BoolConversion] conversion to bool +# 119| Type = [BoolType] bool +# 119| Value = [CStyleCast] 0 +# 119| ValueCategory = prvalue +# 120| getStmt(34): [DoStmt] do (...) ... +# 122| getCondition(): [Literal] 0 +# 122| Type = [IntType] int +# 122| Value = [Literal] 0 +# 122| ValueCategory = prvalue +# 120| getStmt(): [BlockStmt] { ... } +# 121| getStmt(0): [DeclStmt] declaration +# 121| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x34 +# 121| Type = [Struct] String +# 121| getVariable().getInitializer(): [Initializer] initializer for x34 +# 121| getExpr(): [ConstructorCall] call to String +# 121| Type = [VoidType] void +# 121| ValueCategory = prvalue +# 122| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 122| Type = [VoidType] void +# 122| ValueCategory = prvalue +# 122| getQualifier(): [VariableAccess] x34 +# 122| Type = [Struct] String +# 122| ValueCategory = lvalue +# 122| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 122| Conversion = [BoolConversion] conversion to bool +# 122| Type = [BoolType] bool +# 122| Value = [CStyleCast] 0 +# 122| ValueCategory = prvalue +# 123| getStmt(35): [DoStmt] do (...) ... +# 125| getCondition(): [Literal] 0 +# 125| Type = [IntType] int +# 125| Value = [Literal] 0 +# 125| ValueCategory = prvalue +# 123| getStmt(): [BlockStmt] { ... } +# 124| getStmt(0): [DeclStmt] declaration +# 124| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x35 +# 124| Type = [Struct] String +# 124| getVariable().getInitializer(): [Initializer] initializer for x35 +# 124| getExpr(): [ConstructorCall] call to String +# 124| Type = [VoidType] void +# 124| ValueCategory = prvalue +# 125| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 125| Type = [VoidType] void +# 125| ValueCategory = prvalue +# 125| getQualifier(): [VariableAccess] x35 +# 125| Type = [Struct] String +# 125| ValueCategory = lvalue +# 125| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 125| Conversion = [BoolConversion] conversion to bool +# 125| Type = [BoolType] bool +# 125| Value = [CStyleCast] 0 +# 125| ValueCategory = prvalue +# 126| getStmt(36): [DoStmt] do (...) ... +# 128| getCondition(): [Literal] 0 +# 128| Type = [IntType] int +# 128| Value = [Literal] 0 +# 128| ValueCategory = prvalue +# 126| getStmt(): [BlockStmt] { ... } +# 127| getStmt(0): [DeclStmt] declaration +# 127| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x36 +# 127| Type = [Struct] String +# 127| getVariable().getInitializer(): [Initializer] initializer for x36 +# 127| getExpr(): [ConstructorCall] call to String +# 127| Type = [VoidType] void +# 127| ValueCategory = prvalue +# 128| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 128| Type = [VoidType] void +# 128| ValueCategory = prvalue +# 128| getQualifier(): [VariableAccess] x36 +# 128| Type = [Struct] String +# 128| ValueCategory = lvalue +# 128| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 128| Conversion = [BoolConversion] conversion to bool +# 128| Type = [BoolType] bool +# 128| Value = [CStyleCast] 0 +# 128| ValueCategory = prvalue +# 129| getStmt(37): [DoStmt] do (...) ... +# 131| getCondition(): [Literal] 0 +# 131| Type = [IntType] int +# 131| Value = [Literal] 0 +# 131| ValueCategory = prvalue +# 129| getStmt(): [BlockStmt] { ... } +# 130| getStmt(0): [DeclStmt] declaration +# 130| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x37 +# 130| Type = [Struct] String +# 130| getVariable().getInitializer(): [Initializer] initializer for x37 +# 130| getExpr(): [ConstructorCall] call to String +# 130| Type = [VoidType] void +# 130| ValueCategory = prvalue +# 131| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 131| Type = [VoidType] void +# 131| ValueCategory = prvalue +# 131| getQualifier(): [VariableAccess] x37 +# 131| Type = [Struct] String +# 131| ValueCategory = lvalue +# 131| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 131| Conversion = [BoolConversion] conversion to bool +# 131| Type = [BoolType] bool +# 131| Value = [CStyleCast] 0 +# 131| ValueCategory = prvalue +# 132| getStmt(38): [DoStmt] do (...) ... +# 134| getCondition(): [Literal] 0 +# 134| Type = [IntType] int +# 134| Value = [Literal] 0 +# 134| ValueCategory = prvalue +# 132| getStmt(): [BlockStmt] { ... } +# 133| getStmt(0): [DeclStmt] declaration +# 133| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x38 +# 133| Type = [Struct] String +# 133| getVariable().getInitializer(): [Initializer] initializer for x38 +# 133| getExpr(): [ConstructorCall] call to String +# 133| Type = [VoidType] void +# 133| ValueCategory = prvalue +# 134| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 134| Type = [VoidType] void +# 134| ValueCategory = prvalue +# 134| getQualifier(): [VariableAccess] x38 +# 134| Type = [Struct] String +# 134| ValueCategory = lvalue +# 134| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 134| Conversion = [BoolConversion] conversion to bool +# 134| Type = [BoolType] bool +# 134| Value = [CStyleCast] 0 +# 134| ValueCategory = prvalue +# 135| getStmt(39): [DoStmt] do (...) ... +# 137| getCondition(): [Literal] 0 +# 137| Type = [IntType] int +# 137| Value = [Literal] 0 +# 137| ValueCategory = prvalue +# 135| getStmt(): [BlockStmt] { ... } +# 136| getStmt(0): [DeclStmt] declaration +# 136| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x39 +# 136| Type = [Struct] String +# 136| getVariable().getInitializer(): [Initializer] initializer for x39 +# 136| getExpr(): [ConstructorCall] call to String +# 136| Type = [VoidType] void +# 136| ValueCategory = prvalue +# 137| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 137| Type = [VoidType] void +# 137| ValueCategory = prvalue +# 137| getQualifier(): [VariableAccess] x39 +# 137| Type = [Struct] String +# 137| ValueCategory = lvalue +# 137| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 137| Conversion = [BoolConversion] conversion to bool +# 137| Type = [BoolType] bool +# 137| Value = [CStyleCast] 0 +# 137| ValueCategory = prvalue +# 138| getStmt(40): [DoStmt] do (...) ... +# 140| getCondition(): [Literal] 0 +# 140| Type = [IntType] int +# 140| Value = [Literal] 0 +# 140| ValueCategory = prvalue +# 138| getStmt(): [BlockStmt] { ... } +# 139| getStmt(0): [DeclStmt] declaration +# 139| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x40 +# 139| Type = [Struct] String +# 139| getVariable().getInitializer(): [Initializer] initializer for x40 +# 139| getExpr(): [ConstructorCall] call to String +# 139| Type = [VoidType] void +# 139| ValueCategory = prvalue +# 140| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 140| Type = [VoidType] void +# 140| ValueCategory = prvalue +# 140| getQualifier(): [VariableAccess] x40 +# 140| Type = [Struct] String +# 140| ValueCategory = lvalue +# 140| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 140| Conversion = [BoolConversion] conversion to bool +# 140| Type = [BoolType] bool +# 140| Value = [CStyleCast] 0 +# 140| ValueCategory = prvalue +# 141| getStmt(41): [DoStmt] do (...) ... +# 143| getCondition(): [Literal] 0 +# 143| Type = [IntType] int +# 143| Value = [Literal] 0 +# 143| ValueCategory = prvalue +# 141| getStmt(): [BlockStmt] { ... } +# 142| getStmt(0): [DeclStmt] declaration +# 142| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x41 +# 142| Type = [Struct] String +# 142| getVariable().getInitializer(): [Initializer] initializer for x41 +# 142| getExpr(): [ConstructorCall] call to String +# 142| Type = [VoidType] void +# 142| ValueCategory = prvalue +# 143| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 143| Type = [VoidType] void +# 143| ValueCategory = prvalue +# 143| getQualifier(): [VariableAccess] x41 +# 143| Type = [Struct] String +# 143| ValueCategory = lvalue +# 143| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 143| Conversion = [BoolConversion] conversion to bool +# 143| Type = [BoolType] bool +# 143| Value = [CStyleCast] 0 +# 143| ValueCategory = prvalue +# 144| getStmt(42): [DoStmt] do (...) ... +# 146| getCondition(): [Literal] 0 +# 146| Type = [IntType] int +# 146| Value = [Literal] 0 +# 146| ValueCategory = prvalue +# 144| getStmt(): [BlockStmt] { ... } +# 145| getStmt(0): [DeclStmt] declaration +# 145| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x42 +# 145| Type = [Struct] String +# 145| getVariable().getInitializer(): [Initializer] initializer for x42 +# 145| getExpr(): [ConstructorCall] call to String +# 145| Type = [VoidType] void +# 145| ValueCategory = prvalue +# 146| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 146| Type = [VoidType] void +# 146| ValueCategory = prvalue +# 146| getQualifier(): [VariableAccess] x42 +# 146| Type = [Struct] String +# 146| ValueCategory = lvalue +# 146| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 146| Conversion = [BoolConversion] conversion to bool +# 146| Type = [BoolType] bool +# 146| Value = [CStyleCast] 0 +# 146| ValueCategory = prvalue +# 147| getStmt(43): [DoStmt] do (...) ... +# 149| getCondition(): [Literal] 0 +# 149| Type = [IntType] int +# 149| Value = [Literal] 0 +# 149| ValueCategory = prvalue +# 147| getStmt(): [BlockStmt] { ... } +# 148| getStmt(0): [DeclStmt] declaration +# 148| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x43 +# 148| Type = [Struct] String +# 148| getVariable().getInitializer(): [Initializer] initializer for x43 +# 148| getExpr(): [ConstructorCall] call to String +# 148| Type = [VoidType] void +# 148| ValueCategory = prvalue +# 149| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 149| Type = [VoidType] void +# 149| ValueCategory = prvalue +# 149| getQualifier(): [VariableAccess] x43 +# 149| Type = [Struct] String +# 149| ValueCategory = lvalue +# 149| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 149| Conversion = [BoolConversion] conversion to bool +# 149| Type = [BoolType] bool +# 149| Value = [CStyleCast] 0 +# 149| ValueCategory = prvalue +# 150| getStmt(44): [DoStmt] do (...) ... +# 152| getCondition(): [Literal] 0 +# 152| Type = [IntType] int +# 152| Value = [Literal] 0 +# 152| ValueCategory = prvalue +# 150| getStmt(): [BlockStmt] { ... } +# 151| getStmt(0): [DeclStmt] declaration +# 151| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x44 +# 151| Type = [Struct] String +# 151| getVariable().getInitializer(): [Initializer] initializer for x44 +# 151| getExpr(): [ConstructorCall] call to String +# 151| Type = [VoidType] void +# 151| ValueCategory = prvalue +# 152| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 152| Type = [VoidType] void +# 152| ValueCategory = prvalue +# 152| getQualifier(): [VariableAccess] x44 +# 152| Type = [Struct] String +# 152| ValueCategory = lvalue +# 152| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 152| Conversion = [BoolConversion] conversion to bool +# 152| Type = [BoolType] bool +# 152| Value = [CStyleCast] 0 +# 152| ValueCategory = prvalue +# 153| getStmt(45): [DoStmt] do (...) ... +# 155| getCondition(): [Literal] 0 +# 155| Type = [IntType] int +# 155| Value = [Literal] 0 +# 155| ValueCategory = prvalue +# 153| getStmt(): [BlockStmt] { ... } +# 154| getStmt(0): [DeclStmt] declaration +# 154| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x45 +# 154| Type = [Struct] String +# 154| getVariable().getInitializer(): [Initializer] initializer for x45 +# 154| getExpr(): [ConstructorCall] call to String +# 154| Type = [VoidType] void +# 154| ValueCategory = prvalue +# 155| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 155| Type = [VoidType] void +# 155| ValueCategory = prvalue +# 155| getQualifier(): [VariableAccess] x45 +# 155| Type = [Struct] String +# 155| ValueCategory = lvalue +# 155| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 155| Conversion = [BoolConversion] conversion to bool +# 155| Type = [BoolType] bool +# 155| Value = [CStyleCast] 0 +# 155| ValueCategory = prvalue +# 156| getStmt(46): [DoStmt] do (...) ... +# 158| getCondition(): [Literal] 0 +# 158| Type = [IntType] int +# 158| Value = [Literal] 0 +# 158| ValueCategory = prvalue +# 156| getStmt(): [BlockStmt] { ... } +# 157| getStmt(0): [DeclStmt] declaration +# 157| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x46 +# 157| Type = [Struct] String +# 157| getVariable().getInitializer(): [Initializer] initializer for x46 +# 157| getExpr(): [ConstructorCall] call to String +# 157| Type = [VoidType] void +# 157| ValueCategory = prvalue +# 158| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 158| Type = [VoidType] void +# 158| ValueCategory = prvalue +# 158| getQualifier(): [VariableAccess] x46 +# 158| Type = [Struct] String +# 158| ValueCategory = lvalue +# 158| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 158| Conversion = [BoolConversion] conversion to bool +# 158| Type = [BoolType] bool +# 158| Value = [CStyleCast] 0 +# 158| ValueCategory = prvalue +# 159| getStmt(47): [DoStmt] do (...) ... +# 161| getCondition(): [Literal] 0 +# 161| Type = [IntType] int +# 161| Value = [Literal] 0 +# 161| ValueCategory = prvalue +# 159| getStmt(): [BlockStmt] { ... } +# 160| getStmt(0): [DeclStmt] declaration +# 160| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x47 +# 160| Type = [Struct] String +# 160| getVariable().getInitializer(): [Initializer] initializer for x47 +# 160| getExpr(): [ConstructorCall] call to String +# 160| Type = [VoidType] void +# 160| ValueCategory = prvalue +# 161| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 161| Type = [VoidType] void +# 161| ValueCategory = prvalue +# 161| getQualifier(): [VariableAccess] x47 +# 161| Type = [Struct] String +# 161| ValueCategory = lvalue +# 161| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 161| Conversion = [BoolConversion] conversion to bool +# 161| Type = [BoolType] bool +# 161| Value = [CStyleCast] 0 +# 161| ValueCategory = prvalue +# 162| getStmt(48): [DoStmt] do (...) ... +# 164| getCondition(): [Literal] 0 +# 164| Type = [IntType] int +# 164| Value = [Literal] 0 +# 164| ValueCategory = prvalue +# 162| getStmt(): [BlockStmt] { ... } +# 163| getStmt(0): [DeclStmt] declaration +# 163| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x48 +# 163| Type = [Struct] String +# 163| getVariable().getInitializer(): [Initializer] initializer for x48 +# 163| getExpr(): [ConstructorCall] call to String +# 163| Type = [VoidType] void +# 163| ValueCategory = prvalue +# 164| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 164| Type = [VoidType] void +# 164| ValueCategory = prvalue +# 164| getQualifier(): [VariableAccess] x48 +# 164| Type = [Struct] String +# 164| ValueCategory = lvalue +# 164| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 164| Conversion = [BoolConversion] conversion to bool +# 164| Type = [BoolType] bool +# 164| Value = [CStyleCast] 0 +# 164| ValueCategory = prvalue +# 165| getStmt(49): [DoStmt] do (...) ... +# 167| getCondition(): [Literal] 0 +# 167| Type = [IntType] int +# 167| Value = [Literal] 0 +# 167| ValueCategory = prvalue +# 165| getStmt(): [BlockStmt] { ... } +# 166| getStmt(0): [DeclStmt] declaration +# 166| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x49 +# 166| Type = [Struct] String +# 166| getVariable().getInitializer(): [Initializer] initializer for x49 +# 166| getExpr(): [ConstructorCall] call to String +# 166| Type = [VoidType] void +# 166| ValueCategory = prvalue +# 167| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 167| Type = [VoidType] void +# 167| ValueCategory = prvalue +# 167| getQualifier(): [VariableAccess] x49 +# 167| Type = [Struct] String +# 167| ValueCategory = lvalue +# 167| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 167| Conversion = [BoolConversion] conversion to bool +# 167| Type = [BoolType] bool +# 167| Value = [CStyleCast] 0 +# 167| ValueCategory = prvalue +# 168| getStmt(50): [DoStmt] do (...) ... +# 170| getCondition(): [Literal] 0 +# 170| Type = [IntType] int +# 170| Value = [Literal] 0 +# 170| ValueCategory = prvalue +# 168| getStmt(): [BlockStmt] { ... } +# 169| getStmt(0): [DeclStmt] declaration +# 169| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x50 +# 169| Type = [Struct] String +# 169| getVariable().getInitializer(): [Initializer] initializer for x50 +# 169| getExpr(): [ConstructorCall] call to String +# 169| Type = [VoidType] void +# 169| ValueCategory = prvalue +# 170| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 170| Type = [VoidType] void +# 170| ValueCategory = prvalue +# 170| getQualifier(): [VariableAccess] x50 +# 170| Type = [Struct] String +# 170| ValueCategory = lvalue +# 170| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 170| Conversion = [BoolConversion] conversion to bool +# 170| Type = [BoolType] bool +# 170| Value = [CStyleCast] 0 +# 170| ValueCategory = prvalue +# 171| getStmt(51): [DoStmt] do (...) ... +# 173| getCondition(): [Literal] 0 +# 173| Type = [IntType] int +# 173| Value = [Literal] 0 +# 173| ValueCategory = prvalue +# 171| getStmt(): [BlockStmt] { ... } +# 172| getStmt(0): [DeclStmt] declaration +# 172| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x51 +# 172| Type = [Struct] String +# 172| getVariable().getInitializer(): [Initializer] initializer for x51 +# 172| getExpr(): [ConstructorCall] call to String +# 172| Type = [VoidType] void +# 172| ValueCategory = prvalue +# 173| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 173| Type = [VoidType] void +# 173| ValueCategory = prvalue +# 173| getQualifier(): [VariableAccess] x51 +# 173| Type = [Struct] String +# 173| ValueCategory = lvalue +# 173| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 173| Conversion = [BoolConversion] conversion to bool +# 173| Type = [BoolType] bool +# 173| Value = [CStyleCast] 0 +# 173| ValueCategory = prvalue +# 174| getStmt(52): [DoStmt] do (...) ... +# 176| getCondition(): [Literal] 0 +# 176| Type = [IntType] int +# 176| Value = [Literal] 0 +# 176| ValueCategory = prvalue +# 174| getStmt(): [BlockStmt] { ... } +# 175| getStmt(0): [DeclStmt] declaration +# 175| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x52 +# 175| Type = [Struct] String +# 175| getVariable().getInitializer(): [Initializer] initializer for x52 +# 175| getExpr(): [ConstructorCall] call to String +# 175| Type = [VoidType] void +# 175| ValueCategory = prvalue +# 176| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 176| Type = [VoidType] void +# 176| ValueCategory = prvalue +# 176| getQualifier(): [VariableAccess] x52 +# 176| Type = [Struct] String +# 176| ValueCategory = lvalue +# 176| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 176| Conversion = [BoolConversion] conversion to bool +# 176| Type = [BoolType] bool +# 176| Value = [CStyleCast] 0 +# 176| ValueCategory = prvalue +# 177| getStmt(53): [DoStmt] do (...) ... +# 179| getCondition(): [Literal] 0 +# 179| Type = [IntType] int +# 179| Value = [Literal] 0 +# 179| ValueCategory = prvalue +# 177| getStmt(): [BlockStmt] { ... } +# 178| getStmt(0): [DeclStmt] declaration +# 178| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x53 +# 178| Type = [Struct] String +# 178| getVariable().getInitializer(): [Initializer] initializer for x53 +# 178| getExpr(): [ConstructorCall] call to String +# 178| Type = [VoidType] void +# 178| ValueCategory = prvalue +# 179| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 179| Type = [VoidType] void +# 179| ValueCategory = prvalue +# 179| getQualifier(): [VariableAccess] x53 +# 179| Type = [Struct] String +# 179| ValueCategory = lvalue +# 179| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 179| Conversion = [BoolConversion] conversion to bool +# 179| Type = [BoolType] bool +# 179| Value = [CStyleCast] 0 +# 179| ValueCategory = prvalue +# 180| getStmt(54): [DoStmt] do (...) ... +# 182| getCondition(): [Literal] 0 +# 182| Type = [IntType] int +# 182| Value = [Literal] 0 +# 182| ValueCategory = prvalue +# 180| getStmt(): [BlockStmt] { ... } +# 181| getStmt(0): [DeclStmt] declaration +# 181| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x54 +# 181| Type = [Struct] String +# 181| getVariable().getInitializer(): [Initializer] initializer for x54 +# 181| getExpr(): [ConstructorCall] call to String +# 181| Type = [VoidType] void +# 181| ValueCategory = prvalue +# 182| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 182| Type = [VoidType] void +# 182| ValueCategory = prvalue +# 182| getQualifier(): [VariableAccess] x54 +# 182| Type = [Struct] String +# 182| ValueCategory = lvalue +# 182| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 182| Conversion = [BoolConversion] conversion to bool +# 182| Type = [BoolType] bool +# 182| Value = [CStyleCast] 0 +# 182| ValueCategory = prvalue +# 183| getStmt(55): [DoStmt] do (...) ... +# 185| getCondition(): [Literal] 0 +# 185| Type = [IntType] int +# 185| Value = [Literal] 0 +# 185| ValueCategory = prvalue +# 183| getStmt(): [BlockStmt] { ... } +# 184| getStmt(0): [DeclStmt] declaration +# 184| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x55 +# 184| Type = [Struct] String +# 184| getVariable().getInitializer(): [Initializer] initializer for x55 +# 184| getExpr(): [ConstructorCall] call to String +# 184| Type = [VoidType] void +# 184| ValueCategory = prvalue +# 185| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 185| Type = [VoidType] void +# 185| ValueCategory = prvalue +# 185| getQualifier(): [VariableAccess] x55 +# 185| Type = [Struct] String +# 185| ValueCategory = lvalue +# 185| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 185| Conversion = [BoolConversion] conversion to bool +# 185| Type = [BoolType] bool +# 185| Value = [CStyleCast] 0 +# 185| ValueCategory = prvalue +# 186| getStmt(56): [DoStmt] do (...) ... +# 188| getCondition(): [Literal] 0 +# 188| Type = [IntType] int +# 188| Value = [Literal] 0 +# 188| ValueCategory = prvalue +# 186| getStmt(): [BlockStmt] { ... } +# 187| getStmt(0): [DeclStmt] declaration +# 187| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x56 +# 187| Type = [Struct] String +# 187| getVariable().getInitializer(): [Initializer] initializer for x56 +# 187| getExpr(): [ConstructorCall] call to String +# 187| Type = [VoidType] void +# 187| ValueCategory = prvalue +# 188| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 188| Type = [VoidType] void +# 188| ValueCategory = prvalue +# 188| getQualifier(): [VariableAccess] x56 +# 188| Type = [Struct] String +# 188| ValueCategory = lvalue +# 188| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 188| Conversion = [BoolConversion] conversion to bool +# 188| Type = [BoolType] bool +# 188| Value = [CStyleCast] 0 +# 188| ValueCategory = prvalue +# 189| getStmt(57): [DoStmt] do (...) ... +# 191| getCondition(): [Literal] 0 +# 191| Type = [IntType] int +# 191| Value = [Literal] 0 +# 191| ValueCategory = prvalue +# 189| getStmt(): [BlockStmt] { ... } +# 190| getStmt(0): [DeclStmt] declaration +# 190| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x57 +# 190| Type = [Struct] String +# 190| getVariable().getInitializer(): [Initializer] initializer for x57 +# 190| getExpr(): [ConstructorCall] call to String +# 190| Type = [VoidType] void +# 190| ValueCategory = prvalue +# 191| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 191| Type = [VoidType] void +# 191| ValueCategory = prvalue +# 191| getQualifier(): [VariableAccess] x57 +# 191| Type = [Struct] String +# 191| ValueCategory = lvalue +# 191| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 191| Conversion = [BoolConversion] conversion to bool +# 191| Type = [BoolType] bool +# 191| Value = [CStyleCast] 0 +# 191| ValueCategory = prvalue +# 192| getStmt(58): [DoStmt] do (...) ... +# 194| getCondition(): [Literal] 0 +# 194| Type = [IntType] int +# 194| Value = [Literal] 0 +# 194| ValueCategory = prvalue +# 192| getStmt(): [BlockStmt] { ... } +# 193| getStmt(0): [DeclStmt] declaration +# 193| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x58 +# 193| Type = [Struct] String +# 193| getVariable().getInitializer(): [Initializer] initializer for x58 +# 193| getExpr(): [ConstructorCall] call to String +# 193| Type = [VoidType] void +# 193| ValueCategory = prvalue +# 194| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 194| Type = [VoidType] void +# 194| ValueCategory = prvalue +# 194| getQualifier(): [VariableAccess] x58 +# 194| Type = [Struct] String +# 194| ValueCategory = lvalue +# 194| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 194| Conversion = [BoolConversion] conversion to bool +# 194| Type = [BoolType] bool +# 194| Value = [CStyleCast] 0 +# 194| ValueCategory = prvalue +# 195| getStmt(59): [DoStmt] do (...) ... +# 197| getCondition(): [Literal] 0 +# 197| Type = [IntType] int +# 197| Value = [Literal] 0 +# 197| ValueCategory = prvalue +# 195| getStmt(): [BlockStmt] { ... } +# 196| getStmt(0): [DeclStmt] declaration +# 196| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x59 +# 196| Type = [Struct] String +# 196| getVariable().getInitializer(): [Initializer] initializer for x59 +# 196| getExpr(): [ConstructorCall] call to String +# 196| Type = [VoidType] void +# 196| ValueCategory = prvalue +# 197| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 197| Type = [VoidType] void +# 197| ValueCategory = prvalue +# 197| getQualifier(): [VariableAccess] x59 +# 197| Type = [Struct] String +# 197| ValueCategory = lvalue +# 197| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 197| Conversion = [BoolConversion] conversion to bool +# 197| Type = [BoolType] bool +# 197| Value = [CStyleCast] 0 +# 197| ValueCategory = prvalue +# 198| getStmt(60): [DoStmt] do (...) ... +# 200| getCondition(): [Literal] 0 +# 200| Type = [IntType] int +# 200| Value = [Literal] 0 +# 200| ValueCategory = prvalue +# 198| getStmt(): [BlockStmt] { ... } +# 199| getStmt(0): [DeclStmt] declaration +# 199| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x60 +# 199| Type = [Struct] String +# 199| getVariable().getInitializer(): [Initializer] initializer for x60 +# 199| getExpr(): [ConstructorCall] call to String +# 199| Type = [VoidType] void +# 199| ValueCategory = prvalue +# 200| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 200| Type = [VoidType] void +# 200| ValueCategory = prvalue +# 200| getQualifier(): [VariableAccess] x60 +# 200| Type = [Struct] String +# 200| ValueCategory = lvalue +# 200| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 200| Conversion = [BoolConversion] conversion to bool +# 200| Type = [BoolType] bool +# 200| Value = [CStyleCast] 0 +# 200| ValueCategory = prvalue +# 201| getStmt(61): [DoStmt] do (...) ... +# 203| getCondition(): [Literal] 0 +# 203| Type = [IntType] int +# 203| Value = [Literal] 0 +# 203| ValueCategory = prvalue +# 201| getStmt(): [BlockStmt] { ... } +# 202| getStmt(0): [DeclStmt] declaration +# 202| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x61 +# 202| Type = [Struct] String +# 202| getVariable().getInitializer(): [Initializer] initializer for x61 +# 202| getExpr(): [ConstructorCall] call to String +# 202| Type = [VoidType] void +# 202| ValueCategory = prvalue +# 203| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 203| Type = [VoidType] void +# 203| ValueCategory = prvalue +# 203| getQualifier(): [VariableAccess] x61 +# 203| Type = [Struct] String +# 203| ValueCategory = lvalue +# 203| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 203| Conversion = [BoolConversion] conversion to bool +# 203| Type = [BoolType] bool +# 203| Value = [CStyleCast] 0 +# 203| ValueCategory = prvalue +# 204| getStmt(62): [DoStmt] do (...) ... +# 206| getCondition(): [Literal] 0 +# 206| Type = [IntType] int +# 206| Value = [Literal] 0 +# 206| ValueCategory = prvalue +# 204| getStmt(): [BlockStmt] { ... } +# 205| getStmt(0): [DeclStmt] declaration +# 205| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x62 +# 205| Type = [Struct] String +# 205| getVariable().getInitializer(): [Initializer] initializer for x62 +# 205| getExpr(): [ConstructorCall] call to String +# 205| Type = [VoidType] void +# 205| ValueCategory = prvalue +# 206| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 206| Type = [VoidType] void +# 206| ValueCategory = prvalue +# 206| getQualifier(): [VariableAccess] x62 +# 206| Type = [Struct] String +# 206| ValueCategory = lvalue +# 206| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 206| Conversion = [BoolConversion] conversion to bool +# 206| Type = [BoolType] bool +# 206| Value = [CStyleCast] 0 +# 206| ValueCategory = prvalue +# 207| getStmt(63): [DoStmt] do (...) ... +# 209| getCondition(): [Literal] 0 +# 209| Type = [IntType] int +# 209| Value = [Literal] 0 +# 209| ValueCategory = prvalue +# 207| getStmt(): [BlockStmt] { ... } +# 208| getStmt(0): [DeclStmt] declaration +# 208| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x63 +# 208| Type = [Struct] String +# 208| getVariable().getInitializer(): [Initializer] initializer for x63 +# 208| getExpr(): [ConstructorCall] call to String +# 208| Type = [VoidType] void +# 208| ValueCategory = prvalue +# 209| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 209| Type = [VoidType] void +# 209| ValueCategory = prvalue +# 209| getQualifier(): [VariableAccess] x63 +# 209| Type = [Struct] String +# 209| ValueCategory = lvalue +# 209| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 209| Conversion = [BoolConversion] conversion to bool +# 209| Type = [BoolType] bool +# 209| Value = [CStyleCast] 0 +# 209| ValueCategory = prvalue +# 210| getStmt(64): [DoStmt] do (...) ... +# 212| getCondition(): [Literal] 0 +# 212| Type = [IntType] int +# 212| Value = [Literal] 0 +# 212| ValueCategory = prvalue +# 210| getStmt(): [BlockStmt] { ... } +# 211| getStmt(0): [DeclStmt] declaration +# 211| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x64 +# 211| Type = [Struct] String +# 211| getVariable().getInitializer(): [Initializer] initializer for x64 +# 211| getExpr(): [ConstructorCall] call to String +# 211| Type = [VoidType] void +# 211| ValueCategory = prvalue +# 212| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 212| Type = [VoidType] void +# 212| ValueCategory = prvalue +# 212| getQualifier(): [VariableAccess] x64 +# 212| Type = [Struct] String +# 212| ValueCategory = lvalue +# 212| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 212| Conversion = [BoolConversion] conversion to bool +# 212| Type = [BoolType] bool +# 212| Value = [CStyleCast] 0 +# 212| ValueCategory = prvalue +# 213| getStmt(65): [DoStmt] do (...) ... +# 215| getCondition(): [Literal] 0 +# 215| Type = [IntType] int +# 215| Value = [Literal] 0 +# 215| ValueCategory = prvalue +# 213| getStmt(): [BlockStmt] { ... } +# 214| getStmt(0): [DeclStmt] declaration +# 214| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x65 +# 214| Type = [Struct] String +# 214| getVariable().getInitializer(): [Initializer] initializer for x65 +# 214| getExpr(): [ConstructorCall] call to String +# 214| Type = [VoidType] void +# 214| ValueCategory = prvalue +# 215| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 215| Type = [VoidType] void +# 215| ValueCategory = prvalue +# 215| getQualifier(): [VariableAccess] x65 +# 215| Type = [Struct] String +# 215| ValueCategory = lvalue +# 215| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 215| Conversion = [BoolConversion] conversion to bool +# 215| Type = [BoolType] bool +# 215| Value = [CStyleCast] 0 +# 215| ValueCategory = prvalue +# 216| getStmt(66): [DoStmt] do (...) ... +# 218| getCondition(): [Literal] 0 +# 218| Type = [IntType] int +# 218| Value = [Literal] 0 +# 218| ValueCategory = prvalue +# 216| getStmt(): [BlockStmt] { ... } +# 217| getStmt(0): [DeclStmt] declaration +# 217| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x66 +# 217| Type = [Struct] String +# 217| getVariable().getInitializer(): [Initializer] initializer for x66 +# 217| getExpr(): [ConstructorCall] call to String +# 217| Type = [VoidType] void +# 217| ValueCategory = prvalue +# 218| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 218| Type = [VoidType] void +# 218| ValueCategory = prvalue +# 218| getQualifier(): [VariableAccess] x66 +# 218| Type = [Struct] String +# 218| ValueCategory = lvalue +# 218| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 218| Conversion = [BoolConversion] conversion to bool +# 218| Type = [BoolType] bool +# 218| Value = [CStyleCast] 0 +# 218| ValueCategory = prvalue +# 219| getStmt(67): [DoStmt] do (...) ... +# 221| getCondition(): [Literal] 0 +# 221| Type = [IntType] int +# 221| Value = [Literal] 0 +# 221| ValueCategory = prvalue +# 219| getStmt(): [BlockStmt] { ... } +# 220| getStmt(0): [DeclStmt] declaration +# 220| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x67 +# 220| Type = [Struct] String +# 220| getVariable().getInitializer(): [Initializer] initializer for x67 +# 220| getExpr(): [ConstructorCall] call to String +# 220| Type = [VoidType] void +# 220| ValueCategory = prvalue +# 221| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 221| Type = [VoidType] void +# 221| ValueCategory = prvalue +# 221| getQualifier(): [VariableAccess] x67 +# 221| Type = [Struct] String +# 221| ValueCategory = lvalue +# 221| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 221| Conversion = [BoolConversion] conversion to bool +# 221| Type = [BoolType] bool +# 221| Value = [CStyleCast] 0 +# 221| ValueCategory = prvalue +# 222| getStmt(68): [DoStmt] do (...) ... +# 224| getCondition(): [Literal] 0 +# 224| Type = [IntType] int +# 224| Value = [Literal] 0 +# 224| ValueCategory = prvalue +# 222| getStmt(): [BlockStmt] { ... } +# 223| getStmt(0): [DeclStmt] declaration +# 223| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x68 +# 223| Type = [Struct] String +# 223| getVariable().getInitializer(): [Initializer] initializer for x68 +# 223| getExpr(): [ConstructorCall] call to String +# 223| Type = [VoidType] void +# 223| ValueCategory = prvalue +# 224| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 224| Type = [VoidType] void +# 224| ValueCategory = prvalue +# 224| getQualifier(): [VariableAccess] x68 +# 224| Type = [Struct] String +# 224| ValueCategory = lvalue +# 224| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 224| Conversion = [BoolConversion] conversion to bool +# 224| Type = [BoolType] bool +# 224| Value = [CStyleCast] 0 +# 224| ValueCategory = prvalue +# 225| getStmt(69): [DoStmt] do (...) ... +# 227| getCondition(): [Literal] 0 +# 227| Type = [IntType] int +# 227| Value = [Literal] 0 +# 227| ValueCategory = prvalue +# 225| getStmt(): [BlockStmt] { ... } +# 226| getStmt(0): [DeclStmt] declaration +# 226| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x69 +# 226| Type = [Struct] String +# 226| getVariable().getInitializer(): [Initializer] initializer for x69 +# 226| getExpr(): [ConstructorCall] call to String +# 226| Type = [VoidType] void +# 226| ValueCategory = prvalue +# 227| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 227| Type = [VoidType] void +# 227| ValueCategory = prvalue +# 227| getQualifier(): [VariableAccess] x69 +# 227| Type = [Struct] String +# 227| ValueCategory = lvalue +# 227| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 227| Conversion = [BoolConversion] conversion to bool +# 227| Type = [BoolType] bool +# 227| Value = [CStyleCast] 0 +# 227| ValueCategory = prvalue +# 228| getStmt(70): [DoStmt] do (...) ... +# 230| getCondition(): [Literal] 0 +# 230| Type = [IntType] int +# 230| Value = [Literal] 0 +# 230| ValueCategory = prvalue +# 228| getStmt(): [BlockStmt] { ... } +# 229| getStmt(0): [DeclStmt] declaration +# 229| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x70 +# 229| Type = [Struct] String +# 229| getVariable().getInitializer(): [Initializer] initializer for x70 +# 229| getExpr(): [ConstructorCall] call to String +# 229| Type = [VoidType] void +# 229| ValueCategory = prvalue +# 230| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 230| Type = [VoidType] void +# 230| ValueCategory = prvalue +# 230| getQualifier(): [VariableAccess] x70 +# 230| Type = [Struct] String +# 230| ValueCategory = lvalue +# 230| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 230| Conversion = [BoolConversion] conversion to bool +# 230| Type = [BoolType] bool +# 230| Value = [CStyleCast] 0 +# 230| ValueCategory = prvalue +# 231| getStmt(71): [DoStmt] do (...) ... +# 233| getCondition(): [Literal] 0 +# 233| Type = [IntType] int +# 233| Value = [Literal] 0 +# 233| ValueCategory = prvalue +# 231| getStmt(): [BlockStmt] { ... } +# 232| getStmt(0): [DeclStmt] declaration +# 232| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x71 +# 232| Type = [Struct] String +# 232| getVariable().getInitializer(): [Initializer] initializer for x71 +# 232| getExpr(): [ConstructorCall] call to String +# 232| Type = [VoidType] void +# 232| ValueCategory = prvalue +# 233| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 233| Type = [VoidType] void +# 233| ValueCategory = prvalue +# 233| getQualifier(): [VariableAccess] x71 +# 233| Type = [Struct] String +# 233| ValueCategory = lvalue +# 233| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 233| Conversion = [BoolConversion] conversion to bool +# 233| Type = [BoolType] bool +# 233| Value = [CStyleCast] 0 +# 233| ValueCategory = prvalue +# 234| getStmt(72): [DoStmt] do (...) ... +# 236| getCondition(): [Literal] 0 +# 236| Type = [IntType] int +# 236| Value = [Literal] 0 +# 236| ValueCategory = prvalue +# 234| getStmt(): [BlockStmt] { ... } +# 235| getStmt(0): [DeclStmt] declaration +# 235| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x72 +# 235| Type = [Struct] String +# 235| getVariable().getInitializer(): [Initializer] initializer for x72 +# 235| getExpr(): [ConstructorCall] call to String +# 235| Type = [VoidType] void +# 235| ValueCategory = prvalue +# 236| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 236| Type = [VoidType] void +# 236| ValueCategory = prvalue +# 236| getQualifier(): [VariableAccess] x72 +# 236| Type = [Struct] String +# 236| ValueCategory = lvalue +# 236| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 236| Conversion = [BoolConversion] conversion to bool +# 236| Type = [BoolType] bool +# 236| Value = [CStyleCast] 0 +# 236| ValueCategory = prvalue +# 237| getStmt(73): [DoStmt] do (...) ... +# 239| getCondition(): [Literal] 0 +# 239| Type = [IntType] int +# 239| Value = [Literal] 0 +# 239| ValueCategory = prvalue +# 237| getStmt(): [BlockStmt] { ... } +# 238| getStmt(0): [DeclStmt] declaration +# 238| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x73 +# 238| Type = [Struct] String +# 238| getVariable().getInitializer(): [Initializer] initializer for x73 +# 238| getExpr(): [ConstructorCall] call to String +# 238| Type = [VoidType] void +# 238| ValueCategory = prvalue +# 239| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 239| Type = [VoidType] void +# 239| ValueCategory = prvalue +# 239| getQualifier(): [VariableAccess] x73 +# 239| Type = [Struct] String +# 239| ValueCategory = lvalue +# 239| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 239| Conversion = [BoolConversion] conversion to bool +# 239| Type = [BoolType] bool +# 239| Value = [CStyleCast] 0 +# 239| ValueCategory = prvalue +# 240| getStmt(74): [DoStmt] do (...) ... +# 242| getCondition(): [Literal] 0 +# 242| Type = [IntType] int +# 242| Value = [Literal] 0 +# 242| ValueCategory = prvalue +# 240| getStmt(): [BlockStmt] { ... } +# 241| getStmt(0): [DeclStmt] declaration +# 241| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x74 +# 241| Type = [Struct] String +# 241| getVariable().getInitializer(): [Initializer] initializer for x74 +# 241| getExpr(): [ConstructorCall] call to String +# 241| Type = [VoidType] void +# 241| ValueCategory = prvalue +# 242| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 242| Type = [VoidType] void +# 242| ValueCategory = prvalue +# 242| getQualifier(): [VariableAccess] x74 +# 242| Type = [Struct] String +# 242| ValueCategory = lvalue +# 242| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 242| Conversion = [BoolConversion] conversion to bool +# 242| Type = [BoolType] bool +# 242| Value = [CStyleCast] 0 +# 242| ValueCategory = prvalue +# 243| getStmt(75): [DoStmt] do (...) ... +# 245| getCondition(): [Literal] 0 +# 245| Type = [IntType] int +# 245| Value = [Literal] 0 +# 245| ValueCategory = prvalue +# 243| getStmt(): [BlockStmt] { ... } +# 244| getStmt(0): [DeclStmt] declaration +# 244| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x75 +# 244| Type = [Struct] String +# 244| getVariable().getInitializer(): [Initializer] initializer for x75 +# 244| getExpr(): [ConstructorCall] call to String +# 244| Type = [VoidType] void +# 244| ValueCategory = prvalue +# 245| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 245| Type = [VoidType] void +# 245| ValueCategory = prvalue +# 245| getQualifier(): [VariableAccess] x75 +# 245| Type = [Struct] String +# 245| ValueCategory = lvalue +# 245| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 245| Conversion = [BoolConversion] conversion to bool +# 245| Type = [BoolType] bool +# 245| Value = [CStyleCast] 0 +# 245| ValueCategory = prvalue +# 246| getStmt(76): [DoStmt] do (...) ... +# 248| getCondition(): [Literal] 0 +# 248| Type = [IntType] int +# 248| Value = [Literal] 0 +# 248| ValueCategory = prvalue +# 246| getStmt(): [BlockStmt] { ... } +# 247| getStmt(0): [DeclStmt] declaration +# 247| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x76 +# 247| Type = [Struct] String +# 247| getVariable().getInitializer(): [Initializer] initializer for x76 +# 247| getExpr(): [ConstructorCall] call to String +# 247| Type = [VoidType] void +# 247| ValueCategory = prvalue +# 248| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 248| Type = [VoidType] void +# 248| ValueCategory = prvalue +# 248| getQualifier(): [VariableAccess] x76 +# 248| Type = [Struct] String +# 248| ValueCategory = lvalue +# 248| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 248| Conversion = [BoolConversion] conversion to bool +# 248| Type = [BoolType] bool +# 248| Value = [CStyleCast] 0 +# 248| ValueCategory = prvalue +# 249| getStmt(77): [DoStmt] do (...) ... +# 251| getCondition(): [Literal] 0 +# 251| Type = [IntType] int +# 251| Value = [Literal] 0 +# 251| ValueCategory = prvalue +# 249| getStmt(): [BlockStmt] { ... } +# 250| getStmt(0): [DeclStmt] declaration +# 250| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x77 +# 250| Type = [Struct] String +# 250| getVariable().getInitializer(): [Initializer] initializer for x77 +# 250| getExpr(): [ConstructorCall] call to String +# 250| Type = [VoidType] void +# 250| ValueCategory = prvalue +# 251| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 251| Type = [VoidType] void +# 251| ValueCategory = prvalue +# 251| getQualifier(): [VariableAccess] x77 +# 251| Type = [Struct] String +# 251| ValueCategory = lvalue +# 251| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 251| Conversion = [BoolConversion] conversion to bool +# 251| Type = [BoolType] bool +# 251| Value = [CStyleCast] 0 +# 251| ValueCategory = prvalue +# 252| getStmt(78): [DoStmt] do (...) ... +# 254| getCondition(): [Literal] 0 +# 254| Type = [IntType] int +# 254| Value = [Literal] 0 +# 254| ValueCategory = prvalue +# 252| getStmt(): [BlockStmt] { ... } +# 253| getStmt(0): [DeclStmt] declaration +# 253| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x78 +# 253| Type = [Struct] String +# 253| getVariable().getInitializer(): [Initializer] initializer for x78 +# 253| getExpr(): [ConstructorCall] call to String +# 253| Type = [VoidType] void +# 253| ValueCategory = prvalue +# 254| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 254| Type = [VoidType] void +# 254| ValueCategory = prvalue +# 254| getQualifier(): [VariableAccess] x78 +# 254| Type = [Struct] String +# 254| ValueCategory = lvalue +# 254| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 254| Conversion = [BoolConversion] conversion to bool +# 254| Type = [BoolType] bool +# 254| Value = [CStyleCast] 0 +# 254| ValueCategory = prvalue +# 255| getStmt(79): [DoStmt] do (...) ... +# 257| getCondition(): [Literal] 0 +# 257| Type = [IntType] int +# 257| Value = [Literal] 0 +# 257| ValueCategory = prvalue +# 255| getStmt(): [BlockStmt] { ... } +# 256| getStmt(0): [DeclStmt] declaration +# 256| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x79 +# 256| Type = [Struct] String +# 256| getVariable().getInitializer(): [Initializer] initializer for x79 +# 256| getExpr(): [ConstructorCall] call to String +# 256| Type = [VoidType] void +# 256| ValueCategory = prvalue +# 257| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 257| Type = [VoidType] void +# 257| ValueCategory = prvalue +# 257| getQualifier(): [VariableAccess] x79 +# 257| Type = [Struct] String +# 257| ValueCategory = lvalue +# 257| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 257| Conversion = [BoolConversion] conversion to bool +# 257| Type = [BoolType] bool +# 257| Value = [CStyleCast] 0 +# 257| ValueCategory = prvalue +# 258| getStmt(80): [DoStmt] do (...) ... +# 260| getCondition(): [Literal] 0 +# 260| Type = [IntType] int +# 260| Value = [Literal] 0 +# 260| ValueCategory = prvalue +# 258| getStmt(): [BlockStmt] { ... } +# 259| getStmt(0): [DeclStmt] declaration +# 259| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x80 +# 259| Type = [Struct] String +# 259| getVariable().getInitializer(): [Initializer] initializer for x80 +# 259| getExpr(): [ConstructorCall] call to String +# 259| Type = [VoidType] void +# 259| ValueCategory = prvalue +# 260| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 260| Type = [VoidType] void +# 260| ValueCategory = prvalue +# 260| getQualifier(): [VariableAccess] x80 +# 260| Type = [Struct] String +# 260| ValueCategory = lvalue +# 260| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 260| Conversion = [BoolConversion] conversion to bool +# 260| Type = [BoolType] bool +# 260| Value = [CStyleCast] 0 +# 260| ValueCategory = prvalue +# 261| getStmt(81): [DoStmt] do (...) ... +# 263| getCondition(): [Literal] 0 +# 263| Type = [IntType] int +# 263| Value = [Literal] 0 +# 263| ValueCategory = prvalue +# 261| getStmt(): [BlockStmt] { ... } +# 262| getStmt(0): [DeclStmt] declaration +# 262| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x81 +# 262| Type = [Struct] String +# 262| getVariable().getInitializer(): [Initializer] initializer for x81 +# 262| getExpr(): [ConstructorCall] call to String +# 262| Type = [VoidType] void +# 262| ValueCategory = prvalue +# 263| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 263| Type = [VoidType] void +# 263| ValueCategory = prvalue +# 263| getQualifier(): [VariableAccess] x81 +# 263| Type = [Struct] String +# 263| ValueCategory = lvalue +# 263| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 263| Conversion = [BoolConversion] conversion to bool +# 263| Type = [BoolType] bool +# 263| Value = [CStyleCast] 0 +# 263| ValueCategory = prvalue +# 264| getStmt(82): [DoStmt] do (...) ... +# 266| getCondition(): [Literal] 0 +# 266| Type = [IntType] int +# 266| Value = [Literal] 0 +# 266| ValueCategory = prvalue +# 264| getStmt(): [BlockStmt] { ... } +# 265| getStmt(0): [DeclStmt] declaration +# 265| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x82 +# 265| Type = [Struct] String +# 265| getVariable().getInitializer(): [Initializer] initializer for x82 +# 265| getExpr(): [ConstructorCall] call to String +# 265| Type = [VoidType] void +# 265| ValueCategory = prvalue +# 266| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 266| Type = [VoidType] void +# 266| ValueCategory = prvalue +# 266| getQualifier(): [VariableAccess] x82 +# 266| Type = [Struct] String +# 266| ValueCategory = lvalue +# 266| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 266| Conversion = [BoolConversion] conversion to bool +# 266| Type = [BoolType] bool +# 266| Value = [CStyleCast] 0 +# 266| ValueCategory = prvalue +# 267| getStmt(83): [DoStmt] do (...) ... +# 269| getCondition(): [Literal] 0 +# 269| Type = [IntType] int +# 269| Value = [Literal] 0 +# 269| ValueCategory = prvalue +# 267| getStmt(): [BlockStmt] { ... } +# 268| getStmt(0): [DeclStmt] declaration +# 268| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x83 +# 268| Type = [Struct] String +# 268| getVariable().getInitializer(): [Initializer] initializer for x83 +# 268| getExpr(): [ConstructorCall] call to String +# 268| Type = [VoidType] void +# 268| ValueCategory = prvalue +# 269| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 269| Type = [VoidType] void +# 269| ValueCategory = prvalue +# 269| getQualifier(): [VariableAccess] x83 +# 269| Type = [Struct] String +# 269| ValueCategory = lvalue +# 269| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 269| Conversion = [BoolConversion] conversion to bool +# 269| Type = [BoolType] bool +# 269| Value = [CStyleCast] 0 +# 269| ValueCategory = prvalue +# 270| getStmt(84): [DoStmt] do (...) ... +# 272| getCondition(): [Literal] 0 +# 272| Type = [IntType] int +# 272| Value = [Literal] 0 +# 272| ValueCategory = prvalue +# 270| getStmt(): [BlockStmt] { ... } +# 271| getStmt(0): [DeclStmt] declaration +# 271| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x84 +# 271| Type = [Struct] String +# 271| getVariable().getInitializer(): [Initializer] initializer for x84 +# 271| getExpr(): [ConstructorCall] call to String +# 271| Type = [VoidType] void +# 271| ValueCategory = prvalue +# 272| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 272| Type = [VoidType] void +# 272| ValueCategory = prvalue +# 272| getQualifier(): [VariableAccess] x84 +# 272| Type = [Struct] String +# 272| ValueCategory = lvalue +# 272| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 272| Conversion = [BoolConversion] conversion to bool +# 272| Type = [BoolType] bool +# 272| Value = [CStyleCast] 0 +# 272| ValueCategory = prvalue +# 273| getStmt(85): [DoStmt] do (...) ... +# 275| getCondition(): [Literal] 0 +# 275| Type = [IntType] int +# 275| Value = [Literal] 0 +# 275| ValueCategory = prvalue +# 273| getStmt(): [BlockStmt] { ... } +# 274| getStmt(0): [DeclStmt] declaration +# 274| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x85 +# 274| Type = [Struct] String +# 274| getVariable().getInitializer(): [Initializer] initializer for x85 +# 274| getExpr(): [ConstructorCall] call to String +# 274| Type = [VoidType] void +# 274| ValueCategory = prvalue +# 275| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 275| Type = [VoidType] void +# 275| ValueCategory = prvalue +# 275| getQualifier(): [VariableAccess] x85 +# 275| Type = [Struct] String +# 275| ValueCategory = lvalue +# 275| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 275| Conversion = [BoolConversion] conversion to bool +# 275| Type = [BoolType] bool +# 275| Value = [CStyleCast] 0 +# 275| ValueCategory = prvalue +# 276| getStmt(86): [DoStmt] do (...) ... +# 278| getCondition(): [Literal] 0 +# 278| Type = [IntType] int +# 278| Value = [Literal] 0 +# 278| ValueCategory = prvalue +# 276| getStmt(): [BlockStmt] { ... } +# 277| getStmt(0): [DeclStmt] declaration +# 277| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x86 +# 277| Type = [Struct] String +# 277| getVariable().getInitializer(): [Initializer] initializer for x86 +# 277| getExpr(): [ConstructorCall] call to String +# 277| Type = [VoidType] void +# 277| ValueCategory = prvalue +# 278| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 278| Type = [VoidType] void +# 278| ValueCategory = prvalue +# 278| getQualifier(): [VariableAccess] x86 +# 278| Type = [Struct] String +# 278| ValueCategory = lvalue +# 278| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 278| Conversion = [BoolConversion] conversion to bool +# 278| Type = [BoolType] bool +# 278| Value = [CStyleCast] 0 +# 278| ValueCategory = prvalue +# 279| getStmt(87): [DoStmt] do (...) ... +# 281| getCondition(): [Literal] 0 +# 281| Type = [IntType] int +# 281| Value = [Literal] 0 +# 281| ValueCategory = prvalue +# 279| getStmt(): [BlockStmt] { ... } +# 280| getStmt(0): [DeclStmt] declaration +# 280| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x87 +# 280| Type = [Struct] String +# 280| getVariable().getInitializer(): [Initializer] initializer for x87 +# 280| getExpr(): [ConstructorCall] call to String +# 280| Type = [VoidType] void +# 280| ValueCategory = prvalue +# 281| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 281| Type = [VoidType] void +# 281| ValueCategory = prvalue +# 281| getQualifier(): [VariableAccess] x87 +# 281| Type = [Struct] String +# 281| ValueCategory = lvalue +# 281| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 281| Conversion = [BoolConversion] conversion to bool +# 281| Type = [BoolType] bool +# 281| Value = [CStyleCast] 0 +# 281| ValueCategory = prvalue +# 282| getStmt(88): [DoStmt] do (...) ... +# 284| getCondition(): [Literal] 0 +# 284| Type = [IntType] int +# 284| Value = [Literal] 0 +# 284| ValueCategory = prvalue +# 282| getStmt(): [BlockStmt] { ... } +# 283| getStmt(0): [DeclStmt] declaration +# 283| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x88 +# 283| Type = [Struct] String +# 283| getVariable().getInitializer(): [Initializer] initializer for x88 +# 283| getExpr(): [ConstructorCall] call to String +# 283| Type = [VoidType] void +# 283| ValueCategory = prvalue +# 284| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 284| Type = [VoidType] void +# 284| ValueCategory = prvalue +# 284| getQualifier(): [VariableAccess] x88 +# 284| Type = [Struct] String +# 284| ValueCategory = lvalue +# 284| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 284| Conversion = [BoolConversion] conversion to bool +# 284| Type = [BoolType] bool +# 284| Value = [CStyleCast] 0 +# 284| ValueCategory = prvalue +# 285| getStmt(89): [DoStmt] do (...) ... +# 287| getCondition(): [Literal] 0 +# 287| Type = [IntType] int +# 287| Value = [Literal] 0 +# 287| ValueCategory = prvalue +# 285| getStmt(): [BlockStmt] { ... } +# 286| getStmt(0): [DeclStmt] declaration +# 286| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x89 +# 286| Type = [Struct] String +# 286| getVariable().getInitializer(): [Initializer] initializer for x89 +# 286| getExpr(): [ConstructorCall] call to String +# 286| Type = [VoidType] void +# 286| ValueCategory = prvalue +# 287| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 287| Type = [VoidType] void +# 287| ValueCategory = prvalue +# 287| getQualifier(): [VariableAccess] x89 +# 287| Type = [Struct] String +# 287| ValueCategory = lvalue +# 287| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 287| Conversion = [BoolConversion] conversion to bool +# 287| Type = [BoolType] bool +# 287| Value = [CStyleCast] 0 +# 287| ValueCategory = prvalue +# 288| getStmt(90): [DoStmt] do (...) ... +# 290| getCondition(): [Literal] 0 +# 290| Type = [IntType] int +# 290| Value = [Literal] 0 +# 290| ValueCategory = prvalue +# 288| getStmt(): [BlockStmt] { ... } +# 289| getStmt(0): [DeclStmt] declaration +# 289| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x90 +# 289| Type = [Struct] String +# 289| getVariable().getInitializer(): [Initializer] initializer for x90 +# 289| getExpr(): [ConstructorCall] call to String +# 289| Type = [VoidType] void +# 289| ValueCategory = prvalue +# 290| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 290| Type = [VoidType] void +# 290| ValueCategory = prvalue +# 290| getQualifier(): [VariableAccess] x90 +# 290| Type = [Struct] String +# 290| ValueCategory = lvalue +# 290| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 290| Conversion = [BoolConversion] conversion to bool +# 290| Type = [BoolType] bool +# 290| Value = [CStyleCast] 0 +# 290| ValueCategory = prvalue +# 291| getStmt(91): [DoStmt] do (...) ... +# 293| getCondition(): [Literal] 0 +# 293| Type = [IntType] int +# 293| Value = [Literal] 0 +# 293| ValueCategory = prvalue +# 291| getStmt(): [BlockStmt] { ... } +# 292| getStmt(0): [DeclStmt] declaration +# 292| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x91 +# 292| Type = [Struct] String +# 292| getVariable().getInitializer(): [Initializer] initializer for x91 +# 292| getExpr(): [ConstructorCall] call to String +# 292| Type = [VoidType] void +# 292| ValueCategory = prvalue +# 293| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 293| Type = [VoidType] void +# 293| ValueCategory = prvalue +# 293| getQualifier(): [VariableAccess] x91 +# 293| Type = [Struct] String +# 293| ValueCategory = lvalue +# 293| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 293| Conversion = [BoolConversion] conversion to bool +# 293| Type = [BoolType] bool +# 293| Value = [CStyleCast] 0 +# 293| ValueCategory = prvalue +# 294| getStmt(92): [DoStmt] do (...) ... +# 296| getCondition(): [Literal] 0 +# 296| Type = [IntType] int +# 296| Value = [Literal] 0 +# 296| ValueCategory = prvalue +# 294| getStmt(): [BlockStmt] { ... } +# 295| getStmt(0): [DeclStmt] declaration +# 295| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x92 +# 295| Type = [Struct] String +# 295| getVariable().getInitializer(): [Initializer] initializer for x92 +# 295| getExpr(): [ConstructorCall] call to String +# 295| Type = [VoidType] void +# 295| ValueCategory = prvalue +# 296| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 296| Type = [VoidType] void +# 296| ValueCategory = prvalue +# 296| getQualifier(): [VariableAccess] x92 +# 296| Type = [Struct] String +# 296| ValueCategory = lvalue +# 296| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 296| Conversion = [BoolConversion] conversion to bool +# 296| Type = [BoolType] bool +# 296| Value = [CStyleCast] 0 +# 296| ValueCategory = prvalue +# 297| getStmt(93): [DoStmt] do (...) ... +# 299| getCondition(): [Literal] 0 +# 299| Type = [IntType] int +# 299| Value = [Literal] 0 +# 299| ValueCategory = prvalue +# 297| getStmt(): [BlockStmt] { ... } +# 298| getStmt(0): [DeclStmt] declaration +# 298| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x93 +# 298| Type = [Struct] String +# 298| getVariable().getInitializer(): [Initializer] initializer for x93 +# 298| getExpr(): [ConstructorCall] call to String +# 298| Type = [VoidType] void +# 298| ValueCategory = prvalue +# 299| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 299| Type = [VoidType] void +# 299| ValueCategory = prvalue +# 299| getQualifier(): [VariableAccess] x93 +# 299| Type = [Struct] String +# 299| ValueCategory = lvalue +# 299| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 299| Conversion = [BoolConversion] conversion to bool +# 299| Type = [BoolType] bool +# 299| Value = [CStyleCast] 0 +# 299| ValueCategory = prvalue +# 300| getStmt(94): [DoStmt] do (...) ... +# 302| getCondition(): [Literal] 0 +# 302| Type = [IntType] int +# 302| Value = [Literal] 0 +# 302| ValueCategory = prvalue +# 300| getStmt(): [BlockStmt] { ... } +# 301| getStmt(0): [DeclStmt] declaration +# 301| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x94 +# 301| Type = [Struct] String +# 301| getVariable().getInitializer(): [Initializer] initializer for x94 +# 301| getExpr(): [ConstructorCall] call to String +# 301| Type = [VoidType] void +# 301| ValueCategory = prvalue +# 302| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 302| Type = [VoidType] void +# 302| ValueCategory = prvalue +# 302| getQualifier(): [VariableAccess] x94 +# 302| Type = [Struct] String +# 302| ValueCategory = lvalue +# 302| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 302| Conversion = [BoolConversion] conversion to bool +# 302| Type = [BoolType] bool +# 302| Value = [CStyleCast] 0 +# 302| ValueCategory = prvalue +# 303| getStmt(95): [DoStmt] do (...) ... +# 305| getCondition(): [Literal] 0 +# 305| Type = [IntType] int +# 305| Value = [Literal] 0 +# 305| ValueCategory = prvalue +# 303| getStmt(): [BlockStmt] { ... } +# 304| getStmt(0): [DeclStmt] declaration +# 304| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x95 +# 304| Type = [Struct] String +# 304| getVariable().getInitializer(): [Initializer] initializer for x95 +# 304| getExpr(): [ConstructorCall] call to String +# 304| Type = [VoidType] void +# 304| ValueCategory = prvalue +# 305| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 305| Type = [VoidType] void +# 305| ValueCategory = prvalue +# 305| getQualifier(): [VariableAccess] x95 +# 305| Type = [Struct] String +# 305| ValueCategory = lvalue +# 305| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 305| Conversion = [BoolConversion] conversion to bool +# 305| Type = [BoolType] bool +# 305| Value = [CStyleCast] 0 +# 305| ValueCategory = prvalue +# 306| getStmt(96): [DoStmt] do (...) ... +# 308| getCondition(): [Literal] 0 +# 308| Type = [IntType] int +# 308| Value = [Literal] 0 +# 308| ValueCategory = prvalue +# 306| getStmt(): [BlockStmt] { ... } +# 307| getStmt(0): [DeclStmt] declaration +# 307| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x96 +# 307| Type = [Struct] String +# 307| getVariable().getInitializer(): [Initializer] initializer for x96 +# 307| getExpr(): [ConstructorCall] call to String +# 307| Type = [VoidType] void +# 307| ValueCategory = prvalue +# 308| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 308| Type = [VoidType] void +# 308| ValueCategory = prvalue +# 308| getQualifier(): [VariableAccess] x96 +# 308| Type = [Struct] String +# 308| ValueCategory = lvalue +# 308| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 308| Conversion = [BoolConversion] conversion to bool +# 308| Type = [BoolType] bool +# 308| Value = [CStyleCast] 0 +# 308| ValueCategory = prvalue +# 309| getStmt(97): [DoStmt] do (...) ... +# 311| getCondition(): [Literal] 0 +# 311| Type = [IntType] int +# 311| Value = [Literal] 0 +# 311| ValueCategory = prvalue +# 309| getStmt(): [BlockStmt] { ... } +# 310| getStmt(0): [DeclStmt] declaration +# 310| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x97 +# 310| Type = [Struct] String +# 310| getVariable().getInitializer(): [Initializer] initializer for x97 +# 310| getExpr(): [ConstructorCall] call to String +# 310| Type = [VoidType] void +# 310| ValueCategory = prvalue +# 311| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 311| Type = [VoidType] void +# 311| ValueCategory = prvalue +# 311| getQualifier(): [VariableAccess] x97 +# 311| Type = [Struct] String +# 311| ValueCategory = lvalue +# 311| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 311| Conversion = [BoolConversion] conversion to bool +# 311| Type = [BoolType] bool +# 311| Value = [CStyleCast] 0 +# 311| ValueCategory = prvalue +# 312| getStmt(98): [DoStmt] do (...) ... +# 314| getCondition(): [Literal] 0 +# 314| Type = [IntType] int +# 314| Value = [Literal] 0 +# 314| ValueCategory = prvalue +# 312| getStmt(): [BlockStmt] { ... } +# 313| getStmt(0): [DeclStmt] declaration +# 313| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x98 +# 313| Type = [Struct] String +# 313| getVariable().getInitializer(): [Initializer] initializer for x98 +# 313| getExpr(): [ConstructorCall] call to String +# 313| Type = [VoidType] void +# 313| ValueCategory = prvalue +# 314| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 314| Type = [VoidType] void +# 314| ValueCategory = prvalue +# 314| getQualifier(): [VariableAccess] x98 +# 314| Type = [Struct] String +# 314| ValueCategory = lvalue +# 314| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 314| Conversion = [BoolConversion] conversion to bool +# 314| Type = [BoolType] bool +# 314| Value = [CStyleCast] 0 +# 314| ValueCategory = prvalue +# 315| getStmt(99): [DoStmt] do (...) ... +# 317| getCondition(): [Literal] 0 +# 317| Type = [IntType] int +# 317| Value = [Literal] 0 +# 317| ValueCategory = prvalue +# 315| getStmt(): [BlockStmt] { ... } +# 316| getStmt(0): [DeclStmt] declaration +# 316| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x99 +# 316| Type = [Struct] String +# 316| getVariable().getInitializer(): [Initializer] initializer for x99 +# 316| getExpr(): [ConstructorCall] call to String +# 316| Type = [VoidType] void +# 316| ValueCategory = prvalue +# 317| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 317| Type = [VoidType] void +# 317| ValueCategory = prvalue +# 317| getQualifier(): [VariableAccess] x99 +# 317| Type = [Struct] String +# 317| ValueCategory = lvalue +# 317| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 317| Conversion = [BoolConversion] conversion to bool +# 317| Type = [BoolType] bool +# 317| Value = [CStyleCast] 0 +# 317| ValueCategory = prvalue +# 318| getStmt(100): [DoStmt] do (...) ... +# 320| getCondition(): [Literal] 0 +# 320| Type = [IntType] int +# 320| Value = [Literal] 0 +# 320| ValueCategory = prvalue +# 318| getStmt(): [BlockStmt] { ... } +# 319| getStmt(0): [DeclStmt] declaration +# 319| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x100 +# 319| Type = [Struct] String +# 319| getVariable().getInitializer(): [Initializer] initializer for x100 +# 319| getExpr(): [ConstructorCall] call to String +# 319| Type = [VoidType] void +# 319| ValueCategory = prvalue +# 320| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 320| Type = [VoidType] void +# 320| ValueCategory = prvalue +# 320| getQualifier(): [VariableAccess] x100 +# 320| Type = [Struct] String +# 320| ValueCategory = lvalue +# 320| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 320| Conversion = [BoolConversion] conversion to bool +# 320| Type = [BoolType] bool +# 320| Value = [CStyleCast] 0 +# 320| ValueCategory = prvalue +# 321| getStmt(101): [DoStmt] do (...) ... +# 323| getCondition(): [Literal] 0 +# 323| Type = [IntType] int +# 323| Value = [Literal] 0 +# 323| ValueCategory = prvalue +# 321| getStmt(): [BlockStmt] { ... } +# 322| getStmt(0): [DeclStmt] declaration +# 322| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x101 +# 322| Type = [Struct] String +# 322| getVariable().getInitializer(): [Initializer] initializer for x101 +# 322| getExpr(): [ConstructorCall] call to String +# 322| Type = [VoidType] void +# 322| ValueCategory = prvalue +# 323| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 323| Type = [VoidType] void +# 323| ValueCategory = prvalue +# 323| getQualifier(): [VariableAccess] x101 +# 323| Type = [Struct] String +# 323| ValueCategory = lvalue +# 323| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 323| Conversion = [BoolConversion] conversion to bool +# 323| Type = [BoolType] bool +# 323| Value = [CStyleCast] 0 +# 323| ValueCategory = prvalue +# 324| getStmt(102): [DoStmt] do (...) ... +# 326| getCondition(): [Literal] 0 +# 326| Type = [IntType] int +# 326| Value = [Literal] 0 +# 326| ValueCategory = prvalue +# 324| getStmt(): [BlockStmt] { ... } +# 325| getStmt(0): [DeclStmt] declaration +# 325| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x102 +# 325| Type = [Struct] String +# 325| getVariable().getInitializer(): [Initializer] initializer for x102 +# 325| getExpr(): [ConstructorCall] call to String +# 325| Type = [VoidType] void +# 325| ValueCategory = prvalue +# 326| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 326| Type = [VoidType] void +# 326| ValueCategory = prvalue +# 326| getQualifier(): [VariableAccess] x102 +# 326| Type = [Struct] String +# 326| ValueCategory = lvalue +# 326| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 326| Conversion = [BoolConversion] conversion to bool +# 326| Type = [BoolType] bool +# 326| Value = [CStyleCast] 0 +# 326| ValueCategory = prvalue +# 327| getStmt(103): [DoStmt] do (...) ... +# 329| getCondition(): [Literal] 0 +# 329| Type = [IntType] int +# 329| Value = [Literal] 0 +# 329| ValueCategory = prvalue +# 327| getStmt(): [BlockStmt] { ... } +# 328| getStmt(0): [DeclStmt] declaration +# 328| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x103 +# 328| Type = [Struct] String +# 328| getVariable().getInitializer(): [Initializer] initializer for x103 +# 328| getExpr(): [ConstructorCall] call to String +# 328| Type = [VoidType] void +# 328| ValueCategory = prvalue +# 329| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 329| Type = [VoidType] void +# 329| ValueCategory = prvalue +# 329| getQualifier(): [VariableAccess] x103 +# 329| Type = [Struct] String +# 329| ValueCategory = lvalue +# 329| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 329| Conversion = [BoolConversion] conversion to bool +# 329| Type = [BoolType] bool +# 329| Value = [CStyleCast] 0 +# 329| ValueCategory = prvalue +# 330| getStmt(104): [DoStmt] do (...) ... +# 332| getCondition(): [Literal] 0 +# 332| Type = [IntType] int +# 332| Value = [Literal] 0 +# 332| ValueCategory = prvalue +# 330| getStmt(): [BlockStmt] { ... } +# 331| getStmt(0): [DeclStmt] declaration +# 331| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x104 +# 331| Type = [Struct] String +# 331| getVariable().getInitializer(): [Initializer] initializer for x104 +# 331| getExpr(): [ConstructorCall] call to String +# 331| Type = [VoidType] void +# 331| ValueCategory = prvalue +# 332| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 332| Type = [VoidType] void +# 332| ValueCategory = prvalue +# 332| getQualifier(): [VariableAccess] x104 +# 332| Type = [Struct] String +# 332| ValueCategory = lvalue +# 332| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 332| Conversion = [BoolConversion] conversion to bool +# 332| Type = [BoolType] bool +# 332| Value = [CStyleCast] 0 +# 332| ValueCategory = prvalue +# 333| getStmt(105): [DoStmt] do (...) ... +# 335| getCondition(): [Literal] 0 +# 335| Type = [IntType] int +# 335| Value = [Literal] 0 +# 335| ValueCategory = prvalue +# 333| getStmt(): [BlockStmt] { ... } +# 334| getStmt(0): [DeclStmt] declaration +# 334| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x105 +# 334| Type = [Struct] String +# 334| getVariable().getInitializer(): [Initializer] initializer for x105 +# 334| getExpr(): [ConstructorCall] call to String +# 334| Type = [VoidType] void +# 334| ValueCategory = prvalue +# 335| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 335| Type = [VoidType] void +# 335| ValueCategory = prvalue +# 335| getQualifier(): [VariableAccess] x105 +# 335| Type = [Struct] String +# 335| ValueCategory = lvalue +# 335| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 335| Conversion = [BoolConversion] conversion to bool +# 335| Type = [BoolType] bool +# 335| Value = [CStyleCast] 0 +# 335| ValueCategory = prvalue +# 336| getStmt(106): [DoStmt] do (...) ... +# 338| getCondition(): [Literal] 0 +# 338| Type = [IntType] int +# 338| Value = [Literal] 0 +# 338| ValueCategory = prvalue +# 336| getStmt(): [BlockStmt] { ... } +# 337| getStmt(0): [DeclStmt] declaration +# 337| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x106 +# 337| Type = [Struct] String +# 337| getVariable().getInitializer(): [Initializer] initializer for x106 +# 337| getExpr(): [ConstructorCall] call to String +# 337| Type = [VoidType] void +# 337| ValueCategory = prvalue +# 338| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 338| Type = [VoidType] void +# 338| ValueCategory = prvalue +# 338| getQualifier(): [VariableAccess] x106 +# 338| Type = [Struct] String +# 338| ValueCategory = lvalue +# 338| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 338| Conversion = [BoolConversion] conversion to bool +# 338| Type = [BoolType] bool +# 338| Value = [CStyleCast] 0 +# 338| ValueCategory = prvalue +# 339| getStmt(107): [DoStmt] do (...) ... +# 341| getCondition(): [Literal] 0 +# 341| Type = [IntType] int +# 341| Value = [Literal] 0 +# 341| ValueCategory = prvalue +# 339| getStmt(): [BlockStmt] { ... } +# 340| getStmt(0): [DeclStmt] declaration +# 340| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x107 +# 340| Type = [Struct] String +# 340| getVariable().getInitializer(): [Initializer] initializer for x107 +# 340| getExpr(): [ConstructorCall] call to String +# 340| Type = [VoidType] void +# 340| ValueCategory = prvalue +# 341| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 341| Type = [VoidType] void +# 341| ValueCategory = prvalue +# 341| getQualifier(): [VariableAccess] x107 +# 341| Type = [Struct] String +# 341| ValueCategory = lvalue +# 341| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 341| Conversion = [BoolConversion] conversion to bool +# 341| Type = [BoolType] bool +# 341| Value = [CStyleCast] 0 +# 341| ValueCategory = prvalue +# 342| getStmt(108): [DoStmt] do (...) ... +# 344| getCondition(): [Literal] 0 +# 344| Type = [IntType] int +# 344| Value = [Literal] 0 +# 344| ValueCategory = prvalue +# 342| getStmt(): [BlockStmt] { ... } +# 343| getStmt(0): [DeclStmt] declaration +# 343| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x108 +# 343| Type = [Struct] String +# 343| getVariable().getInitializer(): [Initializer] initializer for x108 +# 343| getExpr(): [ConstructorCall] call to String +# 343| Type = [VoidType] void +# 343| ValueCategory = prvalue +# 344| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 344| Type = [VoidType] void +# 344| ValueCategory = prvalue +# 344| getQualifier(): [VariableAccess] x108 +# 344| Type = [Struct] String +# 344| ValueCategory = lvalue +# 344| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 344| Conversion = [BoolConversion] conversion to bool +# 344| Type = [BoolType] bool +# 344| Value = [CStyleCast] 0 +# 344| ValueCategory = prvalue +# 345| getStmt(109): [DoStmt] do (...) ... +# 347| getCondition(): [Literal] 0 +# 347| Type = [IntType] int +# 347| Value = [Literal] 0 +# 347| ValueCategory = prvalue +# 345| getStmt(): [BlockStmt] { ... } +# 346| getStmt(0): [DeclStmt] declaration +# 346| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x109 +# 346| Type = [Struct] String +# 346| getVariable().getInitializer(): [Initializer] initializer for x109 +# 346| getExpr(): [ConstructorCall] call to String +# 346| Type = [VoidType] void +# 346| ValueCategory = prvalue +# 347| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 347| Type = [VoidType] void +# 347| ValueCategory = prvalue +# 347| getQualifier(): [VariableAccess] x109 +# 347| Type = [Struct] String +# 347| ValueCategory = lvalue +# 347| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 347| Conversion = [BoolConversion] conversion to bool +# 347| Type = [BoolType] bool +# 347| Value = [CStyleCast] 0 +# 347| ValueCategory = prvalue +# 348| getStmt(110): [DoStmt] do (...) ... +# 350| getCondition(): [Literal] 0 +# 350| Type = [IntType] int +# 350| Value = [Literal] 0 +# 350| ValueCategory = prvalue +# 348| getStmt(): [BlockStmt] { ... } +# 349| getStmt(0): [DeclStmt] declaration +# 349| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x110 +# 349| Type = [Struct] String +# 349| getVariable().getInitializer(): [Initializer] initializer for x110 +# 349| getExpr(): [ConstructorCall] call to String +# 349| Type = [VoidType] void +# 349| ValueCategory = prvalue +# 350| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 350| Type = [VoidType] void +# 350| ValueCategory = prvalue +# 350| getQualifier(): [VariableAccess] x110 +# 350| Type = [Struct] String +# 350| ValueCategory = lvalue +# 350| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 350| Conversion = [BoolConversion] conversion to bool +# 350| Type = [BoolType] bool +# 350| Value = [CStyleCast] 0 +# 350| ValueCategory = prvalue +# 351| getStmt(111): [DoStmt] do (...) ... +# 353| getCondition(): [Literal] 0 +# 353| Type = [IntType] int +# 353| Value = [Literal] 0 +# 353| ValueCategory = prvalue +# 351| getStmt(): [BlockStmt] { ... } +# 352| getStmt(0): [DeclStmt] declaration +# 352| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x111 +# 352| Type = [Struct] String +# 352| getVariable().getInitializer(): [Initializer] initializer for x111 +# 352| getExpr(): [ConstructorCall] call to String +# 352| Type = [VoidType] void +# 352| ValueCategory = prvalue +# 353| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 353| Type = [VoidType] void +# 353| ValueCategory = prvalue +# 353| getQualifier(): [VariableAccess] x111 +# 353| Type = [Struct] String +# 353| ValueCategory = lvalue +# 353| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 353| Conversion = [BoolConversion] conversion to bool +# 353| Type = [BoolType] bool +# 353| Value = [CStyleCast] 0 +# 353| ValueCategory = prvalue +# 354| getStmt(112): [DoStmt] do (...) ... +# 356| getCondition(): [Literal] 0 +# 356| Type = [IntType] int +# 356| Value = [Literal] 0 +# 356| ValueCategory = prvalue +# 354| getStmt(): [BlockStmt] { ... } +# 355| getStmt(0): [DeclStmt] declaration +# 355| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x112 +# 355| Type = [Struct] String +# 355| getVariable().getInitializer(): [Initializer] initializer for x112 +# 355| getExpr(): [ConstructorCall] call to String +# 355| Type = [VoidType] void +# 355| ValueCategory = prvalue +# 356| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 356| Type = [VoidType] void +# 356| ValueCategory = prvalue +# 356| getQualifier(): [VariableAccess] x112 +# 356| Type = [Struct] String +# 356| ValueCategory = lvalue +# 356| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 356| Conversion = [BoolConversion] conversion to bool +# 356| Type = [BoolType] bool +# 356| Value = [CStyleCast] 0 +# 356| ValueCategory = prvalue +# 357| getStmt(113): [DoStmt] do (...) ... +# 359| getCondition(): [Literal] 0 +# 359| Type = [IntType] int +# 359| Value = [Literal] 0 +# 359| ValueCategory = prvalue +# 357| getStmt(): [BlockStmt] { ... } +# 358| getStmt(0): [DeclStmt] declaration +# 358| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x113 +# 358| Type = [Struct] String +# 358| getVariable().getInitializer(): [Initializer] initializer for x113 +# 358| getExpr(): [ConstructorCall] call to String +# 358| Type = [VoidType] void +# 358| ValueCategory = prvalue +# 359| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 359| Type = [VoidType] void +# 359| ValueCategory = prvalue +# 359| getQualifier(): [VariableAccess] x113 +# 359| Type = [Struct] String +# 359| ValueCategory = lvalue +# 359| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 359| Conversion = [BoolConversion] conversion to bool +# 359| Type = [BoolType] bool +# 359| Value = [CStyleCast] 0 +# 359| ValueCategory = prvalue +# 360| getStmt(114): [DoStmt] do (...) ... +# 362| getCondition(): [Literal] 0 +# 362| Type = [IntType] int +# 362| Value = [Literal] 0 +# 362| ValueCategory = prvalue +# 360| getStmt(): [BlockStmt] { ... } +# 361| getStmt(0): [DeclStmt] declaration +# 361| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x114 +# 361| Type = [Struct] String +# 361| getVariable().getInitializer(): [Initializer] initializer for x114 +# 361| getExpr(): [ConstructorCall] call to String +# 361| Type = [VoidType] void +# 361| ValueCategory = prvalue +# 362| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 362| Type = [VoidType] void +# 362| ValueCategory = prvalue +# 362| getQualifier(): [VariableAccess] x114 +# 362| Type = [Struct] String +# 362| ValueCategory = lvalue +# 362| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 362| Conversion = [BoolConversion] conversion to bool +# 362| Type = [BoolType] bool +# 362| Value = [CStyleCast] 0 +# 362| ValueCategory = prvalue +# 363| getStmt(115): [DoStmt] do (...) ... +# 365| getCondition(): [Literal] 0 +# 365| Type = [IntType] int +# 365| Value = [Literal] 0 +# 365| ValueCategory = prvalue +# 363| getStmt(): [BlockStmt] { ... } +# 364| getStmt(0): [DeclStmt] declaration +# 364| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x115 +# 364| Type = [Struct] String +# 364| getVariable().getInitializer(): [Initializer] initializer for x115 +# 364| getExpr(): [ConstructorCall] call to String +# 364| Type = [VoidType] void +# 364| ValueCategory = prvalue +# 365| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 365| Type = [VoidType] void +# 365| ValueCategory = prvalue +# 365| getQualifier(): [VariableAccess] x115 +# 365| Type = [Struct] String +# 365| ValueCategory = lvalue +# 365| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 365| Conversion = [BoolConversion] conversion to bool +# 365| Type = [BoolType] bool +# 365| Value = [CStyleCast] 0 +# 365| ValueCategory = prvalue +# 366| getStmt(116): [DoStmt] do (...) ... +# 368| getCondition(): [Literal] 0 +# 368| Type = [IntType] int +# 368| Value = [Literal] 0 +# 368| ValueCategory = prvalue +# 366| getStmt(): [BlockStmt] { ... } +# 367| getStmt(0): [DeclStmt] declaration +# 367| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x116 +# 367| Type = [Struct] String +# 367| getVariable().getInitializer(): [Initializer] initializer for x116 +# 367| getExpr(): [ConstructorCall] call to String +# 367| Type = [VoidType] void +# 367| ValueCategory = prvalue +# 368| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 368| Type = [VoidType] void +# 368| ValueCategory = prvalue +# 368| getQualifier(): [VariableAccess] x116 +# 368| Type = [Struct] String +# 368| ValueCategory = lvalue +# 368| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 368| Conversion = [BoolConversion] conversion to bool +# 368| Type = [BoolType] bool +# 368| Value = [CStyleCast] 0 +# 368| ValueCategory = prvalue +# 369| getStmt(117): [DoStmt] do (...) ... +# 371| getCondition(): [Literal] 0 +# 371| Type = [IntType] int +# 371| Value = [Literal] 0 +# 371| ValueCategory = prvalue +# 369| getStmt(): [BlockStmt] { ... } +# 370| getStmt(0): [DeclStmt] declaration +# 370| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x117 +# 370| Type = [Struct] String +# 370| getVariable().getInitializer(): [Initializer] initializer for x117 +# 370| getExpr(): [ConstructorCall] call to String +# 370| Type = [VoidType] void +# 370| ValueCategory = prvalue +# 371| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 371| Type = [VoidType] void +# 371| ValueCategory = prvalue +# 371| getQualifier(): [VariableAccess] x117 +# 371| Type = [Struct] String +# 371| ValueCategory = lvalue +# 371| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 371| Conversion = [BoolConversion] conversion to bool +# 371| Type = [BoolType] bool +# 371| Value = [CStyleCast] 0 +# 371| ValueCategory = prvalue +# 372| getStmt(118): [DoStmt] do (...) ... +# 374| getCondition(): [Literal] 0 +# 374| Type = [IntType] int +# 374| Value = [Literal] 0 +# 374| ValueCategory = prvalue +# 372| getStmt(): [BlockStmt] { ... } +# 373| getStmt(0): [DeclStmt] declaration +# 373| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x118 +# 373| Type = [Struct] String +# 373| getVariable().getInitializer(): [Initializer] initializer for x118 +# 373| getExpr(): [ConstructorCall] call to String +# 373| Type = [VoidType] void +# 373| ValueCategory = prvalue +# 374| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 374| Type = [VoidType] void +# 374| ValueCategory = prvalue +# 374| getQualifier(): [VariableAccess] x118 +# 374| Type = [Struct] String +# 374| ValueCategory = lvalue +# 374| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 374| Conversion = [BoolConversion] conversion to bool +# 374| Type = [BoolType] bool +# 374| Value = [CStyleCast] 0 +# 374| ValueCategory = prvalue +# 375| getStmt(119): [DoStmt] do (...) ... +# 377| getCondition(): [Literal] 0 +# 377| Type = [IntType] int +# 377| Value = [Literal] 0 +# 377| ValueCategory = prvalue +# 375| getStmt(): [BlockStmt] { ... } +# 376| getStmt(0): [DeclStmt] declaration +# 376| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x119 +# 376| Type = [Struct] String +# 376| getVariable().getInitializer(): [Initializer] initializer for x119 +# 376| getExpr(): [ConstructorCall] call to String +# 376| Type = [VoidType] void +# 376| ValueCategory = prvalue +# 377| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 377| Type = [VoidType] void +# 377| ValueCategory = prvalue +# 377| getQualifier(): [VariableAccess] x119 +# 377| Type = [Struct] String +# 377| ValueCategory = lvalue +# 377| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 377| Conversion = [BoolConversion] conversion to bool +# 377| Type = [BoolType] bool +# 377| Value = [CStyleCast] 0 +# 377| ValueCategory = prvalue +# 378| getStmt(120): [DoStmt] do (...) ... +# 380| getCondition(): [Literal] 0 +# 380| Type = [IntType] int +# 380| Value = [Literal] 0 +# 380| ValueCategory = prvalue +# 378| getStmt(): [BlockStmt] { ... } +# 379| getStmt(0): [DeclStmt] declaration +# 379| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x120 +# 379| Type = [Struct] String +# 379| getVariable().getInitializer(): [Initializer] initializer for x120 +# 379| getExpr(): [ConstructorCall] call to String +# 379| Type = [VoidType] void +# 379| ValueCategory = prvalue +# 380| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 380| Type = [VoidType] void +# 380| ValueCategory = prvalue +# 380| getQualifier(): [VariableAccess] x120 +# 380| Type = [Struct] String +# 380| ValueCategory = lvalue +# 380| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 380| Conversion = [BoolConversion] conversion to bool +# 380| Type = [BoolType] bool +# 380| Value = [CStyleCast] 0 +# 380| ValueCategory = prvalue +# 381| getStmt(121): [DoStmt] do (...) ... +# 383| getCondition(): [Literal] 0 +# 383| Type = [IntType] int +# 383| Value = [Literal] 0 +# 383| ValueCategory = prvalue +# 381| getStmt(): [BlockStmt] { ... } +# 382| getStmt(0): [DeclStmt] declaration +# 382| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x121 +# 382| Type = [Struct] String +# 382| getVariable().getInitializer(): [Initializer] initializer for x121 +# 382| getExpr(): [ConstructorCall] call to String +# 382| Type = [VoidType] void +# 382| ValueCategory = prvalue +# 383| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 383| Type = [VoidType] void +# 383| ValueCategory = prvalue +# 383| getQualifier(): [VariableAccess] x121 +# 383| Type = [Struct] String +# 383| ValueCategory = lvalue +# 383| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 383| Conversion = [BoolConversion] conversion to bool +# 383| Type = [BoolType] bool +# 383| Value = [CStyleCast] 0 +# 383| ValueCategory = prvalue +# 384| getStmt(122): [DoStmt] do (...) ... +# 386| getCondition(): [Literal] 0 +# 386| Type = [IntType] int +# 386| Value = [Literal] 0 +# 386| ValueCategory = prvalue +# 384| getStmt(): [BlockStmt] { ... } +# 385| getStmt(0): [DeclStmt] declaration +# 385| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x122 +# 385| Type = [Struct] String +# 385| getVariable().getInitializer(): [Initializer] initializer for x122 +# 385| getExpr(): [ConstructorCall] call to String +# 385| Type = [VoidType] void +# 385| ValueCategory = prvalue +# 386| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 386| Type = [VoidType] void +# 386| ValueCategory = prvalue +# 386| getQualifier(): [VariableAccess] x122 +# 386| Type = [Struct] String +# 386| ValueCategory = lvalue +# 386| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 386| Conversion = [BoolConversion] conversion to bool +# 386| Type = [BoolType] bool +# 386| Value = [CStyleCast] 0 +# 386| ValueCategory = prvalue +# 387| getStmt(123): [DoStmt] do (...) ... +# 389| getCondition(): [Literal] 0 +# 389| Type = [IntType] int +# 389| Value = [Literal] 0 +# 389| ValueCategory = prvalue +# 387| getStmt(): [BlockStmt] { ... } +# 388| getStmt(0): [DeclStmt] declaration +# 388| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x123 +# 388| Type = [Struct] String +# 388| getVariable().getInitializer(): [Initializer] initializer for x123 +# 388| getExpr(): [ConstructorCall] call to String +# 388| Type = [VoidType] void +# 388| ValueCategory = prvalue +# 389| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 389| Type = [VoidType] void +# 389| ValueCategory = prvalue +# 389| getQualifier(): [VariableAccess] x123 +# 389| Type = [Struct] String +# 389| ValueCategory = lvalue +# 389| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 389| Conversion = [BoolConversion] conversion to bool +# 389| Type = [BoolType] bool +# 389| Value = [CStyleCast] 0 +# 389| ValueCategory = prvalue +# 390| getStmt(124): [DoStmt] do (...) ... +# 392| getCondition(): [Literal] 0 +# 392| Type = [IntType] int +# 392| Value = [Literal] 0 +# 392| ValueCategory = prvalue +# 390| getStmt(): [BlockStmt] { ... } +# 391| getStmt(0): [DeclStmt] declaration +# 391| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x124 +# 391| Type = [Struct] String +# 391| getVariable().getInitializer(): [Initializer] initializer for x124 +# 391| getExpr(): [ConstructorCall] call to String +# 391| Type = [VoidType] void +# 391| ValueCategory = prvalue +# 392| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 392| Type = [VoidType] void +# 392| ValueCategory = prvalue +# 392| getQualifier(): [VariableAccess] x124 +# 392| Type = [Struct] String +# 392| ValueCategory = lvalue +# 392| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 392| Conversion = [BoolConversion] conversion to bool +# 392| Type = [BoolType] bool +# 392| Value = [CStyleCast] 0 +# 392| ValueCategory = prvalue +# 393| getStmt(125): [DoStmt] do (...) ... +# 395| getCondition(): [Literal] 0 +# 395| Type = [IntType] int +# 395| Value = [Literal] 0 +# 395| ValueCategory = prvalue +# 393| getStmt(): [BlockStmt] { ... } +# 394| getStmt(0): [DeclStmt] declaration +# 394| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x125 +# 394| Type = [Struct] String +# 394| getVariable().getInitializer(): [Initializer] initializer for x125 +# 394| getExpr(): [ConstructorCall] call to String +# 394| Type = [VoidType] void +# 394| ValueCategory = prvalue +# 395| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 395| Type = [VoidType] void +# 395| ValueCategory = prvalue +# 395| getQualifier(): [VariableAccess] x125 +# 395| Type = [Struct] String +# 395| ValueCategory = lvalue +# 395| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 395| Conversion = [BoolConversion] conversion to bool +# 395| Type = [BoolType] bool +# 395| Value = [CStyleCast] 0 +# 395| ValueCategory = prvalue +# 396| getStmt(126): [DoStmt] do (...) ... +# 398| getCondition(): [Literal] 0 +# 398| Type = [IntType] int +# 398| Value = [Literal] 0 +# 398| ValueCategory = prvalue +# 396| getStmt(): [BlockStmt] { ... } +# 397| getStmt(0): [DeclStmt] declaration +# 397| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x126 +# 397| Type = [Struct] String +# 397| getVariable().getInitializer(): [Initializer] initializer for x126 +# 397| getExpr(): [ConstructorCall] call to String +# 397| Type = [VoidType] void +# 397| ValueCategory = prvalue +# 398| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 398| Type = [VoidType] void +# 398| ValueCategory = prvalue +# 398| getQualifier(): [VariableAccess] x126 +# 398| Type = [Struct] String +# 398| ValueCategory = lvalue +# 398| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 398| Conversion = [BoolConversion] conversion to bool +# 398| Type = [BoolType] bool +# 398| Value = [CStyleCast] 0 +# 398| ValueCategory = prvalue +# 399| getStmt(127): [DoStmt] do (...) ... +# 401| getCondition(): [Literal] 0 +# 401| Type = [IntType] int +# 401| Value = [Literal] 0 +# 401| ValueCategory = prvalue +# 399| getStmt(): [BlockStmt] { ... } +# 400| getStmt(0): [DeclStmt] declaration +# 400| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x127 +# 400| Type = [Struct] String +# 400| getVariable().getInitializer(): [Initializer] initializer for x127 +# 400| getExpr(): [ConstructorCall] call to String +# 400| Type = [VoidType] void +# 400| ValueCategory = prvalue +# 401| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 401| Type = [VoidType] void +# 401| ValueCategory = prvalue +# 401| getQualifier(): [VariableAccess] x127 +# 401| Type = [Struct] String +# 401| ValueCategory = lvalue +# 401| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 401| Conversion = [BoolConversion] conversion to bool +# 401| Type = [BoolType] bool +# 401| Value = [CStyleCast] 0 +# 401| ValueCategory = prvalue +# 402| getStmt(128): [DoStmt] do (...) ... +# 404| getCondition(): [Literal] 0 +# 404| Type = [IntType] int +# 404| Value = [Literal] 0 +# 404| ValueCategory = prvalue +# 402| getStmt(): [BlockStmt] { ... } +# 403| getStmt(0): [DeclStmt] declaration +# 403| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x128 +# 403| Type = [Struct] String +# 403| getVariable().getInitializer(): [Initializer] initializer for x128 +# 403| getExpr(): [ConstructorCall] call to String +# 403| Type = [VoidType] void +# 403| ValueCategory = prvalue +# 404| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 404| Type = [VoidType] void +# 404| ValueCategory = prvalue +# 404| getQualifier(): [VariableAccess] x128 +# 404| Type = [Struct] String +# 404| ValueCategory = lvalue +# 404| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 404| Conversion = [BoolConversion] conversion to bool +# 404| Type = [BoolType] bool +# 404| Value = [CStyleCast] 0 +# 404| ValueCategory = prvalue +# 405| getStmt(129): [DoStmt] do (...) ... +# 407| getCondition(): [Literal] 0 +# 407| Type = [IntType] int +# 407| Value = [Literal] 0 +# 407| ValueCategory = prvalue +# 405| getStmt(): [BlockStmt] { ... } +# 406| getStmt(0): [DeclStmt] declaration +# 406| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x129 +# 406| Type = [Struct] String +# 406| getVariable().getInitializer(): [Initializer] initializer for x129 +# 406| getExpr(): [ConstructorCall] call to String +# 406| Type = [VoidType] void +# 406| ValueCategory = prvalue +# 407| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 407| Type = [VoidType] void +# 407| ValueCategory = prvalue +# 407| getQualifier(): [VariableAccess] x129 +# 407| Type = [Struct] String +# 407| ValueCategory = lvalue +# 407| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 407| Conversion = [BoolConversion] conversion to bool +# 407| Type = [BoolType] bool +# 407| Value = [CStyleCast] 0 +# 407| ValueCategory = prvalue +# 408| getStmt(130): [DoStmt] do (...) ... +# 410| getCondition(): [Literal] 0 +# 410| Type = [IntType] int +# 410| Value = [Literal] 0 +# 410| ValueCategory = prvalue +# 408| getStmt(): [BlockStmt] { ... } +# 409| getStmt(0): [DeclStmt] declaration +# 409| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x130 +# 409| Type = [Struct] String +# 409| getVariable().getInitializer(): [Initializer] initializer for x130 +# 409| getExpr(): [ConstructorCall] call to String +# 409| Type = [VoidType] void +# 409| ValueCategory = prvalue +# 410| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 410| Type = [VoidType] void +# 410| ValueCategory = prvalue +# 410| getQualifier(): [VariableAccess] x130 +# 410| Type = [Struct] String +# 410| ValueCategory = lvalue +# 410| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 410| Conversion = [BoolConversion] conversion to bool +# 410| Type = [BoolType] bool +# 410| Value = [CStyleCast] 0 +# 410| ValueCategory = prvalue +# 411| getStmt(131): [DoStmt] do (...) ... +# 413| getCondition(): [Literal] 0 +# 413| Type = [IntType] int +# 413| Value = [Literal] 0 +# 413| ValueCategory = prvalue +# 411| getStmt(): [BlockStmt] { ... } +# 412| getStmt(0): [DeclStmt] declaration +# 412| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x131 +# 412| Type = [Struct] String +# 412| getVariable().getInitializer(): [Initializer] initializer for x131 +# 412| getExpr(): [ConstructorCall] call to String +# 412| Type = [VoidType] void +# 412| ValueCategory = prvalue +# 413| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 413| Type = [VoidType] void +# 413| ValueCategory = prvalue +# 413| getQualifier(): [VariableAccess] x131 +# 413| Type = [Struct] String +# 413| ValueCategory = lvalue +# 413| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 413| Conversion = [BoolConversion] conversion to bool +# 413| Type = [BoolType] bool +# 413| Value = [CStyleCast] 0 +# 413| ValueCategory = prvalue +# 414| getStmt(132): [DoStmt] do (...) ... +# 416| getCondition(): [Literal] 0 +# 416| Type = [IntType] int +# 416| Value = [Literal] 0 +# 416| ValueCategory = prvalue +# 414| getStmt(): [BlockStmt] { ... } +# 415| getStmt(0): [DeclStmt] declaration +# 415| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x132 +# 415| Type = [Struct] String +# 415| getVariable().getInitializer(): [Initializer] initializer for x132 +# 415| getExpr(): [ConstructorCall] call to String +# 415| Type = [VoidType] void +# 415| ValueCategory = prvalue +# 416| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 416| Type = [VoidType] void +# 416| ValueCategory = prvalue +# 416| getQualifier(): [VariableAccess] x132 +# 416| Type = [Struct] String +# 416| ValueCategory = lvalue +# 416| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 416| Conversion = [BoolConversion] conversion to bool +# 416| Type = [BoolType] bool +# 416| Value = [CStyleCast] 0 +# 416| ValueCategory = prvalue +# 417| getStmt(133): [DoStmt] do (...) ... +# 419| getCondition(): [Literal] 0 +# 419| Type = [IntType] int +# 419| Value = [Literal] 0 +# 419| ValueCategory = prvalue +# 417| getStmt(): [BlockStmt] { ... } +# 418| getStmt(0): [DeclStmt] declaration +# 418| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x133 +# 418| Type = [Struct] String +# 418| getVariable().getInitializer(): [Initializer] initializer for x133 +# 418| getExpr(): [ConstructorCall] call to String +# 418| Type = [VoidType] void +# 418| ValueCategory = prvalue +# 419| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 419| Type = [VoidType] void +# 419| ValueCategory = prvalue +# 419| getQualifier(): [VariableAccess] x133 +# 419| Type = [Struct] String +# 419| ValueCategory = lvalue +# 419| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 419| Conversion = [BoolConversion] conversion to bool +# 419| Type = [BoolType] bool +# 419| Value = [CStyleCast] 0 +# 419| ValueCategory = prvalue +# 420| getStmt(134): [DoStmt] do (...) ... +# 422| getCondition(): [Literal] 0 +# 422| Type = [IntType] int +# 422| Value = [Literal] 0 +# 422| ValueCategory = prvalue +# 420| getStmt(): [BlockStmt] { ... } +# 421| getStmt(0): [DeclStmt] declaration +# 421| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x134 +# 421| Type = [Struct] String +# 421| getVariable().getInitializer(): [Initializer] initializer for x134 +# 421| getExpr(): [ConstructorCall] call to String +# 421| Type = [VoidType] void +# 421| ValueCategory = prvalue +# 422| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 422| Type = [VoidType] void +# 422| ValueCategory = prvalue +# 422| getQualifier(): [VariableAccess] x134 +# 422| Type = [Struct] String +# 422| ValueCategory = lvalue +# 422| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 422| Conversion = [BoolConversion] conversion to bool +# 422| Type = [BoolType] bool +# 422| Value = [CStyleCast] 0 +# 422| ValueCategory = prvalue +# 423| getStmt(135): [DoStmt] do (...) ... +# 425| getCondition(): [Literal] 0 +# 425| Type = [IntType] int +# 425| Value = [Literal] 0 +# 425| ValueCategory = prvalue +# 423| getStmt(): [BlockStmt] { ... } +# 424| getStmt(0): [DeclStmt] declaration +# 424| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x135 +# 424| Type = [Struct] String +# 424| getVariable().getInitializer(): [Initializer] initializer for x135 +# 424| getExpr(): [ConstructorCall] call to String +# 424| Type = [VoidType] void +# 424| ValueCategory = prvalue +# 425| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 425| Type = [VoidType] void +# 425| ValueCategory = prvalue +# 425| getQualifier(): [VariableAccess] x135 +# 425| Type = [Struct] String +# 425| ValueCategory = lvalue +# 425| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 425| Conversion = [BoolConversion] conversion to bool +# 425| Type = [BoolType] bool +# 425| Value = [CStyleCast] 0 +# 425| ValueCategory = prvalue +# 426| getStmt(136): [DoStmt] do (...) ... +# 428| getCondition(): [Literal] 0 +# 428| Type = [IntType] int +# 428| Value = [Literal] 0 +# 428| ValueCategory = prvalue +# 426| getStmt(): [BlockStmt] { ... } +# 427| getStmt(0): [DeclStmt] declaration +# 427| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x136 +# 427| Type = [Struct] String +# 427| getVariable().getInitializer(): [Initializer] initializer for x136 +# 427| getExpr(): [ConstructorCall] call to String +# 427| Type = [VoidType] void +# 427| ValueCategory = prvalue +# 428| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 428| Type = [VoidType] void +# 428| ValueCategory = prvalue +# 428| getQualifier(): [VariableAccess] x136 +# 428| Type = [Struct] String +# 428| ValueCategory = lvalue +# 428| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 428| Conversion = [BoolConversion] conversion to bool +# 428| Type = [BoolType] bool +# 428| Value = [CStyleCast] 0 +# 428| ValueCategory = prvalue +# 429| getStmt(137): [DoStmt] do (...) ... +# 431| getCondition(): [Literal] 0 +# 431| Type = [IntType] int +# 431| Value = [Literal] 0 +# 431| ValueCategory = prvalue +# 429| getStmt(): [BlockStmt] { ... } +# 430| getStmt(0): [DeclStmt] declaration +# 430| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x137 +# 430| Type = [Struct] String +# 430| getVariable().getInitializer(): [Initializer] initializer for x137 +# 430| getExpr(): [ConstructorCall] call to String +# 430| Type = [VoidType] void +# 430| ValueCategory = prvalue +# 431| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 431| Type = [VoidType] void +# 431| ValueCategory = prvalue +# 431| getQualifier(): [VariableAccess] x137 +# 431| Type = [Struct] String +# 431| ValueCategory = lvalue +# 431| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 431| Conversion = [BoolConversion] conversion to bool +# 431| Type = [BoolType] bool +# 431| Value = [CStyleCast] 0 +# 431| ValueCategory = prvalue +# 432| getStmt(138): [DoStmt] do (...) ... +# 434| getCondition(): [Literal] 0 +# 434| Type = [IntType] int +# 434| Value = [Literal] 0 +# 434| ValueCategory = prvalue +# 432| getStmt(): [BlockStmt] { ... } +# 433| getStmt(0): [DeclStmt] declaration +# 433| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x138 +# 433| Type = [Struct] String +# 433| getVariable().getInitializer(): [Initializer] initializer for x138 +# 433| getExpr(): [ConstructorCall] call to String +# 433| Type = [VoidType] void +# 433| ValueCategory = prvalue +# 434| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 434| Type = [VoidType] void +# 434| ValueCategory = prvalue +# 434| getQualifier(): [VariableAccess] x138 +# 434| Type = [Struct] String +# 434| ValueCategory = lvalue +# 434| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 434| Conversion = [BoolConversion] conversion to bool +# 434| Type = [BoolType] bool +# 434| Value = [CStyleCast] 0 +# 434| ValueCategory = prvalue +# 435| getStmt(139): [DoStmt] do (...) ... +# 437| getCondition(): [Literal] 0 +# 437| Type = [IntType] int +# 437| Value = [Literal] 0 +# 437| ValueCategory = prvalue +# 435| getStmt(): [BlockStmt] { ... } +# 436| getStmt(0): [DeclStmt] declaration +# 436| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x139 +# 436| Type = [Struct] String +# 436| getVariable().getInitializer(): [Initializer] initializer for x139 +# 436| getExpr(): [ConstructorCall] call to String +# 436| Type = [VoidType] void +# 436| ValueCategory = prvalue +# 437| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 437| Type = [VoidType] void +# 437| ValueCategory = prvalue +# 437| getQualifier(): [VariableAccess] x139 +# 437| Type = [Struct] String +# 437| ValueCategory = lvalue +# 437| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 437| Conversion = [BoolConversion] conversion to bool +# 437| Type = [BoolType] bool +# 437| Value = [CStyleCast] 0 +# 437| ValueCategory = prvalue +# 438| getStmt(140): [DoStmt] do (...) ... +# 440| getCondition(): [Literal] 0 +# 440| Type = [IntType] int +# 440| Value = [Literal] 0 +# 440| ValueCategory = prvalue +# 438| getStmt(): [BlockStmt] { ... } +# 439| getStmt(0): [DeclStmt] declaration +# 439| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x140 +# 439| Type = [Struct] String +# 439| getVariable().getInitializer(): [Initializer] initializer for x140 +# 439| getExpr(): [ConstructorCall] call to String +# 439| Type = [VoidType] void +# 439| ValueCategory = prvalue +# 440| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 440| Type = [VoidType] void +# 440| ValueCategory = prvalue +# 440| getQualifier(): [VariableAccess] x140 +# 440| Type = [Struct] String +# 440| ValueCategory = lvalue +# 440| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 440| Conversion = [BoolConversion] conversion to bool +# 440| Type = [BoolType] bool +# 440| Value = [CStyleCast] 0 +# 440| ValueCategory = prvalue +# 441| getStmt(141): [DoStmt] do (...) ... +# 443| getCondition(): [Literal] 0 +# 443| Type = [IntType] int +# 443| Value = [Literal] 0 +# 443| ValueCategory = prvalue +# 441| getStmt(): [BlockStmt] { ... } +# 442| getStmt(0): [DeclStmt] declaration +# 442| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x141 +# 442| Type = [Struct] String +# 442| getVariable().getInitializer(): [Initializer] initializer for x141 +# 442| getExpr(): [ConstructorCall] call to String +# 442| Type = [VoidType] void +# 442| ValueCategory = prvalue +# 443| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 443| Type = [VoidType] void +# 443| ValueCategory = prvalue +# 443| getQualifier(): [VariableAccess] x141 +# 443| Type = [Struct] String +# 443| ValueCategory = lvalue +# 443| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 443| Conversion = [BoolConversion] conversion to bool +# 443| Type = [BoolType] bool +# 443| Value = [CStyleCast] 0 +# 443| ValueCategory = prvalue +# 444| getStmt(142): [DoStmt] do (...) ... +# 446| getCondition(): [Literal] 0 +# 446| Type = [IntType] int +# 446| Value = [Literal] 0 +# 446| ValueCategory = prvalue +# 444| getStmt(): [BlockStmt] { ... } +# 445| getStmt(0): [DeclStmt] declaration +# 445| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x142 +# 445| Type = [Struct] String +# 445| getVariable().getInitializer(): [Initializer] initializer for x142 +# 445| getExpr(): [ConstructorCall] call to String +# 445| Type = [VoidType] void +# 445| ValueCategory = prvalue +# 446| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 446| Type = [VoidType] void +# 446| ValueCategory = prvalue +# 446| getQualifier(): [VariableAccess] x142 +# 446| Type = [Struct] String +# 446| ValueCategory = lvalue +# 446| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 446| Conversion = [BoolConversion] conversion to bool +# 446| Type = [BoolType] bool +# 446| Value = [CStyleCast] 0 +# 446| ValueCategory = prvalue +# 447| getStmt(143): [DoStmt] do (...) ... +# 449| getCondition(): [Literal] 0 +# 449| Type = [IntType] int +# 449| Value = [Literal] 0 +# 449| ValueCategory = prvalue +# 447| getStmt(): [BlockStmt] { ... } +# 448| getStmt(0): [DeclStmt] declaration +# 448| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x143 +# 448| Type = [Struct] String +# 448| getVariable().getInitializer(): [Initializer] initializer for x143 +# 448| getExpr(): [ConstructorCall] call to String +# 448| Type = [VoidType] void +# 448| ValueCategory = prvalue +# 449| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 449| Type = [VoidType] void +# 449| ValueCategory = prvalue +# 449| getQualifier(): [VariableAccess] x143 +# 449| Type = [Struct] String +# 449| ValueCategory = lvalue +# 449| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 449| Conversion = [BoolConversion] conversion to bool +# 449| Type = [BoolType] bool +# 449| Value = [CStyleCast] 0 +# 449| ValueCategory = prvalue +# 450| getStmt(144): [DoStmt] do (...) ... +# 452| getCondition(): [Literal] 0 +# 452| Type = [IntType] int +# 452| Value = [Literal] 0 +# 452| ValueCategory = prvalue +# 450| getStmt(): [BlockStmt] { ... } +# 451| getStmt(0): [DeclStmt] declaration +# 451| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x144 +# 451| Type = [Struct] String +# 451| getVariable().getInitializer(): [Initializer] initializer for x144 +# 451| getExpr(): [ConstructorCall] call to String +# 451| Type = [VoidType] void +# 451| ValueCategory = prvalue +# 452| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 452| Type = [VoidType] void +# 452| ValueCategory = prvalue +# 452| getQualifier(): [VariableAccess] x144 +# 452| Type = [Struct] String +# 452| ValueCategory = lvalue +# 452| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 452| Conversion = [BoolConversion] conversion to bool +# 452| Type = [BoolType] bool +# 452| Value = [CStyleCast] 0 +# 452| ValueCategory = prvalue +# 453| getStmt(145): [DoStmt] do (...) ... +# 455| getCondition(): [Literal] 0 +# 455| Type = [IntType] int +# 455| Value = [Literal] 0 +# 455| ValueCategory = prvalue +# 453| getStmt(): [BlockStmt] { ... } +# 454| getStmt(0): [DeclStmt] declaration +# 454| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x145 +# 454| Type = [Struct] String +# 454| getVariable().getInitializer(): [Initializer] initializer for x145 +# 454| getExpr(): [ConstructorCall] call to String +# 454| Type = [VoidType] void +# 454| ValueCategory = prvalue +# 455| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 455| Type = [VoidType] void +# 455| ValueCategory = prvalue +# 455| getQualifier(): [VariableAccess] x145 +# 455| Type = [Struct] String +# 455| ValueCategory = lvalue +# 455| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 455| Conversion = [BoolConversion] conversion to bool +# 455| Type = [BoolType] bool +# 455| Value = [CStyleCast] 0 +# 455| ValueCategory = prvalue +# 456| getStmt(146): [DoStmt] do (...) ... +# 458| getCondition(): [Literal] 0 +# 458| Type = [IntType] int +# 458| Value = [Literal] 0 +# 458| ValueCategory = prvalue +# 456| getStmt(): [BlockStmt] { ... } +# 457| getStmt(0): [DeclStmt] declaration +# 457| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x146 +# 457| Type = [Struct] String +# 457| getVariable().getInitializer(): [Initializer] initializer for x146 +# 457| getExpr(): [ConstructorCall] call to String +# 457| Type = [VoidType] void +# 457| ValueCategory = prvalue +# 458| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 458| Type = [VoidType] void +# 458| ValueCategory = prvalue +# 458| getQualifier(): [VariableAccess] x146 +# 458| Type = [Struct] String +# 458| ValueCategory = lvalue +# 458| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 458| Conversion = [BoolConversion] conversion to bool +# 458| Type = [BoolType] bool +# 458| Value = [CStyleCast] 0 +# 458| ValueCategory = prvalue +# 459| getStmt(147): [DoStmt] do (...) ... +# 461| getCondition(): [Literal] 0 +# 461| Type = [IntType] int +# 461| Value = [Literal] 0 +# 461| ValueCategory = prvalue +# 459| getStmt(): [BlockStmt] { ... } +# 460| getStmt(0): [DeclStmt] declaration +# 460| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x147 +# 460| Type = [Struct] String +# 460| getVariable().getInitializer(): [Initializer] initializer for x147 +# 460| getExpr(): [ConstructorCall] call to String +# 460| Type = [VoidType] void +# 460| ValueCategory = prvalue +# 461| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 461| Type = [VoidType] void +# 461| ValueCategory = prvalue +# 461| getQualifier(): [VariableAccess] x147 +# 461| Type = [Struct] String +# 461| ValueCategory = lvalue +# 461| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 461| Conversion = [BoolConversion] conversion to bool +# 461| Type = [BoolType] bool +# 461| Value = [CStyleCast] 0 +# 461| ValueCategory = prvalue +# 462| getStmt(148): [DoStmt] do (...) ... +# 464| getCondition(): [Literal] 0 +# 464| Type = [IntType] int +# 464| Value = [Literal] 0 +# 464| ValueCategory = prvalue +# 462| getStmt(): [BlockStmt] { ... } +# 463| getStmt(0): [DeclStmt] declaration +# 463| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x148 +# 463| Type = [Struct] String +# 463| getVariable().getInitializer(): [Initializer] initializer for x148 +# 463| getExpr(): [ConstructorCall] call to String +# 463| Type = [VoidType] void +# 463| ValueCategory = prvalue +# 464| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 464| Type = [VoidType] void +# 464| ValueCategory = prvalue +# 464| getQualifier(): [VariableAccess] x148 +# 464| Type = [Struct] String +# 464| ValueCategory = lvalue +# 464| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 464| Conversion = [BoolConversion] conversion to bool +# 464| Type = [BoolType] bool +# 464| Value = [CStyleCast] 0 +# 464| ValueCategory = prvalue +# 465| getStmt(149): [DoStmt] do (...) ... +# 467| getCondition(): [Literal] 0 +# 467| Type = [IntType] int +# 467| Value = [Literal] 0 +# 467| ValueCategory = prvalue +# 465| getStmt(): [BlockStmt] { ... } +# 466| getStmt(0): [DeclStmt] declaration +# 466| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x149 +# 466| Type = [Struct] String +# 466| getVariable().getInitializer(): [Initializer] initializer for x149 +# 466| getExpr(): [ConstructorCall] call to String +# 466| Type = [VoidType] void +# 466| ValueCategory = prvalue +# 467| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 467| Type = [VoidType] void +# 467| ValueCategory = prvalue +# 467| getQualifier(): [VariableAccess] x149 +# 467| Type = [Struct] String +# 467| ValueCategory = lvalue +# 467| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 467| Conversion = [BoolConversion] conversion to bool +# 467| Type = [BoolType] bool +# 467| Value = [CStyleCast] 0 +# 467| ValueCategory = prvalue +# 468| getStmt(150): [DoStmt] do (...) ... +# 470| getCondition(): [Literal] 0 +# 470| Type = [IntType] int +# 470| Value = [Literal] 0 +# 470| ValueCategory = prvalue +# 468| getStmt(): [BlockStmt] { ... } +# 469| getStmt(0): [DeclStmt] declaration +# 469| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x150 +# 469| Type = [Struct] String +# 469| getVariable().getInitializer(): [Initializer] initializer for x150 +# 469| getExpr(): [ConstructorCall] call to String +# 469| Type = [VoidType] void +# 469| ValueCategory = prvalue +# 470| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 470| Type = [VoidType] void +# 470| ValueCategory = prvalue +# 470| getQualifier(): [VariableAccess] x150 +# 470| Type = [Struct] String +# 470| ValueCategory = lvalue +# 470| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 470| Conversion = [BoolConversion] conversion to bool +# 470| Type = [BoolType] bool +# 470| Value = [CStyleCast] 0 +# 470| ValueCategory = prvalue +# 471| getStmt(151): [DoStmt] do (...) ... +# 473| getCondition(): [Literal] 0 +# 473| Type = [IntType] int +# 473| Value = [Literal] 0 +# 473| ValueCategory = prvalue +# 471| getStmt(): [BlockStmt] { ... } +# 472| getStmt(0): [DeclStmt] declaration +# 472| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x151 +# 472| Type = [Struct] String +# 472| getVariable().getInitializer(): [Initializer] initializer for x151 +# 472| getExpr(): [ConstructorCall] call to String +# 472| Type = [VoidType] void +# 472| ValueCategory = prvalue +# 473| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 473| Type = [VoidType] void +# 473| ValueCategory = prvalue +# 473| getQualifier(): [VariableAccess] x151 +# 473| Type = [Struct] String +# 473| ValueCategory = lvalue +# 473| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 473| Conversion = [BoolConversion] conversion to bool +# 473| Type = [BoolType] bool +# 473| Value = [CStyleCast] 0 +# 473| ValueCategory = prvalue +# 474| getStmt(152): [DoStmt] do (...) ... +# 476| getCondition(): [Literal] 0 +# 476| Type = [IntType] int +# 476| Value = [Literal] 0 +# 476| ValueCategory = prvalue +# 474| getStmt(): [BlockStmt] { ... } +# 475| getStmt(0): [DeclStmt] declaration +# 475| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x152 +# 475| Type = [Struct] String +# 475| getVariable().getInitializer(): [Initializer] initializer for x152 +# 475| getExpr(): [ConstructorCall] call to String +# 475| Type = [VoidType] void +# 475| ValueCategory = prvalue +# 476| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 476| Type = [VoidType] void +# 476| ValueCategory = prvalue +# 476| getQualifier(): [VariableAccess] x152 +# 476| Type = [Struct] String +# 476| ValueCategory = lvalue +# 476| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 476| Conversion = [BoolConversion] conversion to bool +# 476| Type = [BoolType] bool +# 476| Value = [CStyleCast] 0 +# 476| ValueCategory = prvalue +# 477| getStmt(153): [DoStmt] do (...) ... +# 479| getCondition(): [Literal] 0 +# 479| Type = [IntType] int +# 479| Value = [Literal] 0 +# 479| ValueCategory = prvalue +# 477| getStmt(): [BlockStmt] { ... } +# 478| getStmt(0): [DeclStmt] declaration +# 478| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x153 +# 478| Type = [Struct] String +# 478| getVariable().getInitializer(): [Initializer] initializer for x153 +# 478| getExpr(): [ConstructorCall] call to String +# 478| Type = [VoidType] void +# 478| ValueCategory = prvalue +# 479| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 479| Type = [VoidType] void +# 479| ValueCategory = prvalue +# 479| getQualifier(): [VariableAccess] x153 +# 479| Type = [Struct] String +# 479| ValueCategory = lvalue +# 479| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 479| Conversion = [BoolConversion] conversion to bool +# 479| Type = [BoolType] bool +# 479| Value = [CStyleCast] 0 +# 479| ValueCategory = prvalue +# 480| getStmt(154): [DoStmt] do (...) ... +# 482| getCondition(): [Literal] 0 +# 482| Type = [IntType] int +# 482| Value = [Literal] 0 +# 482| ValueCategory = prvalue +# 480| getStmt(): [BlockStmt] { ... } +# 481| getStmt(0): [DeclStmt] declaration +# 481| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x154 +# 481| Type = [Struct] String +# 481| getVariable().getInitializer(): [Initializer] initializer for x154 +# 481| getExpr(): [ConstructorCall] call to String +# 481| Type = [VoidType] void +# 481| ValueCategory = prvalue +# 482| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 482| Type = [VoidType] void +# 482| ValueCategory = prvalue +# 482| getQualifier(): [VariableAccess] x154 +# 482| Type = [Struct] String +# 482| ValueCategory = lvalue +# 482| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 482| Conversion = [BoolConversion] conversion to bool +# 482| Type = [BoolType] bool +# 482| Value = [CStyleCast] 0 +# 482| ValueCategory = prvalue +# 483| getStmt(155): [DoStmt] do (...) ... +# 485| getCondition(): [Literal] 0 +# 485| Type = [IntType] int +# 485| Value = [Literal] 0 +# 485| ValueCategory = prvalue +# 483| getStmt(): [BlockStmt] { ... } +# 484| getStmt(0): [DeclStmt] declaration +# 484| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x155 +# 484| Type = [Struct] String +# 484| getVariable().getInitializer(): [Initializer] initializer for x155 +# 484| getExpr(): [ConstructorCall] call to String +# 484| Type = [VoidType] void +# 484| ValueCategory = prvalue +# 485| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 485| Type = [VoidType] void +# 485| ValueCategory = prvalue +# 485| getQualifier(): [VariableAccess] x155 +# 485| Type = [Struct] String +# 485| ValueCategory = lvalue +# 485| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 485| Conversion = [BoolConversion] conversion to bool +# 485| Type = [BoolType] bool +# 485| Value = [CStyleCast] 0 +# 485| ValueCategory = prvalue +# 486| getStmt(156): [DoStmt] do (...) ... +# 488| getCondition(): [Literal] 0 +# 488| Type = [IntType] int +# 488| Value = [Literal] 0 +# 488| ValueCategory = prvalue +# 486| getStmt(): [BlockStmt] { ... } +# 487| getStmt(0): [DeclStmt] declaration +# 487| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x156 +# 487| Type = [Struct] String +# 487| getVariable().getInitializer(): [Initializer] initializer for x156 +# 487| getExpr(): [ConstructorCall] call to String +# 487| Type = [VoidType] void +# 487| ValueCategory = prvalue +# 488| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 488| Type = [VoidType] void +# 488| ValueCategory = prvalue +# 488| getQualifier(): [VariableAccess] x156 +# 488| Type = [Struct] String +# 488| ValueCategory = lvalue +# 488| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 488| Conversion = [BoolConversion] conversion to bool +# 488| Type = [BoolType] bool +# 488| Value = [CStyleCast] 0 +# 488| ValueCategory = prvalue +# 489| getStmt(157): [DoStmt] do (...) ... +# 491| getCondition(): [Literal] 0 +# 491| Type = [IntType] int +# 491| Value = [Literal] 0 +# 491| ValueCategory = prvalue +# 489| getStmt(): [BlockStmt] { ... } +# 490| getStmt(0): [DeclStmt] declaration +# 490| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x157 +# 490| Type = [Struct] String +# 490| getVariable().getInitializer(): [Initializer] initializer for x157 +# 490| getExpr(): [ConstructorCall] call to String +# 490| Type = [VoidType] void +# 490| ValueCategory = prvalue +# 491| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 491| Type = [VoidType] void +# 491| ValueCategory = prvalue +# 491| getQualifier(): [VariableAccess] x157 +# 491| Type = [Struct] String +# 491| ValueCategory = lvalue +# 491| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 491| Conversion = [BoolConversion] conversion to bool +# 491| Type = [BoolType] bool +# 491| Value = [CStyleCast] 0 +# 491| ValueCategory = prvalue +# 492| getStmt(158): [DoStmt] do (...) ... +# 494| getCondition(): [Literal] 0 +# 494| Type = [IntType] int +# 494| Value = [Literal] 0 +# 494| ValueCategory = prvalue +# 492| getStmt(): [BlockStmt] { ... } +# 493| getStmt(0): [DeclStmt] declaration +# 493| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x158 +# 493| Type = [Struct] String +# 493| getVariable().getInitializer(): [Initializer] initializer for x158 +# 493| getExpr(): [ConstructorCall] call to String +# 493| Type = [VoidType] void +# 493| ValueCategory = prvalue +# 494| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 494| Type = [VoidType] void +# 494| ValueCategory = prvalue +# 494| getQualifier(): [VariableAccess] x158 +# 494| Type = [Struct] String +# 494| ValueCategory = lvalue +# 494| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 494| Conversion = [BoolConversion] conversion to bool +# 494| Type = [BoolType] bool +# 494| Value = [CStyleCast] 0 +# 494| ValueCategory = prvalue +# 495| getStmt(159): [DoStmt] do (...) ... +# 497| getCondition(): [Literal] 0 +# 497| Type = [IntType] int +# 497| Value = [Literal] 0 +# 497| ValueCategory = prvalue +# 495| getStmt(): [BlockStmt] { ... } +# 496| getStmt(0): [DeclStmt] declaration +# 496| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x159 +# 496| Type = [Struct] String +# 496| getVariable().getInitializer(): [Initializer] initializer for x159 +# 496| getExpr(): [ConstructorCall] call to String +# 496| Type = [VoidType] void +# 496| ValueCategory = prvalue +# 497| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 497| Type = [VoidType] void +# 497| ValueCategory = prvalue +# 497| getQualifier(): [VariableAccess] x159 +# 497| Type = [Struct] String +# 497| ValueCategory = lvalue +# 497| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 497| Conversion = [BoolConversion] conversion to bool +# 497| Type = [BoolType] bool +# 497| Value = [CStyleCast] 0 +# 497| ValueCategory = prvalue +# 498| getStmt(160): [DoStmt] do (...) ... +# 500| getCondition(): [Literal] 0 +# 500| Type = [IntType] int +# 500| Value = [Literal] 0 +# 500| ValueCategory = prvalue +# 498| getStmt(): [BlockStmt] { ... } +# 499| getStmt(0): [DeclStmt] declaration +# 499| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x160 +# 499| Type = [Struct] String +# 499| getVariable().getInitializer(): [Initializer] initializer for x160 +# 499| getExpr(): [ConstructorCall] call to String +# 499| Type = [VoidType] void +# 499| ValueCategory = prvalue +# 500| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 500| Type = [VoidType] void +# 500| ValueCategory = prvalue +# 500| getQualifier(): [VariableAccess] x160 +# 500| Type = [Struct] String +# 500| ValueCategory = lvalue +# 500| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 500| Conversion = [BoolConversion] conversion to bool +# 500| Type = [BoolType] bool +# 500| Value = [CStyleCast] 0 +# 500| ValueCategory = prvalue +# 501| getStmt(161): [DoStmt] do (...) ... +# 503| getCondition(): [Literal] 0 +# 503| Type = [IntType] int +# 503| Value = [Literal] 0 +# 503| ValueCategory = prvalue +# 501| getStmt(): [BlockStmt] { ... } +# 502| getStmt(0): [DeclStmt] declaration +# 502| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x161 +# 502| Type = [Struct] String +# 502| getVariable().getInitializer(): [Initializer] initializer for x161 +# 502| getExpr(): [ConstructorCall] call to String +# 502| Type = [VoidType] void +# 502| ValueCategory = prvalue +# 503| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 503| Type = [VoidType] void +# 503| ValueCategory = prvalue +# 503| getQualifier(): [VariableAccess] x161 +# 503| Type = [Struct] String +# 503| ValueCategory = lvalue +# 503| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 503| Conversion = [BoolConversion] conversion to bool +# 503| Type = [BoolType] bool +# 503| Value = [CStyleCast] 0 +# 503| ValueCategory = prvalue +# 504| getStmt(162): [DoStmt] do (...) ... +# 506| getCondition(): [Literal] 0 +# 506| Type = [IntType] int +# 506| Value = [Literal] 0 +# 506| ValueCategory = prvalue +# 504| getStmt(): [BlockStmt] { ... } +# 505| getStmt(0): [DeclStmt] declaration +# 505| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x162 +# 505| Type = [Struct] String +# 505| getVariable().getInitializer(): [Initializer] initializer for x162 +# 505| getExpr(): [ConstructorCall] call to String +# 505| Type = [VoidType] void +# 505| ValueCategory = prvalue +# 506| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 506| Type = [VoidType] void +# 506| ValueCategory = prvalue +# 506| getQualifier(): [VariableAccess] x162 +# 506| Type = [Struct] String +# 506| ValueCategory = lvalue +# 506| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 506| Conversion = [BoolConversion] conversion to bool +# 506| Type = [BoolType] bool +# 506| Value = [CStyleCast] 0 +# 506| ValueCategory = prvalue +# 507| getStmt(163): [DoStmt] do (...) ... +# 509| getCondition(): [Literal] 0 +# 509| Type = [IntType] int +# 509| Value = [Literal] 0 +# 509| ValueCategory = prvalue +# 507| getStmt(): [BlockStmt] { ... } +# 508| getStmt(0): [DeclStmt] declaration +# 508| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x163 +# 508| Type = [Struct] String +# 508| getVariable().getInitializer(): [Initializer] initializer for x163 +# 508| getExpr(): [ConstructorCall] call to String +# 508| Type = [VoidType] void +# 508| ValueCategory = prvalue +# 509| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 509| Type = [VoidType] void +# 509| ValueCategory = prvalue +# 509| getQualifier(): [VariableAccess] x163 +# 509| Type = [Struct] String +# 509| ValueCategory = lvalue +# 509| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 509| Conversion = [BoolConversion] conversion to bool +# 509| Type = [BoolType] bool +# 509| Value = [CStyleCast] 0 +# 509| ValueCategory = prvalue +# 510| getStmt(164): [DoStmt] do (...) ... +# 512| getCondition(): [Literal] 0 +# 512| Type = [IntType] int +# 512| Value = [Literal] 0 +# 512| ValueCategory = prvalue +# 510| getStmt(): [BlockStmt] { ... } +# 511| getStmt(0): [DeclStmt] declaration +# 511| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x164 +# 511| Type = [Struct] String +# 511| getVariable().getInitializer(): [Initializer] initializer for x164 +# 511| getExpr(): [ConstructorCall] call to String +# 511| Type = [VoidType] void +# 511| ValueCategory = prvalue +# 512| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 512| Type = [VoidType] void +# 512| ValueCategory = prvalue +# 512| getQualifier(): [VariableAccess] x164 +# 512| Type = [Struct] String +# 512| ValueCategory = lvalue +# 512| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 512| Conversion = [BoolConversion] conversion to bool +# 512| Type = [BoolType] bool +# 512| Value = [CStyleCast] 0 +# 512| ValueCategory = prvalue +# 513| getStmt(165): [DoStmt] do (...) ... +# 515| getCondition(): [Literal] 0 +# 515| Type = [IntType] int +# 515| Value = [Literal] 0 +# 515| ValueCategory = prvalue +# 513| getStmt(): [BlockStmt] { ... } +# 514| getStmt(0): [DeclStmt] declaration +# 514| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x165 +# 514| Type = [Struct] String +# 514| getVariable().getInitializer(): [Initializer] initializer for x165 +# 514| getExpr(): [ConstructorCall] call to String +# 514| Type = [VoidType] void +# 514| ValueCategory = prvalue +# 515| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 515| Type = [VoidType] void +# 515| ValueCategory = prvalue +# 515| getQualifier(): [VariableAccess] x165 +# 515| Type = [Struct] String +# 515| ValueCategory = lvalue +# 515| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 515| Conversion = [BoolConversion] conversion to bool +# 515| Type = [BoolType] bool +# 515| Value = [CStyleCast] 0 +# 515| ValueCategory = prvalue +# 516| getStmt(166): [DoStmt] do (...) ... +# 518| getCondition(): [Literal] 0 +# 518| Type = [IntType] int +# 518| Value = [Literal] 0 +# 518| ValueCategory = prvalue +# 516| getStmt(): [BlockStmt] { ... } +# 517| getStmt(0): [DeclStmt] declaration +# 517| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x166 +# 517| Type = [Struct] String +# 517| getVariable().getInitializer(): [Initializer] initializer for x166 +# 517| getExpr(): [ConstructorCall] call to String +# 517| Type = [VoidType] void +# 517| ValueCategory = prvalue +# 518| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 518| Type = [VoidType] void +# 518| ValueCategory = prvalue +# 518| getQualifier(): [VariableAccess] x166 +# 518| Type = [Struct] String +# 518| ValueCategory = lvalue +# 518| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 518| Conversion = [BoolConversion] conversion to bool +# 518| Type = [BoolType] bool +# 518| Value = [CStyleCast] 0 +# 518| ValueCategory = prvalue +# 519| getStmt(167): [DoStmt] do (...) ... +# 521| getCondition(): [Literal] 0 +# 521| Type = [IntType] int +# 521| Value = [Literal] 0 +# 521| ValueCategory = prvalue +# 519| getStmt(): [BlockStmt] { ... } +# 520| getStmt(0): [DeclStmt] declaration +# 520| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x167 +# 520| Type = [Struct] String +# 520| getVariable().getInitializer(): [Initializer] initializer for x167 +# 520| getExpr(): [ConstructorCall] call to String +# 520| Type = [VoidType] void +# 520| ValueCategory = prvalue +# 521| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 521| Type = [VoidType] void +# 521| ValueCategory = prvalue +# 521| getQualifier(): [VariableAccess] x167 +# 521| Type = [Struct] String +# 521| ValueCategory = lvalue +# 521| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 521| Conversion = [BoolConversion] conversion to bool +# 521| Type = [BoolType] bool +# 521| Value = [CStyleCast] 0 +# 521| ValueCategory = prvalue +# 522| getStmt(168): [DoStmt] do (...) ... +# 524| getCondition(): [Literal] 0 +# 524| Type = [IntType] int +# 524| Value = [Literal] 0 +# 524| ValueCategory = prvalue +# 522| getStmt(): [BlockStmt] { ... } +# 523| getStmt(0): [DeclStmt] declaration +# 523| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x168 +# 523| Type = [Struct] String +# 523| getVariable().getInitializer(): [Initializer] initializer for x168 +# 523| getExpr(): [ConstructorCall] call to String +# 523| Type = [VoidType] void +# 523| ValueCategory = prvalue +# 524| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 524| Type = [VoidType] void +# 524| ValueCategory = prvalue +# 524| getQualifier(): [VariableAccess] x168 +# 524| Type = [Struct] String +# 524| ValueCategory = lvalue +# 524| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 524| Conversion = [BoolConversion] conversion to bool +# 524| Type = [BoolType] bool +# 524| Value = [CStyleCast] 0 +# 524| ValueCategory = prvalue +# 525| getStmt(169): [DoStmt] do (...) ... +# 527| getCondition(): [Literal] 0 +# 527| Type = [IntType] int +# 527| Value = [Literal] 0 +# 527| ValueCategory = prvalue +# 525| getStmt(): [BlockStmt] { ... } +# 526| getStmt(0): [DeclStmt] declaration +# 526| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x169 +# 526| Type = [Struct] String +# 526| getVariable().getInitializer(): [Initializer] initializer for x169 +# 526| getExpr(): [ConstructorCall] call to String +# 526| Type = [VoidType] void +# 526| ValueCategory = prvalue +# 527| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 527| Type = [VoidType] void +# 527| ValueCategory = prvalue +# 527| getQualifier(): [VariableAccess] x169 +# 527| Type = [Struct] String +# 527| ValueCategory = lvalue +# 527| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 527| Conversion = [BoolConversion] conversion to bool +# 527| Type = [BoolType] bool +# 527| Value = [CStyleCast] 0 +# 527| ValueCategory = prvalue +# 528| getStmt(170): [DoStmt] do (...) ... +# 530| getCondition(): [Literal] 0 +# 530| Type = [IntType] int +# 530| Value = [Literal] 0 +# 530| ValueCategory = prvalue +# 528| getStmt(): [BlockStmt] { ... } +# 529| getStmt(0): [DeclStmt] declaration +# 529| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x170 +# 529| Type = [Struct] String +# 529| getVariable().getInitializer(): [Initializer] initializer for x170 +# 529| getExpr(): [ConstructorCall] call to String +# 529| Type = [VoidType] void +# 529| ValueCategory = prvalue +# 530| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 530| Type = [VoidType] void +# 530| ValueCategory = prvalue +# 530| getQualifier(): [VariableAccess] x170 +# 530| Type = [Struct] String +# 530| ValueCategory = lvalue +# 530| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 530| Conversion = [BoolConversion] conversion to bool +# 530| Type = [BoolType] bool +# 530| Value = [CStyleCast] 0 +# 530| ValueCategory = prvalue +# 531| getStmt(171): [DoStmt] do (...) ... +# 533| getCondition(): [Literal] 0 +# 533| Type = [IntType] int +# 533| Value = [Literal] 0 +# 533| ValueCategory = prvalue +# 531| getStmt(): [BlockStmt] { ... } +# 532| getStmt(0): [DeclStmt] declaration +# 532| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x171 +# 532| Type = [Struct] String +# 532| getVariable().getInitializer(): [Initializer] initializer for x171 +# 532| getExpr(): [ConstructorCall] call to String +# 532| Type = [VoidType] void +# 532| ValueCategory = prvalue +# 533| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 533| Type = [VoidType] void +# 533| ValueCategory = prvalue +# 533| getQualifier(): [VariableAccess] x171 +# 533| Type = [Struct] String +# 533| ValueCategory = lvalue +# 533| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 533| Conversion = [BoolConversion] conversion to bool +# 533| Type = [BoolType] bool +# 533| Value = [CStyleCast] 0 +# 533| ValueCategory = prvalue +# 534| getStmt(172): [DoStmt] do (...) ... +# 536| getCondition(): [Literal] 0 +# 536| Type = [IntType] int +# 536| Value = [Literal] 0 +# 536| ValueCategory = prvalue +# 534| getStmt(): [BlockStmt] { ... } +# 535| getStmt(0): [DeclStmt] declaration +# 535| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x172 +# 535| Type = [Struct] String +# 535| getVariable().getInitializer(): [Initializer] initializer for x172 +# 535| getExpr(): [ConstructorCall] call to String +# 535| Type = [VoidType] void +# 535| ValueCategory = prvalue +# 536| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 536| Type = [VoidType] void +# 536| ValueCategory = prvalue +# 536| getQualifier(): [VariableAccess] x172 +# 536| Type = [Struct] String +# 536| ValueCategory = lvalue +# 536| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 536| Conversion = [BoolConversion] conversion to bool +# 536| Type = [BoolType] bool +# 536| Value = [CStyleCast] 0 +# 536| ValueCategory = prvalue +# 537| getStmt(173): [DoStmt] do (...) ... +# 539| getCondition(): [Literal] 0 +# 539| Type = [IntType] int +# 539| Value = [Literal] 0 +# 539| ValueCategory = prvalue +# 537| getStmt(): [BlockStmt] { ... } +# 538| getStmt(0): [DeclStmt] declaration +# 538| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x173 +# 538| Type = [Struct] String +# 538| getVariable().getInitializer(): [Initializer] initializer for x173 +# 538| getExpr(): [ConstructorCall] call to String +# 538| Type = [VoidType] void +# 538| ValueCategory = prvalue +# 539| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 539| Type = [VoidType] void +# 539| ValueCategory = prvalue +# 539| getQualifier(): [VariableAccess] x173 +# 539| Type = [Struct] String +# 539| ValueCategory = lvalue +# 539| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 539| Conversion = [BoolConversion] conversion to bool +# 539| Type = [BoolType] bool +# 539| Value = [CStyleCast] 0 +# 539| ValueCategory = prvalue +# 540| getStmt(174): [DoStmt] do (...) ... +# 542| getCondition(): [Literal] 0 +# 542| Type = [IntType] int +# 542| Value = [Literal] 0 +# 542| ValueCategory = prvalue +# 540| getStmt(): [BlockStmt] { ... } +# 541| getStmt(0): [DeclStmt] declaration +# 541| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x174 +# 541| Type = [Struct] String +# 541| getVariable().getInitializer(): [Initializer] initializer for x174 +# 541| getExpr(): [ConstructorCall] call to String +# 541| Type = [VoidType] void +# 541| ValueCategory = prvalue +# 542| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 542| Type = [VoidType] void +# 542| ValueCategory = prvalue +# 542| getQualifier(): [VariableAccess] x174 +# 542| Type = [Struct] String +# 542| ValueCategory = lvalue +# 542| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 542| Conversion = [BoolConversion] conversion to bool +# 542| Type = [BoolType] bool +# 542| Value = [CStyleCast] 0 +# 542| ValueCategory = prvalue +# 543| getStmt(175): [DoStmt] do (...) ... +# 545| getCondition(): [Literal] 0 +# 545| Type = [IntType] int +# 545| Value = [Literal] 0 +# 545| ValueCategory = prvalue +# 543| getStmt(): [BlockStmt] { ... } +# 544| getStmt(0): [DeclStmt] declaration +# 544| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x175 +# 544| Type = [Struct] String +# 544| getVariable().getInitializer(): [Initializer] initializer for x175 +# 544| getExpr(): [ConstructorCall] call to String +# 544| Type = [VoidType] void +# 544| ValueCategory = prvalue +# 545| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 545| Type = [VoidType] void +# 545| ValueCategory = prvalue +# 545| getQualifier(): [VariableAccess] x175 +# 545| Type = [Struct] String +# 545| ValueCategory = lvalue +# 545| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 545| Conversion = [BoolConversion] conversion to bool +# 545| Type = [BoolType] bool +# 545| Value = [CStyleCast] 0 +# 545| ValueCategory = prvalue +# 546| getStmt(176): [DoStmt] do (...) ... +# 548| getCondition(): [Literal] 0 +# 548| Type = [IntType] int +# 548| Value = [Literal] 0 +# 548| ValueCategory = prvalue +# 546| getStmt(): [BlockStmt] { ... } +# 547| getStmt(0): [DeclStmt] declaration +# 547| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x176 +# 547| Type = [Struct] String +# 547| getVariable().getInitializer(): [Initializer] initializer for x176 +# 547| getExpr(): [ConstructorCall] call to String +# 547| Type = [VoidType] void +# 547| ValueCategory = prvalue +# 548| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 548| Type = [VoidType] void +# 548| ValueCategory = prvalue +# 548| getQualifier(): [VariableAccess] x176 +# 548| Type = [Struct] String +# 548| ValueCategory = lvalue +# 548| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 548| Conversion = [BoolConversion] conversion to bool +# 548| Type = [BoolType] bool +# 548| Value = [CStyleCast] 0 +# 548| ValueCategory = prvalue +# 549| getStmt(177): [DoStmt] do (...) ... +# 551| getCondition(): [Literal] 0 +# 551| Type = [IntType] int +# 551| Value = [Literal] 0 +# 551| ValueCategory = prvalue +# 549| getStmt(): [BlockStmt] { ... } +# 550| getStmt(0): [DeclStmt] declaration +# 550| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x177 +# 550| Type = [Struct] String +# 550| getVariable().getInitializer(): [Initializer] initializer for x177 +# 550| getExpr(): [ConstructorCall] call to String +# 550| Type = [VoidType] void +# 550| ValueCategory = prvalue +# 551| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 551| Type = [VoidType] void +# 551| ValueCategory = prvalue +# 551| getQualifier(): [VariableAccess] x177 +# 551| Type = [Struct] String +# 551| ValueCategory = lvalue +# 551| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 551| Conversion = [BoolConversion] conversion to bool +# 551| Type = [BoolType] bool +# 551| Value = [CStyleCast] 0 +# 551| ValueCategory = prvalue +# 552| getStmt(178): [DoStmt] do (...) ... +# 554| getCondition(): [Literal] 0 +# 554| Type = [IntType] int +# 554| Value = [Literal] 0 +# 554| ValueCategory = prvalue +# 552| getStmt(): [BlockStmt] { ... } +# 553| getStmt(0): [DeclStmt] declaration +# 553| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x178 +# 553| Type = [Struct] String +# 553| getVariable().getInitializer(): [Initializer] initializer for x178 +# 553| getExpr(): [ConstructorCall] call to String +# 553| Type = [VoidType] void +# 553| ValueCategory = prvalue +# 554| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 554| Type = [VoidType] void +# 554| ValueCategory = prvalue +# 554| getQualifier(): [VariableAccess] x178 +# 554| Type = [Struct] String +# 554| ValueCategory = lvalue +# 554| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 554| Conversion = [BoolConversion] conversion to bool +# 554| Type = [BoolType] bool +# 554| Value = [CStyleCast] 0 +# 554| ValueCategory = prvalue +# 555| getStmt(179): [DoStmt] do (...) ... +# 557| getCondition(): [Literal] 0 +# 557| Type = [IntType] int +# 557| Value = [Literal] 0 +# 557| ValueCategory = prvalue +# 555| getStmt(): [BlockStmt] { ... } +# 556| getStmt(0): [DeclStmt] declaration +# 556| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x179 +# 556| Type = [Struct] String +# 556| getVariable().getInitializer(): [Initializer] initializer for x179 +# 556| getExpr(): [ConstructorCall] call to String +# 556| Type = [VoidType] void +# 556| ValueCategory = prvalue +# 557| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 557| Type = [VoidType] void +# 557| ValueCategory = prvalue +# 557| getQualifier(): [VariableAccess] x179 +# 557| Type = [Struct] String +# 557| ValueCategory = lvalue +# 557| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 557| Conversion = [BoolConversion] conversion to bool +# 557| Type = [BoolType] bool +# 557| Value = [CStyleCast] 0 +# 557| ValueCategory = prvalue +# 558| getStmt(180): [DoStmt] do (...) ... +# 560| getCondition(): [Literal] 0 +# 560| Type = [IntType] int +# 560| Value = [Literal] 0 +# 560| ValueCategory = prvalue +# 558| getStmt(): [BlockStmt] { ... } +# 559| getStmt(0): [DeclStmt] declaration +# 559| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x180 +# 559| Type = [Struct] String +# 559| getVariable().getInitializer(): [Initializer] initializer for x180 +# 559| getExpr(): [ConstructorCall] call to String +# 559| Type = [VoidType] void +# 559| ValueCategory = prvalue +# 560| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 560| Type = [VoidType] void +# 560| ValueCategory = prvalue +# 560| getQualifier(): [VariableAccess] x180 +# 560| Type = [Struct] String +# 560| ValueCategory = lvalue +# 560| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 560| Conversion = [BoolConversion] conversion to bool +# 560| Type = [BoolType] bool +# 560| Value = [CStyleCast] 0 +# 560| ValueCategory = prvalue +# 561| getStmt(181): [DoStmt] do (...) ... +# 563| getCondition(): [Literal] 0 +# 563| Type = [IntType] int +# 563| Value = [Literal] 0 +# 563| ValueCategory = prvalue +# 561| getStmt(): [BlockStmt] { ... } +# 562| getStmt(0): [DeclStmt] declaration +# 562| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x181 +# 562| Type = [Struct] String +# 562| getVariable().getInitializer(): [Initializer] initializer for x181 +# 562| getExpr(): [ConstructorCall] call to String +# 562| Type = [VoidType] void +# 562| ValueCategory = prvalue +# 563| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 563| Type = [VoidType] void +# 563| ValueCategory = prvalue +# 563| getQualifier(): [VariableAccess] x181 +# 563| Type = [Struct] String +# 563| ValueCategory = lvalue +# 563| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 563| Conversion = [BoolConversion] conversion to bool +# 563| Type = [BoolType] bool +# 563| Value = [CStyleCast] 0 +# 563| ValueCategory = prvalue +# 564| getStmt(182): [DoStmt] do (...) ... +# 566| getCondition(): [Literal] 0 +# 566| Type = [IntType] int +# 566| Value = [Literal] 0 +# 566| ValueCategory = prvalue +# 564| getStmt(): [BlockStmt] { ... } +# 565| getStmt(0): [DeclStmt] declaration +# 565| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x182 +# 565| Type = [Struct] String +# 565| getVariable().getInitializer(): [Initializer] initializer for x182 +# 565| getExpr(): [ConstructorCall] call to String +# 565| Type = [VoidType] void +# 565| ValueCategory = prvalue +# 566| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 566| Type = [VoidType] void +# 566| ValueCategory = prvalue +# 566| getQualifier(): [VariableAccess] x182 +# 566| Type = [Struct] String +# 566| ValueCategory = lvalue +# 566| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 566| Conversion = [BoolConversion] conversion to bool +# 566| Type = [BoolType] bool +# 566| Value = [CStyleCast] 0 +# 566| ValueCategory = prvalue +# 567| getStmt(183): [DoStmt] do (...) ... +# 569| getCondition(): [Literal] 0 +# 569| Type = [IntType] int +# 569| Value = [Literal] 0 +# 569| ValueCategory = prvalue +# 567| getStmt(): [BlockStmt] { ... } +# 568| getStmt(0): [DeclStmt] declaration +# 568| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x183 +# 568| Type = [Struct] String +# 568| getVariable().getInitializer(): [Initializer] initializer for x183 +# 568| getExpr(): [ConstructorCall] call to String +# 568| Type = [VoidType] void +# 568| ValueCategory = prvalue +# 569| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 569| Type = [VoidType] void +# 569| ValueCategory = prvalue +# 569| getQualifier(): [VariableAccess] x183 +# 569| Type = [Struct] String +# 569| ValueCategory = lvalue +# 569| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 569| Conversion = [BoolConversion] conversion to bool +# 569| Type = [BoolType] bool +# 569| Value = [CStyleCast] 0 +# 569| ValueCategory = prvalue +# 570| getStmt(184): [DoStmt] do (...) ... +# 572| getCondition(): [Literal] 0 +# 572| Type = [IntType] int +# 572| Value = [Literal] 0 +# 572| ValueCategory = prvalue +# 570| getStmt(): [BlockStmt] { ... } +# 571| getStmt(0): [DeclStmt] declaration +# 571| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x184 +# 571| Type = [Struct] String +# 571| getVariable().getInitializer(): [Initializer] initializer for x184 +# 571| getExpr(): [ConstructorCall] call to String +# 571| Type = [VoidType] void +# 571| ValueCategory = prvalue +# 572| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 572| Type = [VoidType] void +# 572| ValueCategory = prvalue +# 572| getQualifier(): [VariableAccess] x184 +# 572| Type = [Struct] String +# 572| ValueCategory = lvalue +# 572| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 572| Conversion = [BoolConversion] conversion to bool +# 572| Type = [BoolType] bool +# 572| Value = [CStyleCast] 0 +# 572| ValueCategory = prvalue +# 573| getStmt(185): [DoStmt] do (...) ... +# 575| getCondition(): [Literal] 0 +# 575| Type = [IntType] int +# 575| Value = [Literal] 0 +# 575| ValueCategory = prvalue +# 573| getStmt(): [BlockStmt] { ... } +# 574| getStmt(0): [DeclStmt] declaration +# 574| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x185 +# 574| Type = [Struct] String +# 574| getVariable().getInitializer(): [Initializer] initializer for x185 +# 574| getExpr(): [ConstructorCall] call to String +# 574| Type = [VoidType] void +# 574| ValueCategory = prvalue +# 575| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 575| Type = [VoidType] void +# 575| ValueCategory = prvalue +# 575| getQualifier(): [VariableAccess] x185 +# 575| Type = [Struct] String +# 575| ValueCategory = lvalue +# 575| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 575| Conversion = [BoolConversion] conversion to bool +# 575| Type = [BoolType] bool +# 575| Value = [CStyleCast] 0 +# 575| ValueCategory = prvalue +# 576| getStmt(186): [DoStmt] do (...) ... +# 578| getCondition(): [Literal] 0 +# 578| Type = [IntType] int +# 578| Value = [Literal] 0 +# 578| ValueCategory = prvalue +# 576| getStmt(): [BlockStmt] { ... } +# 577| getStmt(0): [DeclStmt] declaration +# 577| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x186 +# 577| Type = [Struct] String +# 577| getVariable().getInitializer(): [Initializer] initializer for x186 +# 577| getExpr(): [ConstructorCall] call to String +# 577| Type = [VoidType] void +# 577| ValueCategory = prvalue +# 578| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 578| Type = [VoidType] void +# 578| ValueCategory = prvalue +# 578| getQualifier(): [VariableAccess] x186 +# 578| Type = [Struct] String +# 578| ValueCategory = lvalue +# 578| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 578| Conversion = [BoolConversion] conversion to bool +# 578| Type = [BoolType] bool +# 578| Value = [CStyleCast] 0 +# 578| ValueCategory = prvalue +# 579| getStmt(187): [DoStmt] do (...) ... +# 581| getCondition(): [Literal] 0 +# 581| Type = [IntType] int +# 581| Value = [Literal] 0 +# 581| ValueCategory = prvalue +# 579| getStmt(): [BlockStmt] { ... } +# 580| getStmt(0): [DeclStmt] declaration +# 580| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x187 +# 580| Type = [Struct] String +# 580| getVariable().getInitializer(): [Initializer] initializer for x187 +# 580| getExpr(): [ConstructorCall] call to String +# 580| Type = [VoidType] void +# 580| ValueCategory = prvalue +# 581| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 581| Type = [VoidType] void +# 581| ValueCategory = prvalue +# 581| getQualifier(): [VariableAccess] x187 +# 581| Type = [Struct] String +# 581| ValueCategory = lvalue +# 581| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 581| Conversion = [BoolConversion] conversion to bool +# 581| Type = [BoolType] bool +# 581| Value = [CStyleCast] 0 +# 581| ValueCategory = prvalue +# 582| getStmt(188): [DoStmt] do (...) ... +# 584| getCondition(): [Literal] 0 +# 584| Type = [IntType] int +# 584| Value = [Literal] 0 +# 584| ValueCategory = prvalue +# 582| getStmt(): [BlockStmt] { ... } +# 583| getStmt(0): [DeclStmt] declaration +# 583| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x188 +# 583| Type = [Struct] String +# 583| getVariable().getInitializer(): [Initializer] initializer for x188 +# 583| getExpr(): [ConstructorCall] call to String +# 583| Type = [VoidType] void +# 583| ValueCategory = prvalue +# 584| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 584| Type = [VoidType] void +# 584| ValueCategory = prvalue +# 584| getQualifier(): [VariableAccess] x188 +# 584| Type = [Struct] String +# 584| ValueCategory = lvalue +# 584| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 584| Conversion = [BoolConversion] conversion to bool +# 584| Type = [BoolType] bool +# 584| Value = [CStyleCast] 0 +# 584| ValueCategory = prvalue +# 585| getStmt(189): [DoStmt] do (...) ... +# 587| getCondition(): [Literal] 0 +# 587| Type = [IntType] int +# 587| Value = [Literal] 0 +# 587| ValueCategory = prvalue +# 585| getStmt(): [BlockStmt] { ... } +# 586| getStmt(0): [DeclStmt] declaration +# 586| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x189 +# 586| Type = [Struct] String +# 586| getVariable().getInitializer(): [Initializer] initializer for x189 +# 586| getExpr(): [ConstructorCall] call to String +# 586| Type = [VoidType] void +# 586| ValueCategory = prvalue +# 587| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 587| Type = [VoidType] void +# 587| ValueCategory = prvalue +# 587| getQualifier(): [VariableAccess] x189 +# 587| Type = [Struct] String +# 587| ValueCategory = lvalue +# 587| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 587| Conversion = [BoolConversion] conversion to bool +# 587| Type = [BoolType] bool +# 587| Value = [CStyleCast] 0 +# 587| ValueCategory = prvalue +# 588| getStmt(190): [DoStmt] do (...) ... +# 590| getCondition(): [Literal] 0 +# 590| Type = [IntType] int +# 590| Value = [Literal] 0 +# 590| ValueCategory = prvalue +# 588| getStmt(): [BlockStmt] { ... } +# 589| getStmt(0): [DeclStmt] declaration +# 589| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x190 +# 589| Type = [Struct] String +# 589| getVariable().getInitializer(): [Initializer] initializer for x190 +# 589| getExpr(): [ConstructorCall] call to String +# 589| Type = [VoidType] void +# 589| ValueCategory = prvalue +# 590| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 590| Type = [VoidType] void +# 590| ValueCategory = prvalue +# 590| getQualifier(): [VariableAccess] x190 +# 590| Type = [Struct] String +# 590| ValueCategory = lvalue +# 590| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 590| Conversion = [BoolConversion] conversion to bool +# 590| Type = [BoolType] bool +# 590| Value = [CStyleCast] 0 +# 590| ValueCategory = prvalue +# 591| getStmt(191): [DoStmt] do (...) ... +# 593| getCondition(): [Literal] 0 +# 593| Type = [IntType] int +# 593| Value = [Literal] 0 +# 593| ValueCategory = prvalue +# 591| getStmt(): [BlockStmt] { ... } +# 592| getStmt(0): [DeclStmt] declaration +# 592| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x191 +# 592| Type = [Struct] String +# 592| getVariable().getInitializer(): [Initializer] initializer for x191 +# 592| getExpr(): [ConstructorCall] call to String +# 592| Type = [VoidType] void +# 592| ValueCategory = prvalue +# 593| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 593| Type = [VoidType] void +# 593| ValueCategory = prvalue +# 593| getQualifier(): [VariableAccess] x191 +# 593| Type = [Struct] String +# 593| ValueCategory = lvalue +# 593| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 593| Conversion = [BoolConversion] conversion to bool +# 593| Type = [BoolType] bool +# 593| Value = [CStyleCast] 0 +# 593| ValueCategory = prvalue +# 594| getStmt(192): [DoStmt] do (...) ... +# 596| getCondition(): [Literal] 0 +# 596| Type = [IntType] int +# 596| Value = [Literal] 0 +# 596| ValueCategory = prvalue +# 594| getStmt(): [BlockStmt] { ... } +# 595| getStmt(0): [DeclStmt] declaration +# 595| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x192 +# 595| Type = [Struct] String +# 595| getVariable().getInitializer(): [Initializer] initializer for x192 +# 595| getExpr(): [ConstructorCall] call to String +# 595| Type = [VoidType] void +# 595| ValueCategory = prvalue +# 596| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 596| Type = [VoidType] void +# 596| ValueCategory = prvalue +# 596| getQualifier(): [VariableAccess] x192 +# 596| Type = [Struct] String +# 596| ValueCategory = lvalue +# 596| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 596| Conversion = [BoolConversion] conversion to bool +# 596| Type = [BoolType] bool +# 596| Value = [CStyleCast] 0 +# 596| ValueCategory = prvalue +# 597| getStmt(193): [DoStmt] do (...) ... +# 599| getCondition(): [Literal] 0 +# 599| Type = [IntType] int +# 599| Value = [Literal] 0 +# 599| ValueCategory = prvalue +# 597| getStmt(): [BlockStmt] { ... } +# 598| getStmt(0): [DeclStmt] declaration +# 598| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x193 +# 598| Type = [Struct] String +# 598| getVariable().getInitializer(): [Initializer] initializer for x193 +# 598| getExpr(): [ConstructorCall] call to String +# 598| Type = [VoidType] void +# 598| ValueCategory = prvalue +# 599| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 599| Type = [VoidType] void +# 599| ValueCategory = prvalue +# 599| getQualifier(): [VariableAccess] x193 +# 599| Type = [Struct] String +# 599| ValueCategory = lvalue +# 599| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 599| Conversion = [BoolConversion] conversion to bool +# 599| Type = [BoolType] bool +# 599| Value = [CStyleCast] 0 +# 599| ValueCategory = prvalue +# 600| getStmt(194): [DoStmt] do (...) ... +# 602| getCondition(): [Literal] 0 +# 602| Type = [IntType] int +# 602| Value = [Literal] 0 +# 602| ValueCategory = prvalue +# 600| getStmt(): [BlockStmt] { ... } +# 601| getStmt(0): [DeclStmt] declaration +# 601| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x194 +# 601| Type = [Struct] String +# 601| getVariable().getInitializer(): [Initializer] initializer for x194 +# 601| getExpr(): [ConstructorCall] call to String +# 601| Type = [VoidType] void +# 601| ValueCategory = prvalue +# 602| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 602| Type = [VoidType] void +# 602| ValueCategory = prvalue +# 602| getQualifier(): [VariableAccess] x194 +# 602| Type = [Struct] String +# 602| ValueCategory = lvalue +# 602| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 602| Conversion = [BoolConversion] conversion to bool +# 602| Type = [BoolType] bool +# 602| Value = [CStyleCast] 0 +# 602| ValueCategory = prvalue +# 603| getStmt(195): [DoStmt] do (...) ... +# 605| getCondition(): [Literal] 0 +# 605| Type = [IntType] int +# 605| Value = [Literal] 0 +# 605| ValueCategory = prvalue +# 603| getStmt(): [BlockStmt] { ... } +# 604| getStmt(0): [DeclStmt] declaration +# 604| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x195 +# 604| Type = [Struct] String +# 604| getVariable().getInitializer(): [Initializer] initializer for x195 +# 604| getExpr(): [ConstructorCall] call to String +# 604| Type = [VoidType] void +# 604| ValueCategory = prvalue +# 605| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 605| Type = [VoidType] void +# 605| ValueCategory = prvalue +# 605| getQualifier(): [VariableAccess] x195 +# 605| Type = [Struct] String +# 605| ValueCategory = lvalue +# 605| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 605| Conversion = [BoolConversion] conversion to bool +# 605| Type = [BoolType] bool +# 605| Value = [CStyleCast] 0 +# 605| ValueCategory = prvalue +# 606| getStmt(196): [DoStmt] do (...) ... +# 608| getCondition(): [Literal] 0 +# 608| Type = [IntType] int +# 608| Value = [Literal] 0 +# 608| ValueCategory = prvalue +# 606| getStmt(): [BlockStmt] { ... } +# 607| getStmt(0): [DeclStmt] declaration +# 607| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x196 +# 607| Type = [Struct] String +# 607| getVariable().getInitializer(): [Initializer] initializer for x196 +# 607| getExpr(): [ConstructorCall] call to String +# 607| Type = [VoidType] void +# 607| ValueCategory = prvalue +# 608| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 608| Type = [VoidType] void +# 608| ValueCategory = prvalue +# 608| getQualifier(): [VariableAccess] x196 +# 608| Type = [Struct] String +# 608| ValueCategory = lvalue +# 608| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 608| Conversion = [BoolConversion] conversion to bool +# 608| Type = [BoolType] bool +# 608| Value = [CStyleCast] 0 +# 608| ValueCategory = prvalue +# 609| getStmt(197): [DoStmt] do (...) ... +# 611| getCondition(): [Literal] 0 +# 611| Type = [IntType] int +# 611| Value = [Literal] 0 +# 611| ValueCategory = prvalue +# 609| getStmt(): [BlockStmt] { ... } +# 610| getStmt(0): [DeclStmt] declaration +# 610| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x197 +# 610| Type = [Struct] String +# 610| getVariable().getInitializer(): [Initializer] initializer for x197 +# 610| getExpr(): [ConstructorCall] call to String +# 610| Type = [VoidType] void +# 610| ValueCategory = prvalue +# 611| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 611| Type = [VoidType] void +# 611| ValueCategory = prvalue +# 611| getQualifier(): [VariableAccess] x197 +# 611| Type = [Struct] String +# 611| ValueCategory = lvalue +# 611| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 611| Conversion = [BoolConversion] conversion to bool +# 611| Type = [BoolType] bool +# 611| Value = [CStyleCast] 0 +# 611| ValueCategory = prvalue +# 612| getStmt(198): [DoStmt] do (...) ... +# 614| getCondition(): [Literal] 0 +# 614| Type = [IntType] int +# 614| Value = [Literal] 0 +# 614| ValueCategory = prvalue +# 612| getStmt(): [BlockStmt] { ... } +# 613| getStmt(0): [DeclStmt] declaration +# 613| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x198 +# 613| Type = [Struct] String +# 613| getVariable().getInitializer(): [Initializer] initializer for x198 +# 613| getExpr(): [ConstructorCall] call to String +# 613| Type = [VoidType] void +# 613| ValueCategory = prvalue +# 614| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 614| Type = [VoidType] void +# 614| ValueCategory = prvalue +# 614| getQualifier(): [VariableAccess] x198 +# 614| Type = [Struct] String +# 614| ValueCategory = lvalue +# 614| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 614| Conversion = [BoolConversion] conversion to bool +# 614| Type = [BoolType] bool +# 614| Value = [CStyleCast] 0 +# 614| ValueCategory = prvalue +# 615| getStmt(199): [DoStmt] do (...) ... +# 617| getCondition(): [Literal] 0 +# 617| Type = [IntType] int +# 617| Value = [Literal] 0 +# 617| ValueCategory = prvalue +# 615| getStmt(): [BlockStmt] { ... } +# 616| getStmt(0): [DeclStmt] declaration +# 616| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x199 +# 616| Type = [Struct] String +# 616| getVariable().getInitializer(): [Initializer] initializer for x199 +# 616| getExpr(): [ConstructorCall] call to String +# 616| Type = [VoidType] void +# 616| ValueCategory = prvalue +# 617| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 617| Type = [VoidType] void +# 617| ValueCategory = prvalue +# 617| getQualifier(): [VariableAccess] x199 +# 617| Type = [Struct] String +# 617| ValueCategory = lvalue +# 617| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 617| Conversion = [BoolConversion] conversion to bool +# 617| Type = [BoolType] bool +# 617| Value = [CStyleCast] 0 +# 617| ValueCategory = prvalue +# 618| getStmt(200): [DoStmt] do (...) ... +# 620| getCondition(): [Literal] 0 +# 620| Type = [IntType] int +# 620| Value = [Literal] 0 +# 620| ValueCategory = prvalue +# 618| getStmt(): [BlockStmt] { ... } +# 619| getStmt(0): [DeclStmt] declaration +# 619| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x200 +# 619| Type = [Struct] String +# 619| getVariable().getInitializer(): [Initializer] initializer for x200 +# 619| getExpr(): [ConstructorCall] call to String +# 619| Type = [VoidType] void +# 619| ValueCategory = prvalue +# 620| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 620| Type = [VoidType] void +# 620| ValueCategory = prvalue +# 620| getQualifier(): [VariableAccess] x200 +# 620| Type = [Struct] String +# 620| ValueCategory = lvalue +# 620| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 620| Conversion = [BoolConversion] conversion to bool +# 620| Type = [BoolType] bool +# 620| Value = [CStyleCast] 0 +# 620| ValueCategory = prvalue +# 621| getStmt(201): [DoStmt] do (...) ... +# 623| getCondition(): [Literal] 0 +# 623| Type = [IntType] int +# 623| Value = [Literal] 0 +# 623| ValueCategory = prvalue +# 621| getStmt(): [BlockStmt] { ... } +# 622| getStmt(0): [DeclStmt] declaration +# 622| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x201 +# 622| Type = [Struct] String +# 622| getVariable().getInitializer(): [Initializer] initializer for x201 +# 622| getExpr(): [ConstructorCall] call to String +# 622| Type = [VoidType] void +# 622| ValueCategory = prvalue +# 623| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 623| Type = [VoidType] void +# 623| ValueCategory = prvalue +# 623| getQualifier(): [VariableAccess] x201 +# 623| Type = [Struct] String +# 623| ValueCategory = lvalue +# 623| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 623| Conversion = [BoolConversion] conversion to bool +# 623| Type = [BoolType] bool +# 623| Value = [CStyleCast] 0 +# 623| ValueCategory = prvalue +# 624| getStmt(202): [DoStmt] do (...) ... +# 626| getCondition(): [Literal] 0 +# 626| Type = [IntType] int +# 626| Value = [Literal] 0 +# 626| ValueCategory = prvalue +# 624| getStmt(): [BlockStmt] { ... } +# 625| getStmt(0): [DeclStmt] declaration +# 625| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x202 +# 625| Type = [Struct] String +# 625| getVariable().getInitializer(): [Initializer] initializer for x202 +# 625| getExpr(): [ConstructorCall] call to String +# 625| Type = [VoidType] void +# 625| ValueCategory = prvalue +# 626| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 626| Type = [VoidType] void +# 626| ValueCategory = prvalue +# 626| getQualifier(): [VariableAccess] x202 +# 626| Type = [Struct] String +# 626| ValueCategory = lvalue +# 626| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 626| Conversion = [BoolConversion] conversion to bool +# 626| Type = [BoolType] bool +# 626| Value = [CStyleCast] 0 +# 626| ValueCategory = prvalue +# 627| getStmt(203): [DoStmt] do (...) ... +# 629| getCondition(): [Literal] 0 +# 629| Type = [IntType] int +# 629| Value = [Literal] 0 +# 629| ValueCategory = prvalue +# 627| getStmt(): [BlockStmt] { ... } +# 628| getStmt(0): [DeclStmt] declaration +# 628| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x203 +# 628| Type = [Struct] String +# 628| getVariable().getInitializer(): [Initializer] initializer for x203 +# 628| getExpr(): [ConstructorCall] call to String +# 628| Type = [VoidType] void +# 628| ValueCategory = prvalue +# 629| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 629| Type = [VoidType] void +# 629| ValueCategory = prvalue +# 629| getQualifier(): [VariableAccess] x203 +# 629| Type = [Struct] String +# 629| ValueCategory = lvalue +# 629| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 629| Conversion = [BoolConversion] conversion to bool +# 629| Type = [BoolType] bool +# 629| Value = [CStyleCast] 0 +# 629| ValueCategory = prvalue +# 630| getStmt(204): [DoStmt] do (...) ... +# 632| getCondition(): [Literal] 0 +# 632| Type = [IntType] int +# 632| Value = [Literal] 0 +# 632| ValueCategory = prvalue +# 630| getStmt(): [BlockStmt] { ... } +# 631| getStmt(0): [DeclStmt] declaration +# 631| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x204 +# 631| Type = [Struct] String +# 631| getVariable().getInitializer(): [Initializer] initializer for x204 +# 631| getExpr(): [ConstructorCall] call to String +# 631| Type = [VoidType] void +# 631| ValueCategory = prvalue +# 632| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 632| Type = [VoidType] void +# 632| ValueCategory = prvalue +# 632| getQualifier(): [VariableAccess] x204 +# 632| Type = [Struct] String +# 632| ValueCategory = lvalue +# 632| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 632| Conversion = [BoolConversion] conversion to bool +# 632| Type = [BoolType] bool +# 632| Value = [CStyleCast] 0 +# 632| ValueCategory = prvalue +# 633| getStmt(205): [DoStmt] do (...) ... +# 635| getCondition(): [Literal] 0 +# 635| Type = [IntType] int +# 635| Value = [Literal] 0 +# 635| ValueCategory = prvalue +# 633| getStmt(): [BlockStmt] { ... } +# 634| getStmt(0): [DeclStmt] declaration +# 634| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x205 +# 634| Type = [Struct] String +# 634| getVariable().getInitializer(): [Initializer] initializer for x205 +# 634| getExpr(): [ConstructorCall] call to String +# 634| Type = [VoidType] void +# 634| ValueCategory = prvalue +# 635| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 635| Type = [VoidType] void +# 635| ValueCategory = prvalue +# 635| getQualifier(): [VariableAccess] x205 +# 635| Type = [Struct] String +# 635| ValueCategory = lvalue +# 635| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 635| Conversion = [BoolConversion] conversion to bool +# 635| Type = [BoolType] bool +# 635| Value = [CStyleCast] 0 +# 635| ValueCategory = prvalue +# 636| getStmt(206): [DoStmt] do (...) ... +# 638| getCondition(): [Literal] 0 +# 638| Type = [IntType] int +# 638| Value = [Literal] 0 +# 638| ValueCategory = prvalue +# 636| getStmt(): [BlockStmt] { ... } +# 637| getStmt(0): [DeclStmt] declaration +# 637| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x206 +# 637| Type = [Struct] String +# 637| getVariable().getInitializer(): [Initializer] initializer for x206 +# 637| getExpr(): [ConstructorCall] call to String +# 637| Type = [VoidType] void +# 637| ValueCategory = prvalue +# 638| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 638| Type = [VoidType] void +# 638| ValueCategory = prvalue +# 638| getQualifier(): [VariableAccess] x206 +# 638| Type = [Struct] String +# 638| ValueCategory = lvalue +# 638| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 638| Conversion = [BoolConversion] conversion to bool +# 638| Type = [BoolType] bool +# 638| Value = [CStyleCast] 0 +# 638| ValueCategory = prvalue +# 639| getStmt(207): [DoStmt] do (...) ... +# 641| getCondition(): [Literal] 0 +# 641| Type = [IntType] int +# 641| Value = [Literal] 0 +# 641| ValueCategory = prvalue +# 639| getStmt(): [BlockStmt] { ... } +# 640| getStmt(0): [DeclStmt] declaration +# 640| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x207 +# 640| Type = [Struct] String +# 640| getVariable().getInitializer(): [Initializer] initializer for x207 +# 640| getExpr(): [ConstructorCall] call to String +# 640| Type = [VoidType] void +# 640| ValueCategory = prvalue +# 641| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 641| Type = [VoidType] void +# 641| ValueCategory = prvalue +# 641| getQualifier(): [VariableAccess] x207 +# 641| Type = [Struct] String +# 641| ValueCategory = lvalue +# 641| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 641| Conversion = [BoolConversion] conversion to bool +# 641| Type = [BoolType] bool +# 641| Value = [CStyleCast] 0 +# 641| ValueCategory = prvalue +# 642| getStmt(208): [DoStmt] do (...) ... +# 644| getCondition(): [Literal] 0 +# 644| Type = [IntType] int +# 644| Value = [Literal] 0 +# 644| ValueCategory = prvalue +# 642| getStmt(): [BlockStmt] { ... } +# 643| getStmt(0): [DeclStmt] declaration +# 643| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x208 +# 643| Type = [Struct] String +# 643| getVariable().getInitializer(): [Initializer] initializer for x208 +# 643| getExpr(): [ConstructorCall] call to String +# 643| Type = [VoidType] void +# 643| ValueCategory = prvalue +# 644| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 644| Type = [VoidType] void +# 644| ValueCategory = prvalue +# 644| getQualifier(): [VariableAccess] x208 +# 644| Type = [Struct] String +# 644| ValueCategory = lvalue +# 644| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 644| Conversion = [BoolConversion] conversion to bool +# 644| Type = [BoolType] bool +# 644| Value = [CStyleCast] 0 +# 644| ValueCategory = prvalue +# 645| getStmt(209): [DoStmt] do (...) ... +# 647| getCondition(): [Literal] 0 +# 647| Type = [IntType] int +# 647| Value = [Literal] 0 +# 647| ValueCategory = prvalue +# 645| getStmt(): [BlockStmt] { ... } +# 646| getStmt(0): [DeclStmt] declaration +# 646| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x209 +# 646| Type = [Struct] String +# 646| getVariable().getInitializer(): [Initializer] initializer for x209 +# 646| getExpr(): [ConstructorCall] call to String +# 646| Type = [VoidType] void +# 646| ValueCategory = prvalue +# 647| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 647| Type = [VoidType] void +# 647| ValueCategory = prvalue +# 647| getQualifier(): [VariableAccess] x209 +# 647| Type = [Struct] String +# 647| ValueCategory = lvalue +# 647| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 647| Conversion = [BoolConversion] conversion to bool +# 647| Type = [BoolType] bool +# 647| Value = [CStyleCast] 0 +# 647| ValueCategory = prvalue +# 648| getStmt(210): [DoStmt] do (...) ... +# 650| getCondition(): [Literal] 0 +# 650| Type = [IntType] int +# 650| Value = [Literal] 0 +# 650| ValueCategory = prvalue +# 648| getStmt(): [BlockStmt] { ... } +# 649| getStmt(0): [DeclStmt] declaration +# 649| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x210 +# 649| Type = [Struct] String +# 649| getVariable().getInitializer(): [Initializer] initializer for x210 +# 649| getExpr(): [ConstructorCall] call to String +# 649| Type = [VoidType] void +# 649| ValueCategory = prvalue +# 650| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 650| Type = [VoidType] void +# 650| ValueCategory = prvalue +# 650| getQualifier(): [VariableAccess] x210 +# 650| Type = [Struct] String +# 650| ValueCategory = lvalue +# 650| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 650| Conversion = [BoolConversion] conversion to bool +# 650| Type = [BoolType] bool +# 650| Value = [CStyleCast] 0 +# 650| ValueCategory = prvalue +# 651| getStmt(211): [DoStmt] do (...) ... +# 653| getCondition(): [Literal] 0 +# 653| Type = [IntType] int +# 653| Value = [Literal] 0 +# 653| ValueCategory = prvalue +# 651| getStmt(): [BlockStmt] { ... } +# 652| getStmt(0): [DeclStmt] declaration +# 652| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x211 +# 652| Type = [Struct] String +# 652| getVariable().getInitializer(): [Initializer] initializer for x211 +# 652| getExpr(): [ConstructorCall] call to String +# 652| Type = [VoidType] void +# 652| ValueCategory = prvalue +# 653| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 653| Type = [VoidType] void +# 653| ValueCategory = prvalue +# 653| getQualifier(): [VariableAccess] x211 +# 653| Type = [Struct] String +# 653| ValueCategory = lvalue +# 653| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 653| Conversion = [BoolConversion] conversion to bool +# 653| Type = [BoolType] bool +# 653| Value = [CStyleCast] 0 +# 653| ValueCategory = prvalue +# 654| getStmt(212): [DoStmt] do (...) ... +# 656| getCondition(): [Literal] 0 +# 656| Type = [IntType] int +# 656| Value = [Literal] 0 +# 656| ValueCategory = prvalue +# 654| getStmt(): [BlockStmt] { ... } +# 655| getStmt(0): [DeclStmt] declaration +# 655| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x212 +# 655| Type = [Struct] String +# 655| getVariable().getInitializer(): [Initializer] initializer for x212 +# 655| getExpr(): [ConstructorCall] call to String +# 655| Type = [VoidType] void +# 655| ValueCategory = prvalue +# 656| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 656| Type = [VoidType] void +# 656| ValueCategory = prvalue +# 656| getQualifier(): [VariableAccess] x212 +# 656| Type = [Struct] String +# 656| ValueCategory = lvalue +# 656| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 656| Conversion = [BoolConversion] conversion to bool +# 656| Type = [BoolType] bool +# 656| Value = [CStyleCast] 0 +# 656| ValueCategory = prvalue +# 657| getStmt(213): [DoStmt] do (...) ... +# 659| getCondition(): [Literal] 0 +# 659| Type = [IntType] int +# 659| Value = [Literal] 0 +# 659| ValueCategory = prvalue +# 657| getStmt(): [BlockStmt] { ... } +# 658| getStmt(0): [DeclStmt] declaration +# 658| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x213 +# 658| Type = [Struct] String +# 658| getVariable().getInitializer(): [Initializer] initializer for x213 +# 658| getExpr(): [ConstructorCall] call to String +# 658| Type = [VoidType] void +# 658| ValueCategory = prvalue +# 659| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 659| Type = [VoidType] void +# 659| ValueCategory = prvalue +# 659| getQualifier(): [VariableAccess] x213 +# 659| Type = [Struct] String +# 659| ValueCategory = lvalue +# 659| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 659| Conversion = [BoolConversion] conversion to bool +# 659| Type = [BoolType] bool +# 659| Value = [CStyleCast] 0 +# 659| ValueCategory = prvalue +# 660| getStmt(214): [DoStmt] do (...) ... +# 662| getCondition(): [Literal] 0 +# 662| Type = [IntType] int +# 662| Value = [Literal] 0 +# 662| ValueCategory = prvalue +# 660| getStmt(): [BlockStmt] { ... } +# 661| getStmt(0): [DeclStmt] declaration +# 661| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x214 +# 661| Type = [Struct] String +# 661| getVariable().getInitializer(): [Initializer] initializer for x214 +# 661| getExpr(): [ConstructorCall] call to String +# 661| Type = [VoidType] void +# 661| ValueCategory = prvalue +# 662| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 662| Type = [VoidType] void +# 662| ValueCategory = prvalue +# 662| getQualifier(): [VariableAccess] x214 +# 662| Type = [Struct] String +# 662| ValueCategory = lvalue +# 662| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 662| Conversion = [BoolConversion] conversion to bool +# 662| Type = [BoolType] bool +# 662| Value = [CStyleCast] 0 +# 662| ValueCategory = prvalue +# 663| getStmt(215): [DoStmt] do (...) ... +# 665| getCondition(): [Literal] 0 +# 665| Type = [IntType] int +# 665| Value = [Literal] 0 +# 665| ValueCategory = prvalue +# 663| getStmt(): [BlockStmt] { ... } +# 664| getStmt(0): [DeclStmt] declaration +# 664| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x215 +# 664| Type = [Struct] String +# 664| getVariable().getInitializer(): [Initializer] initializer for x215 +# 664| getExpr(): [ConstructorCall] call to String +# 664| Type = [VoidType] void +# 664| ValueCategory = prvalue +# 665| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 665| Type = [VoidType] void +# 665| ValueCategory = prvalue +# 665| getQualifier(): [VariableAccess] x215 +# 665| Type = [Struct] String +# 665| ValueCategory = lvalue +# 665| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 665| Conversion = [BoolConversion] conversion to bool +# 665| Type = [BoolType] bool +# 665| Value = [CStyleCast] 0 +# 665| ValueCategory = prvalue +# 666| getStmt(216): [DoStmt] do (...) ... +# 668| getCondition(): [Literal] 0 +# 668| Type = [IntType] int +# 668| Value = [Literal] 0 +# 668| ValueCategory = prvalue +# 666| getStmt(): [BlockStmt] { ... } +# 667| getStmt(0): [DeclStmt] declaration +# 667| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x216 +# 667| Type = [Struct] String +# 667| getVariable().getInitializer(): [Initializer] initializer for x216 +# 667| getExpr(): [ConstructorCall] call to String +# 667| Type = [VoidType] void +# 667| ValueCategory = prvalue +# 668| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 668| Type = [VoidType] void +# 668| ValueCategory = prvalue +# 668| getQualifier(): [VariableAccess] x216 +# 668| Type = [Struct] String +# 668| ValueCategory = lvalue +# 668| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 668| Conversion = [BoolConversion] conversion to bool +# 668| Type = [BoolType] bool +# 668| Value = [CStyleCast] 0 +# 668| ValueCategory = prvalue +# 669| getStmt(217): [DoStmt] do (...) ... +# 671| getCondition(): [Literal] 0 +# 671| Type = [IntType] int +# 671| Value = [Literal] 0 +# 671| ValueCategory = prvalue +# 669| getStmt(): [BlockStmt] { ... } +# 670| getStmt(0): [DeclStmt] declaration +# 670| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x217 +# 670| Type = [Struct] String +# 670| getVariable().getInitializer(): [Initializer] initializer for x217 +# 670| getExpr(): [ConstructorCall] call to String +# 670| Type = [VoidType] void +# 670| ValueCategory = prvalue +# 671| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 671| Type = [VoidType] void +# 671| ValueCategory = prvalue +# 671| getQualifier(): [VariableAccess] x217 +# 671| Type = [Struct] String +# 671| ValueCategory = lvalue +# 671| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 671| Conversion = [BoolConversion] conversion to bool +# 671| Type = [BoolType] bool +# 671| Value = [CStyleCast] 0 +# 671| ValueCategory = prvalue +# 672| getStmt(218): [DoStmt] do (...) ... +# 674| getCondition(): [Literal] 0 +# 674| Type = [IntType] int +# 674| Value = [Literal] 0 +# 674| ValueCategory = prvalue +# 672| getStmt(): [BlockStmt] { ... } +# 673| getStmt(0): [DeclStmt] declaration +# 673| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x218 +# 673| Type = [Struct] String +# 673| getVariable().getInitializer(): [Initializer] initializer for x218 +# 673| getExpr(): [ConstructorCall] call to String +# 673| Type = [VoidType] void +# 673| ValueCategory = prvalue +# 674| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 674| Type = [VoidType] void +# 674| ValueCategory = prvalue +# 674| getQualifier(): [VariableAccess] x218 +# 674| Type = [Struct] String +# 674| ValueCategory = lvalue +# 674| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 674| Conversion = [BoolConversion] conversion to bool +# 674| Type = [BoolType] bool +# 674| Value = [CStyleCast] 0 +# 674| ValueCategory = prvalue +# 675| getStmt(219): [DoStmt] do (...) ... +# 677| getCondition(): [Literal] 0 +# 677| Type = [IntType] int +# 677| Value = [Literal] 0 +# 677| ValueCategory = prvalue +# 675| getStmt(): [BlockStmt] { ... } +# 676| getStmt(0): [DeclStmt] declaration +# 676| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x219 +# 676| Type = [Struct] String +# 676| getVariable().getInitializer(): [Initializer] initializer for x219 +# 676| getExpr(): [ConstructorCall] call to String +# 676| Type = [VoidType] void +# 676| ValueCategory = prvalue +# 677| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 677| Type = [VoidType] void +# 677| ValueCategory = prvalue +# 677| getQualifier(): [VariableAccess] x219 +# 677| Type = [Struct] String +# 677| ValueCategory = lvalue +# 677| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 677| Conversion = [BoolConversion] conversion to bool +# 677| Type = [BoolType] bool +# 677| Value = [CStyleCast] 0 +# 677| ValueCategory = prvalue +# 678| getStmt(220): [DoStmt] do (...) ... +# 680| getCondition(): [Literal] 0 +# 680| Type = [IntType] int +# 680| Value = [Literal] 0 +# 680| ValueCategory = prvalue +# 678| getStmt(): [BlockStmt] { ... } +# 679| getStmt(0): [DeclStmt] declaration +# 679| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x220 +# 679| Type = [Struct] String +# 679| getVariable().getInitializer(): [Initializer] initializer for x220 +# 679| getExpr(): [ConstructorCall] call to String +# 679| Type = [VoidType] void +# 679| ValueCategory = prvalue +# 680| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 680| Type = [VoidType] void +# 680| ValueCategory = prvalue +# 680| getQualifier(): [VariableAccess] x220 +# 680| Type = [Struct] String +# 680| ValueCategory = lvalue +# 680| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 680| Conversion = [BoolConversion] conversion to bool +# 680| Type = [BoolType] bool +# 680| Value = [CStyleCast] 0 +# 680| ValueCategory = prvalue +# 681| getStmt(221): [DoStmt] do (...) ... +# 683| getCondition(): [Literal] 0 +# 683| Type = [IntType] int +# 683| Value = [Literal] 0 +# 683| ValueCategory = prvalue +# 681| getStmt(): [BlockStmt] { ... } +# 682| getStmt(0): [DeclStmt] declaration +# 682| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x221 +# 682| Type = [Struct] String +# 682| getVariable().getInitializer(): [Initializer] initializer for x221 +# 682| getExpr(): [ConstructorCall] call to String +# 682| Type = [VoidType] void +# 682| ValueCategory = prvalue +# 683| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 683| Type = [VoidType] void +# 683| ValueCategory = prvalue +# 683| getQualifier(): [VariableAccess] x221 +# 683| Type = [Struct] String +# 683| ValueCategory = lvalue +# 683| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 683| Conversion = [BoolConversion] conversion to bool +# 683| Type = [BoolType] bool +# 683| Value = [CStyleCast] 0 +# 683| ValueCategory = prvalue +# 684| getStmt(222): [DoStmt] do (...) ... +# 686| getCondition(): [Literal] 0 +# 686| Type = [IntType] int +# 686| Value = [Literal] 0 +# 686| ValueCategory = prvalue +# 684| getStmt(): [BlockStmt] { ... } +# 685| getStmt(0): [DeclStmt] declaration +# 685| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x222 +# 685| Type = [Struct] String +# 685| getVariable().getInitializer(): [Initializer] initializer for x222 +# 685| getExpr(): [ConstructorCall] call to String +# 685| Type = [VoidType] void +# 685| ValueCategory = prvalue +# 686| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 686| Type = [VoidType] void +# 686| ValueCategory = prvalue +# 686| getQualifier(): [VariableAccess] x222 +# 686| Type = [Struct] String +# 686| ValueCategory = lvalue +# 686| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 686| Conversion = [BoolConversion] conversion to bool +# 686| Type = [BoolType] bool +# 686| Value = [CStyleCast] 0 +# 686| ValueCategory = prvalue +# 687| getStmt(223): [DoStmt] do (...) ... +# 689| getCondition(): [Literal] 0 +# 689| Type = [IntType] int +# 689| Value = [Literal] 0 +# 689| ValueCategory = prvalue +# 687| getStmt(): [BlockStmt] { ... } +# 688| getStmt(0): [DeclStmt] declaration +# 688| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x223 +# 688| Type = [Struct] String +# 688| getVariable().getInitializer(): [Initializer] initializer for x223 +# 688| getExpr(): [ConstructorCall] call to String +# 688| Type = [VoidType] void +# 688| ValueCategory = prvalue +# 689| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 689| Type = [VoidType] void +# 689| ValueCategory = prvalue +# 689| getQualifier(): [VariableAccess] x223 +# 689| Type = [Struct] String +# 689| ValueCategory = lvalue +# 689| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 689| Conversion = [BoolConversion] conversion to bool +# 689| Type = [BoolType] bool +# 689| Value = [CStyleCast] 0 +# 689| ValueCategory = prvalue +# 690| getStmt(224): [DoStmt] do (...) ... +# 692| getCondition(): [Literal] 0 +# 692| Type = [IntType] int +# 692| Value = [Literal] 0 +# 692| ValueCategory = prvalue +# 690| getStmt(): [BlockStmt] { ... } +# 691| getStmt(0): [DeclStmt] declaration +# 691| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x224 +# 691| Type = [Struct] String +# 691| getVariable().getInitializer(): [Initializer] initializer for x224 +# 691| getExpr(): [ConstructorCall] call to String +# 691| Type = [VoidType] void +# 691| ValueCategory = prvalue +# 692| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 692| Type = [VoidType] void +# 692| ValueCategory = prvalue +# 692| getQualifier(): [VariableAccess] x224 +# 692| Type = [Struct] String +# 692| ValueCategory = lvalue +# 692| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 692| Conversion = [BoolConversion] conversion to bool +# 692| Type = [BoolType] bool +# 692| Value = [CStyleCast] 0 +# 692| ValueCategory = prvalue +# 693| getStmt(225): [DoStmt] do (...) ... +# 695| getCondition(): [Literal] 0 +# 695| Type = [IntType] int +# 695| Value = [Literal] 0 +# 695| ValueCategory = prvalue +# 693| getStmt(): [BlockStmt] { ... } +# 694| getStmt(0): [DeclStmt] declaration +# 694| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x225 +# 694| Type = [Struct] String +# 694| getVariable().getInitializer(): [Initializer] initializer for x225 +# 694| getExpr(): [ConstructorCall] call to String +# 694| Type = [VoidType] void +# 694| ValueCategory = prvalue +# 695| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 695| Type = [VoidType] void +# 695| ValueCategory = prvalue +# 695| getQualifier(): [VariableAccess] x225 +# 695| Type = [Struct] String +# 695| ValueCategory = lvalue +# 695| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 695| Conversion = [BoolConversion] conversion to bool +# 695| Type = [BoolType] bool +# 695| Value = [CStyleCast] 0 +# 695| ValueCategory = prvalue +# 696| getStmt(226): [DoStmt] do (...) ... +# 698| getCondition(): [Literal] 0 +# 698| Type = [IntType] int +# 698| Value = [Literal] 0 +# 698| ValueCategory = prvalue +# 696| getStmt(): [BlockStmt] { ... } +# 697| getStmt(0): [DeclStmt] declaration +# 697| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x226 +# 697| Type = [Struct] String +# 697| getVariable().getInitializer(): [Initializer] initializer for x226 +# 697| getExpr(): [ConstructorCall] call to String +# 697| Type = [VoidType] void +# 697| ValueCategory = prvalue +# 698| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 698| Type = [VoidType] void +# 698| ValueCategory = prvalue +# 698| getQualifier(): [VariableAccess] x226 +# 698| Type = [Struct] String +# 698| ValueCategory = lvalue +# 698| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 698| Conversion = [BoolConversion] conversion to bool +# 698| Type = [BoolType] bool +# 698| Value = [CStyleCast] 0 +# 698| ValueCategory = prvalue +# 699| getStmt(227): [DoStmt] do (...) ... +# 701| getCondition(): [Literal] 0 +# 701| Type = [IntType] int +# 701| Value = [Literal] 0 +# 701| ValueCategory = prvalue +# 699| getStmt(): [BlockStmt] { ... } +# 700| getStmt(0): [DeclStmt] declaration +# 700| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x227 +# 700| Type = [Struct] String +# 700| getVariable().getInitializer(): [Initializer] initializer for x227 +# 700| getExpr(): [ConstructorCall] call to String +# 700| Type = [VoidType] void +# 700| ValueCategory = prvalue +# 701| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 701| Type = [VoidType] void +# 701| ValueCategory = prvalue +# 701| getQualifier(): [VariableAccess] x227 +# 701| Type = [Struct] String +# 701| ValueCategory = lvalue +# 701| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 701| Conversion = [BoolConversion] conversion to bool +# 701| Type = [BoolType] bool +# 701| Value = [CStyleCast] 0 +# 701| ValueCategory = prvalue +# 702| getStmt(228): [DoStmt] do (...) ... +# 704| getCondition(): [Literal] 0 +# 704| Type = [IntType] int +# 704| Value = [Literal] 0 +# 704| ValueCategory = prvalue +# 702| getStmt(): [BlockStmt] { ... } +# 703| getStmt(0): [DeclStmt] declaration +# 703| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x228 +# 703| Type = [Struct] String +# 703| getVariable().getInitializer(): [Initializer] initializer for x228 +# 703| getExpr(): [ConstructorCall] call to String +# 703| Type = [VoidType] void +# 703| ValueCategory = prvalue +# 704| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 704| Type = [VoidType] void +# 704| ValueCategory = prvalue +# 704| getQualifier(): [VariableAccess] x228 +# 704| Type = [Struct] String +# 704| ValueCategory = lvalue +# 704| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 704| Conversion = [BoolConversion] conversion to bool +# 704| Type = [BoolType] bool +# 704| Value = [CStyleCast] 0 +# 704| ValueCategory = prvalue +# 705| getStmt(229): [DoStmt] do (...) ... +# 707| getCondition(): [Literal] 0 +# 707| Type = [IntType] int +# 707| Value = [Literal] 0 +# 707| ValueCategory = prvalue +# 705| getStmt(): [BlockStmt] { ... } +# 706| getStmt(0): [DeclStmt] declaration +# 706| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x229 +# 706| Type = [Struct] String +# 706| getVariable().getInitializer(): [Initializer] initializer for x229 +# 706| getExpr(): [ConstructorCall] call to String +# 706| Type = [VoidType] void +# 706| ValueCategory = prvalue +# 707| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 707| Type = [VoidType] void +# 707| ValueCategory = prvalue +# 707| getQualifier(): [VariableAccess] x229 +# 707| Type = [Struct] String +# 707| ValueCategory = lvalue +# 707| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 707| Conversion = [BoolConversion] conversion to bool +# 707| Type = [BoolType] bool +# 707| Value = [CStyleCast] 0 +# 707| ValueCategory = prvalue +# 708| getStmt(230): [DoStmt] do (...) ... +# 710| getCondition(): [Literal] 0 +# 710| Type = [IntType] int +# 710| Value = [Literal] 0 +# 710| ValueCategory = prvalue +# 708| getStmt(): [BlockStmt] { ... } +# 709| getStmt(0): [DeclStmt] declaration +# 709| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x230 +# 709| Type = [Struct] String +# 709| getVariable().getInitializer(): [Initializer] initializer for x230 +# 709| getExpr(): [ConstructorCall] call to String +# 709| Type = [VoidType] void +# 709| ValueCategory = prvalue +# 710| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 710| Type = [VoidType] void +# 710| ValueCategory = prvalue +# 710| getQualifier(): [VariableAccess] x230 +# 710| Type = [Struct] String +# 710| ValueCategory = lvalue +# 710| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 710| Conversion = [BoolConversion] conversion to bool +# 710| Type = [BoolType] bool +# 710| Value = [CStyleCast] 0 +# 710| ValueCategory = prvalue +# 711| getStmt(231): [DoStmt] do (...) ... +# 713| getCondition(): [Literal] 0 +# 713| Type = [IntType] int +# 713| Value = [Literal] 0 +# 713| ValueCategory = prvalue +# 711| getStmt(): [BlockStmt] { ... } +# 712| getStmt(0): [DeclStmt] declaration +# 712| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x231 +# 712| Type = [Struct] String +# 712| getVariable().getInitializer(): [Initializer] initializer for x231 +# 712| getExpr(): [ConstructorCall] call to String +# 712| Type = [VoidType] void +# 712| ValueCategory = prvalue +# 713| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 713| Type = [VoidType] void +# 713| ValueCategory = prvalue +# 713| getQualifier(): [VariableAccess] x231 +# 713| Type = [Struct] String +# 713| ValueCategory = lvalue +# 713| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 713| Conversion = [BoolConversion] conversion to bool +# 713| Type = [BoolType] bool +# 713| Value = [CStyleCast] 0 +# 713| ValueCategory = prvalue +# 714| getStmt(232): [DoStmt] do (...) ... +# 716| getCondition(): [Literal] 0 +# 716| Type = [IntType] int +# 716| Value = [Literal] 0 +# 716| ValueCategory = prvalue +# 714| getStmt(): [BlockStmt] { ... } +# 715| getStmt(0): [DeclStmt] declaration +# 715| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x232 +# 715| Type = [Struct] String +# 715| getVariable().getInitializer(): [Initializer] initializer for x232 +# 715| getExpr(): [ConstructorCall] call to String +# 715| Type = [VoidType] void +# 715| ValueCategory = prvalue +# 716| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 716| Type = [VoidType] void +# 716| ValueCategory = prvalue +# 716| getQualifier(): [VariableAccess] x232 +# 716| Type = [Struct] String +# 716| ValueCategory = lvalue +# 716| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 716| Conversion = [BoolConversion] conversion to bool +# 716| Type = [BoolType] bool +# 716| Value = [CStyleCast] 0 +# 716| ValueCategory = prvalue +# 717| getStmt(233): [DoStmt] do (...) ... +# 719| getCondition(): [Literal] 0 +# 719| Type = [IntType] int +# 719| Value = [Literal] 0 +# 719| ValueCategory = prvalue +# 717| getStmt(): [BlockStmt] { ... } +# 718| getStmt(0): [DeclStmt] declaration +# 718| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x233 +# 718| Type = [Struct] String +# 718| getVariable().getInitializer(): [Initializer] initializer for x233 +# 718| getExpr(): [ConstructorCall] call to String +# 718| Type = [VoidType] void +# 718| ValueCategory = prvalue +# 719| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 719| Type = [VoidType] void +# 719| ValueCategory = prvalue +# 719| getQualifier(): [VariableAccess] x233 +# 719| Type = [Struct] String +# 719| ValueCategory = lvalue +# 719| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 719| Conversion = [BoolConversion] conversion to bool +# 719| Type = [BoolType] bool +# 719| Value = [CStyleCast] 0 +# 719| ValueCategory = prvalue +# 720| getStmt(234): [DoStmt] do (...) ... +# 722| getCondition(): [Literal] 0 +# 722| Type = [IntType] int +# 722| Value = [Literal] 0 +# 722| ValueCategory = prvalue +# 720| getStmt(): [BlockStmt] { ... } +# 721| getStmt(0): [DeclStmt] declaration +# 721| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x234 +# 721| Type = [Struct] String +# 721| getVariable().getInitializer(): [Initializer] initializer for x234 +# 721| getExpr(): [ConstructorCall] call to String +# 721| Type = [VoidType] void +# 721| ValueCategory = prvalue +# 722| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 722| Type = [VoidType] void +# 722| ValueCategory = prvalue +# 722| getQualifier(): [VariableAccess] x234 +# 722| Type = [Struct] String +# 722| ValueCategory = lvalue +# 722| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 722| Conversion = [BoolConversion] conversion to bool +# 722| Type = [BoolType] bool +# 722| Value = [CStyleCast] 0 +# 722| ValueCategory = prvalue +# 723| getStmt(235): [DoStmt] do (...) ... +# 725| getCondition(): [Literal] 0 +# 725| Type = [IntType] int +# 725| Value = [Literal] 0 +# 725| ValueCategory = prvalue +# 723| getStmt(): [BlockStmt] { ... } +# 724| getStmt(0): [DeclStmt] declaration +# 724| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x235 +# 724| Type = [Struct] String +# 724| getVariable().getInitializer(): [Initializer] initializer for x235 +# 724| getExpr(): [ConstructorCall] call to String +# 724| Type = [VoidType] void +# 724| ValueCategory = prvalue +# 725| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 725| Type = [VoidType] void +# 725| ValueCategory = prvalue +# 725| getQualifier(): [VariableAccess] x235 +# 725| Type = [Struct] String +# 725| ValueCategory = lvalue +# 725| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 725| Conversion = [BoolConversion] conversion to bool +# 725| Type = [BoolType] bool +# 725| Value = [CStyleCast] 0 +# 725| ValueCategory = prvalue +# 726| getStmt(236): [DoStmt] do (...) ... +# 728| getCondition(): [Literal] 0 +# 728| Type = [IntType] int +# 728| Value = [Literal] 0 +# 728| ValueCategory = prvalue +# 726| getStmt(): [BlockStmt] { ... } +# 727| getStmt(0): [DeclStmt] declaration +# 727| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x236 +# 727| Type = [Struct] String +# 727| getVariable().getInitializer(): [Initializer] initializer for x236 +# 727| getExpr(): [ConstructorCall] call to String +# 727| Type = [VoidType] void +# 727| ValueCategory = prvalue +# 728| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 728| Type = [VoidType] void +# 728| ValueCategory = prvalue +# 728| getQualifier(): [VariableAccess] x236 +# 728| Type = [Struct] String +# 728| ValueCategory = lvalue +# 728| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 728| Conversion = [BoolConversion] conversion to bool +# 728| Type = [BoolType] bool +# 728| Value = [CStyleCast] 0 +# 728| ValueCategory = prvalue +# 729| getStmt(237): [DoStmt] do (...) ... +# 731| getCondition(): [Literal] 0 +# 731| Type = [IntType] int +# 731| Value = [Literal] 0 +# 731| ValueCategory = prvalue +# 729| getStmt(): [BlockStmt] { ... } +# 730| getStmt(0): [DeclStmt] declaration +# 730| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x237 +# 730| Type = [Struct] String +# 730| getVariable().getInitializer(): [Initializer] initializer for x237 +# 730| getExpr(): [ConstructorCall] call to String +# 730| Type = [VoidType] void +# 730| ValueCategory = prvalue +# 731| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 731| Type = [VoidType] void +# 731| ValueCategory = prvalue +# 731| getQualifier(): [VariableAccess] x237 +# 731| Type = [Struct] String +# 731| ValueCategory = lvalue +# 731| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 731| Conversion = [BoolConversion] conversion to bool +# 731| Type = [BoolType] bool +# 731| Value = [CStyleCast] 0 +# 731| ValueCategory = prvalue +# 732| getStmt(238): [DoStmt] do (...) ... +# 734| getCondition(): [Literal] 0 +# 734| Type = [IntType] int +# 734| Value = [Literal] 0 +# 734| ValueCategory = prvalue +# 732| getStmt(): [BlockStmt] { ... } +# 733| getStmt(0): [DeclStmt] declaration +# 733| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x238 +# 733| Type = [Struct] String +# 733| getVariable().getInitializer(): [Initializer] initializer for x238 +# 733| getExpr(): [ConstructorCall] call to String +# 733| Type = [VoidType] void +# 733| ValueCategory = prvalue +# 734| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 734| Type = [VoidType] void +# 734| ValueCategory = prvalue +# 734| getQualifier(): [VariableAccess] x238 +# 734| Type = [Struct] String +# 734| ValueCategory = lvalue +# 734| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 734| Conversion = [BoolConversion] conversion to bool +# 734| Type = [BoolType] bool +# 734| Value = [CStyleCast] 0 +# 734| ValueCategory = prvalue +# 735| getStmt(239): [DoStmt] do (...) ... +# 737| getCondition(): [Literal] 0 +# 737| Type = [IntType] int +# 737| Value = [Literal] 0 +# 737| ValueCategory = prvalue +# 735| getStmt(): [BlockStmt] { ... } +# 736| getStmt(0): [DeclStmt] declaration +# 736| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x239 +# 736| Type = [Struct] String +# 736| getVariable().getInitializer(): [Initializer] initializer for x239 +# 736| getExpr(): [ConstructorCall] call to String +# 736| Type = [VoidType] void +# 736| ValueCategory = prvalue +# 737| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 737| Type = [VoidType] void +# 737| ValueCategory = prvalue +# 737| getQualifier(): [VariableAccess] x239 +# 737| Type = [Struct] String +# 737| ValueCategory = lvalue +# 737| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 737| Conversion = [BoolConversion] conversion to bool +# 737| Type = [BoolType] bool +# 737| Value = [CStyleCast] 0 +# 737| ValueCategory = prvalue +# 738| getStmt(240): [DoStmt] do (...) ... +# 740| getCondition(): [Literal] 0 +# 740| Type = [IntType] int +# 740| Value = [Literal] 0 +# 740| ValueCategory = prvalue +# 738| getStmt(): [BlockStmt] { ... } +# 739| getStmt(0): [DeclStmt] declaration +# 739| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x240 +# 739| Type = [Struct] String +# 739| getVariable().getInitializer(): [Initializer] initializer for x240 +# 739| getExpr(): [ConstructorCall] call to String +# 739| Type = [VoidType] void +# 739| ValueCategory = prvalue +# 740| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 740| Type = [VoidType] void +# 740| ValueCategory = prvalue +# 740| getQualifier(): [VariableAccess] x240 +# 740| Type = [Struct] String +# 740| ValueCategory = lvalue +# 740| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 740| Conversion = [BoolConversion] conversion to bool +# 740| Type = [BoolType] bool +# 740| Value = [CStyleCast] 0 +# 740| ValueCategory = prvalue +# 741| getStmt(241): [DoStmt] do (...) ... +# 743| getCondition(): [Literal] 0 +# 743| Type = [IntType] int +# 743| Value = [Literal] 0 +# 743| ValueCategory = prvalue +# 741| getStmt(): [BlockStmt] { ... } +# 742| getStmt(0): [DeclStmt] declaration +# 742| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x241 +# 742| Type = [Struct] String +# 742| getVariable().getInitializer(): [Initializer] initializer for x241 +# 742| getExpr(): [ConstructorCall] call to String +# 742| Type = [VoidType] void +# 742| ValueCategory = prvalue +# 743| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 743| Type = [VoidType] void +# 743| ValueCategory = prvalue +# 743| getQualifier(): [VariableAccess] x241 +# 743| Type = [Struct] String +# 743| ValueCategory = lvalue +# 743| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 743| Conversion = [BoolConversion] conversion to bool +# 743| Type = [BoolType] bool +# 743| Value = [CStyleCast] 0 +# 743| ValueCategory = prvalue +# 744| getStmt(242): [DoStmt] do (...) ... +# 746| getCondition(): [Literal] 0 +# 746| Type = [IntType] int +# 746| Value = [Literal] 0 +# 746| ValueCategory = prvalue +# 744| getStmt(): [BlockStmt] { ... } +# 745| getStmt(0): [DeclStmt] declaration +# 745| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x242 +# 745| Type = [Struct] String +# 745| getVariable().getInitializer(): [Initializer] initializer for x242 +# 745| getExpr(): [ConstructorCall] call to String +# 745| Type = [VoidType] void +# 745| ValueCategory = prvalue +# 746| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 746| Type = [VoidType] void +# 746| ValueCategory = prvalue +# 746| getQualifier(): [VariableAccess] x242 +# 746| Type = [Struct] String +# 746| ValueCategory = lvalue +# 746| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 746| Conversion = [BoolConversion] conversion to bool +# 746| Type = [BoolType] bool +# 746| Value = [CStyleCast] 0 +# 746| ValueCategory = prvalue +# 747| getStmt(243): [DoStmt] do (...) ... +# 749| getCondition(): [Literal] 0 +# 749| Type = [IntType] int +# 749| Value = [Literal] 0 +# 749| ValueCategory = prvalue +# 747| getStmt(): [BlockStmt] { ... } +# 748| getStmt(0): [DeclStmt] declaration +# 748| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x243 +# 748| Type = [Struct] String +# 748| getVariable().getInitializer(): [Initializer] initializer for x243 +# 748| getExpr(): [ConstructorCall] call to String +# 748| Type = [VoidType] void +# 748| ValueCategory = prvalue +# 749| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 749| Type = [VoidType] void +# 749| ValueCategory = prvalue +# 749| getQualifier(): [VariableAccess] x243 +# 749| Type = [Struct] String +# 749| ValueCategory = lvalue +# 749| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 749| Conversion = [BoolConversion] conversion to bool +# 749| Type = [BoolType] bool +# 749| Value = [CStyleCast] 0 +# 749| ValueCategory = prvalue +# 750| getStmt(244): [DoStmt] do (...) ... +# 752| getCondition(): [Literal] 0 +# 752| Type = [IntType] int +# 752| Value = [Literal] 0 +# 752| ValueCategory = prvalue +# 750| getStmt(): [BlockStmt] { ... } +# 751| getStmt(0): [DeclStmt] declaration +# 751| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x244 +# 751| Type = [Struct] String +# 751| getVariable().getInitializer(): [Initializer] initializer for x244 +# 751| getExpr(): [ConstructorCall] call to String +# 751| Type = [VoidType] void +# 751| ValueCategory = prvalue +# 752| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 752| Type = [VoidType] void +# 752| ValueCategory = prvalue +# 752| getQualifier(): [VariableAccess] x244 +# 752| Type = [Struct] String +# 752| ValueCategory = lvalue +# 752| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 752| Conversion = [BoolConversion] conversion to bool +# 752| Type = [BoolType] bool +# 752| Value = [CStyleCast] 0 +# 752| ValueCategory = prvalue +# 753| getStmt(245): [DoStmt] do (...) ... +# 755| getCondition(): [Literal] 0 +# 755| Type = [IntType] int +# 755| Value = [Literal] 0 +# 755| ValueCategory = prvalue +# 753| getStmt(): [BlockStmt] { ... } +# 754| getStmt(0): [DeclStmt] declaration +# 754| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x245 +# 754| Type = [Struct] String +# 754| getVariable().getInitializer(): [Initializer] initializer for x245 +# 754| getExpr(): [ConstructorCall] call to String +# 754| Type = [VoidType] void +# 754| ValueCategory = prvalue +# 755| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 755| Type = [VoidType] void +# 755| ValueCategory = prvalue +# 755| getQualifier(): [VariableAccess] x245 +# 755| Type = [Struct] String +# 755| ValueCategory = lvalue +# 755| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 755| Conversion = [BoolConversion] conversion to bool +# 755| Type = [BoolType] bool +# 755| Value = [CStyleCast] 0 +# 755| ValueCategory = prvalue +# 756| getStmt(246): [DoStmt] do (...) ... +# 758| getCondition(): [Literal] 0 +# 758| Type = [IntType] int +# 758| Value = [Literal] 0 +# 758| ValueCategory = prvalue +# 756| getStmt(): [BlockStmt] { ... } +# 757| getStmt(0): [DeclStmt] declaration +# 757| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x246 +# 757| Type = [Struct] String +# 757| getVariable().getInitializer(): [Initializer] initializer for x246 +# 757| getExpr(): [ConstructorCall] call to String +# 757| Type = [VoidType] void +# 757| ValueCategory = prvalue +# 758| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 758| Type = [VoidType] void +# 758| ValueCategory = prvalue +# 758| getQualifier(): [VariableAccess] x246 +# 758| Type = [Struct] String +# 758| ValueCategory = lvalue +# 758| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 758| Conversion = [BoolConversion] conversion to bool +# 758| Type = [BoolType] bool +# 758| Value = [CStyleCast] 0 +# 758| ValueCategory = prvalue +# 759| getStmt(247): [DoStmt] do (...) ... +# 761| getCondition(): [Literal] 0 +# 761| Type = [IntType] int +# 761| Value = [Literal] 0 +# 761| ValueCategory = prvalue +# 759| getStmt(): [BlockStmt] { ... } +# 760| getStmt(0): [DeclStmt] declaration +# 760| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x247 +# 760| Type = [Struct] String +# 760| getVariable().getInitializer(): [Initializer] initializer for x247 +# 760| getExpr(): [ConstructorCall] call to String +# 760| Type = [VoidType] void +# 760| ValueCategory = prvalue +# 761| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 761| Type = [VoidType] void +# 761| ValueCategory = prvalue +# 761| getQualifier(): [VariableAccess] x247 +# 761| Type = [Struct] String +# 761| ValueCategory = lvalue +# 761| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 761| Conversion = [BoolConversion] conversion to bool +# 761| Type = [BoolType] bool +# 761| Value = [CStyleCast] 0 +# 761| ValueCategory = prvalue +# 762| getStmt(248): [DoStmt] do (...) ... +# 764| getCondition(): [Literal] 0 +# 764| Type = [IntType] int +# 764| Value = [Literal] 0 +# 764| ValueCategory = prvalue +# 762| getStmt(): [BlockStmt] { ... } +# 763| getStmt(0): [DeclStmt] declaration +# 763| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x248 +# 763| Type = [Struct] String +# 763| getVariable().getInitializer(): [Initializer] initializer for x248 +# 763| getExpr(): [ConstructorCall] call to String +# 763| Type = [VoidType] void +# 763| ValueCategory = prvalue +# 764| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 764| Type = [VoidType] void +# 764| ValueCategory = prvalue +# 764| getQualifier(): [VariableAccess] x248 +# 764| Type = [Struct] String +# 764| ValueCategory = lvalue +# 764| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 764| Conversion = [BoolConversion] conversion to bool +# 764| Type = [BoolType] bool +# 764| Value = [CStyleCast] 0 +# 764| ValueCategory = prvalue +# 765| getStmt(249): [DoStmt] do (...) ... +# 767| getCondition(): [Literal] 0 +# 767| Type = [IntType] int +# 767| Value = [Literal] 0 +# 767| ValueCategory = prvalue +# 765| getStmt(): [BlockStmt] { ... } +# 766| getStmt(0): [DeclStmt] declaration +# 766| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x249 +# 766| Type = [Struct] String +# 766| getVariable().getInitializer(): [Initializer] initializer for x249 +# 766| getExpr(): [ConstructorCall] call to String +# 766| Type = [VoidType] void +# 766| ValueCategory = prvalue +# 767| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 767| Type = [VoidType] void +# 767| ValueCategory = prvalue +# 767| getQualifier(): [VariableAccess] x249 +# 767| Type = [Struct] String +# 767| ValueCategory = lvalue +# 767| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 767| Conversion = [BoolConversion] conversion to bool +# 767| Type = [BoolType] bool +# 767| Value = [CStyleCast] 0 +# 767| ValueCategory = prvalue +# 768| getStmt(250): [DoStmt] do (...) ... +# 770| getCondition(): [Literal] 0 +# 770| Type = [IntType] int +# 770| Value = [Literal] 0 +# 770| ValueCategory = prvalue +# 768| getStmt(): [BlockStmt] { ... } +# 769| getStmt(0): [DeclStmt] declaration +# 769| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x250 +# 769| Type = [Struct] String +# 769| getVariable().getInitializer(): [Initializer] initializer for x250 +# 769| getExpr(): [ConstructorCall] call to String +# 769| Type = [VoidType] void +# 769| ValueCategory = prvalue +# 770| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 770| Type = [VoidType] void +# 770| ValueCategory = prvalue +# 770| getQualifier(): [VariableAccess] x250 +# 770| Type = [Struct] String +# 770| ValueCategory = lvalue +# 770| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 770| Conversion = [BoolConversion] conversion to bool +# 770| Type = [BoolType] bool +# 770| Value = [CStyleCast] 0 +# 770| ValueCategory = prvalue +# 771| getStmt(251): [DoStmt] do (...) ... +# 773| getCondition(): [Literal] 0 +# 773| Type = [IntType] int +# 773| Value = [Literal] 0 +# 773| ValueCategory = prvalue +# 771| getStmt(): [BlockStmt] { ... } +# 772| getStmt(0): [DeclStmt] declaration +# 772| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x251 +# 772| Type = [Struct] String +# 772| getVariable().getInitializer(): [Initializer] initializer for x251 +# 772| getExpr(): [ConstructorCall] call to String +# 772| Type = [VoidType] void +# 772| ValueCategory = prvalue +# 773| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 773| Type = [VoidType] void +# 773| ValueCategory = prvalue +# 773| getQualifier(): [VariableAccess] x251 +# 773| Type = [Struct] String +# 773| ValueCategory = lvalue +# 773| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 773| Conversion = [BoolConversion] conversion to bool +# 773| Type = [BoolType] bool +# 773| Value = [CStyleCast] 0 +# 773| ValueCategory = prvalue +# 774| getStmt(252): [DoStmt] do (...) ... +# 776| getCondition(): [Literal] 0 +# 776| Type = [IntType] int +# 776| Value = [Literal] 0 +# 776| ValueCategory = prvalue +# 774| getStmt(): [BlockStmt] { ... } +# 775| getStmt(0): [DeclStmt] declaration +# 775| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x252 +# 775| Type = [Struct] String +# 775| getVariable().getInitializer(): [Initializer] initializer for x252 +# 775| getExpr(): [ConstructorCall] call to String +# 775| Type = [VoidType] void +# 775| ValueCategory = prvalue +# 776| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 776| Type = [VoidType] void +# 776| ValueCategory = prvalue +# 776| getQualifier(): [VariableAccess] x252 +# 776| Type = [Struct] String +# 776| ValueCategory = lvalue +# 776| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 776| Conversion = [BoolConversion] conversion to bool +# 776| Type = [BoolType] bool +# 776| Value = [CStyleCast] 0 +# 776| ValueCategory = prvalue +# 777| getStmt(253): [DoStmt] do (...) ... +# 779| getCondition(): [Literal] 0 +# 779| Type = [IntType] int +# 779| Value = [Literal] 0 +# 779| ValueCategory = prvalue +# 777| getStmt(): [BlockStmt] { ... } +# 778| getStmt(0): [DeclStmt] declaration +# 778| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x253 +# 778| Type = [Struct] String +# 778| getVariable().getInitializer(): [Initializer] initializer for x253 +# 778| getExpr(): [ConstructorCall] call to String +# 778| Type = [VoidType] void +# 778| ValueCategory = prvalue +# 779| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 779| Type = [VoidType] void +# 779| ValueCategory = prvalue +# 779| getQualifier(): [VariableAccess] x253 +# 779| Type = [Struct] String +# 779| ValueCategory = lvalue +# 779| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 779| Conversion = [BoolConversion] conversion to bool +# 779| Type = [BoolType] bool +# 779| Value = [CStyleCast] 0 +# 779| ValueCategory = prvalue +# 780| getStmt(254): [DoStmt] do (...) ... +# 782| getCondition(): [Literal] 0 +# 782| Type = [IntType] int +# 782| Value = [Literal] 0 +# 782| ValueCategory = prvalue +# 780| getStmt(): [BlockStmt] { ... } +# 781| getStmt(0): [DeclStmt] declaration +# 781| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x254 +# 781| Type = [Struct] String +# 781| getVariable().getInitializer(): [Initializer] initializer for x254 +# 781| getExpr(): [ConstructorCall] call to String +# 781| Type = [VoidType] void +# 781| ValueCategory = prvalue +# 782| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 782| Type = [VoidType] void +# 782| ValueCategory = prvalue +# 782| getQualifier(): [VariableAccess] x254 +# 782| Type = [Struct] String +# 782| ValueCategory = lvalue +# 782| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 782| Conversion = [BoolConversion] conversion to bool +# 782| Type = [BoolType] bool +# 782| Value = [CStyleCast] 0 +# 782| ValueCategory = prvalue +# 783| getStmt(255): [DoStmt] do (...) ... +# 785| getCondition(): [Literal] 0 +# 785| Type = [IntType] int +# 785| Value = [Literal] 0 +# 785| ValueCategory = prvalue +# 783| getStmt(): [BlockStmt] { ... } +# 784| getStmt(0): [DeclStmt] declaration +# 784| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x255 +# 784| Type = [Struct] String +# 784| getVariable().getInitializer(): [Initializer] initializer for x255 +# 784| getExpr(): [ConstructorCall] call to String +# 784| Type = [VoidType] void +# 784| ValueCategory = prvalue +# 785| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 785| Type = [VoidType] void +# 785| ValueCategory = prvalue +# 785| getQualifier(): [VariableAccess] x255 +# 785| Type = [Struct] String +# 785| ValueCategory = lvalue +# 785| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 785| Conversion = [BoolConversion] conversion to bool +# 785| Type = [BoolType] bool +# 785| Value = [CStyleCast] 0 +# 785| ValueCategory = prvalue +# 786| getStmt(256): [DoStmt] do (...) ... +# 788| getCondition(): [Literal] 0 +# 788| Type = [IntType] int +# 788| Value = [Literal] 0 +# 788| ValueCategory = prvalue +# 786| getStmt(): [BlockStmt] { ... } +# 787| getStmt(0): [DeclStmt] declaration +# 787| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x256 +# 787| Type = [Struct] String +# 787| getVariable().getInitializer(): [Initializer] initializer for x256 +# 787| getExpr(): [ConstructorCall] call to String +# 787| Type = [VoidType] void +# 787| ValueCategory = prvalue +# 788| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 788| Type = [VoidType] void +# 788| ValueCategory = prvalue +# 788| getQualifier(): [VariableAccess] x256 +# 788| Type = [Struct] String +# 788| ValueCategory = lvalue +# 788| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 788| Conversion = [BoolConversion] conversion to bool +# 788| Type = [BoolType] bool +# 788| Value = [CStyleCast] 0 +# 788| ValueCategory = prvalue +# 789| getStmt(257): [DoStmt] do (...) ... +# 791| getCondition(): [Literal] 0 +# 791| Type = [IntType] int +# 791| Value = [Literal] 0 +# 791| ValueCategory = prvalue +# 789| getStmt(): [BlockStmt] { ... } +# 790| getStmt(0): [DeclStmt] declaration +# 790| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x257 +# 790| Type = [Struct] String +# 790| getVariable().getInitializer(): [Initializer] initializer for x257 +# 790| getExpr(): [ConstructorCall] call to String +# 790| Type = [VoidType] void +# 790| ValueCategory = prvalue +# 791| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 791| Type = [VoidType] void +# 791| ValueCategory = prvalue +# 791| getQualifier(): [VariableAccess] x257 +# 791| Type = [Struct] String +# 791| ValueCategory = lvalue +# 791| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 791| Conversion = [BoolConversion] conversion to bool +# 791| Type = [BoolType] bool +# 791| Value = [CStyleCast] 0 +# 791| ValueCategory = prvalue +# 792| getStmt(258): [DoStmt] do (...) ... +# 794| getCondition(): [Literal] 0 +# 794| Type = [IntType] int +# 794| Value = [Literal] 0 +# 794| ValueCategory = prvalue +# 792| getStmt(): [BlockStmt] { ... } +# 793| getStmt(0): [DeclStmt] declaration +# 793| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x258 +# 793| Type = [Struct] String +# 793| getVariable().getInitializer(): [Initializer] initializer for x258 +# 793| getExpr(): [ConstructorCall] call to String +# 793| Type = [VoidType] void +# 793| ValueCategory = prvalue +# 794| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 794| Type = [VoidType] void +# 794| ValueCategory = prvalue +# 794| getQualifier(): [VariableAccess] x258 +# 794| Type = [Struct] String +# 794| ValueCategory = lvalue +# 794| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 794| Conversion = [BoolConversion] conversion to bool +# 794| Type = [BoolType] bool +# 794| Value = [CStyleCast] 0 +# 794| ValueCategory = prvalue +# 795| getStmt(259): [DoStmt] do (...) ... +# 797| getCondition(): [Literal] 0 +# 797| Type = [IntType] int +# 797| Value = [Literal] 0 +# 797| ValueCategory = prvalue +# 795| getStmt(): [BlockStmt] { ... } +# 796| getStmt(0): [DeclStmt] declaration +# 796| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x259 +# 796| Type = [Struct] String +# 796| getVariable().getInitializer(): [Initializer] initializer for x259 +# 796| getExpr(): [ConstructorCall] call to String +# 796| Type = [VoidType] void +# 796| ValueCategory = prvalue +# 797| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 797| Type = [VoidType] void +# 797| ValueCategory = prvalue +# 797| getQualifier(): [VariableAccess] x259 +# 797| Type = [Struct] String +# 797| ValueCategory = lvalue +# 797| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 797| Conversion = [BoolConversion] conversion to bool +# 797| Type = [BoolType] bool +# 797| Value = [CStyleCast] 0 +# 797| ValueCategory = prvalue +# 798| getStmt(260): [DoStmt] do (...) ... +# 800| getCondition(): [Literal] 0 +# 800| Type = [IntType] int +# 800| Value = [Literal] 0 +# 800| ValueCategory = prvalue +# 798| getStmt(): [BlockStmt] { ... } +# 799| getStmt(0): [DeclStmt] declaration +# 799| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x260 +# 799| Type = [Struct] String +# 799| getVariable().getInitializer(): [Initializer] initializer for x260 +# 799| getExpr(): [ConstructorCall] call to String +# 799| Type = [VoidType] void +# 799| ValueCategory = prvalue +# 800| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 800| Type = [VoidType] void +# 800| ValueCategory = prvalue +# 800| getQualifier(): [VariableAccess] x260 +# 800| Type = [Struct] String +# 800| ValueCategory = lvalue +# 800| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 800| Conversion = [BoolConversion] conversion to bool +# 800| Type = [BoolType] bool +# 800| Value = [CStyleCast] 0 +# 800| ValueCategory = prvalue +# 801| getStmt(261): [DoStmt] do (...) ... +# 803| getCondition(): [Literal] 0 +# 803| Type = [IntType] int +# 803| Value = [Literal] 0 +# 803| ValueCategory = prvalue +# 801| getStmt(): [BlockStmt] { ... } +# 802| getStmt(0): [DeclStmt] declaration +# 802| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x261 +# 802| Type = [Struct] String +# 802| getVariable().getInitializer(): [Initializer] initializer for x261 +# 802| getExpr(): [ConstructorCall] call to String +# 802| Type = [VoidType] void +# 802| ValueCategory = prvalue +# 803| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 803| Type = [VoidType] void +# 803| ValueCategory = prvalue +# 803| getQualifier(): [VariableAccess] x261 +# 803| Type = [Struct] String +# 803| ValueCategory = lvalue +# 803| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 803| Conversion = [BoolConversion] conversion to bool +# 803| Type = [BoolType] bool +# 803| Value = [CStyleCast] 0 +# 803| ValueCategory = prvalue +# 804| getStmt(262): [DoStmt] do (...) ... +# 806| getCondition(): [Literal] 0 +# 806| Type = [IntType] int +# 806| Value = [Literal] 0 +# 806| ValueCategory = prvalue +# 804| getStmt(): [BlockStmt] { ... } +# 805| getStmt(0): [DeclStmt] declaration +# 805| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x262 +# 805| Type = [Struct] String +# 805| getVariable().getInitializer(): [Initializer] initializer for x262 +# 805| getExpr(): [ConstructorCall] call to String +# 805| Type = [VoidType] void +# 805| ValueCategory = prvalue +# 806| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 806| Type = [VoidType] void +# 806| ValueCategory = prvalue +# 806| getQualifier(): [VariableAccess] x262 +# 806| Type = [Struct] String +# 806| ValueCategory = lvalue +# 806| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 806| Conversion = [BoolConversion] conversion to bool +# 806| Type = [BoolType] bool +# 806| Value = [CStyleCast] 0 +# 806| ValueCategory = prvalue +# 807| getStmt(263): [DoStmt] do (...) ... +# 809| getCondition(): [Literal] 0 +# 809| Type = [IntType] int +# 809| Value = [Literal] 0 +# 809| ValueCategory = prvalue +# 807| getStmt(): [BlockStmt] { ... } +# 808| getStmt(0): [DeclStmt] declaration +# 808| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x263 +# 808| Type = [Struct] String +# 808| getVariable().getInitializer(): [Initializer] initializer for x263 +# 808| getExpr(): [ConstructorCall] call to String +# 808| Type = [VoidType] void +# 808| ValueCategory = prvalue +# 809| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 809| Type = [VoidType] void +# 809| ValueCategory = prvalue +# 809| getQualifier(): [VariableAccess] x263 +# 809| Type = [Struct] String +# 809| ValueCategory = lvalue +# 809| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 809| Conversion = [BoolConversion] conversion to bool +# 809| Type = [BoolType] bool +# 809| Value = [CStyleCast] 0 +# 809| ValueCategory = prvalue +# 810| getStmt(264): [DoStmt] do (...) ... +# 812| getCondition(): [Literal] 0 +# 812| Type = [IntType] int +# 812| Value = [Literal] 0 +# 812| ValueCategory = prvalue +# 810| getStmt(): [BlockStmt] { ... } +# 811| getStmt(0): [DeclStmt] declaration +# 811| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x264 +# 811| Type = [Struct] String +# 811| getVariable().getInitializer(): [Initializer] initializer for x264 +# 811| getExpr(): [ConstructorCall] call to String +# 811| Type = [VoidType] void +# 811| ValueCategory = prvalue +# 812| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 812| Type = [VoidType] void +# 812| ValueCategory = prvalue +# 812| getQualifier(): [VariableAccess] x264 +# 812| Type = [Struct] String +# 812| ValueCategory = lvalue +# 812| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 812| Conversion = [BoolConversion] conversion to bool +# 812| Type = [BoolType] bool +# 812| Value = [CStyleCast] 0 +# 812| ValueCategory = prvalue +# 813| getStmt(265): [DoStmt] do (...) ... +# 815| getCondition(): [Literal] 0 +# 815| Type = [IntType] int +# 815| Value = [Literal] 0 +# 815| ValueCategory = prvalue +# 813| getStmt(): [BlockStmt] { ... } +# 814| getStmt(0): [DeclStmt] declaration +# 814| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x265 +# 814| Type = [Struct] String +# 814| getVariable().getInitializer(): [Initializer] initializer for x265 +# 814| getExpr(): [ConstructorCall] call to String +# 814| Type = [VoidType] void +# 814| ValueCategory = prvalue +# 815| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 815| Type = [VoidType] void +# 815| ValueCategory = prvalue +# 815| getQualifier(): [VariableAccess] x265 +# 815| Type = [Struct] String +# 815| ValueCategory = lvalue +# 815| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 815| Conversion = [BoolConversion] conversion to bool +# 815| Type = [BoolType] bool +# 815| Value = [CStyleCast] 0 +# 815| ValueCategory = prvalue +# 816| getStmt(266): [DoStmt] do (...) ... +# 818| getCondition(): [Literal] 0 +# 818| Type = [IntType] int +# 818| Value = [Literal] 0 +# 818| ValueCategory = prvalue +# 816| getStmt(): [BlockStmt] { ... } +# 817| getStmt(0): [DeclStmt] declaration +# 817| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x266 +# 817| Type = [Struct] String +# 817| getVariable().getInitializer(): [Initializer] initializer for x266 +# 817| getExpr(): [ConstructorCall] call to String +# 817| Type = [VoidType] void +# 817| ValueCategory = prvalue +# 818| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 818| Type = [VoidType] void +# 818| ValueCategory = prvalue +# 818| getQualifier(): [VariableAccess] x266 +# 818| Type = [Struct] String +# 818| ValueCategory = lvalue +# 818| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 818| Conversion = [BoolConversion] conversion to bool +# 818| Type = [BoolType] bool +# 818| Value = [CStyleCast] 0 +# 818| ValueCategory = prvalue +# 819| getStmt(267): [DoStmt] do (...) ... +# 821| getCondition(): [Literal] 0 +# 821| Type = [IntType] int +# 821| Value = [Literal] 0 +# 821| ValueCategory = prvalue +# 819| getStmt(): [BlockStmt] { ... } +# 820| getStmt(0): [DeclStmt] declaration +# 820| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x267 +# 820| Type = [Struct] String +# 820| getVariable().getInitializer(): [Initializer] initializer for x267 +# 820| getExpr(): [ConstructorCall] call to String +# 820| Type = [VoidType] void +# 820| ValueCategory = prvalue +# 821| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 821| Type = [VoidType] void +# 821| ValueCategory = prvalue +# 821| getQualifier(): [VariableAccess] x267 +# 821| Type = [Struct] String +# 821| ValueCategory = lvalue +# 821| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 821| Conversion = [BoolConversion] conversion to bool +# 821| Type = [BoolType] bool +# 821| Value = [CStyleCast] 0 +# 821| ValueCategory = prvalue +# 822| getStmt(268): [DoStmt] do (...) ... +# 824| getCondition(): [Literal] 0 +# 824| Type = [IntType] int +# 824| Value = [Literal] 0 +# 824| ValueCategory = prvalue +# 822| getStmt(): [BlockStmt] { ... } +# 823| getStmt(0): [DeclStmt] declaration +# 823| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x268 +# 823| Type = [Struct] String +# 823| getVariable().getInitializer(): [Initializer] initializer for x268 +# 823| getExpr(): [ConstructorCall] call to String +# 823| Type = [VoidType] void +# 823| ValueCategory = prvalue +# 824| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 824| Type = [VoidType] void +# 824| ValueCategory = prvalue +# 824| getQualifier(): [VariableAccess] x268 +# 824| Type = [Struct] String +# 824| ValueCategory = lvalue +# 824| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 824| Conversion = [BoolConversion] conversion to bool +# 824| Type = [BoolType] bool +# 824| Value = [CStyleCast] 0 +# 824| ValueCategory = prvalue +# 825| getStmt(269): [DoStmt] do (...) ... +# 827| getCondition(): [Literal] 0 +# 827| Type = [IntType] int +# 827| Value = [Literal] 0 +# 827| ValueCategory = prvalue +# 825| getStmt(): [BlockStmt] { ... } +# 826| getStmt(0): [DeclStmt] declaration +# 826| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x269 +# 826| Type = [Struct] String +# 826| getVariable().getInitializer(): [Initializer] initializer for x269 +# 826| getExpr(): [ConstructorCall] call to String +# 826| Type = [VoidType] void +# 826| ValueCategory = prvalue +# 827| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 827| Type = [VoidType] void +# 827| ValueCategory = prvalue +# 827| getQualifier(): [VariableAccess] x269 +# 827| Type = [Struct] String +# 827| ValueCategory = lvalue +# 827| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 827| Conversion = [BoolConversion] conversion to bool +# 827| Type = [BoolType] bool +# 827| Value = [CStyleCast] 0 +# 827| ValueCategory = prvalue +# 828| getStmt(270): [DoStmt] do (...) ... +# 830| getCondition(): [Literal] 0 +# 830| Type = [IntType] int +# 830| Value = [Literal] 0 +# 830| ValueCategory = prvalue +# 828| getStmt(): [BlockStmt] { ... } +# 829| getStmt(0): [DeclStmt] declaration +# 829| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x270 +# 829| Type = [Struct] String +# 829| getVariable().getInitializer(): [Initializer] initializer for x270 +# 829| getExpr(): [ConstructorCall] call to String +# 829| Type = [VoidType] void +# 829| ValueCategory = prvalue +# 830| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 830| Type = [VoidType] void +# 830| ValueCategory = prvalue +# 830| getQualifier(): [VariableAccess] x270 +# 830| Type = [Struct] String +# 830| ValueCategory = lvalue +# 830| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 830| Conversion = [BoolConversion] conversion to bool +# 830| Type = [BoolType] bool +# 830| Value = [CStyleCast] 0 +# 830| ValueCategory = prvalue +# 831| getStmt(271): [DoStmt] do (...) ... +# 833| getCondition(): [Literal] 0 +# 833| Type = [IntType] int +# 833| Value = [Literal] 0 +# 833| ValueCategory = prvalue +# 831| getStmt(): [BlockStmt] { ... } +# 832| getStmt(0): [DeclStmt] declaration +# 832| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x271 +# 832| Type = [Struct] String +# 832| getVariable().getInitializer(): [Initializer] initializer for x271 +# 832| getExpr(): [ConstructorCall] call to String +# 832| Type = [VoidType] void +# 832| ValueCategory = prvalue +# 833| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 833| Type = [VoidType] void +# 833| ValueCategory = prvalue +# 833| getQualifier(): [VariableAccess] x271 +# 833| Type = [Struct] String +# 833| ValueCategory = lvalue +# 833| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 833| Conversion = [BoolConversion] conversion to bool +# 833| Type = [BoolType] bool +# 833| Value = [CStyleCast] 0 +# 833| ValueCategory = prvalue +# 834| getStmt(272): [DoStmt] do (...) ... +# 836| getCondition(): [Literal] 0 +# 836| Type = [IntType] int +# 836| Value = [Literal] 0 +# 836| ValueCategory = prvalue +# 834| getStmt(): [BlockStmt] { ... } +# 835| getStmt(0): [DeclStmt] declaration +# 835| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x272 +# 835| Type = [Struct] String +# 835| getVariable().getInitializer(): [Initializer] initializer for x272 +# 835| getExpr(): [ConstructorCall] call to String +# 835| Type = [VoidType] void +# 835| ValueCategory = prvalue +# 836| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 836| Type = [VoidType] void +# 836| ValueCategory = prvalue +# 836| getQualifier(): [VariableAccess] x272 +# 836| Type = [Struct] String +# 836| ValueCategory = lvalue +# 836| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 836| Conversion = [BoolConversion] conversion to bool +# 836| Type = [BoolType] bool +# 836| Value = [CStyleCast] 0 +# 836| ValueCategory = prvalue +# 837| getStmt(273): [DoStmt] do (...) ... +# 839| getCondition(): [Literal] 0 +# 839| Type = [IntType] int +# 839| Value = [Literal] 0 +# 839| ValueCategory = prvalue +# 837| getStmt(): [BlockStmt] { ... } +# 838| getStmt(0): [DeclStmt] declaration +# 838| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x273 +# 838| Type = [Struct] String +# 838| getVariable().getInitializer(): [Initializer] initializer for x273 +# 838| getExpr(): [ConstructorCall] call to String +# 838| Type = [VoidType] void +# 838| ValueCategory = prvalue +# 839| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 839| Type = [VoidType] void +# 839| ValueCategory = prvalue +# 839| getQualifier(): [VariableAccess] x273 +# 839| Type = [Struct] String +# 839| ValueCategory = lvalue +# 839| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 839| Conversion = [BoolConversion] conversion to bool +# 839| Type = [BoolType] bool +# 839| Value = [CStyleCast] 0 +# 839| ValueCategory = prvalue +# 840| getStmt(274): [DoStmt] do (...) ... +# 842| getCondition(): [Literal] 0 +# 842| Type = [IntType] int +# 842| Value = [Literal] 0 +# 842| ValueCategory = prvalue +# 840| getStmt(): [BlockStmt] { ... } +# 841| getStmt(0): [DeclStmt] declaration +# 841| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x274 +# 841| Type = [Struct] String +# 841| getVariable().getInitializer(): [Initializer] initializer for x274 +# 841| getExpr(): [ConstructorCall] call to String +# 841| Type = [VoidType] void +# 841| ValueCategory = prvalue +# 842| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 842| Type = [VoidType] void +# 842| ValueCategory = prvalue +# 842| getQualifier(): [VariableAccess] x274 +# 842| Type = [Struct] String +# 842| ValueCategory = lvalue +# 842| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 842| Conversion = [BoolConversion] conversion to bool +# 842| Type = [BoolType] bool +# 842| Value = [CStyleCast] 0 +# 842| ValueCategory = prvalue +# 843| getStmt(275): [DoStmt] do (...) ... +# 845| getCondition(): [Literal] 0 +# 845| Type = [IntType] int +# 845| Value = [Literal] 0 +# 845| ValueCategory = prvalue +# 843| getStmt(): [BlockStmt] { ... } +# 844| getStmt(0): [DeclStmt] declaration +# 844| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x275 +# 844| Type = [Struct] String +# 844| getVariable().getInitializer(): [Initializer] initializer for x275 +# 844| getExpr(): [ConstructorCall] call to String +# 844| Type = [VoidType] void +# 844| ValueCategory = prvalue +# 845| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 845| Type = [VoidType] void +# 845| ValueCategory = prvalue +# 845| getQualifier(): [VariableAccess] x275 +# 845| Type = [Struct] String +# 845| ValueCategory = lvalue +# 845| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 845| Conversion = [BoolConversion] conversion to bool +# 845| Type = [BoolType] bool +# 845| Value = [CStyleCast] 0 +# 845| ValueCategory = prvalue +# 846| getStmt(276): [DoStmt] do (...) ... +# 848| getCondition(): [Literal] 0 +# 848| Type = [IntType] int +# 848| Value = [Literal] 0 +# 848| ValueCategory = prvalue +# 846| getStmt(): [BlockStmt] { ... } +# 847| getStmt(0): [DeclStmt] declaration +# 847| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x276 +# 847| Type = [Struct] String +# 847| getVariable().getInitializer(): [Initializer] initializer for x276 +# 847| getExpr(): [ConstructorCall] call to String +# 847| Type = [VoidType] void +# 847| ValueCategory = prvalue +# 848| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 848| Type = [VoidType] void +# 848| ValueCategory = prvalue +# 848| getQualifier(): [VariableAccess] x276 +# 848| Type = [Struct] String +# 848| ValueCategory = lvalue +# 848| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 848| Conversion = [BoolConversion] conversion to bool +# 848| Type = [BoolType] bool +# 848| Value = [CStyleCast] 0 +# 848| ValueCategory = prvalue +# 849| getStmt(277): [DoStmt] do (...) ... +# 851| getCondition(): [Literal] 0 +# 851| Type = [IntType] int +# 851| Value = [Literal] 0 +# 851| ValueCategory = prvalue +# 849| getStmt(): [BlockStmt] { ... } +# 850| getStmt(0): [DeclStmt] declaration +# 850| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x277 +# 850| Type = [Struct] String +# 850| getVariable().getInitializer(): [Initializer] initializer for x277 +# 850| getExpr(): [ConstructorCall] call to String +# 850| Type = [VoidType] void +# 850| ValueCategory = prvalue +# 851| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 851| Type = [VoidType] void +# 851| ValueCategory = prvalue +# 851| getQualifier(): [VariableAccess] x277 +# 851| Type = [Struct] String +# 851| ValueCategory = lvalue +# 851| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 851| Conversion = [BoolConversion] conversion to bool +# 851| Type = [BoolType] bool +# 851| Value = [CStyleCast] 0 +# 851| ValueCategory = prvalue +# 852| getStmt(278): [DoStmt] do (...) ... +# 854| getCondition(): [Literal] 0 +# 854| Type = [IntType] int +# 854| Value = [Literal] 0 +# 854| ValueCategory = prvalue +# 852| getStmt(): [BlockStmt] { ... } +# 853| getStmt(0): [DeclStmt] declaration +# 853| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x278 +# 853| Type = [Struct] String +# 853| getVariable().getInitializer(): [Initializer] initializer for x278 +# 853| getExpr(): [ConstructorCall] call to String +# 853| Type = [VoidType] void +# 853| ValueCategory = prvalue +# 854| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 854| Type = [VoidType] void +# 854| ValueCategory = prvalue +# 854| getQualifier(): [VariableAccess] x278 +# 854| Type = [Struct] String +# 854| ValueCategory = lvalue +# 854| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 854| Conversion = [BoolConversion] conversion to bool +# 854| Type = [BoolType] bool +# 854| Value = [CStyleCast] 0 +# 854| ValueCategory = prvalue +# 855| getStmt(279): [DoStmt] do (...) ... +# 857| getCondition(): [Literal] 0 +# 857| Type = [IntType] int +# 857| Value = [Literal] 0 +# 857| ValueCategory = prvalue +# 855| getStmt(): [BlockStmt] { ... } +# 856| getStmt(0): [DeclStmt] declaration +# 856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x279 +# 856| Type = [Struct] String +# 856| getVariable().getInitializer(): [Initializer] initializer for x279 +# 856| getExpr(): [ConstructorCall] call to String +# 856| Type = [VoidType] void +# 856| ValueCategory = prvalue +# 857| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 857| Type = [VoidType] void +# 857| ValueCategory = prvalue +# 857| getQualifier(): [VariableAccess] x279 +# 857| Type = [Struct] String +# 857| ValueCategory = lvalue +# 857| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 857| Conversion = [BoolConversion] conversion to bool +# 857| Type = [BoolType] bool +# 857| Value = [CStyleCast] 0 +# 857| ValueCategory = prvalue +# 858| getStmt(280): [DoStmt] do (...) ... +# 860| getCondition(): [Literal] 0 +# 860| Type = [IntType] int +# 860| Value = [Literal] 0 +# 860| ValueCategory = prvalue +# 858| getStmt(): [BlockStmt] { ... } +# 859| getStmt(0): [DeclStmt] declaration +# 859| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x280 +# 859| Type = [Struct] String +# 859| getVariable().getInitializer(): [Initializer] initializer for x280 +# 859| getExpr(): [ConstructorCall] call to String +# 859| Type = [VoidType] void +# 859| ValueCategory = prvalue +# 860| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 860| Type = [VoidType] void +# 860| ValueCategory = prvalue +# 860| getQualifier(): [VariableAccess] x280 +# 860| Type = [Struct] String +# 860| ValueCategory = lvalue +# 860| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 860| Conversion = [BoolConversion] conversion to bool +# 860| Type = [BoolType] bool +# 860| Value = [CStyleCast] 0 +# 860| ValueCategory = prvalue +# 861| getStmt(281): [DoStmt] do (...) ... +# 863| getCondition(): [Literal] 0 +# 863| Type = [IntType] int +# 863| Value = [Literal] 0 +# 863| ValueCategory = prvalue +# 861| getStmt(): [BlockStmt] { ... } +# 862| getStmt(0): [DeclStmt] declaration +# 862| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x281 +# 862| Type = [Struct] String +# 862| getVariable().getInitializer(): [Initializer] initializer for x281 +# 862| getExpr(): [ConstructorCall] call to String +# 862| Type = [VoidType] void +# 862| ValueCategory = prvalue +# 863| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 863| Type = [VoidType] void +# 863| ValueCategory = prvalue +# 863| getQualifier(): [VariableAccess] x281 +# 863| Type = [Struct] String +# 863| ValueCategory = lvalue +# 863| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 863| Conversion = [BoolConversion] conversion to bool +# 863| Type = [BoolType] bool +# 863| Value = [CStyleCast] 0 +# 863| ValueCategory = prvalue +# 864| getStmt(282): [DoStmt] do (...) ... +# 866| getCondition(): [Literal] 0 +# 866| Type = [IntType] int +# 866| Value = [Literal] 0 +# 866| ValueCategory = prvalue +# 864| getStmt(): [BlockStmt] { ... } +# 865| getStmt(0): [DeclStmt] declaration +# 865| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x282 +# 865| Type = [Struct] String +# 865| getVariable().getInitializer(): [Initializer] initializer for x282 +# 865| getExpr(): [ConstructorCall] call to String +# 865| Type = [VoidType] void +# 865| ValueCategory = prvalue +# 866| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 866| Type = [VoidType] void +# 866| ValueCategory = prvalue +# 866| getQualifier(): [VariableAccess] x282 +# 866| Type = [Struct] String +# 866| ValueCategory = lvalue +# 866| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 866| Conversion = [BoolConversion] conversion to bool +# 866| Type = [BoolType] bool +# 866| Value = [CStyleCast] 0 +# 866| ValueCategory = prvalue +# 867| getStmt(283): [DoStmt] do (...) ... +# 869| getCondition(): [Literal] 0 +# 869| Type = [IntType] int +# 869| Value = [Literal] 0 +# 869| ValueCategory = prvalue +# 867| getStmt(): [BlockStmt] { ... } +# 868| getStmt(0): [DeclStmt] declaration +# 868| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x283 +# 868| Type = [Struct] String +# 868| getVariable().getInitializer(): [Initializer] initializer for x283 +# 868| getExpr(): [ConstructorCall] call to String +# 868| Type = [VoidType] void +# 868| ValueCategory = prvalue +# 869| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 869| Type = [VoidType] void +# 869| ValueCategory = prvalue +# 869| getQualifier(): [VariableAccess] x283 +# 869| Type = [Struct] String +# 869| ValueCategory = lvalue +# 869| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 869| Conversion = [BoolConversion] conversion to bool +# 869| Type = [BoolType] bool +# 869| Value = [CStyleCast] 0 +# 869| ValueCategory = prvalue +# 870| getStmt(284): [DoStmt] do (...) ... +# 872| getCondition(): [Literal] 0 +# 872| Type = [IntType] int +# 872| Value = [Literal] 0 +# 872| ValueCategory = prvalue +# 870| getStmt(): [BlockStmt] { ... } +# 871| getStmt(0): [DeclStmt] declaration +# 871| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x284 +# 871| Type = [Struct] String +# 871| getVariable().getInitializer(): [Initializer] initializer for x284 +# 871| getExpr(): [ConstructorCall] call to String +# 871| Type = [VoidType] void +# 871| ValueCategory = prvalue +# 872| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 872| Type = [VoidType] void +# 872| ValueCategory = prvalue +# 872| getQualifier(): [VariableAccess] x284 +# 872| Type = [Struct] String +# 872| ValueCategory = lvalue +# 872| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 872| Conversion = [BoolConversion] conversion to bool +# 872| Type = [BoolType] bool +# 872| Value = [CStyleCast] 0 +# 872| ValueCategory = prvalue +# 873| getStmt(285): [DoStmt] do (...) ... +# 875| getCondition(): [Literal] 0 +# 875| Type = [IntType] int +# 875| Value = [Literal] 0 +# 875| ValueCategory = prvalue +# 873| getStmt(): [BlockStmt] { ... } +# 874| getStmt(0): [DeclStmt] declaration +# 874| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x285 +# 874| Type = [Struct] String +# 874| getVariable().getInitializer(): [Initializer] initializer for x285 +# 874| getExpr(): [ConstructorCall] call to String +# 874| Type = [VoidType] void +# 874| ValueCategory = prvalue +# 875| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 875| Type = [VoidType] void +# 875| ValueCategory = prvalue +# 875| getQualifier(): [VariableAccess] x285 +# 875| Type = [Struct] String +# 875| ValueCategory = lvalue +# 875| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 875| Conversion = [BoolConversion] conversion to bool +# 875| Type = [BoolType] bool +# 875| Value = [CStyleCast] 0 +# 875| ValueCategory = prvalue +# 876| getStmt(286): [DoStmt] do (...) ... +# 878| getCondition(): [Literal] 0 +# 878| Type = [IntType] int +# 878| Value = [Literal] 0 +# 878| ValueCategory = prvalue +# 876| getStmt(): [BlockStmt] { ... } +# 877| getStmt(0): [DeclStmt] declaration +# 877| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x286 +# 877| Type = [Struct] String +# 877| getVariable().getInitializer(): [Initializer] initializer for x286 +# 877| getExpr(): [ConstructorCall] call to String +# 877| Type = [VoidType] void +# 877| ValueCategory = prvalue +# 878| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 878| Type = [VoidType] void +# 878| ValueCategory = prvalue +# 878| getQualifier(): [VariableAccess] x286 +# 878| Type = [Struct] String +# 878| ValueCategory = lvalue +# 878| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 878| Conversion = [BoolConversion] conversion to bool +# 878| Type = [BoolType] bool +# 878| Value = [CStyleCast] 0 +# 878| ValueCategory = prvalue +# 879| getStmt(287): [DoStmt] do (...) ... +# 881| getCondition(): [Literal] 0 +# 881| Type = [IntType] int +# 881| Value = [Literal] 0 +# 881| ValueCategory = prvalue +# 879| getStmt(): [BlockStmt] { ... } +# 880| getStmt(0): [DeclStmt] declaration +# 880| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x287 +# 880| Type = [Struct] String +# 880| getVariable().getInitializer(): [Initializer] initializer for x287 +# 880| getExpr(): [ConstructorCall] call to String +# 880| Type = [VoidType] void +# 880| ValueCategory = prvalue +# 881| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 881| Type = [VoidType] void +# 881| ValueCategory = prvalue +# 881| getQualifier(): [VariableAccess] x287 +# 881| Type = [Struct] String +# 881| ValueCategory = lvalue +# 881| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 881| Conversion = [BoolConversion] conversion to bool +# 881| Type = [BoolType] bool +# 881| Value = [CStyleCast] 0 +# 881| ValueCategory = prvalue +# 882| getStmt(288): [DoStmt] do (...) ... +# 884| getCondition(): [Literal] 0 +# 884| Type = [IntType] int +# 884| Value = [Literal] 0 +# 884| ValueCategory = prvalue +# 882| getStmt(): [BlockStmt] { ... } +# 883| getStmt(0): [DeclStmt] declaration +# 883| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x288 +# 883| Type = [Struct] String +# 883| getVariable().getInitializer(): [Initializer] initializer for x288 +# 883| getExpr(): [ConstructorCall] call to String +# 883| Type = [VoidType] void +# 883| ValueCategory = prvalue +# 884| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 884| Type = [VoidType] void +# 884| ValueCategory = prvalue +# 884| getQualifier(): [VariableAccess] x288 +# 884| Type = [Struct] String +# 884| ValueCategory = lvalue +# 884| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 884| Conversion = [BoolConversion] conversion to bool +# 884| Type = [BoolType] bool +# 884| Value = [CStyleCast] 0 +# 884| ValueCategory = prvalue +# 885| getStmt(289): [DoStmt] do (...) ... +# 887| getCondition(): [Literal] 0 +# 887| Type = [IntType] int +# 887| Value = [Literal] 0 +# 887| ValueCategory = prvalue +# 885| getStmt(): [BlockStmt] { ... } +# 886| getStmt(0): [DeclStmt] declaration +# 886| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x289 +# 886| Type = [Struct] String +# 886| getVariable().getInitializer(): [Initializer] initializer for x289 +# 886| getExpr(): [ConstructorCall] call to String +# 886| Type = [VoidType] void +# 886| ValueCategory = prvalue +# 887| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 887| Type = [VoidType] void +# 887| ValueCategory = prvalue +# 887| getQualifier(): [VariableAccess] x289 +# 887| Type = [Struct] String +# 887| ValueCategory = lvalue +# 887| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 887| Conversion = [BoolConversion] conversion to bool +# 887| Type = [BoolType] bool +# 887| Value = [CStyleCast] 0 +# 887| ValueCategory = prvalue +# 888| getStmt(290): [DoStmt] do (...) ... +# 890| getCondition(): [Literal] 0 +# 890| Type = [IntType] int +# 890| Value = [Literal] 0 +# 890| ValueCategory = prvalue +# 888| getStmt(): [BlockStmt] { ... } +# 889| getStmt(0): [DeclStmt] declaration +# 889| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x290 +# 889| Type = [Struct] String +# 889| getVariable().getInitializer(): [Initializer] initializer for x290 +# 889| getExpr(): [ConstructorCall] call to String +# 889| Type = [VoidType] void +# 889| ValueCategory = prvalue +# 890| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 890| Type = [VoidType] void +# 890| ValueCategory = prvalue +# 890| getQualifier(): [VariableAccess] x290 +# 890| Type = [Struct] String +# 890| ValueCategory = lvalue +# 890| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 890| Conversion = [BoolConversion] conversion to bool +# 890| Type = [BoolType] bool +# 890| Value = [CStyleCast] 0 +# 890| ValueCategory = prvalue +# 891| getStmt(291): [DoStmt] do (...) ... +# 893| getCondition(): [Literal] 0 +# 893| Type = [IntType] int +# 893| Value = [Literal] 0 +# 893| ValueCategory = prvalue +# 891| getStmt(): [BlockStmt] { ... } +# 892| getStmt(0): [DeclStmt] declaration +# 892| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x291 +# 892| Type = [Struct] String +# 892| getVariable().getInitializer(): [Initializer] initializer for x291 +# 892| getExpr(): [ConstructorCall] call to String +# 892| Type = [VoidType] void +# 892| ValueCategory = prvalue +# 893| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 893| Type = [VoidType] void +# 893| ValueCategory = prvalue +# 893| getQualifier(): [VariableAccess] x291 +# 893| Type = [Struct] String +# 893| ValueCategory = lvalue +# 893| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 893| Conversion = [BoolConversion] conversion to bool +# 893| Type = [BoolType] bool +# 893| Value = [CStyleCast] 0 +# 893| ValueCategory = prvalue +# 894| getStmt(292): [DoStmt] do (...) ... +# 896| getCondition(): [Literal] 0 +# 896| Type = [IntType] int +# 896| Value = [Literal] 0 +# 896| ValueCategory = prvalue +# 894| getStmt(): [BlockStmt] { ... } +# 895| getStmt(0): [DeclStmt] declaration +# 895| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x292 +# 895| Type = [Struct] String +# 895| getVariable().getInitializer(): [Initializer] initializer for x292 +# 895| getExpr(): [ConstructorCall] call to String +# 895| Type = [VoidType] void +# 895| ValueCategory = prvalue +# 896| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 896| Type = [VoidType] void +# 896| ValueCategory = prvalue +# 896| getQualifier(): [VariableAccess] x292 +# 896| Type = [Struct] String +# 896| ValueCategory = lvalue +# 896| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 896| Conversion = [BoolConversion] conversion to bool +# 896| Type = [BoolType] bool +# 896| Value = [CStyleCast] 0 +# 896| ValueCategory = prvalue +# 897| getStmt(293): [DoStmt] do (...) ... +# 899| getCondition(): [Literal] 0 +# 899| Type = [IntType] int +# 899| Value = [Literal] 0 +# 899| ValueCategory = prvalue +# 897| getStmt(): [BlockStmt] { ... } +# 898| getStmt(0): [DeclStmt] declaration +# 898| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x293 +# 898| Type = [Struct] String +# 898| getVariable().getInitializer(): [Initializer] initializer for x293 +# 898| getExpr(): [ConstructorCall] call to String +# 898| Type = [VoidType] void +# 898| ValueCategory = prvalue +# 899| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 899| Type = [VoidType] void +# 899| ValueCategory = prvalue +# 899| getQualifier(): [VariableAccess] x293 +# 899| Type = [Struct] String +# 899| ValueCategory = lvalue +# 899| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 899| Conversion = [BoolConversion] conversion to bool +# 899| Type = [BoolType] bool +# 899| Value = [CStyleCast] 0 +# 899| ValueCategory = prvalue +# 900| getStmt(294): [DoStmt] do (...) ... +# 902| getCondition(): [Literal] 0 +# 902| Type = [IntType] int +# 902| Value = [Literal] 0 +# 902| ValueCategory = prvalue +# 900| getStmt(): [BlockStmt] { ... } +# 901| getStmt(0): [DeclStmt] declaration +# 901| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x294 +# 901| Type = [Struct] String +# 901| getVariable().getInitializer(): [Initializer] initializer for x294 +# 901| getExpr(): [ConstructorCall] call to String +# 901| Type = [VoidType] void +# 901| ValueCategory = prvalue +# 902| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 902| Type = [VoidType] void +# 902| ValueCategory = prvalue +# 902| getQualifier(): [VariableAccess] x294 +# 902| Type = [Struct] String +# 902| ValueCategory = lvalue +# 902| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 902| Conversion = [BoolConversion] conversion to bool +# 902| Type = [BoolType] bool +# 902| Value = [CStyleCast] 0 +# 902| ValueCategory = prvalue +# 903| getStmt(295): [DoStmt] do (...) ... +# 905| getCondition(): [Literal] 0 +# 905| Type = [IntType] int +# 905| Value = [Literal] 0 +# 905| ValueCategory = prvalue +# 903| getStmt(): [BlockStmt] { ... } +# 904| getStmt(0): [DeclStmt] declaration +# 904| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x295 +# 904| Type = [Struct] String +# 904| getVariable().getInitializer(): [Initializer] initializer for x295 +# 904| getExpr(): [ConstructorCall] call to String +# 904| Type = [VoidType] void +# 904| ValueCategory = prvalue +# 905| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 905| Type = [VoidType] void +# 905| ValueCategory = prvalue +# 905| getQualifier(): [VariableAccess] x295 +# 905| Type = [Struct] String +# 905| ValueCategory = lvalue +# 905| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 905| Conversion = [BoolConversion] conversion to bool +# 905| Type = [BoolType] bool +# 905| Value = [CStyleCast] 0 +# 905| ValueCategory = prvalue +# 906| getStmt(296): [DoStmt] do (...) ... +# 908| getCondition(): [Literal] 0 +# 908| Type = [IntType] int +# 908| Value = [Literal] 0 +# 908| ValueCategory = prvalue +# 906| getStmt(): [BlockStmt] { ... } +# 907| getStmt(0): [DeclStmt] declaration +# 907| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x296 +# 907| Type = [Struct] String +# 907| getVariable().getInitializer(): [Initializer] initializer for x296 +# 907| getExpr(): [ConstructorCall] call to String +# 907| Type = [VoidType] void +# 907| ValueCategory = prvalue +# 908| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 908| Type = [VoidType] void +# 908| ValueCategory = prvalue +# 908| getQualifier(): [VariableAccess] x296 +# 908| Type = [Struct] String +# 908| ValueCategory = lvalue +# 908| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 908| Conversion = [BoolConversion] conversion to bool +# 908| Type = [BoolType] bool +# 908| Value = [CStyleCast] 0 +# 908| ValueCategory = prvalue +# 909| getStmt(297): [DoStmt] do (...) ... +# 911| getCondition(): [Literal] 0 +# 911| Type = [IntType] int +# 911| Value = [Literal] 0 +# 911| ValueCategory = prvalue +# 909| getStmt(): [BlockStmt] { ... } +# 910| getStmt(0): [DeclStmt] declaration +# 910| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x297 +# 910| Type = [Struct] String +# 910| getVariable().getInitializer(): [Initializer] initializer for x297 +# 910| getExpr(): [ConstructorCall] call to String +# 910| Type = [VoidType] void +# 910| ValueCategory = prvalue +# 911| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 911| Type = [VoidType] void +# 911| ValueCategory = prvalue +# 911| getQualifier(): [VariableAccess] x297 +# 911| Type = [Struct] String +# 911| ValueCategory = lvalue +# 911| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 911| Conversion = [BoolConversion] conversion to bool +# 911| Type = [BoolType] bool +# 911| Value = [CStyleCast] 0 +# 911| ValueCategory = prvalue +# 912| getStmt(298): [DoStmt] do (...) ... +# 914| getCondition(): [Literal] 0 +# 914| Type = [IntType] int +# 914| Value = [Literal] 0 +# 914| ValueCategory = prvalue +# 912| getStmt(): [BlockStmt] { ... } +# 913| getStmt(0): [DeclStmt] declaration +# 913| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x298 +# 913| Type = [Struct] String +# 913| getVariable().getInitializer(): [Initializer] initializer for x298 +# 913| getExpr(): [ConstructorCall] call to String +# 913| Type = [VoidType] void +# 913| ValueCategory = prvalue +# 914| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 914| Type = [VoidType] void +# 914| ValueCategory = prvalue +# 914| getQualifier(): [VariableAccess] x298 +# 914| Type = [Struct] String +# 914| ValueCategory = lvalue +# 914| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 914| Conversion = [BoolConversion] conversion to bool +# 914| Type = [BoolType] bool +# 914| Value = [CStyleCast] 0 +# 914| ValueCategory = prvalue +# 915| getStmt(299): [DoStmt] do (...) ... +# 917| getCondition(): [Literal] 0 +# 917| Type = [IntType] int +# 917| Value = [Literal] 0 +# 917| ValueCategory = prvalue +# 915| getStmt(): [BlockStmt] { ... } +# 916| getStmt(0): [DeclStmt] declaration +# 916| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x299 +# 916| Type = [Struct] String +# 916| getVariable().getInitializer(): [Initializer] initializer for x299 +# 916| getExpr(): [ConstructorCall] call to String +# 916| Type = [VoidType] void +# 916| ValueCategory = prvalue +# 917| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 917| Type = [VoidType] void +# 917| ValueCategory = prvalue +# 917| getQualifier(): [VariableAccess] x299 +# 917| Type = [Struct] String +# 917| ValueCategory = lvalue +# 917| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 917| Conversion = [BoolConversion] conversion to bool +# 917| Type = [BoolType] bool +# 917| Value = [CStyleCast] 0 +# 917| ValueCategory = prvalue +# 918| getStmt(300): [DoStmt] do (...) ... +# 920| getCondition(): [Literal] 0 +# 920| Type = [IntType] int +# 920| Value = [Literal] 0 +# 920| ValueCategory = prvalue +# 918| getStmt(): [BlockStmt] { ... } +# 919| getStmt(0): [DeclStmt] declaration +# 919| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x300 +# 919| Type = [Struct] String +# 919| getVariable().getInitializer(): [Initializer] initializer for x300 +# 919| getExpr(): [ConstructorCall] call to String +# 919| Type = [VoidType] void +# 919| ValueCategory = prvalue +# 920| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 920| Type = [VoidType] void +# 920| ValueCategory = prvalue +# 920| getQualifier(): [VariableAccess] x300 +# 920| Type = [Struct] String +# 920| ValueCategory = lvalue +# 920| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 920| Conversion = [BoolConversion] conversion to bool +# 920| Type = [BoolType] bool +# 920| Value = [CStyleCast] 0 +# 920| ValueCategory = prvalue +# 921| getStmt(301): [DoStmt] do (...) ... +# 923| getCondition(): [Literal] 0 +# 923| Type = [IntType] int +# 923| Value = [Literal] 0 +# 923| ValueCategory = prvalue +# 921| getStmt(): [BlockStmt] { ... } +# 922| getStmt(0): [DeclStmt] declaration +# 922| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x301 +# 922| Type = [Struct] String +# 922| getVariable().getInitializer(): [Initializer] initializer for x301 +# 922| getExpr(): [ConstructorCall] call to String +# 922| Type = [VoidType] void +# 922| ValueCategory = prvalue +# 923| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 923| Type = [VoidType] void +# 923| ValueCategory = prvalue +# 923| getQualifier(): [VariableAccess] x301 +# 923| Type = [Struct] String +# 923| ValueCategory = lvalue +# 923| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 923| Conversion = [BoolConversion] conversion to bool +# 923| Type = [BoolType] bool +# 923| Value = [CStyleCast] 0 +# 923| ValueCategory = prvalue +# 924| getStmt(302): [DoStmt] do (...) ... +# 926| getCondition(): [Literal] 0 +# 926| Type = [IntType] int +# 926| Value = [Literal] 0 +# 926| ValueCategory = prvalue +# 924| getStmt(): [BlockStmt] { ... } +# 925| getStmt(0): [DeclStmt] declaration +# 925| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x302 +# 925| Type = [Struct] String +# 925| getVariable().getInitializer(): [Initializer] initializer for x302 +# 925| getExpr(): [ConstructorCall] call to String +# 925| Type = [VoidType] void +# 925| ValueCategory = prvalue +# 926| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 926| Type = [VoidType] void +# 926| ValueCategory = prvalue +# 926| getQualifier(): [VariableAccess] x302 +# 926| Type = [Struct] String +# 926| ValueCategory = lvalue +# 926| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 926| Conversion = [BoolConversion] conversion to bool +# 926| Type = [BoolType] bool +# 926| Value = [CStyleCast] 0 +# 926| ValueCategory = prvalue +# 927| getStmt(303): [DoStmt] do (...) ... +# 929| getCondition(): [Literal] 0 +# 929| Type = [IntType] int +# 929| Value = [Literal] 0 +# 929| ValueCategory = prvalue +# 927| getStmt(): [BlockStmt] { ... } +# 928| getStmt(0): [DeclStmt] declaration +# 928| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x303 +# 928| Type = [Struct] String +# 928| getVariable().getInitializer(): [Initializer] initializer for x303 +# 928| getExpr(): [ConstructorCall] call to String +# 928| Type = [VoidType] void +# 928| ValueCategory = prvalue +# 929| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 929| Type = [VoidType] void +# 929| ValueCategory = prvalue +# 929| getQualifier(): [VariableAccess] x303 +# 929| Type = [Struct] String +# 929| ValueCategory = lvalue +# 929| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 929| Conversion = [BoolConversion] conversion to bool +# 929| Type = [BoolType] bool +# 929| Value = [CStyleCast] 0 +# 929| ValueCategory = prvalue +# 930| getStmt(304): [DoStmt] do (...) ... +# 932| getCondition(): [Literal] 0 +# 932| Type = [IntType] int +# 932| Value = [Literal] 0 +# 932| ValueCategory = prvalue +# 930| getStmt(): [BlockStmt] { ... } +# 931| getStmt(0): [DeclStmt] declaration +# 931| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x304 +# 931| Type = [Struct] String +# 931| getVariable().getInitializer(): [Initializer] initializer for x304 +# 931| getExpr(): [ConstructorCall] call to String +# 931| Type = [VoidType] void +# 931| ValueCategory = prvalue +# 932| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 932| Type = [VoidType] void +# 932| ValueCategory = prvalue +# 932| getQualifier(): [VariableAccess] x304 +# 932| Type = [Struct] String +# 932| ValueCategory = lvalue +# 932| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 932| Conversion = [BoolConversion] conversion to bool +# 932| Type = [BoolType] bool +# 932| Value = [CStyleCast] 0 +# 932| ValueCategory = prvalue +# 933| getStmt(305): [DoStmt] do (...) ... +# 935| getCondition(): [Literal] 0 +# 935| Type = [IntType] int +# 935| Value = [Literal] 0 +# 935| ValueCategory = prvalue +# 933| getStmt(): [BlockStmt] { ... } +# 934| getStmt(0): [DeclStmt] declaration +# 934| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x305 +# 934| Type = [Struct] String +# 934| getVariable().getInitializer(): [Initializer] initializer for x305 +# 934| getExpr(): [ConstructorCall] call to String +# 934| Type = [VoidType] void +# 934| ValueCategory = prvalue +# 935| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 935| Type = [VoidType] void +# 935| ValueCategory = prvalue +# 935| getQualifier(): [VariableAccess] x305 +# 935| Type = [Struct] String +# 935| ValueCategory = lvalue +# 935| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 935| Conversion = [BoolConversion] conversion to bool +# 935| Type = [BoolType] bool +# 935| Value = [CStyleCast] 0 +# 935| ValueCategory = prvalue +# 936| getStmt(306): [DoStmt] do (...) ... +# 938| getCondition(): [Literal] 0 +# 938| Type = [IntType] int +# 938| Value = [Literal] 0 +# 938| ValueCategory = prvalue +# 936| getStmt(): [BlockStmt] { ... } +# 937| getStmt(0): [DeclStmt] declaration +# 937| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x306 +# 937| Type = [Struct] String +# 937| getVariable().getInitializer(): [Initializer] initializer for x306 +# 937| getExpr(): [ConstructorCall] call to String +# 937| Type = [VoidType] void +# 937| ValueCategory = prvalue +# 938| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 938| Type = [VoidType] void +# 938| ValueCategory = prvalue +# 938| getQualifier(): [VariableAccess] x306 +# 938| Type = [Struct] String +# 938| ValueCategory = lvalue +# 938| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 938| Conversion = [BoolConversion] conversion to bool +# 938| Type = [BoolType] bool +# 938| Value = [CStyleCast] 0 +# 938| ValueCategory = prvalue +# 939| getStmt(307): [DoStmt] do (...) ... +# 941| getCondition(): [Literal] 0 +# 941| Type = [IntType] int +# 941| Value = [Literal] 0 +# 941| ValueCategory = prvalue +# 939| getStmt(): [BlockStmt] { ... } +# 940| getStmt(0): [DeclStmt] declaration +# 940| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x307 +# 940| Type = [Struct] String +# 940| getVariable().getInitializer(): [Initializer] initializer for x307 +# 940| getExpr(): [ConstructorCall] call to String +# 940| Type = [VoidType] void +# 940| ValueCategory = prvalue +# 941| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 941| Type = [VoidType] void +# 941| ValueCategory = prvalue +# 941| getQualifier(): [VariableAccess] x307 +# 941| Type = [Struct] String +# 941| ValueCategory = lvalue +# 941| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 941| Conversion = [BoolConversion] conversion to bool +# 941| Type = [BoolType] bool +# 941| Value = [CStyleCast] 0 +# 941| ValueCategory = prvalue +# 942| getStmt(308): [DoStmt] do (...) ... +# 944| getCondition(): [Literal] 0 +# 944| Type = [IntType] int +# 944| Value = [Literal] 0 +# 944| ValueCategory = prvalue +# 942| getStmt(): [BlockStmt] { ... } +# 943| getStmt(0): [DeclStmt] declaration +# 943| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x308 +# 943| Type = [Struct] String +# 943| getVariable().getInitializer(): [Initializer] initializer for x308 +# 943| getExpr(): [ConstructorCall] call to String +# 943| Type = [VoidType] void +# 943| ValueCategory = prvalue +# 944| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 944| Type = [VoidType] void +# 944| ValueCategory = prvalue +# 944| getQualifier(): [VariableAccess] x308 +# 944| Type = [Struct] String +# 944| ValueCategory = lvalue +# 944| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 944| Conversion = [BoolConversion] conversion to bool +# 944| Type = [BoolType] bool +# 944| Value = [CStyleCast] 0 +# 944| ValueCategory = prvalue +# 945| getStmt(309): [DoStmt] do (...) ... +# 947| getCondition(): [Literal] 0 +# 947| Type = [IntType] int +# 947| Value = [Literal] 0 +# 947| ValueCategory = prvalue +# 945| getStmt(): [BlockStmt] { ... } +# 946| getStmt(0): [DeclStmt] declaration +# 946| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x309 +# 946| Type = [Struct] String +# 946| getVariable().getInitializer(): [Initializer] initializer for x309 +# 946| getExpr(): [ConstructorCall] call to String +# 946| Type = [VoidType] void +# 946| ValueCategory = prvalue +# 947| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 947| Type = [VoidType] void +# 947| ValueCategory = prvalue +# 947| getQualifier(): [VariableAccess] x309 +# 947| Type = [Struct] String +# 947| ValueCategory = lvalue +# 947| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 947| Conversion = [BoolConversion] conversion to bool +# 947| Type = [BoolType] bool +# 947| Value = [CStyleCast] 0 +# 947| ValueCategory = prvalue +# 948| getStmt(310): [DoStmt] do (...) ... +# 950| getCondition(): [Literal] 0 +# 950| Type = [IntType] int +# 950| Value = [Literal] 0 +# 950| ValueCategory = prvalue +# 948| getStmt(): [BlockStmt] { ... } +# 949| getStmt(0): [DeclStmt] declaration +# 949| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x310 +# 949| Type = [Struct] String +# 949| getVariable().getInitializer(): [Initializer] initializer for x310 +# 949| getExpr(): [ConstructorCall] call to String +# 949| Type = [VoidType] void +# 949| ValueCategory = prvalue +# 950| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 950| Type = [VoidType] void +# 950| ValueCategory = prvalue +# 950| getQualifier(): [VariableAccess] x310 +# 950| Type = [Struct] String +# 950| ValueCategory = lvalue +# 950| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 950| Conversion = [BoolConversion] conversion to bool +# 950| Type = [BoolType] bool +# 950| Value = [CStyleCast] 0 +# 950| ValueCategory = prvalue +# 951| getStmt(311): [DoStmt] do (...) ... +# 953| getCondition(): [Literal] 0 +# 953| Type = [IntType] int +# 953| Value = [Literal] 0 +# 953| ValueCategory = prvalue +# 951| getStmt(): [BlockStmt] { ... } +# 952| getStmt(0): [DeclStmt] declaration +# 952| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x311 +# 952| Type = [Struct] String +# 952| getVariable().getInitializer(): [Initializer] initializer for x311 +# 952| getExpr(): [ConstructorCall] call to String +# 952| Type = [VoidType] void +# 952| ValueCategory = prvalue +# 953| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 953| Type = [VoidType] void +# 953| ValueCategory = prvalue +# 953| getQualifier(): [VariableAccess] x311 +# 953| Type = [Struct] String +# 953| ValueCategory = lvalue +# 953| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 953| Conversion = [BoolConversion] conversion to bool +# 953| Type = [BoolType] bool +# 953| Value = [CStyleCast] 0 +# 953| ValueCategory = prvalue +# 954| getStmt(312): [DoStmt] do (...) ... +# 956| getCondition(): [Literal] 0 +# 956| Type = [IntType] int +# 956| Value = [Literal] 0 +# 956| ValueCategory = prvalue +# 954| getStmt(): [BlockStmt] { ... } +# 955| getStmt(0): [DeclStmt] declaration +# 955| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x312 +# 955| Type = [Struct] String +# 955| getVariable().getInitializer(): [Initializer] initializer for x312 +# 955| getExpr(): [ConstructorCall] call to String +# 955| Type = [VoidType] void +# 955| ValueCategory = prvalue +# 956| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 956| Type = [VoidType] void +# 956| ValueCategory = prvalue +# 956| getQualifier(): [VariableAccess] x312 +# 956| Type = [Struct] String +# 956| ValueCategory = lvalue +# 956| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 956| Conversion = [BoolConversion] conversion to bool +# 956| Type = [BoolType] bool +# 956| Value = [CStyleCast] 0 +# 956| ValueCategory = prvalue +# 957| getStmt(313): [DoStmt] do (...) ... +# 959| getCondition(): [Literal] 0 +# 959| Type = [IntType] int +# 959| Value = [Literal] 0 +# 959| ValueCategory = prvalue +# 957| getStmt(): [BlockStmt] { ... } +# 958| getStmt(0): [DeclStmt] declaration +# 958| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x313 +# 958| Type = [Struct] String +# 958| getVariable().getInitializer(): [Initializer] initializer for x313 +# 958| getExpr(): [ConstructorCall] call to String +# 958| Type = [VoidType] void +# 958| ValueCategory = prvalue +# 959| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 959| Type = [VoidType] void +# 959| ValueCategory = prvalue +# 959| getQualifier(): [VariableAccess] x313 +# 959| Type = [Struct] String +# 959| ValueCategory = lvalue +# 959| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 959| Conversion = [BoolConversion] conversion to bool +# 959| Type = [BoolType] bool +# 959| Value = [CStyleCast] 0 +# 959| ValueCategory = prvalue +# 960| getStmt(314): [DoStmt] do (...) ... +# 962| getCondition(): [Literal] 0 +# 962| Type = [IntType] int +# 962| Value = [Literal] 0 +# 962| ValueCategory = prvalue +# 960| getStmt(): [BlockStmt] { ... } +# 961| getStmt(0): [DeclStmt] declaration +# 961| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x314 +# 961| Type = [Struct] String +# 961| getVariable().getInitializer(): [Initializer] initializer for x314 +# 961| getExpr(): [ConstructorCall] call to String +# 961| Type = [VoidType] void +# 961| ValueCategory = prvalue +# 962| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 962| Type = [VoidType] void +# 962| ValueCategory = prvalue +# 962| getQualifier(): [VariableAccess] x314 +# 962| Type = [Struct] String +# 962| ValueCategory = lvalue +# 962| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 962| Conversion = [BoolConversion] conversion to bool +# 962| Type = [BoolType] bool +# 962| Value = [CStyleCast] 0 +# 962| ValueCategory = prvalue +# 963| getStmt(315): [DoStmt] do (...) ... +# 965| getCondition(): [Literal] 0 +# 965| Type = [IntType] int +# 965| Value = [Literal] 0 +# 965| ValueCategory = prvalue +# 963| getStmt(): [BlockStmt] { ... } +# 964| getStmt(0): [DeclStmt] declaration +# 964| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x315 +# 964| Type = [Struct] String +# 964| getVariable().getInitializer(): [Initializer] initializer for x315 +# 964| getExpr(): [ConstructorCall] call to String +# 964| Type = [VoidType] void +# 964| ValueCategory = prvalue +# 965| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 965| Type = [VoidType] void +# 965| ValueCategory = prvalue +# 965| getQualifier(): [VariableAccess] x315 +# 965| Type = [Struct] String +# 965| ValueCategory = lvalue +# 965| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 965| Conversion = [BoolConversion] conversion to bool +# 965| Type = [BoolType] bool +# 965| Value = [CStyleCast] 0 +# 965| ValueCategory = prvalue +# 966| getStmt(316): [DoStmt] do (...) ... +# 968| getCondition(): [Literal] 0 +# 968| Type = [IntType] int +# 968| Value = [Literal] 0 +# 968| ValueCategory = prvalue +# 966| getStmt(): [BlockStmt] { ... } +# 967| getStmt(0): [DeclStmt] declaration +# 967| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x316 +# 967| Type = [Struct] String +# 967| getVariable().getInitializer(): [Initializer] initializer for x316 +# 967| getExpr(): [ConstructorCall] call to String +# 967| Type = [VoidType] void +# 967| ValueCategory = prvalue +# 968| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 968| Type = [VoidType] void +# 968| ValueCategory = prvalue +# 968| getQualifier(): [VariableAccess] x316 +# 968| Type = [Struct] String +# 968| ValueCategory = lvalue +# 968| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 968| Conversion = [BoolConversion] conversion to bool +# 968| Type = [BoolType] bool +# 968| Value = [CStyleCast] 0 +# 968| ValueCategory = prvalue +# 969| getStmt(317): [DoStmt] do (...) ... +# 971| getCondition(): [Literal] 0 +# 971| Type = [IntType] int +# 971| Value = [Literal] 0 +# 971| ValueCategory = prvalue +# 969| getStmt(): [BlockStmt] { ... } +# 970| getStmt(0): [DeclStmt] declaration +# 970| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x317 +# 970| Type = [Struct] String +# 970| getVariable().getInitializer(): [Initializer] initializer for x317 +# 970| getExpr(): [ConstructorCall] call to String +# 970| Type = [VoidType] void +# 970| ValueCategory = prvalue +# 971| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 971| Type = [VoidType] void +# 971| ValueCategory = prvalue +# 971| getQualifier(): [VariableAccess] x317 +# 971| Type = [Struct] String +# 971| ValueCategory = lvalue +# 971| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 971| Conversion = [BoolConversion] conversion to bool +# 971| Type = [BoolType] bool +# 971| Value = [CStyleCast] 0 +# 971| ValueCategory = prvalue +# 972| getStmt(318): [DoStmt] do (...) ... +# 974| getCondition(): [Literal] 0 +# 974| Type = [IntType] int +# 974| Value = [Literal] 0 +# 974| ValueCategory = prvalue +# 972| getStmt(): [BlockStmt] { ... } +# 973| getStmt(0): [DeclStmt] declaration +# 973| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x318 +# 973| Type = [Struct] String +# 973| getVariable().getInitializer(): [Initializer] initializer for x318 +# 973| getExpr(): [ConstructorCall] call to String +# 973| Type = [VoidType] void +# 973| ValueCategory = prvalue +# 974| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 974| Type = [VoidType] void +# 974| ValueCategory = prvalue +# 974| getQualifier(): [VariableAccess] x318 +# 974| Type = [Struct] String +# 974| ValueCategory = lvalue +# 974| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 974| Conversion = [BoolConversion] conversion to bool +# 974| Type = [BoolType] bool +# 974| Value = [CStyleCast] 0 +# 974| ValueCategory = prvalue +# 975| getStmt(319): [DoStmt] do (...) ... +# 977| getCondition(): [Literal] 0 +# 977| Type = [IntType] int +# 977| Value = [Literal] 0 +# 977| ValueCategory = prvalue +# 975| getStmt(): [BlockStmt] { ... } +# 976| getStmt(0): [DeclStmt] declaration +# 976| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x319 +# 976| Type = [Struct] String +# 976| getVariable().getInitializer(): [Initializer] initializer for x319 +# 976| getExpr(): [ConstructorCall] call to String +# 976| Type = [VoidType] void +# 976| ValueCategory = prvalue +# 977| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 977| Type = [VoidType] void +# 977| ValueCategory = prvalue +# 977| getQualifier(): [VariableAccess] x319 +# 977| Type = [Struct] String +# 977| ValueCategory = lvalue +# 977| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 977| Conversion = [BoolConversion] conversion to bool +# 977| Type = [BoolType] bool +# 977| Value = [CStyleCast] 0 +# 977| ValueCategory = prvalue +# 978| getStmt(320): [DoStmt] do (...) ... +# 980| getCondition(): [Literal] 0 +# 980| Type = [IntType] int +# 980| Value = [Literal] 0 +# 980| ValueCategory = prvalue +# 978| getStmt(): [BlockStmt] { ... } +# 979| getStmt(0): [DeclStmt] declaration +# 979| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x320 +# 979| Type = [Struct] String +# 979| getVariable().getInitializer(): [Initializer] initializer for x320 +# 979| getExpr(): [ConstructorCall] call to String +# 979| Type = [VoidType] void +# 979| ValueCategory = prvalue +# 980| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 980| Type = [VoidType] void +# 980| ValueCategory = prvalue +# 980| getQualifier(): [VariableAccess] x320 +# 980| Type = [Struct] String +# 980| ValueCategory = lvalue +# 980| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 980| Conversion = [BoolConversion] conversion to bool +# 980| Type = [BoolType] bool +# 980| Value = [CStyleCast] 0 +# 980| ValueCategory = prvalue +# 981| getStmt(321): [DoStmt] do (...) ... +# 983| getCondition(): [Literal] 0 +# 983| Type = [IntType] int +# 983| Value = [Literal] 0 +# 983| ValueCategory = prvalue +# 981| getStmt(): [BlockStmt] { ... } +# 982| getStmt(0): [DeclStmt] declaration +# 982| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x321 +# 982| Type = [Struct] String +# 982| getVariable().getInitializer(): [Initializer] initializer for x321 +# 982| getExpr(): [ConstructorCall] call to String +# 982| Type = [VoidType] void +# 982| ValueCategory = prvalue +# 983| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 983| Type = [VoidType] void +# 983| ValueCategory = prvalue +# 983| getQualifier(): [VariableAccess] x321 +# 983| Type = [Struct] String +# 983| ValueCategory = lvalue +# 983| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 983| Conversion = [BoolConversion] conversion to bool +# 983| Type = [BoolType] bool +# 983| Value = [CStyleCast] 0 +# 983| ValueCategory = prvalue +# 984| getStmt(322): [DoStmt] do (...) ... +# 986| getCondition(): [Literal] 0 +# 986| Type = [IntType] int +# 986| Value = [Literal] 0 +# 986| ValueCategory = prvalue +# 984| getStmt(): [BlockStmt] { ... } +# 985| getStmt(0): [DeclStmt] declaration +# 985| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x322 +# 985| Type = [Struct] String +# 985| getVariable().getInitializer(): [Initializer] initializer for x322 +# 985| getExpr(): [ConstructorCall] call to String +# 985| Type = [VoidType] void +# 985| ValueCategory = prvalue +# 986| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 986| Type = [VoidType] void +# 986| ValueCategory = prvalue +# 986| getQualifier(): [VariableAccess] x322 +# 986| Type = [Struct] String +# 986| ValueCategory = lvalue +# 986| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 986| Conversion = [BoolConversion] conversion to bool +# 986| Type = [BoolType] bool +# 986| Value = [CStyleCast] 0 +# 986| ValueCategory = prvalue +# 987| getStmt(323): [DoStmt] do (...) ... +# 989| getCondition(): [Literal] 0 +# 989| Type = [IntType] int +# 989| Value = [Literal] 0 +# 989| ValueCategory = prvalue +# 987| getStmt(): [BlockStmt] { ... } +# 988| getStmt(0): [DeclStmt] declaration +# 988| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x323 +# 988| Type = [Struct] String +# 988| getVariable().getInitializer(): [Initializer] initializer for x323 +# 988| getExpr(): [ConstructorCall] call to String +# 988| Type = [VoidType] void +# 988| ValueCategory = prvalue +# 989| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 989| Type = [VoidType] void +# 989| ValueCategory = prvalue +# 989| getQualifier(): [VariableAccess] x323 +# 989| Type = [Struct] String +# 989| ValueCategory = lvalue +# 989| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 989| Conversion = [BoolConversion] conversion to bool +# 989| Type = [BoolType] bool +# 989| Value = [CStyleCast] 0 +# 989| ValueCategory = prvalue +# 990| getStmt(324): [DoStmt] do (...) ... +# 992| getCondition(): [Literal] 0 +# 992| Type = [IntType] int +# 992| Value = [Literal] 0 +# 992| ValueCategory = prvalue +# 990| getStmt(): [BlockStmt] { ... } +# 991| getStmt(0): [DeclStmt] declaration +# 991| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x324 +# 991| Type = [Struct] String +# 991| getVariable().getInitializer(): [Initializer] initializer for x324 +# 991| getExpr(): [ConstructorCall] call to String +# 991| Type = [VoidType] void +# 991| ValueCategory = prvalue +# 992| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 992| Type = [VoidType] void +# 992| ValueCategory = prvalue +# 992| getQualifier(): [VariableAccess] x324 +# 992| Type = [Struct] String +# 992| ValueCategory = lvalue +# 992| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 992| Conversion = [BoolConversion] conversion to bool +# 992| Type = [BoolType] bool +# 992| Value = [CStyleCast] 0 +# 992| ValueCategory = prvalue +# 993| getStmt(325): [DoStmt] do (...) ... +# 995| getCondition(): [Literal] 0 +# 995| Type = [IntType] int +# 995| Value = [Literal] 0 +# 995| ValueCategory = prvalue +# 993| getStmt(): [BlockStmt] { ... } +# 994| getStmt(0): [DeclStmt] declaration +# 994| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x325 +# 994| Type = [Struct] String +# 994| getVariable().getInitializer(): [Initializer] initializer for x325 +# 994| getExpr(): [ConstructorCall] call to String +# 994| Type = [VoidType] void +# 994| ValueCategory = prvalue +# 995| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 995| Type = [VoidType] void +# 995| ValueCategory = prvalue +# 995| getQualifier(): [VariableAccess] x325 +# 995| Type = [Struct] String +# 995| ValueCategory = lvalue +# 995| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 995| Conversion = [BoolConversion] conversion to bool +# 995| Type = [BoolType] bool +# 995| Value = [CStyleCast] 0 +# 995| ValueCategory = prvalue +# 996| getStmt(326): [DoStmt] do (...) ... +# 998| getCondition(): [Literal] 0 +# 998| Type = [IntType] int +# 998| Value = [Literal] 0 +# 998| ValueCategory = prvalue +# 996| getStmt(): [BlockStmt] { ... } +# 997| getStmt(0): [DeclStmt] declaration +# 997| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x326 +# 997| Type = [Struct] String +# 997| getVariable().getInitializer(): [Initializer] initializer for x326 +# 997| getExpr(): [ConstructorCall] call to String +# 997| Type = [VoidType] void +# 997| ValueCategory = prvalue +# 998| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 998| Type = [VoidType] void +# 998| ValueCategory = prvalue +# 998| getQualifier(): [VariableAccess] x326 +# 998| Type = [Struct] String +# 998| ValueCategory = lvalue +# 998| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 998| Conversion = [BoolConversion] conversion to bool +# 998| Type = [BoolType] bool +# 998| Value = [CStyleCast] 0 +# 998| ValueCategory = prvalue +# 999| getStmt(327): [DoStmt] do (...) ... +# 1001| getCondition(): [Literal] 0 +# 1001| Type = [IntType] int +# 1001| Value = [Literal] 0 +# 1001| ValueCategory = prvalue +# 999| getStmt(): [BlockStmt] { ... } +# 1000| getStmt(0): [DeclStmt] declaration +# 1000| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x327 +# 1000| Type = [Struct] String +# 1000| getVariable().getInitializer(): [Initializer] initializer for x327 +# 1000| getExpr(): [ConstructorCall] call to String +# 1000| Type = [VoidType] void +# 1000| ValueCategory = prvalue +# 1001| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1001| Type = [VoidType] void +# 1001| ValueCategory = prvalue +# 1001| getQualifier(): [VariableAccess] x327 +# 1001| Type = [Struct] String +# 1001| ValueCategory = lvalue +# 1001| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1001| Conversion = [BoolConversion] conversion to bool +# 1001| Type = [BoolType] bool +# 1001| Value = [CStyleCast] 0 +# 1001| ValueCategory = prvalue +# 1002| getStmt(328): [DoStmt] do (...) ... +# 1004| getCondition(): [Literal] 0 +# 1004| Type = [IntType] int +# 1004| Value = [Literal] 0 +# 1004| ValueCategory = prvalue +# 1002| getStmt(): [BlockStmt] { ... } +# 1003| getStmt(0): [DeclStmt] declaration +# 1003| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x328 +# 1003| Type = [Struct] String +# 1003| getVariable().getInitializer(): [Initializer] initializer for x328 +# 1003| getExpr(): [ConstructorCall] call to String +# 1003| Type = [VoidType] void +# 1003| ValueCategory = prvalue +# 1004| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1004| Type = [VoidType] void +# 1004| ValueCategory = prvalue +# 1004| getQualifier(): [VariableAccess] x328 +# 1004| Type = [Struct] String +# 1004| ValueCategory = lvalue +# 1004| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1004| Conversion = [BoolConversion] conversion to bool +# 1004| Type = [BoolType] bool +# 1004| Value = [CStyleCast] 0 +# 1004| ValueCategory = prvalue +# 1005| getStmt(329): [DoStmt] do (...) ... +# 1007| getCondition(): [Literal] 0 +# 1007| Type = [IntType] int +# 1007| Value = [Literal] 0 +# 1007| ValueCategory = prvalue +# 1005| getStmt(): [BlockStmt] { ... } +# 1006| getStmt(0): [DeclStmt] declaration +# 1006| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x329 +# 1006| Type = [Struct] String +# 1006| getVariable().getInitializer(): [Initializer] initializer for x329 +# 1006| getExpr(): [ConstructorCall] call to String +# 1006| Type = [VoidType] void +# 1006| ValueCategory = prvalue +# 1007| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1007| Type = [VoidType] void +# 1007| ValueCategory = prvalue +# 1007| getQualifier(): [VariableAccess] x329 +# 1007| Type = [Struct] String +# 1007| ValueCategory = lvalue +# 1007| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1007| Conversion = [BoolConversion] conversion to bool +# 1007| Type = [BoolType] bool +# 1007| Value = [CStyleCast] 0 +# 1007| ValueCategory = prvalue +# 1008| getStmt(330): [DoStmt] do (...) ... +# 1010| getCondition(): [Literal] 0 +# 1010| Type = [IntType] int +# 1010| Value = [Literal] 0 +# 1010| ValueCategory = prvalue +# 1008| getStmt(): [BlockStmt] { ... } +# 1009| getStmt(0): [DeclStmt] declaration +# 1009| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x330 +# 1009| Type = [Struct] String +# 1009| getVariable().getInitializer(): [Initializer] initializer for x330 +# 1009| getExpr(): [ConstructorCall] call to String +# 1009| Type = [VoidType] void +# 1009| ValueCategory = prvalue +# 1010| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1010| Type = [VoidType] void +# 1010| ValueCategory = prvalue +# 1010| getQualifier(): [VariableAccess] x330 +# 1010| Type = [Struct] String +# 1010| ValueCategory = lvalue +# 1010| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1010| Conversion = [BoolConversion] conversion to bool +# 1010| Type = [BoolType] bool +# 1010| Value = [CStyleCast] 0 +# 1010| ValueCategory = prvalue +# 1011| getStmt(331): [DoStmt] do (...) ... +# 1013| getCondition(): [Literal] 0 +# 1013| Type = [IntType] int +# 1013| Value = [Literal] 0 +# 1013| ValueCategory = prvalue +# 1011| getStmt(): [BlockStmt] { ... } +# 1012| getStmt(0): [DeclStmt] declaration +# 1012| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x331 +# 1012| Type = [Struct] String +# 1012| getVariable().getInitializer(): [Initializer] initializer for x331 +# 1012| getExpr(): [ConstructorCall] call to String +# 1012| Type = [VoidType] void +# 1012| ValueCategory = prvalue +# 1013| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1013| Type = [VoidType] void +# 1013| ValueCategory = prvalue +# 1013| getQualifier(): [VariableAccess] x331 +# 1013| Type = [Struct] String +# 1013| ValueCategory = lvalue +# 1013| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1013| Conversion = [BoolConversion] conversion to bool +# 1013| Type = [BoolType] bool +# 1013| Value = [CStyleCast] 0 +# 1013| ValueCategory = prvalue +# 1014| getStmt(332): [DoStmt] do (...) ... +# 1016| getCondition(): [Literal] 0 +# 1016| Type = [IntType] int +# 1016| Value = [Literal] 0 +# 1016| ValueCategory = prvalue +# 1014| getStmt(): [BlockStmt] { ... } +# 1015| getStmt(0): [DeclStmt] declaration +# 1015| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x332 +# 1015| Type = [Struct] String +# 1015| getVariable().getInitializer(): [Initializer] initializer for x332 +# 1015| getExpr(): [ConstructorCall] call to String +# 1015| Type = [VoidType] void +# 1015| ValueCategory = prvalue +# 1016| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1016| Type = [VoidType] void +# 1016| ValueCategory = prvalue +# 1016| getQualifier(): [VariableAccess] x332 +# 1016| Type = [Struct] String +# 1016| ValueCategory = lvalue +# 1016| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1016| Conversion = [BoolConversion] conversion to bool +# 1016| Type = [BoolType] bool +# 1016| Value = [CStyleCast] 0 +# 1016| ValueCategory = prvalue +# 1017| getStmt(333): [DoStmt] do (...) ... +# 1019| getCondition(): [Literal] 0 +# 1019| Type = [IntType] int +# 1019| Value = [Literal] 0 +# 1019| ValueCategory = prvalue +# 1017| getStmt(): [BlockStmt] { ... } +# 1018| getStmt(0): [DeclStmt] declaration +# 1018| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x333 +# 1018| Type = [Struct] String +# 1018| getVariable().getInitializer(): [Initializer] initializer for x333 +# 1018| getExpr(): [ConstructorCall] call to String +# 1018| Type = [VoidType] void +# 1018| ValueCategory = prvalue +# 1019| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1019| Type = [VoidType] void +# 1019| ValueCategory = prvalue +# 1019| getQualifier(): [VariableAccess] x333 +# 1019| Type = [Struct] String +# 1019| ValueCategory = lvalue +# 1019| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1019| Conversion = [BoolConversion] conversion to bool +# 1019| Type = [BoolType] bool +# 1019| Value = [CStyleCast] 0 +# 1019| ValueCategory = prvalue +# 1020| getStmt(334): [DoStmt] do (...) ... +# 1022| getCondition(): [Literal] 0 +# 1022| Type = [IntType] int +# 1022| Value = [Literal] 0 +# 1022| ValueCategory = prvalue +# 1020| getStmt(): [BlockStmt] { ... } +# 1021| getStmt(0): [DeclStmt] declaration +# 1021| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x334 +# 1021| Type = [Struct] String +# 1021| getVariable().getInitializer(): [Initializer] initializer for x334 +# 1021| getExpr(): [ConstructorCall] call to String +# 1021| Type = [VoidType] void +# 1021| ValueCategory = prvalue +# 1022| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1022| Type = [VoidType] void +# 1022| ValueCategory = prvalue +# 1022| getQualifier(): [VariableAccess] x334 +# 1022| Type = [Struct] String +# 1022| ValueCategory = lvalue +# 1022| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1022| Conversion = [BoolConversion] conversion to bool +# 1022| Type = [BoolType] bool +# 1022| Value = [CStyleCast] 0 +# 1022| ValueCategory = prvalue +# 1023| getStmt(335): [DoStmt] do (...) ... +# 1025| getCondition(): [Literal] 0 +# 1025| Type = [IntType] int +# 1025| Value = [Literal] 0 +# 1025| ValueCategory = prvalue +# 1023| getStmt(): [BlockStmt] { ... } +# 1024| getStmt(0): [DeclStmt] declaration +# 1024| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x335 +# 1024| Type = [Struct] String +# 1024| getVariable().getInitializer(): [Initializer] initializer for x335 +# 1024| getExpr(): [ConstructorCall] call to String +# 1024| Type = [VoidType] void +# 1024| ValueCategory = prvalue +# 1025| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1025| Type = [VoidType] void +# 1025| ValueCategory = prvalue +# 1025| getQualifier(): [VariableAccess] x335 +# 1025| Type = [Struct] String +# 1025| ValueCategory = lvalue +# 1025| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1025| Conversion = [BoolConversion] conversion to bool +# 1025| Type = [BoolType] bool +# 1025| Value = [CStyleCast] 0 +# 1025| ValueCategory = prvalue +# 1026| getStmt(336): [DoStmt] do (...) ... +# 1028| getCondition(): [Literal] 0 +# 1028| Type = [IntType] int +# 1028| Value = [Literal] 0 +# 1028| ValueCategory = prvalue +# 1026| getStmt(): [BlockStmt] { ... } +# 1027| getStmt(0): [DeclStmt] declaration +# 1027| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x336 +# 1027| Type = [Struct] String +# 1027| getVariable().getInitializer(): [Initializer] initializer for x336 +# 1027| getExpr(): [ConstructorCall] call to String +# 1027| Type = [VoidType] void +# 1027| ValueCategory = prvalue +# 1028| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1028| Type = [VoidType] void +# 1028| ValueCategory = prvalue +# 1028| getQualifier(): [VariableAccess] x336 +# 1028| Type = [Struct] String +# 1028| ValueCategory = lvalue +# 1028| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1028| Conversion = [BoolConversion] conversion to bool +# 1028| Type = [BoolType] bool +# 1028| Value = [CStyleCast] 0 +# 1028| ValueCategory = prvalue +# 1029| getStmt(337): [DoStmt] do (...) ... +# 1031| getCondition(): [Literal] 0 +# 1031| Type = [IntType] int +# 1031| Value = [Literal] 0 +# 1031| ValueCategory = prvalue +# 1029| getStmt(): [BlockStmt] { ... } +# 1030| getStmt(0): [DeclStmt] declaration +# 1030| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x337 +# 1030| Type = [Struct] String +# 1030| getVariable().getInitializer(): [Initializer] initializer for x337 +# 1030| getExpr(): [ConstructorCall] call to String +# 1030| Type = [VoidType] void +# 1030| ValueCategory = prvalue +# 1031| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1031| Type = [VoidType] void +# 1031| ValueCategory = prvalue +# 1031| getQualifier(): [VariableAccess] x337 +# 1031| Type = [Struct] String +# 1031| ValueCategory = lvalue +# 1031| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1031| Conversion = [BoolConversion] conversion to bool +# 1031| Type = [BoolType] bool +# 1031| Value = [CStyleCast] 0 +# 1031| ValueCategory = prvalue +# 1032| getStmt(338): [DoStmt] do (...) ... +# 1034| getCondition(): [Literal] 0 +# 1034| Type = [IntType] int +# 1034| Value = [Literal] 0 +# 1034| ValueCategory = prvalue +# 1032| getStmt(): [BlockStmt] { ... } +# 1033| getStmt(0): [DeclStmt] declaration +# 1033| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x338 +# 1033| Type = [Struct] String +# 1033| getVariable().getInitializer(): [Initializer] initializer for x338 +# 1033| getExpr(): [ConstructorCall] call to String +# 1033| Type = [VoidType] void +# 1033| ValueCategory = prvalue +# 1034| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1034| Type = [VoidType] void +# 1034| ValueCategory = prvalue +# 1034| getQualifier(): [VariableAccess] x338 +# 1034| Type = [Struct] String +# 1034| ValueCategory = lvalue +# 1034| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1034| Conversion = [BoolConversion] conversion to bool +# 1034| Type = [BoolType] bool +# 1034| Value = [CStyleCast] 0 +# 1034| ValueCategory = prvalue +# 1035| getStmt(339): [DoStmt] do (...) ... +# 1037| getCondition(): [Literal] 0 +# 1037| Type = [IntType] int +# 1037| Value = [Literal] 0 +# 1037| ValueCategory = prvalue +# 1035| getStmt(): [BlockStmt] { ... } +# 1036| getStmt(0): [DeclStmt] declaration +# 1036| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x339 +# 1036| Type = [Struct] String +# 1036| getVariable().getInitializer(): [Initializer] initializer for x339 +# 1036| getExpr(): [ConstructorCall] call to String +# 1036| Type = [VoidType] void +# 1036| ValueCategory = prvalue +# 1037| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1037| Type = [VoidType] void +# 1037| ValueCategory = prvalue +# 1037| getQualifier(): [VariableAccess] x339 +# 1037| Type = [Struct] String +# 1037| ValueCategory = lvalue +# 1037| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1037| Conversion = [BoolConversion] conversion to bool +# 1037| Type = [BoolType] bool +# 1037| Value = [CStyleCast] 0 +# 1037| ValueCategory = prvalue +# 1038| getStmt(340): [DoStmt] do (...) ... +# 1040| getCondition(): [Literal] 0 +# 1040| Type = [IntType] int +# 1040| Value = [Literal] 0 +# 1040| ValueCategory = prvalue +# 1038| getStmt(): [BlockStmt] { ... } +# 1039| getStmt(0): [DeclStmt] declaration +# 1039| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x340 +# 1039| Type = [Struct] String +# 1039| getVariable().getInitializer(): [Initializer] initializer for x340 +# 1039| getExpr(): [ConstructorCall] call to String +# 1039| Type = [VoidType] void +# 1039| ValueCategory = prvalue +# 1040| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1040| Type = [VoidType] void +# 1040| ValueCategory = prvalue +# 1040| getQualifier(): [VariableAccess] x340 +# 1040| Type = [Struct] String +# 1040| ValueCategory = lvalue +# 1040| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1040| Conversion = [BoolConversion] conversion to bool +# 1040| Type = [BoolType] bool +# 1040| Value = [CStyleCast] 0 +# 1040| ValueCategory = prvalue +# 1041| getStmt(341): [DoStmt] do (...) ... +# 1043| getCondition(): [Literal] 0 +# 1043| Type = [IntType] int +# 1043| Value = [Literal] 0 +# 1043| ValueCategory = prvalue +# 1041| getStmt(): [BlockStmt] { ... } +# 1042| getStmt(0): [DeclStmt] declaration +# 1042| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x341 +# 1042| Type = [Struct] String +# 1042| getVariable().getInitializer(): [Initializer] initializer for x341 +# 1042| getExpr(): [ConstructorCall] call to String +# 1042| Type = [VoidType] void +# 1042| ValueCategory = prvalue +# 1043| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1043| Type = [VoidType] void +# 1043| ValueCategory = prvalue +# 1043| getQualifier(): [VariableAccess] x341 +# 1043| Type = [Struct] String +# 1043| ValueCategory = lvalue +# 1043| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1043| Conversion = [BoolConversion] conversion to bool +# 1043| Type = [BoolType] bool +# 1043| Value = [CStyleCast] 0 +# 1043| ValueCategory = prvalue +# 1044| getStmt(342): [DoStmt] do (...) ... +# 1046| getCondition(): [Literal] 0 +# 1046| Type = [IntType] int +# 1046| Value = [Literal] 0 +# 1046| ValueCategory = prvalue +# 1044| getStmt(): [BlockStmt] { ... } +# 1045| getStmt(0): [DeclStmt] declaration +# 1045| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x342 +# 1045| Type = [Struct] String +# 1045| getVariable().getInitializer(): [Initializer] initializer for x342 +# 1045| getExpr(): [ConstructorCall] call to String +# 1045| Type = [VoidType] void +# 1045| ValueCategory = prvalue +# 1046| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1046| Type = [VoidType] void +# 1046| ValueCategory = prvalue +# 1046| getQualifier(): [VariableAccess] x342 +# 1046| Type = [Struct] String +# 1046| ValueCategory = lvalue +# 1046| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1046| Conversion = [BoolConversion] conversion to bool +# 1046| Type = [BoolType] bool +# 1046| Value = [CStyleCast] 0 +# 1046| ValueCategory = prvalue +# 1047| getStmt(343): [DoStmt] do (...) ... +# 1049| getCondition(): [Literal] 0 +# 1049| Type = [IntType] int +# 1049| Value = [Literal] 0 +# 1049| ValueCategory = prvalue +# 1047| getStmt(): [BlockStmt] { ... } +# 1048| getStmt(0): [DeclStmt] declaration +# 1048| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x343 +# 1048| Type = [Struct] String +# 1048| getVariable().getInitializer(): [Initializer] initializer for x343 +# 1048| getExpr(): [ConstructorCall] call to String +# 1048| Type = [VoidType] void +# 1048| ValueCategory = prvalue +# 1049| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1049| Type = [VoidType] void +# 1049| ValueCategory = prvalue +# 1049| getQualifier(): [VariableAccess] x343 +# 1049| Type = [Struct] String +# 1049| ValueCategory = lvalue +# 1049| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1049| Conversion = [BoolConversion] conversion to bool +# 1049| Type = [BoolType] bool +# 1049| Value = [CStyleCast] 0 +# 1049| ValueCategory = prvalue +# 1050| getStmt(344): [DoStmt] do (...) ... +# 1052| getCondition(): [Literal] 0 +# 1052| Type = [IntType] int +# 1052| Value = [Literal] 0 +# 1052| ValueCategory = prvalue +# 1050| getStmt(): [BlockStmt] { ... } +# 1051| getStmt(0): [DeclStmt] declaration +# 1051| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x344 +# 1051| Type = [Struct] String +# 1051| getVariable().getInitializer(): [Initializer] initializer for x344 +# 1051| getExpr(): [ConstructorCall] call to String +# 1051| Type = [VoidType] void +# 1051| ValueCategory = prvalue +# 1052| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1052| Type = [VoidType] void +# 1052| ValueCategory = prvalue +# 1052| getQualifier(): [VariableAccess] x344 +# 1052| Type = [Struct] String +# 1052| ValueCategory = lvalue +# 1052| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1052| Conversion = [BoolConversion] conversion to bool +# 1052| Type = [BoolType] bool +# 1052| Value = [CStyleCast] 0 +# 1052| ValueCategory = prvalue +# 1053| getStmt(345): [DoStmt] do (...) ... +# 1055| getCondition(): [Literal] 0 +# 1055| Type = [IntType] int +# 1055| Value = [Literal] 0 +# 1055| ValueCategory = prvalue +# 1053| getStmt(): [BlockStmt] { ... } +# 1054| getStmt(0): [DeclStmt] declaration +# 1054| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x345 +# 1054| Type = [Struct] String +# 1054| getVariable().getInitializer(): [Initializer] initializer for x345 +# 1054| getExpr(): [ConstructorCall] call to String +# 1054| Type = [VoidType] void +# 1054| ValueCategory = prvalue +# 1055| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1055| Type = [VoidType] void +# 1055| ValueCategory = prvalue +# 1055| getQualifier(): [VariableAccess] x345 +# 1055| Type = [Struct] String +# 1055| ValueCategory = lvalue +# 1055| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1055| Conversion = [BoolConversion] conversion to bool +# 1055| Type = [BoolType] bool +# 1055| Value = [CStyleCast] 0 +# 1055| ValueCategory = prvalue +# 1056| getStmt(346): [DoStmt] do (...) ... +# 1058| getCondition(): [Literal] 0 +# 1058| Type = [IntType] int +# 1058| Value = [Literal] 0 +# 1058| ValueCategory = prvalue +# 1056| getStmt(): [BlockStmt] { ... } +# 1057| getStmt(0): [DeclStmt] declaration +# 1057| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x346 +# 1057| Type = [Struct] String +# 1057| getVariable().getInitializer(): [Initializer] initializer for x346 +# 1057| getExpr(): [ConstructorCall] call to String +# 1057| Type = [VoidType] void +# 1057| ValueCategory = prvalue +# 1058| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1058| Type = [VoidType] void +# 1058| ValueCategory = prvalue +# 1058| getQualifier(): [VariableAccess] x346 +# 1058| Type = [Struct] String +# 1058| ValueCategory = lvalue +# 1058| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1058| Conversion = [BoolConversion] conversion to bool +# 1058| Type = [BoolType] bool +# 1058| Value = [CStyleCast] 0 +# 1058| ValueCategory = prvalue +# 1059| getStmt(347): [DoStmt] do (...) ... +# 1061| getCondition(): [Literal] 0 +# 1061| Type = [IntType] int +# 1061| Value = [Literal] 0 +# 1061| ValueCategory = prvalue +# 1059| getStmt(): [BlockStmt] { ... } +# 1060| getStmt(0): [DeclStmt] declaration +# 1060| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x347 +# 1060| Type = [Struct] String +# 1060| getVariable().getInitializer(): [Initializer] initializer for x347 +# 1060| getExpr(): [ConstructorCall] call to String +# 1060| Type = [VoidType] void +# 1060| ValueCategory = prvalue +# 1061| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1061| Type = [VoidType] void +# 1061| ValueCategory = prvalue +# 1061| getQualifier(): [VariableAccess] x347 +# 1061| Type = [Struct] String +# 1061| ValueCategory = lvalue +# 1061| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1061| Conversion = [BoolConversion] conversion to bool +# 1061| Type = [BoolType] bool +# 1061| Value = [CStyleCast] 0 +# 1061| ValueCategory = prvalue +# 1062| getStmt(348): [DoStmt] do (...) ... +# 1064| getCondition(): [Literal] 0 +# 1064| Type = [IntType] int +# 1064| Value = [Literal] 0 +# 1064| ValueCategory = prvalue +# 1062| getStmt(): [BlockStmt] { ... } +# 1063| getStmt(0): [DeclStmt] declaration +# 1063| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x348 +# 1063| Type = [Struct] String +# 1063| getVariable().getInitializer(): [Initializer] initializer for x348 +# 1063| getExpr(): [ConstructorCall] call to String +# 1063| Type = [VoidType] void +# 1063| ValueCategory = prvalue +# 1064| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1064| Type = [VoidType] void +# 1064| ValueCategory = prvalue +# 1064| getQualifier(): [VariableAccess] x348 +# 1064| Type = [Struct] String +# 1064| ValueCategory = lvalue +# 1064| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1064| Conversion = [BoolConversion] conversion to bool +# 1064| Type = [BoolType] bool +# 1064| Value = [CStyleCast] 0 +# 1064| ValueCategory = prvalue +# 1065| getStmt(349): [DoStmt] do (...) ... +# 1067| getCondition(): [Literal] 0 +# 1067| Type = [IntType] int +# 1067| Value = [Literal] 0 +# 1067| ValueCategory = prvalue +# 1065| getStmt(): [BlockStmt] { ... } +# 1066| getStmt(0): [DeclStmt] declaration +# 1066| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x349 +# 1066| Type = [Struct] String +# 1066| getVariable().getInitializer(): [Initializer] initializer for x349 +# 1066| getExpr(): [ConstructorCall] call to String +# 1066| Type = [VoidType] void +# 1066| ValueCategory = prvalue +# 1067| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1067| Type = [VoidType] void +# 1067| ValueCategory = prvalue +# 1067| getQualifier(): [VariableAccess] x349 +# 1067| Type = [Struct] String +# 1067| ValueCategory = lvalue +# 1067| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1067| Conversion = [BoolConversion] conversion to bool +# 1067| Type = [BoolType] bool +# 1067| Value = [CStyleCast] 0 +# 1067| ValueCategory = prvalue +# 1068| getStmt(350): [DoStmt] do (...) ... +# 1070| getCondition(): [Literal] 0 +# 1070| Type = [IntType] int +# 1070| Value = [Literal] 0 +# 1070| ValueCategory = prvalue +# 1068| getStmt(): [BlockStmt] { ... } +# 1069| getStmt(0): [DeclStmt] declaration +# 1069| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x350 +# 1069| Type = [Struct] String +# 1069| getVariable().getInitializer(): [Initializer] initializer for x350 +# 1069| getExpr(): [ConstructorCall] call to String +# 1069| Type = [VoidType] void +# 1069| ValueCategory = prvalue +# 1070| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1070| Type = [VoidType] void +# 1070| ValueCategory = prvalue +# 1070| getQualifier(): [VariableAccess] x350 +# 1070| Type = [Struct] String +# 1070| ValueCategory = lvalue +# 1070| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1070| Conversion = [BoolConversion] conversion to bool +# 1070| Type = [BoolType] bool +# 1070| Value = [CStyleCast] 0 +# 1070| ValueCategory = prvalue +# 1071| getStmt(351): [DoStmt] do (...) ... +# 1073| getCondition(): [Literal] 0 +# 1073| Type = [IntType] int +# 1073| Value = [Literal] 0 +# 1073| ValueCategory = prvalue +# 1071| getStmt(): [BlockStmt] { ... } +# 1072| getStmt(0): [DeclStmt] declaration +# 1072| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x351 +# 1072| Type = [Struct] String +# 1072| getVariable().getInitializer(): [Initializer] initializer for x351 +# 1072| getExpr(): [ConstructorCall] call to String +# 1072| Type = [VoidType] void +# 1072| ValueCategory = prvalue +# 1073| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1073| Type = [VoidType] void +# 1073| ValueCategory = prvalue +# 1073| getQualifier(): [VariableAccess] x351 +# 1073| Type = [Struct] String +# 1073| ValueCategory = lvalue +# 1073| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1073| Conversion = [BoolConversion] conversion to bool +# 1073| Type = [BoolType] bool +# 1073| Value = [CStyleCast] 0 +# 1073| ValueCategory = prvalue +# 1074| getStmt(352): [DoStmt] do (...) ... +# 1076| getCondition(): [Literal] 0 +# 1076| Type = [IntType] int +# 1076| Value = [Literal] 0 +# 1076| ValueCategory = prvalue +# 1074| getStmt(): [BlockStmt] { ... } +# 1075| getStmt(0): [DeclStmt] declaration +# 1075| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x352 +# 1075| Type = [Struct] String +# 1075| getVariable().getInitializer(): [Initializer] initializer for x352 +# 1075| getExpr(): [ConstructorCall] call to String +# 1075| Type = [VoidType] void +# 1075| ValueCategory = prvalue +# 1076| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1076| Type = [VoidType] void +# 1076| ValueCategory = prvalue +# 1076| getQualifier(): [VariableAccess] x352 +# 1076| Type = [Struct] String +# 1076| ValueCategory = lvalue +# 1076| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1076| Conversion = [BoolConversion] conversion to bool +# 1076| Type = [BoolType] bool +# 1076| Value = [CStyleCast] 0 +# 1076| ValueCategory = prvalue +# 1077| getStmt(353): [DoStmt] do (...) ... +# 1079| getCondition(): [Literal] 0 +# 1079| Type = [IntType] int +# 1079| Value = [Literal] 0 +# 1079| ValueCategory = prvalue +# 1077| getStmt(): [BlockStmt] { ... } +# 1078| getStmt(0): [DeclStmt] declaration +# 1078| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x353 +# 1078| Type = [Struct] String +# 1078| getVariable().getInitializer(): [Initializer] initializer for x353 +# 1078| getExpr(): [ConstructorCall] call to String +# 1078| Type = [VoidType] void +# 1078| ValueCategory = prvalue +# 1079| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1079| Type = [VoidType] void +# 1079| ValueCategory = prvalue +# 1079| getQualifier(): [VariableAccess] x353 +# 1079| Type = [Struct] String +# 1079| ValueCategory = lvalue +# 1079| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1079| Conversion = [BoolConversion] conversion to bool +# 1079| Type = [BoolType] bool +# 1079| Value = [CStyleCast] 0 +# 1079| ValueCategory = prvalue +# 1080| getStmt(354): [DoStmt] do (...) ... +# 1082| getCondition(): [Literal] 0 +# 1082| Type = [IntType] int +# 1082| Value = [Literal] 0 +# 1082| ValueCategory = prvalue +# 1080| getStmt(): [BlockStmt] { ... } +# 1081| getStmt(0): [DeclStmt] declaration +# 1081| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x354 +# 1081| Type = [Struct] String +# 1081| getVariable().getInitializer(): [Initializer] initializer for x354 +# 1081| getExpr(): [ConstructorCall] call to String +# 1081| Type = [VoidType] void +# 1081| ValueCategory = prvalue +# 1082| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1082| Type = [VoidType] void +# 1082| ValueCategory = prvalue +# 1082| getQualifier(): [VariableAccess] x354 +# 1082| Type = [Struct] String +# 1082| ValueCategory = lvalue +# 1082| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1082| Conversion = [BoolConversion] conversion to bool +# 1082| Type = [BoolType] bool +# 1082| Value = [CStyleCast] 0 +# 1082| ValueCategory = prvalue +# 1083| getStmt(355): [DoStmt] do (...) ... +# 1085| getCondition(): [Literal] 0 +# 1085| Type = [IntType] int +# 1085| Value = [Literal] 0 +# 1085| ValueCategory = prvalue +# 1083| getStmt(): [BlockStmt] { ... } +# 1084| getStmt(0): [DeclStmt] declaration +# 1084| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x355 +# 1084| Type = [Struct] String +# 1084| getVariable().getInitializer(): [Initializer] initializer for x355 +# 1084| getExpr(): [ConstructorCall] call to String +# 1084| Type = [VoidType] void +# 1084| ValueCategory = prvalue +# 1085| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1085| Type = [VoidType] void +# 1085| ValueCategory = prvalue +# 1085| getQualifier(): [VariableAccess] x355 +# 1085| Type = [Struct] String +# 1085| ValueCategory = lvalue +# 1085| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1085| Conversion = [BoolConversion] conversion to bool +# 1085| Type = [BoolType] bool +# 1085| Value = [CStyleCast] 0 +# 1085| ValueCategory = prvalue +# 1086| getStmt(356): [DoStmt] do (...) ... +# 1088| getCondition(): [Literal] 0 +# 1088| Type = [IntType] int +# 1088| Value = [Literal] 0 +# 1088| ValueCategory = prvalue +# 1086| getStmt(): [BlockStmt] { ... } +# 1087| getStmt(0): [DeclStmt] declaration +# 1087| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x356 +# 1087| Type = [Struct] String +# 1087| getVariable().getInitializer(): [Initializer] initializer for x356 +# 1087| getExpr(): [ConstructorCall] call to String +# 1087| Type = [VoidType] void +# 1087| ValueCategory = prvalue +# 1088| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1088| Type = [VoidType] void +# 1088| ValueCategory = prvalue +# 1088| getQualifier(): [VariableAccess] x356 +# 1088| Type = [Struct] String +# 1088| ValueCategory = lvalue +# 1088| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1088| Conversion = [BoolConversion] conversion to bool +# 1088| Type = [BoolType] bool +# 1088| Value = [CStyleCast] 0 +# 1088| ValueCategory = prvalue +# 1089| getStmt(357): [DoStmt] do (...) ... +# 1091| getCondition(): [Literal] 0 +# 1091| Type = [IntType] int +# 1091| Value = [Literal] 0 +# 1091| ValueCategory = prvalue +# 1089| getStmt(): [BlockStmt] { ... } +# 1090| getStmt(0): [DeclStmt] declaration +# 1090| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x357 +# 1090| Type = [Struct] String +# 1090| getVariable().getInitializer(): [Initializer] initializer for x357 +# 1090| getExpr(): [ConstructorCall] call to String +# 1090| Type = [VoidType] void +# 1090| ValueCategory = prvalue +# 1091| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1091| Type = [VoidType] void +# 1091| ValueCategory = prvalue +# 1091| getQualifier(): [VariableAccess] x357 +# 1091| Type = [Struct] String +# 1091| ValueCategory = lvalue +# 1091| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1091| Conversion = [BoolConversion] conversion to bool +# 1091| Type = [BoolType] bool +# 1091| Value = [CStyleCast] 0 +# 1091| ValueCategory = prvalue +# 1092| getStmt(358): [DoStmt] do (...) ... +# 1094| getCondition(): [Literal] 0 +# 1094| Type = [IntType] int +# 1094| Value = [Literal] 0 +# 1094| ValueCategory = prvalue +# 1092| getStmt(): [BlockStmt] { ... } +# 1093| getStmt(0): [DeclStmt] declaration +# 1093| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x358 +# 1093| Type = [Struct] String +# 1093| getVariable().getInitializer(): [Initializer] initializer for x358 +# 1093| getExpr(): [ConstructorCall] call to String +# 1093| Type = [VoidType] void +# 1093| ValueCategory = prvalue +# 1094| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1094| Type = [VoidType] void +# 1094| ValueCategory = prvalue +# 1094| getQualifier(): [VariableAccess] x358 +# 1094| Type = [Struct] String +# 1094| ValueCategory = lvalue +# 1094| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1094| Conversion = [BoolConversion] conversion to bool +# 1094| Type = [BoolType] bool +# 1094| Value = [CStyleCast] 0 +# 1094| ValueCategory = prvalue +# 1095| getStmt(359): [DoStmt] do (...) ... +# 1097| getCondition(): [Literal] 0 +# 1097| Type = [IntType] int +# 1097| Value = [Literal] 0 +# 1097| ValueCategory = prvalue +# 1095| getStmt(): [BlockStmt] { ... } +# 1096| getStmt(0): [DeclStmt] declaration +# 1096| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x359 +# 1096| Type = [Struct] String +# 1096| getVariable().getInitializer(): [Initializer] initializer for x359 +# 1096| getExpr(): [ConstructorCall] call to String +# 1096| Type = [VoidType] void +# 1096| ValueCategory = prvalue +# 1097| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1097| Type = [VoidType] void +# 1097| ValueCategory = prvalue +# 1097| getQualifier(): [VariableAccess] x359 +# 1097| Type = [Struct] String +# 1097| ValueCategory = lvalue +# 1097| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1097| Conversion = [BoolConversion] conversion to bool +# 1097| Type = [BoolType] bool +# 1097| Value = [CStyleCast] 0 +# 1097| ValueCategory = prvalue +# 1098| getStmt(360): [DoStmt] do (...) ... +# 1100| getCondition(): [Literal] 0 +# 1100| Type = [IntType] int +# 1100| Value = [Literal] 0 +# 1100| ValueCategory = prvalue +# 1098| getStmt(): [BlockStmt] { ... } +# 1099| getStmt(0): [DeclStmt] declaration +# 1099| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x360 +# 1099| Type = [Struct] String +# 1099| getVariable().getInitializer(): [Initializer] initializer for x360 +# 1099| getExpr(): [ConstructorCall] call to String +# 1099| Type = [VoidType] void +# 1099| ValueCategory = prvalue +# 1100| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1100| Type = [VoidType] void +# 1100| ValueCategory = prvalue +# 1100| getQualifier(): [VariableAccess] x360 +# 1100| Type = [Struct] String +# 1100| ValueCategory = lvalue +# 1100| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1100| Conversion = [BoolConversion] conversion to bool +# 1100| Type = [BoolType] bool +# 1100| Value = [CStyleCast] 0 +# 1100| ValueCategory = prvalue +# 1101| getStmt(361): [DoStmt] do (...) ... +# 1103| getCondition(): [Literal] 0 +# 1103| Type = [IntType] int +# 1103| Value = [Literal] 0 +# 1103| ValueCategory = prvalue +# 1101| getStmt(): [BlockStmt] { ... } +# 1102| getStmt(0): [DeclStmt] declaration +# 1102| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x361 +# 1102| Type = [Struct] String +# 1102| getVariable().getInitializer(): [Initializer] initializer for x361 +# 1102| getExpr(): [ConstructorCall] call to String +# 1102| Type = [VoidType] void +# 1102| ValueCategory = prvalue +# 1103| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1103| Type = [VoidType] void +# 1103| ValueCategory = prvalue +# 1103| getQualifier(): [VariableAccess] x361 +# 1103| Type = [Struct] String +# 1103| ValueCategory = lvalue +# 1103| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1103| Conversion = [BoolConversion] conversion to bool +# 1103| Type = [BoolType] bool +# 1103| Value = [CStyleCast] 0 +# 1103| ValueCategory = prvalue +# 1104| getStmt(362): [DoStmt] do (...) ... +# 1106| getCondition(): [Literal] 0 +# 1106| Type = [IntType] int +# 1106| Value = [Literal] 0 +# 1106| ValueCategory = prvalue +# 1104| getStmt(): [BlockStmt] { ... } +# 1105| getStmt(0): [DeclStmt] declaration +# 1105| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x362 +# 1105| Type = [Struct] String +# 1105| getVariable().getInitializer(): [Initializer] initializer for x362 +# 1105| getExpr(): [ConstructorCall] call to String +# 1105| Type = [VoidType] void +# 1105| ValueCategory = prvalue +# 1106| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1106| Type = [VoidType] void +# 1106| ValueCategory = prvalue +# 1106| getQualifier(): [VariableAccess] x362 +# 1106| Type = [Struct] String +# 1106| ValueCategory = lvalue +# 1106| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1106| Conversion = [BoolConversion] conversion to bool +# 1106| Type = [BoolType] bool +# 1106| Value = [CStyleCast] 0 +# 1106| ValueCategory = prvalue +# 1107| getStmt(363): [DoStmt] do (...) ... +# 1109| getCondition(): [Literal] 0 +# 1109| Type = [IntType] int +# 1109| Value = [Literal] 0 +# 1109| ValueCategory = prvalue +# 1107| getStmt(): [BlockStmt] { ... } +# 1108| getStmt(0): [DeclStmt] declaration +# 1108| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x363 +# 1108| Type = [Struct] String +# 1108| getVariable().getInitializer(): [Initializer] initializer for x363 +# 1108| getExpr(): [ConstructorCall] call to String +# 1108| Type = [VoidType] void +# 1108| ValueCategory = prvalue +# 1109| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1109| Type = [VoidType] void +# 1109| ValueCategory = prvalue +# 1109| getQualifier(): [VariableAccess] x363 +# 1109| Type = [Struct] String +# 1109| ValueCategory = lvalue +# 1109| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1109| Conversion = [BoolConversion] conversion to bool +# 1109| Type = [BoolType] bool +# 1109| Value = [CStyleCast] 0 +# 1109| ValueCategory = prvalue +# 1110| getStmt(364): [DoStmt] do (...) ... +# 1112| getCondition(): [Literal] 0 +# 1112| Type = [IntType] int +# 1112| Value = [Literal] 0 +# 1112| ValueCategory = prvalue +# 1110| getStmt(): [BlockStmt] { ... } +# 1111| getStmt(0): [DeclStmt] declaration +# 1111| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x364 +# 1111| Type = [Struct] String +# 1111| getVariable().getInitializer(): [Initializer] initializer for x364 +# 1111| getExpr(): [ConstructorCall] call to String +# 1111| Type = [VoidType] void +# 1111| ValueCategory = prvalue +# 1112| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1112| Type = [VoidType] void +# 1112| ValueCategory = prvalue +# 1112| getQualifier(): [VariableAccess] x364 +# 1112| Type = [Struct] String +# 1112| ValueCategory = lvalue +# 1112| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1112| Conversion = [BoolConversion] conversion to bool +# 1112| Type = [BoolType] bool +# 1112| Value = [CStyleCast] 0 +# 1112| ValueCategory = prvalue +# 1113| getStmt(365): [DoStmt] do (...) ... +# 1115| getCondition(): [Literal] 0 +# 1115| Type = [IntType] int +# 1115| Value = [Literal] 0 +# 1115| ValueCategory = prvalue +# 1113| getStmt(): [BlockStmt] { ... } +# 1114| getStmt(0): [DeclStmt] declaration +# 1114| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x365 +# 1114| Type = [Struct] String +# 1114| getVariable().getInitializer(): [Initializer] initializer for x365 +# 1114| getExpr(): [ConstructorCall] call to String +# 1114| Type = [VoidType] void +# 1114| ValueCategory = prvalue +# 1115| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1115| Type = [VoidType] void +# 1115| ValueCategory = prvalue +# 1115| getQualifier(): [VariableAccess] x365 +# 1115| Type = [Struct] String +# 1115| ValueCategory = lvalue +# 1115| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1115| Conversion = [BoolConversion] conversion to bool +# 1115| Type = [BoolType] bool +# 1115| Value = [CStyleCast] 0 +# 1115| ValueCategory = prvalue +# 1116| getStmt(366): [DoStmt] do (...) ... +# 1118| getCondition(): [Literal] 0 +# 1118| Type = [IntType] int +# 1118| Value = [Literal] 0 +# 1118| ValueCategory = prvalue +# 1116| getStmt(): [BlockStmt] { ... } +# 1117| getStmt(0): [DeclStmt] declaration +# 1117| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x366 +# 1117| Type = [Struct] String +# 1117| getVariable().getInitializer(): [Initializer] initializer for x366 +# 1117| getExpr(): [ConstructorCall] call to String +# 1117| Type = [VoidType] void +# 1117| ValueCategory = prvalue +# 1118| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1118| Type = [VoidType] void +# 1118| ValueCategory = prvalue +# 1118| getQualifier(): [VariableAccess] x366 +# 1118| Type = [Struct] String +# 1118| ValueCategory = lvalue +# 1118| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1118| Conversion = [BoolConversion] conversion to bool +# 1118| Type = [BoolType] bool +# 1118| Value = [CStyleCast] 0 +# 1118| ValueCategory = prvalue +# 1119| getStmt(367): [DoStmt] do (...) ... +# 1121| getCondition(): [Literal] 0 +# 1121| Type = [IntType] int +# 1121| Value = [Literal] 0 +# 1121| ValueCategory = prvalue +# 1119| getStmt(): [BlockStmt] { ... } +# 1120| getStmt(0): [DeclStmt] declaration +# 1120| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x367 +# 1120| Type = [Struct] String +# 1120| getVariable().getInitializer(): [Initializer] initializer for x367 +# 1120| getExpr(): [ConstructorCall] call to String +# 1120| Type = [VoidType] void +# 1120| ValueCategory = prvalue +# 1121| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1121| Type = [VoidType] void +# 1121| ValueCategory = prvalue +# 1121| getQualifier(): [VariableAccess] x367 +# 1121| Type = [Struct] String +# 1121| ValueCategory = lvalue +# 1121| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1121| Conversion = [BoolConversion] conversion to bool +# 1121| Type = [BoolType] bool +# 1121| Value = [CStyleCast] 0 +# 1121| ValueCategory = prvalue +# 1122| getStmt(368): [DoStmt] do (...) ... +# 1124| getCondition(): [Literal] 0 +# 1124| Type = [IntType] int +# 1124| Value = [Literal] 0 +# 1124| ValueCategory = prvalue +# 1122| getStmt(): [BlockStmt] { ... } +# 1123| getStmt(0): [DeclStmt] declaration +# 1123| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x368 +# 1123| Type = [Struct] String +# 1123| getVariable().getInitializer(): [Initializer] initializer for x368 +# 1123| getExpr(): [ConstructorCall] call to String +# 1123| Type = [VoidType] void +# 1123| ValueCategory = prvalue +# 1124| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1124| Type = [VoidType] void +# 1124| ValueCategory = prvalue +# 1124| getQualifier(): [VariableAccess] x368 +# 1124| Type = [Struct] String +# 1124| ValueCategory = lvalue +# 1124| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1124| Conversion = [BoolConversion] conversion to bool +# 1124| Type = [BoolType] bool +# 1124| Value = [CStyleCast] 0 +# 1124| ValueCategory = prvalue +# 1125| getStmt(369): [DoStmt] do (...) ... +# 1127| getCondition(): [Literal] 0 +# 1127| Type = [IntType] int +# 1127| Value = [Literal] 0 +# 1127| ValueCategory = prvalue +# 1125| getStmt(): [BlockStmt] { ... } +# 1126| getStmt(0): [DeclStmt] declaration +# 1126| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x369 +# 1126| Type = [Struct] String +# 1126| getVariable().getInitializer(): [Initializer] initializer for x369 +# 1126| getExpr(): [ConstructorCall] call to String +# 1126| Type = [VoidType] void +# 1126| ValueCategory = prvalue +# 1127| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1127| Type = [VoidType] void +# 1127| ValueCategory = prvalue +# 1127| getQualifier(): [VariableAccess] x369 +# 1127| Type = [Struct] String +# 1127| ValueCategory = lvalue +# 1127| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1127| Conversion = [BoolConversion] conversion to bool +# 1127| Type = [BoolType] bool +# 1127| Value = [CStyleCast] 0 +# 1127| ValueCategory = prvalue +# 1128| getStmt(370): [DoStmt] do (...) ... +# 1130| getCondition(): [Literal] 0 +# 1130| Type = [IntType] int +# 1130| Value = [Literal] 0 +# 1130| ValueCategory = prvalue +# 1128| getStmt(): [BlockStmt] { ... } +# 1129| getStmt(0): [DeclStmt] declaration +# 1129| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x370 +# 1129| Type = [Struct] String +# 1129| getVariable().getInitializer(): [Initializer] initializer for x370 +# 1129| getExpr(): [ConstructorCall] call to String +# 1129| Type = [VoidType] void +# 1129| ValueCategory = prvalue +# 1130| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1130| Type = [VoidType] void +# 1130| ValueCategory = prvalue +# 1130| getQualifier(): [VariableAccess] x370 +# 1130| Type = [Struct] String +# 1130| ValueCategory = lvalue +# 1130| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1130| Conversion = [BoolConversion] conversion to bool +# 1130| Type = [BoolType] bool +# 1130| Value = [CStyleCast] 0 +# 1130| ValueCategory = prvalue +# 1131| getStmt(371): [DoStmt] do (...) ... +# 1133| getCondition(): [Literal] 0 +# 1133| Type = [IntType] int +# 1133| Value = [Literal] 0 +# 1133| ValueCategory = prvalue +# 1131| getStmt(): [BlockStmt] { ... } +# 1132| getStmt(0): [DeclStmt] declaration +# 1132| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x371 +# 1132| Type = [Struct] String +# 1132| getVariable().getInitializer(): [Initializer] initializer for x371 +# 1132| getExpr(): [ConstructorCall] call to String +# 1132| Type = [VoidType] void +# 1132| ValueCategory = prvalue +# 1133| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1133| Type = [VoidType] void +# 1133| ValueCategory = prvalue +# 1133| getQualifier(): [VariableAccess] x371 +# 1133| Type = [Struct] String +# 1133| ValueCategory = lvalue +# 1133| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1133| Conversion = [BoolConversion] conversion to bool +# 1133| Type = [BoolType] bool +# 1133| Value = [CStyleCast] 0 +# 1133| ValueCategory = prvalue +# 1134| getStmt(372): [DoStmt] do (...) ... +# 1136| getCondition(): [Literal] 0 +# 1136| Type = [IntType] int +# 1136| Value = [Literal] 0 +# 1136| ValueCategory = prvalue +# 1134| getStmt(): [BlockStmt] { ... } +# 1135| getStmt(0): [DeclStmt] declaration +# 1135| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x372 +# 1135| Type = [Struct] String +# 1135| getVariable().getInitializer(): [Initializer] initializer for x372 +# 1135| getExpr(): [ConstructorCall] call to String +# 1135| Type = [VoidType] void +# 1135| ValueCategory = prvalue +# 1136| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1136| Type = [VoidType] void +# 1136| ValueCategory = prvalue +# 1136| getQualifier(): [VariableAccess] x372 +# 1136| Type = [Struct] String +# 1136| ValueCategory = lvalue +# 1136| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1136| Conversion = [BoolConversion] conversion to bool +# 1136| Type = [BoolType] bool +# 1136| Value = [CStyleCast] 0 +# 1136| ValueCategory = prvalue +# 1137| getStmt(373): [DoStmt] do (...) ... +# 1139| getCondition(): [Literal] 0 +# 1139| Type = [IntType] int +# 1139| Value = [Literal] 0 +# 1139| ValueCategory = prvalue +# 1137| getStmt(): [BlockStmt] { ... } +# 1138| getStmt(0): [DeclStmt] declaration +# 1138| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x373 +# 1138| Type = [Struct] String +# 1138| getVariable().getInitializer(): [Initializer] initializer for x373 +# 1138| getExpr(): [ConstructorCall] call to String +# 1138| Type = [VoidType] void +# 1138| ValueCategory = prvalue +# 1139| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1139| Type = [VoidType] void +# 1139| ValueCategory = prvalue +# 1139| getQualifier(): [VariableAccess] x373 +# 1139| Type = [Struct] String +# 1139| ValueCategory = lvalue +# 1139| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1139| Conversion = [BoolConversion] conversion to bool +# 1139| Type = [BoolType] bool +# 1139| Value = [CStyleCast] 0 +# 1139| ValueCategory = prvalue +# 1140| getStmt(374): [DoStmt] do (...) ... +# 1142| getCondition(): [Literal] 0 +# 1142| Type = [IntType] int +# 1142| Value = [Literal] 0 +# 1142| ValueCategory = prvalue +# 1140| getStmt(): [BlockStmt] { ... } +# 1141| getStmt(0): [DeclStmt] declaration +# 1141| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x374 +# 1141| Type = [Struct] String +# 1141| getVariable().getInitializer(): [Initializer] initializer for x374 +# 1141| getExpr(): [ConstructorCall] call to String +# 1141| Type = [VoidType] void +# 1141| ValueCategory = prvalue +# 1142| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1142| Type = [VoidType] void +# 1142| ValueCategory = prvalue +# 1142| getQualifier(): [VariableAccess] x374 +# 1142| Type = [Struct] String +# 1142| ValueCategory = lvalue +# 1142| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1142| Conversion = [BoolConversion] conversion to bool +# 1142| Type = [BoolType] bool +# 1142| Value = [CStyleCast] 0 +# 1142| ValueCategory = prvalue +# 1143| getStmt(375): [DoStmt] do (...) ... +# 1145| getCondition(): [Literal] 0 +# 1145| Type = [IntType] int +# 1145| Value = [Literal] 0 +# 1145| ValueCategory = prvalue +# 1143| getStmt(): [BlockStmt] { ... } +# 1144| getStmt(0): [DeclStmt] declaration +# 1144| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x375 +# 1144| Type = [Struct] String +# 1144| getVariable().getInitializer(): [Initializer] initializer for x375 +# 1144| getExpr(): [ConstructorCall] call to String +# 1144| Type = [VoidType] void +# 1144| ValueCategory = prvalue +# 1145| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1145| Type = [VoidType] void +# 1145| ValueCategory = prvalue +# 1145| getQualifier(): [VariableAccess] x375 +# 1145| Type = [Struct] String +# 1145| ValueCategory = lvalue +# 1145| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1145| Conversion = [BoolConversion] conversion to bool +# 1145| Type = [BoolType] bool +# 1145| Value = [CStyleCast] 0 +# 1145| ValueCategory = prvalue +# 1146| getStmt(376): [DoStmt] do (...) ... +# 1148| getCondition(): [Literal] 0 +# 1148| Type = [IntType] int +# 1148| Value = [Literal] 0 +# 1148| ValueCategory = prvalue +# 1146| getStmt(): [BlockStmt] { ... } +# 1147| getStmt(0): [DeclStmt] declaration +# 1147| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x376 +# 1147| Type = [Struct] String +# 1147| getVariable().getInitializer(): [Initializer] initializer for x376 +# 1147| getExpr(): [ConstructorCall] call to String +# 1147| Type = [VoidType] void +# 1147| ValueCategory = prvalue +# 1148| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1148| Type = [VoidType] void +# 1148| ValueCategory = prvalue +# 1148| getQualifier(): [VariableAccess] x376 +# 1148| Type = [Struct] String +# 1148| ValueCategory = lvalue +# 1148| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1148| Conversion = [BoolConversion] conversion to bool +# 1148| Type = [BoolType] bool +# 1148| Value = [CStyleCast] 0 +# 1148| ValueCategory = prvalue +# 1149| getStmt(377): [DoStmt] do (...) ... +# 1151| getCondition(): [Literal] 0 +# 1151| Type = [IntType] int +# 1151| Value = [Literal] 0 +# 1151| ValueCategory = prvalue +# 1149| getStmt(): [BlockStmt] { ... } +# 1150| getStmt(0): [DeclStmt] declaration +# 1150| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x377 +# 1150| Type = [Struct] String +# 1150| getVariable().getInitializer(): [Initializer] initializer for x377 +# 1150| getExpr(): [ConstructorCall] call to String +# 1150| Type = [VoidType] void +# 1150| ValueCategory = prvalue +# 1151| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1151| Type = [VoidType] void +# 1151| ValueCategory = prvalue +# 1151| getQualifier(): [VariableAccess] x377 +# 1151| Type = [Struct] String +# 1151| ValueCategory = lvalue +# 1151| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1151| Conversion = [BoolConversion] conversion to bool +# 1151| Type = [BoolType] bool +# 1151| Value = [CStyleCast] 0 +# 1151| ValueCategory = prvalue +# 1152| getStmt(378): [DoStmt] do (...) ... +# 1154| getCondition(): [Literal] 0 +# 1154| Type = [IntType] int +# 1154| Value = [Literal] 0 +# 1154| ValueCategory = prvalue +# 1152| getStmt(): [BlockStmt] { ... } +# 1153| getStmt(0): [DeclStmt] declaration +# 1153| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x378 +# 1153| Type = [Struct] String +# 1153| getVariable().getInitializer(): [Initializer] initializer for x378 +# 1153| getExpr(): [ConstructorCall] call to String +# 1153| Type = [VoidType] void +# 1153| ValueCategory = prvalue +# 1154| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1154| Type = [VoidType] void +# 1154| ValueCategory = prvalue +# 1154| getQualifier(): [VariableAccess] x378 +# 1154| Type = [Struct] String +# 1154| ValueCategory = lvalue +# 1154| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1154| Conversion = [BoolConversion] conversion to bool +# 1154| Type = [BoolType] bool +# 1154| Value = [CStyleCast] 0 +# 1154| ValueCategory = prvalue +# 1155| getStmt(379): [DoStmt] do (...) ... +# 1157| getCondition(): [Literal] 0 +# 1157| Type = [IntType] int +# 1157| Value = [Literal] 0 +# 1157| ValueCategory = prvalue +# 1155| getStmt(): [BlockStmt] { ... } +# 1156| getStmt(0): [DeclStmt] declaration +# 1156| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x379 +# 1156| Type = [Struct] String +# 1156| getVariable().getInitializer(): [Initializer] initializer for x379 +# 1156| getExpr(): [ConstructorCall] call to String +# 1156| Type = [VoidType] void +# 1156| ValueCategory = prvalue +# 1157| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1157| Type = [VoidType] void +# 1157| ValueCategory = prvalue +# 1157| getQualifier(): [VariableAccess] x379 +# 1157| Type = [Struct] String +# 1157| ValueCategory = lvalue +# 1157| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1157| Conversion = [BoolConversion] conversion to bool +# 1157| Type = [BoolType] bool +# 1157| Value = [CStyleCast] 0 +# 1157| ValueCategory = prvalue +# 1158| getStmt(380): [DoStmt] do (...) ... +# 1160| getCondition(): [Literal] 0 +# 1160| Type = [IntType] int +# 1160| Value = [Literal] 0 +# 1160| ValueCategory = prvalue +# 1158| getStmt(): [BlockStmt] { ... } +# 1159| getStmt(0): [DeclStmt] declaration +# 1159| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x380 +# 1159| Type = [Struct] String +# 1159| getVariable().getInitializer(): [Initializer] initializer for x380 +# 1159| getExpr(): [ConstructorCall] call to String +# 1159| Type = [VoidType] void +# 1159| ValueCategory = prvalue +# 1160| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1160| Type = [VoidType] void +# 1160| ValueCategory = prvalue +# 1160| getQualifier(): [VariableAccess] x380 +# 1160| Type = [Struct] String +# 1160| ValueCategory = lvalue +# 1160| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1160| Conversion = [BoolConversion] conversion to bool +# 1160| Type = [BoolType] bool +# 1160| Value = [CStyleCast] 0 +# 1160| ValueCategory = prvalue +# 1161| getStmt(381): [DoStmt] do (...) ... +# 1163| getCondition(): [Literal] 0 +# 1163| Type = [IntType] int +# 1163| Value = [Literal] 0 +# 1163| ValueCategory = prvalue +# 1161| getStmt(): [BlockStmt] { ... } +# 1162| getStmt(0): [DeclStmt] declaration +# 1162| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x381 +# 1162| Type = [Struct] String +# 1162| getVariable().getInitializer(): [Initializer] initializer for x381 +# 1162| getExpr(): [ConstructorCall] call to String +# 1162| Type = [VoidType] void +# 1162| ValueCategory = prvalue +# 1163| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1163| Type = [VoidType] void +# 1163| ValueCategory = prvalue +# 1163| getQualifier(): [VariableAccess] x381 +# 1163| Type = [Struct] String +# 1163| ValueCategory = lvalue +# 1163| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1163| Conversion = [BoolConversion] conversion to bool +# 1163| Type = [BoolType] bool +# 1163| Value = [CStyleCast] 0 +# 1163| ValueCategory = prvalue +# 1164| getStmt(382): [DoStmt] do (...) ... +# 1166| getCondition(): [Literal] 0 +# 1166| Type = [IntType] int +# 1166| Value = [Literal] 0 +# 1166| ValueCategory = prvalue +# 1164| getStmt(): [BlockStmt] { ... } +# 1165| getStmt(0): [DeclStmt] declaration +# 1165| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x382 +# 1165| Type = [Struct] String +# 1165| getVariable().getInitializer(): [Initializer] initializer for x382 +# 1165| getExpr(): [ConstructorCall] call to String +# 1165| Type = [VoidType] void +# 1165| ValueCategory = prvalue +# 1166| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1166| Type = [VoidType] void +# 1166| ValueCategory = prvalue +# 1166| getQualifier(): [VariableAccess] x382 +# 1166| Type = [Struct] String +# 1166| ValueCategory = lvalue +# 1166| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1166| Conversion = [BoolConversion] conversion to bool +# 1166| Type = [BoolType] bool +# 1166| Value = [CStyleCast] 0 +# 1166| ValueCategory = prvalue +# 1167| getStmt(383): [DoStmt] do (...) ... +# 1169| getCondition(): [Literal] 0 +# 1169| Type = [IntType] int +# 1169| Value = [Literal] 0 +# 1169| ValueCategory = prvalue +# 1167| getStmt(): [BlockStmt] { ... } +# 1168| getStmt(0): [DeclStmt] declaration +# 1168| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x383 +# 1168| Type = [Struct] String +# 1168| getVariable().getInitializer(): [Initializer] initializer for x383 +# 1168| getExpr(): [ConstructorCall] call to String +# 1168| Type = [VoidType] void +# 1168| ValueCategory = prvalue +# 1169| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1169| Type = [VoidType] void +# 1169| ValueCategory = prvalue +# 1169| getQualifier(): [VariableAccess] x383 +# 1169| Type = [Struct] String +# 1169| ValueCategory = lvalue +# 1169| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1169| Conversion = [BoolConversion] conversion to bool +# 1169| Type = [BoolType] bool +# 1169| Value = [CStyleCast] 0 +# 1169| ValueCategory = prvalue +# 1170| getStmt(384): [DoStmt] do (...) ... +# 1172| getCondition(): [Literal] 0 +# 1172| Type = [IntType] int +# 1172| Value = [Literal] 0 +# 1172| ValueCategory = prvalue +# 1170| getStmt(): [BlockStmt] { ... } +# 1171| getStmt(0): [DeclStmt] declaration +# 1171| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x384 +# 1171| Type = [Struct] String +# 1171| getVariable().getInitializer(): [Initializer] initializer for x384 +# 1171| getExpr(): [ConstructorCall] call to String +# 1171| Type = [VoidType] void +# 1171| ValueCategory = prvalue +# 1172| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1172| Type = [VoidType] void +# 1172| ValueCategory = prvalue +# 1172| getQualifier(): [VariableAccess] x384 +# 1172| Type = [Struct] String +# 1172| ValueCategory = lvalue +# 1172| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1172| Conversion = [BoolConversion] conversion to bool +# 1172| Type = [BoolType] bool +# 1172| Value = [CStyleCast] 0 +# 1172| ValueCategory = prvalue +# 1173| getStmt(385): [DoStmt] do (...) ... +# 1175| getCondition(): [Literal] 0 +# 1175| Type = [IntType] int +# 1175| Value = [Literal] 0 +# 1175| ValueCategory = prvalue +# 1173| getStmt(): [BlockStmt] { ... } +# 1174| getStmt(0): [DeclStmt] declaration +# 1174| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x385 +# 1174| Type = [Struct] String +# 1174| getVariable().getInitializer(): [Initializer] initializer for x385 +# 1174| getExpr(): [ConstructorCall] call to String +# 1174| Type = [VoidType] void +# 1174| ValueCategory = prvalue +# 1175| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1175| Type = [VoidType] void +# 1175| ValueCategory = prvalue +# 1175| getQualifier(): [VariableAccess] x385 +# 1175| Type = [Struct] String +# 1175| ValueCategory = lvalue +# 1175| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1175| Conversion = [BoolConversion] conversion to bool +# 1175| Type = [BoolType] bool +# 1175| Value = [CStyleCast] 0 +# 1175| ValueCategory = prvalue +# 1176| getStmt(386): [DoStmt] do (...) ... +# 1178| getCondition(): [Literal] 0 +# 1178| Type = [IntType] int +# 1178| Value = [Literal] 0 +# 1178| ValueCategory = prvalue +# 1176| getStmt(): [BlockStmt] { ... } +# 1177| getStmt(0): [DeclStmt] declaration +# 1177| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x386 +# 1177| Type = [Struct] String +# 1177| getVariable().getInitializer(): [Initializer] initializer for x386 +# 1177| getExpr(): [ConstructorCall] call to String +# 1177| Type = [VoidType] void +# 1177| ValueCategory = prvalue +# 1178| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1178| Type = [VoidType] void +# 1178| ValueCategory = prvalue +# 1178| getQualifier(): [VariableAccess] x386 +# 1178| Type = [Struct] String +# 1178| ValueCategory = lvalue +# 1178| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1178| Conversion = [BoolConversion] conversion to bool +# 1178| Type = [BoolType] bool +# 1178| Value = [CStyleCast] 0 +# 1178| ValueCategory = prvalue +# 1179| getStmt(387): [DoStmt] do (...) ... +# 1181| getCondition(): [Literal] 0 +# 1181| Type = [IntType] int +# 1181| Value = [Literal] 0 +# 1181| ValueCategory = prvalue +# 1179| getStmt(): [BlockStmt] { ... } +# 1180| getStmt(0): [DeclStmt] declaration +# 1180| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x387 +# 1180| Type = [Struct] String +# 1180| getVariable().getInitializer(): [Initializer] initializer for x387 +# 1180| getExpr(): [ConstructorCall] call to String +# 1180| Type = [VoidType] void +# 1180| ValueCategory = prvalue +# 1181| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1181| Type = [VoidType] void +# 1181| ValueCategory = prvalue +# 1181| getQualifier(): [VariableAccess] x387 +# 1181| Type = [Struct] String +# 1181| ValueCategory = lvalue +# 1181| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1181| Conversion = [BoolConversion] conversion to bool +# 1181| Type = [BoolType] bool +# 1181| Value = [CStyleCast] 0 +# 1181| ValueCategory = prvalue +# 1182| getStmt(388): [DoStmt] do (...) ... +# 1184| getCondition(): [Literal] 0 +# 1184| Type = [IntType] int +# 1184| Value = [Literal] 0 +# 1184| ValueCategory = prvalue +# 1182| getStmt(): [BlockStmt] { ... } +# 1183| getStmt(0): [DeclStmt] declaration +# 1183| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x388 +# 1183| Type = [Struct] String +# 1183| getVariable().getInitializer(): [Initializer] initializer for x388 +# 1183| getExpr(): [ConstructorCall] call to String +# 1183| Type = [VoidType] void +# 1183| ValueCategory = prvalue +# 1184| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1184| Type = [VoidType] void +# 1184| ValueCategory = prvalue +# 1184| getQualifier(): [VariableAccess] x388 +# 1184| Type = [Struct] String +# 1184| ValueCategory = lvalue +# 1184| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1184| Conversion = [BoolConversion] conversion to bool +# 1184| Type = [BoolType] bool +# 1184| Value = [CStyleCast] 0 +# 1184| ValueCategory = prvalue +# 1185| getStmt(389): [DoStmt] do (...) ... +# 1187| getCondition(): [Literal] 0 +# 1187| Type = [IntType] int +# 1187| Value = [Literal] 0 +# 1187| ValueCategory = prvalue +# 1185| getStmt(): [BlockStmt] { ... } +# 1186| getStmt(0): [DeclStmt] declaration +# 1186| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x389 +# 1186| Type = [Struct] String +# 1186| getVariable().getInitializer(): [Initializer] initializer for x389 +# 1186| getExpr(): [ConstructorCall] call to String +# 1186| Type = [VoidType] void +# 1186| ValueCategory = prvalue +# 1187| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1187| Type = [VoidType] void +# 1187| ValueCategory = prvalue +# 1187| getQualifier(): [VariableAccess] x389 +# 1187| Type = [Struct] String +# 1187| ValueCategory = lvalue +# 1187| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1187| Conversion = [BoolConversion] conversion to bool +# 1187| Type = [BoolType] bool +# 1187| Value = [CStyleCast] 0 +# 1187| ValueCategory = prvalue +# 1188| getStmt(390): [DoStmt] do (...) ... +# 1190| getCondition(): [Literal] 0 +# 1190| Type = [IntType] int +# 1190| Value = [Literal] 0 +# 1190| ValueCategory = prvalue +# 1188| getStmt(): [BlockStmt] { ... } +# 1189| getStmt(0): [DeclStmt] declaration +# 1189| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x390 +# 1189| Type = [Struct] String +# 1189| getVariable().getInitializer(): [Initializer] initializer for x390 +# 1189| getExpr(): [ConstructorCall] call to String +# 1189| Type = [VoidType] void +# 1189| ValueCategory = prvalue +# 1190| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1190| Type = [VoidType] void +# 1190| ValueCategory = prvalue +# 1190| getQualifier(): [VariableAccess] x390 +# 1190| Type = [Struct] String +# 1190| ValueCategory = lvalue +# 1190| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1190| Conversion = [BoolConversion] conversion to bool +# 1190| Type = [BoolType] bool +# 1190| Value = [CStyleCast] 0 +# 1190| ValueCategory = prvalue +# 1191| getStmt(391): [DoStmt] do (...) ... +# 1193| getCondition(): [Literal] 0 +# 1193| Type = [IntType] int +# 1193| Value = [Literal] 0 +# 1193| ValueCategory = prvalue +# 1191| getStmt(): [BlockStmt] { ... } +# 1192| getStmt(0): [DeclStmt] declaration +# 1192| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x391 +# 1192| Type = [Struct] String +# 1192| getVariable().getInitializer(): [Initializer] initializer for x391 +# 1192| getExpr(): [ConstructorCall] call to String +# 1192| Type = [VoidType] void +# 1192| ValueCategory = prvalue +# 1193| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1193| Type = [VoidType] void +# 1193| ValueCategory = prvalue +# 1193| getQualifier(): [VariableAccess] x391 +# 1193| Type = [Struct] String +# 1193| ValueCategory = lvalue +# 1193| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1193| Conversion = [BoolConversion] conversion to bool +# 1193| Type = [BoolType] bool +# 1193| Value = [CStyleCast] 0 +# 1193| ValueCategory = prvalue +# 1194| getStmt(392): [DoStmt] do (...) ... +# 1196| getCondition(): [Literal] 0 +# 1196| Type = [IntType] int +# 1196| Value = [Literal] 0 +# 1196| ValueCategory = prvalue +# 1194| getStmt(): [BlockStmt] { ... } +# 1195| getStmt(0): [DeclStmt] declaration +# 1195| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x392 +# 1195| Type = [Struct] String +# 1195| getVariable().getInitializer(): [Initializer] initializer for x392 +# 1195| getExpr(): [ConstructorCall] call to String +# 1195| Type = [VoidType] void +# 1195| ValueCategory = prvalue +# 1196| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1196| Type = [VoidType] void +# 1196| ValueCategory = prvalue +# 1196| getQualifier(): [VariableAccess] x392 +# 1196| Type = [Struct] String +# 1196| ValueCategory = lvalue +# 1196| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1196| Conversion = [BoolConversion] conversion to bool +# 1196| Type = [BoolType] bool +# 1196| Value = [CStyleCast] 0 +# 1196| ValueCategory = prvalue +# 1197| getStmt(393): [DoStmt] do (...) ... +# 1199| getCondition(): [Literal] 0 +# 1199| Type = [IntType] int +# 1199| Value = [Literal] 0 +# 1199| ValueCategory = prvalue +# 1197| getStmt(): [BlockStmt] { ... } +# 1198| getStmt(0): [DeclStmt] declaration +# 1198| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x393 +# 1198| Type = [Struct] String +# 1198| getVariable().getInitializer(): [Initializer] initializer for x393 +# 1198| getExpr(): [ConstructorCall] call to String +# 1198| Type = [VoidType] void +# 1198| ValueCategory = prvalue +# 1199| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1199| Type = [VoidType] void +# 1199| ValueCategory = prvalue +# 1199| getQualifier(): [VariableAccess] x393 +# 1199| Type = [Struct] String +# 1199| ValueCategory = lvalue +# 1199| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1199| Conversion = [BoolConversion] conversion to bool +# 1199| Type = [BoolType] bool +# 1199| Value = [CStyleCast] 0 +# 1199| ValueCategory = prvalue +# 1200| getStmt(394): [DoStmt] do (...) ... +# 1202| getCondition(): [Literal] 0 +# 1202| Type = [IntType] int +# 1202| Value = [Literal] 0 +# 1202| ValueCategory = prvalue +# 1200| getStmt(): [BlockStmt] { ... } +# 1201| getStmt(0): [DeclStmt] declaration +# 1201| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x394 +# 1201| Type = [Struct] String +# 1201| getVariable().getInitializer(): [Initializer] initializer for x394 +# 1201| getExpr(): [ConstructorCall] call to String +# 1201| Type = [VoidType] void +# 1201| ValueCategory = prvalue +# 1202| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1202| Type = [VoidType] void +# 1202| ValueCategory = prvalue +# 1202| getQualifier(): [VariableAccess] x394 +# 1202| Type = [Struct] String +# 1202| ValueCategory = lvalue +# 1202| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1202| Conversion = [BoolConversion] conversion to bool +# 1202| Type = [BoolType] bool +# 1202| Value = [CStyleCast] 0 +# 1202| ValueCategory = prvalue +# 1203| getStmt(395): [DoStmt] do (...) ... +# 1205| getCondition(): [Literal] 0 +# 1205| Type = [IntType] int +# 1205| Value = [Literal] 0 +# 1205| ValueCategory = prvalue +# 1203| getStmt(): [BlockStmt] { ... } +# 1204| getStmt(0): [DeclStmt] declaration +# 1204| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x395 +# 1204| Type = [Struct] String +# 1204| getVariable().getInitializer(): [Initializer] initializer for x395 +# 1204| getExpr(): [ConstructorCall] call to String +# 1204| Type = [VoidType] void +# 1204| ValueCategory = prvalue +# 1205| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1205| Type = [VoidType] void +# 1205| ValueCategory = prvalue +# 1205| getQualifier(): [VariableAccess] x395 +# 1205| Type = [Struct] String +# 1205| ValueCategory = lvalue +# 1205| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1205| Conversion = [BoolConversion] conversion to bool +# 1205| Type = [BoolType] bool +# 1205| Value = [CStyleCast] 0 +# 1205| ValueCategory = prvalue +# 1206| getStmt(396): [DoStmt] do (...) ... +# 1208| getCondition(): [Literal] 0 +# 1208| Type = [IntType] int +# 1208| Value = [Literal] 0 +# 1208| ValueCategory = prvalue +# 1206| getStmt(): [BlockStmt] { ... } +# 1207| getStmt(0): [DeclStmt] declaration +# 1207| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x396 +# 1207| Type = [Struct] String +# 1207| getVariable().getInitializer(): [Initializer] initializer for x396 +# 1207| getExpr(): [ConstructorCall] call to String +# 1207| Type = [VoidType] void +# 1207| ValueCategory = prvalue +# 1208| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1208| Type = [VoidType] void +# 1208| ValueCategory = prvalue +# 1208| getQualifier(): [VariableAccess] x396 +# 1208| Type = [Struct] String +# 1208| ValueCategory = lvalue +# 1208| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1208| Conversion = [BoolConversion] conversion to bool +# 1208| Type = [BoolType] bool +# 1208| Value = [CStyleCast] 0 +# 1208| ValueCategory = prvalue +# 1209| getStmt(397): [DoStmt] do (...) ... +# 1211| getCondition(): [Literal] 0 +# 1211| Type = [IntType] int +# 1211| Value = [Literal] 0 +# 1211| ValueCategory = prvalue +# 1209| getStmt(): [BlockStmt] { ... } +# 1210| getStmt(0): [DeclStmt] declaration +# 1210| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x397 +# 1210| Type = [Struct] String +# 1210| getVariable().getInitializer(): [Initializer] initializer for x397 +# 1210| getExpr(): [ConstructorCall] call to String +# 1210| Type = [VoidType] void +# 1210| ValueCategory = prvalue +# 1211| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1211| Type = [VoidType] void +# 1211| ValueCategory = prvalue +# 1211| getQualifier(): [VariableAccess] x397 +# 1211| Type = [Struct] String +# 1211| ValueCategory = lvalue +# 1211| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1211| Conversion = [BoolConversion] conversion to bool +# 1211| Type = [BoolType] bool +# 1211| Value = [CStyleCast] 0 +# 1211| ValueCategory = prvalue +# 1212| getStmt(398): [DoStmt] do (...) ... +# 1214| getCondition(): [Literal] 0 +# 1214| Type = [IntType] int +# 1214| Value = [Literal] 0 +# 1214| ValueCategory = prvalue +# 1212| getStmt(): [BlockStmt] { ... } +# 1213| getStmt(0): [DeclStmt] declaration +# 1213| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x398 +# 1213| Type = [Struct] String +# 1213| getVariable().getInitializer(): [Initializer] initializer for x398 +# 1213| getExpr(): [ConstructorCall] call to String +# 1213| Type = [VoidType] void +# 1213| ValueCategory = prvalue +# 1214| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1214| Type = [VoidType] void +# 1214| ValueCategory = prvalue +# 1214| getQualifier(): [VariableAccess] x398 +# 1214| Type = [Struct] String +# 1214| ValueCategory = lvalue +# 1214| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1214| Conversion = [BoolConversion] conversion to bool +# 1214| Type = [BoolType] bool +# 1214| Value = [CStyleCast] 0 +# 1214| ValueCategory = prvalue +# 1215| getStmt(399): [DoStmt] do (...) ... +# 1217| getCondition(): [Literal] 0 +# 1217| Type = [IntType] int +# 1217| Value = [Literal] 0 +# 1217| ValueCategory = prvalue +# 1215| getStmt(): [BlockStmt] { ... } +# 1216| getStmt(0): [DeclStmt] declaration +# 1216| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x399 +# 1216| Type = [Struct] String +# 1216| getVariable().getInitializer(): [Initializer] initializer for x399 +# 1216| getExpr(): [ConstructorCall] call to String +# 1216| Type = [VoidType] void +# 1216| ValueCategory = prvalue +# 1217| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1217| Type = [VoidType] void +# 1217| ValueCategory = prvalue +# 1217| getQualifier(): [VariableAccess] x399 +# 1217| Type = [Struct] String +# 1217| ValueCategory = lvalue +# 1217| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1217| Conversion = [BoolConversion] conversion to bool +# 1217| Type = [BoolType] bool +# 1217| Value = [CStyleCast] 0 +# 1217| ValueCategory = prvalue +# 1218| getStmt(400): [DoStmt] do (...) ... +# 1220| getCondition(): [Literal] 0 +# 1220| Type = [IntType] int +# 1220| Value = [Literal] 0 +# 1220| ValueCategory = prvalue +# 1218| getStmt(): [BlockStmt] { ... } +# 1219| getStmt(0): [DeclStmt] declaration +# 1219| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x400 +# 1219| Type = [Struct] String +# 1219| getVariable().getInitializer(): [Initializer] initializer for x400 +# 1219| getExpr(): [ConstructorCall] call to String +# 1219| Type = [VoidType] void +# 1219| ValueCategory = prvalue +# 1220| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1220| Type = [VoidType] void +# 1220| ValueCategory = prvalue +# 1220| getQualifier(): [VariableAccess] x400 +# 1220| Type = [Struct] String +# 1220| ValueCategory = lvalue +# 1220| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1220| Conversion = [BoolConversion] conversion to bool +# 1220| Type = [BoolType] bool +# 1220| Value = [CStyleCast] 0 +# 1220| ValueCategory = prvalue +# 1221| getStmt(401): [DoStmt] do (...) ... +# 1223| getCondition(): [Literal] 0 +# 1223| Type = [IntType] int +# 1223| Value = [Literal] 0 +# 1223| ValueCategory = prvalue +# 1221| getStmt(): [BlockStmt] { ... } +# 1222| getStmt(0): [DeclStmt] declaration +# 1222| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x401 +# 1222| Type = [Struct] String +# 1222| getVariable().getInitializer(): [Initializer] initializer for x401 +# 1222| getExpr(): [ConstructorCall] call to String +# 1222| Type = [VoidType] void +# 1222| ValueCategory = prvalue +# 1223| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1223| Type = [VoidType] void +# 1223| ValueCategory = prvalue +# 1223| getQualifier(): [VariableAccess] x401 +# 1223| Type = [Struct] String +# 1223| ValueCategory = lvalue +# 1223| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1223| Conversion = [BoolConversion] conversion to bool +# 1223| Type = [BoolType] bool +# 1223| Value = [CStyleCast] 0 +# 1223| ValueCategory = prvalue +# 1224| getStmt(402): [DoStmt] do (...) ... +# 1226| getCondition(): [Literal] 0 +# 1226| Type = [IntType] int +# 1226| Value = [Literal] 0 +# 1226| ValueCategory = prvalue +# 1224| getStmt(): [BlockStmt] { ... } +# 1225| getStmt(0): [DeclStmt] declaration +# 1225| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x402 +# 1225| Type = [Struct] String +# 1225| getVariable().getInitializer(): [Initializer] initializer for x402 +# 1225| getExpr(): [ConstructorCall] call to String +# 1225| Type = [VoidType] void +# 1225| ValueCategory = prvalue +# 1226| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1226| Type = [VoidType] void +# 1226| ValueCategory = prvalue +# 1226| getQualifier(): [VariableAccess] x402 +# 1226| Type = [Struct] String +# 1226| ValueCategory = lvalue +# 1226| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1226| Conversion = [BoolConversion] conversion to bool +# 1226| Type = [BoolType] bool +# 1226| Value = [CStyleCast] 0 +# 1226| ValueCategory = prvalue +# 1227| getStmt(403): [DoStmt] do (...) ... +# 1229| getCondition(): [Literal] 0 +# 1229| Type = [IntType] int +# 1229| Value = [Literal] 0 +# 1229| ValueCategory = prvalue +# 1227| getStmt(): [BlockStmt] { ... } +# 1228| getStmt(0): [DeclStmt] declaration +# 1228| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x403 +# 1228| Type = [Struct] String +# 1228| getVariable().getInitializer(): [Initializer] initializer for x403 +# 1228| getExpr(): [ConstructorCall] call to String +# 1228| Type = [VoidType] void +# 1228| ValueCategory = prvalue +# 1229| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1229| Type = [VoidType] void +# 1229| ValueCategory = prvalue +# 1229| getQualifier(): [VariableAccess] x403 +# 1229| Type = [Struct] String +# 1229| ValueCategory = lvalue +# 1229| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1229| Conversion = [BoolConversion] conversion to bool +# 1229| Type = [BoolType] bool +# 1229| Value = [CStyleCast] 0 +# 1229| ValueCategory = prvalue +# 1230| getStmt(404): [DoStmt] do (...) ... +# 1232| getCondition(): [Literal] 0 +# 1232| Type = [IntType] int +# 1232| Value = [Literal] 0 +# 1232| ValueCategory = prvalue +# 1230| getStmt(): [BlockStmt] { ... } +# 1231| getStmt(0): [DeclStmt] declaration +# 1231| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x404 +# 1231| Type = [Struct] String +# 1231| getVariable().getInitializer(): [Initializer] initializer for x404 +# 1231| getExpr(): [ConstructorCall] call to String +# 1231| Type = [VoidType] void +# 1231| ValueCategory = prvalue +# 1232| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1232| Type = [VoidType] void +# 1232| ValueCategory = prvalue +# 1232| getQualifier(): [VariableAccess] x404 +# 1232| Type = [Struct] String +# 1232| ValueCategory = lvalue +# 1232| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1232| Conversion = [BoolConversion] conversion to bool +# 1232| Type = [BoolType] bool +# 1232| Value = [CStyleCast] 0 +# 1232| ValueCategory = prvalue +# 1233| getStmt(405): [DoStmt] do (...) ... +# 1235| getCondition(): [Literal] 0 +# 1235| Type = [IntType] int +# 1235| Value = [Literal] 0 +# 1235| ValueCategory = prvalue +# 1233| getStmt(): [BlockStmt] { ... } +# 1234| getStmt(0): [DeclStmt] declaration +# 1234| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x405 +# 1234| Type = [Struct] String +# 1234| getVariable().getInitializer(): [Initializer] initializer for x405 +# 1234| getExpr(): [ConstructorCall] call to String +# 1234| Type = [VoidType] void +# 1234| ValueCategory = prvalue +# 1235| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1235| Type = [VoidType] void +# 1235| ValueCategory = prvalue +# 1235| getQualifier(): [VariableAccess] x405 +# 1235| Type = [Struct] String +# 1235| ValueCategory = lvalue +# 1235| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1235| Conversion = [BoolConversion] conversion to bool +# 1235| Type = [BoolType] bool +# 1235| Value = [CStyleCast] 0 +# 1235| ValueCategory = prvalue +# 1236| getStmt(406): [DoStmt] do (...) ... +# 1238| getCondition(): [Literal] 0 +# 1238| Type = [IntType] int +# 1238| Value = [Literal] 0 +# 1238| ValueCategory = prvalue +# 1236| getStmt(): [BlockStmt] { ... } +# 1237| getStmt(0): [DeclStmt] declaration +# 1237| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x406 +# 1237| Type = [Struct] String +# 1237| getVariable().getInitializer(): [Initializer] initializer for x406 +# 1237| getExpr(): [ConstructorCall] call to String +# 1237| Type = [VoidType] void +# 1237| ValueCategory = prvalue +# 1238| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1238| Type = [VoidType] void +# 1238| ValueCategory = prvalue +# 1238| getQualifier(): [VariableAccess] x406 +# 1238| Type = [Struct] String +# 1238| ValueCategory = lvalue +# 1238| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1238| Conversion = [BoolConversion] conversion to bool +# 1238| Type = [BoolType] bool +# 1238| Value = [CStyleCast] 0 +# 1238| ValueCategory = prvalue +# 1239| getStmt(407): [DoStmt] do (...) ... +# 1241| getCondition(): [Literal] 0 +# 1241| Type = [IntType] int +# 1241| Value = [Literal] 0 +# 1241| ValueCategory = prvalue +# 1239| getStmt(): [BlockStmt] { ... } +# 1240| getStmt(0): [DeclStmt] declaration +# 1240| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x407 +# 1240| Type = [Struct] String +# 1240| getVariable().getInitializer(): [Initializer] initializer for x407 +# 1240| getExpr(): [ConstructorCall] call to String +# 1240| Type = [VoidType] void +# 1240| ValueCategory = prvalue +# 1241| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1241| Type = [VoidType] void +# 1241| ValueCategory = prvalue +# 1241| getQualifier(): [VariableAccess] x407 +# 1241| Type = [Struct] String +# 1241| ValueCategory = lvalue +# 1241| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1241| Conversion = [BoolConversion] conversion to bool +# 1241| Type = [BoolType] bool +# 1241| Value = [CStyleCast] 0 +# 1241| ValueCategory = prvalue +# 1242| getStmt(408): [DoStmt] do (...) ... +# 1244| getCondition(): [Literal] 0 +# 1244| Type = [IntType] int +# 1244| Value = [Literal] 0 +# 1244| ValueCategory = prvalue +# 1242| getStmt(): [BlockStmt] { ... } +# 1243| getStmt(0): [DeclStmt] declaration +# 1243| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x408 +# 1243| Type = [Struct] String +# 1243| getVariable().getInitializer(): [Initializer] initializer for x408 +# 1243| getExpr(): [ConstructorCall] call to String +# 1243| Type = [VoidType] void +# 1243| ValueCategory = prvalue +# 1244| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1244| Type = [VoidType] void +# 1244| ValueCategory = prvalue +# 1244| getQualifier(): [VariableAccess] x408 +# 1244| Type = [Struct] String +# 1244| ValueCategory = lvalue +# 1244| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1244| Conversion = [BoolConversion] conversion to bool +# 1244| Type = [BoolType] bool +# 1244| Value = [CStyleCast] 0 +# 1244| ValueCategory = prvalue +# 1245| getStmt(409): [DoStmt] do (...) ... +# 1247| getCondition(): [Literal] 0 +# 1247| Type = [IntType] int +# 1247| Value = [Literal] 0 +# 1247| ValueCategory = prvalue +# 1245| getStmt(): [BlockStmt] { ... } +# 1246| getStmt(0): [DeclStmt] declaration +# 1246| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x409 +# 1246| Type = [Struct] String +# 1246| getVariable().getInitializer(): [Initializer] initializer for x409 +# 1246| getExpr(): [ConstructorCall] call to String +# 1246| Type = [VoidType] void +# 1246| ValueCategory = prvalue +# 1247| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1247| Type = [VoidType] void +# 1247| ValueCategory = prvalue +# 1247| getQualifier(): [VariableAccess] x409 +# 1247| Type = [Struct] String +# 1247| ValueCategory = lvalue +# 1247| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1247| Conversion = [BoolConversion] conversion to bool +# 1247| Type = [BoolType] bool +# 1247| Value = [CStyleCast] 0 +# 1247| ValueCategory = prvalue +# 1248| getStmt(410): [DoStmt] do (...) ... +# 1250| getCondition(): [Literal] 0 +# 1250| Type = [IntType] int +# 1250| Value = [Literal] 0 +# 1250| ValueCategory = prvalue +# 1248| getStmt(): [BlockStmt] { ... } +# 1249| getStmt(0): [DeclStmt] declaration +# 1249| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x410 +# 1249| Type = [Struct] String +# 1249| getVariable().getInitializer(): [Initializer] initializer for x410 +# 1249| getExpr(): [ConstructorCall] call to String +# 1249| Type = [VoidType] void +# 1249| ValueCategory = prvalue +# 1250| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1250| Type = [VoidType] void +# 1250| ValueCategory = prvalue +# 1250| getQualifier(): [VariableAccess] x410 +# 1250| Type = [Struct] String +# 1250| ValueCategory = lvalue +# 1250| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1250| Conversion = [BoolConversion] conversion to bool +# 1250| Type = [BoolType] bool +# 1250| Value = [CStyleCast] 0 +# 1250| ValueCategory = prvalue +# 1251| getStmt(411): [DoStmt] do (...) ... +# 1253| getCondition(): [Literal] 0 +# 1253| Type = [IntType] int +# 1253| Value = [Literal] 0 +# 1253| ValueCategory = prvalue +# 1251| getStmt(): [BlockStmt] { ... } +# 1252| getStmt(0): [DeclStmt] declaration +# 1252| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x411 +# 1252| Type = [Struct] String +# 1252| getVariable().getInitializer(): [Initializer] initializer for x411 +# 1252| getExpr(): [ConstructorCall] call to String +# 1252| Type = [VoidType] void +# 1252| ValueCategory = prvalue +# 1253| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1253| Type = [VoidType] void +# 1253| ValueCategory = prvalue +# 1253| getQualifier(): [VariableAccess] x411 +# 1253| Type = [Struct] String +# 1253| ValueCategory = lvalue +# 1253| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1253| Conversion = [BoolConversion] conversion to bool +# 1253| Type = [BoolType] bool +# 1253| Value = [CStyleCast] 0 +# 1253| ValueCategory = prvalue +# 1254| getStmt(412): [DoStmt] do (...) ... +# 1256| getCondition(): [Literal] 0 +# 1256| Type = [IntType] int +# 1256| Value = [Literal] 0 +# 1256| ValueCategory = prvalue +# 1254| getStmt(): [BlockStmt] { ... } +# 1255| getStmt(0): [DeclStmt] declaration +# 1255| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x412 +# 1255| Type = [Struct] String +# 1255| getVariable().getInitializer(): [Initializer] initializer for x412 +# 1255| getExpr(): [ConstructorCall] call to String +# 1255| Type = [VoidType] void +# 1255| ValueCategory = prvalue +# 1256| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1256| Type = [VoidType] void +# 1256| ValueCategory = prvalue +# 1256| getQualifier(): [VariableAccess] x412 +# 1256| Type = [Struct] String +# 1256| ValueCategory = lvalue +# 1256| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1256| Conversion = [BoolConversion] conversion to bool +# 1256| Type = [BoolType] bool +# 1256| Value = [CStyleCast] 0 +# 1256| ValueCategory = prvalue +# 1257| getStmt(413): [DoStmt] do (...) ... +# 1259| getCondition(): [Literal] 0 +# 1259| Type = [IntType] int +# 1259| Value = [Literal] 0 +# 1259| ValueCategory = prvalue +# 1257| getStmt(): [BlockStmt] { ... } +# 1258| getStmt(0): [DeclStmt] declaration +# 1258| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x413 +# 1258| Type = [Struct] String +# 1258| getVariable().getInitializer(): [Initializer] initializer for x413 +# 1258| getExpr(): [ConstructorCall] call to String +# 1258| Type = [VoidType] void +# 1258| ValueCategory = prvalue +# 1259| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1259| Type = [VoidType] void +# 1259| ValueCategory = prvalue +# 1259| getQualifier(): [VariableAccess] x413 +# 1259| Type = [Struct] String +# 1259| ValueCategory = lvalue +# 1259| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1259| Conversion = [BoolConversion] conversion to bool +# 1259| Type = [BoolType] bool +# 1259| Value = [CStyleCast] 0 +# 1259| ValueCategory = prvalue +# 1260| getStmt(414): [DoStmt] do (...) ... +# 1262| getCondition(): [Literal] 0 +# 1262| Type = [IntType] int +# 1262| Value = [Literal] 0 +# 1262| ValueCategory = prvalue +# 1260| getStmt(): [BlockStmt] { ... } +# 1261| getStmt(0): [DeclStmt] declaration +# 1261| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x414 +# 1261| Type = [Struct] String +# 1261| getVariable().getInitializer(): [Initializer] initializer for x414 +# 1261| getExpr(): [ConstructorCall] call to String +# 1261| Type = [VoidType] void +# 1261| ValueCategory = prvalue +# 1262| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1262| Type = [VoidType] void +# 1262| ValueCategory = prvalue +# 1262| getQualifier(): [VariableAccess] x414 +# 1262| Type = [Struct] String +# 1262| ValueCategory = lvalue +# 1262| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1262| Conversion = [BoolConversion] conversion to bool +# 1262| Type = [BoolType] bool +# 1262| Value = [CStyleCast] 0 +# 1262| ValueCategory = prvalue +# 1263| getStmt(415): [DoStmt] do (...) ... +# 1265| getCondition(): [Literal] 0 +# 1265| Type = [IntType] int +# 1265| Value = [Literal] 0 +# 1265| ValueCategory = prvalue +# 1263| getStmt(): [BlockStmt] { ... } +# 1264| getStmt(0): [DeclStmt] declaration +# 1264| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x415 +# 1264| Type = [Struct] String +# 1264| getVariable().getInitializer(): [Initializer] initializer for x415 +# 1264| getExpr(): [ConstructorCall] call to String +# 1264| Type = [VoidType] void +# 1264| ValueCategory = prvalue +# 1265| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1265| Type = [VoidType] void +# 1265| ValueCategory = prvalue +# 1265| getQualifier(): [VariableAccess] x415 +# 1265| Type = [Struct] String +# 1265| ValueCategory = lvalue +# 1265| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1265| Conversion = [BoolConversion] conversion to bool +# 1265| Type = [BoolType] bool +# 1265| Value = [CStyleCast] 0 +# 1265| ValueCategory = prvalue +# 1266| getStmt(416): [DoStmt] do (...) ... +# 1268| getCondition(): [Literal] 0 +# 1268| Type = [IntType] int +# 1268| Value = [Literal] 0 +# 1268| ValueCategory = prvalue +# 1266| getStmt(): [BlockStmt] { ... } +# 1267| getStmt(0): [DeclStmt] declaration +# 1267| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x416 +# 1267| Type = [Struct] String +# 1267| getVariable().getInitializer(): [Initializer] initializer for x416 +# 1267| getExpr(): [ConstructorCall] call to String +# 1267| Type = [VoidType] void +# 1267| ValueCategory = prvalue +# 1268| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1268| Type = [VoidType] void +# 1268| ValueCategory = prvalue +# 1268| getQualifier(): [VariableAccess] x416 +# 1268| Type = [Struct] String +# 1268| ValueCategory = lvalue +# 1268| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1268| Conversion = [BoolConversion] conversion to bool +# 1268| Type = [BoolType] bool +# 1268| Value = [CStyleCast] 0 +# 1268| ValueCategory = prvalue +# 1269| getStmt(417): [DoStmt] do (...) ... +# 1271| getCondition(): [Literal] 0 +# 1271| Type = [IntType] int +# 1271| Value = [Literal] 0 +# 1271| ValueCategory = prvalue +# 1269| getStmt(): [BlockStmt] { ... } +# 1270| getStmt(0): [DeclStmt] declaration +# 1270| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x417 +# 1270| Type = [Struct] String +# 1270| getVariable().getInitializer(): [Initializer] initializer for x417 +# 1270| getExpr(): [ConstructorCall] call to String +# 1270| Type = [VoidType] void +# 1270| ValueCategory = prvalue +# 1271| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1271| Type = [VoidType] void +# 1271| ValueCategory = prvalue +# 1271| getQualifier(): [VariableAccess] x417 +# 1271| Type = [Struct] String +# 1271| ValueCategory = lvalue +# 1271| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1271| Conversion = [BoolConversion] conversion to bool +# 1271| Type = [BoolType] bool +# 1271| Value = [CStyleCast] 0 +# 1271| ValueCategory = prvalue +# 1272| getStmt(418): [DoStmt] do (...) ... +# 1274| getCondition(): [Literal] 0 +# 1274| Type = [IntType] int +# 1274| Value = [Literal] 0 +# 1274| ValueCategory = prvalue +# 1272| getStmt(): [BlockStmt] { ... } +# 1273| getStmt(0): [DeclStmt] declaration +# 1273| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x418 +# 1273| Type = [Struct] String +# 1273| getVariable().getInitializer(): [Initializer] initializer for x418 +# 1273| getExpr(): [ConstructorCall] call to String +# 1273| Type = [VoidType] void +# 1273| ValueCategory = prvalue +# 1274| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1274| Type = [VoidType] void +# 1274| ValueCategory = prvalue +# 1274| getQualifier(): [VariableAccess] x418 +# 1274| Type = [Struct] String +# 1274| ValueCategory = lvalue +# 1274| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1274| Conversion = [BoolConversion] conversion to bool +# 1274| Type = [BoolType] bool +# 1274| Value = [CStyleCast] 0 +# 1274| ValueCategory = prvalue +# 1275| getStmt(419): [DoStmt] do (...) ... +# 1277| getCondition(): [Literal] 0 +# 1277| Type = [IntType] int +# 1277| Value = [Literal] 0 +# 1277| ValueCategory = prvalue +# 1275| getStmt(): [BlockStmt] { ... } +# 1276| getStmt(0): [DeclStmt] declaration +# 1276| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x419 +# 1276| Type = [Struct] String +# 1276| getVariable().getInitializer(): [Initializer] initializer for x419 +# 1276| getExpr(): [ConstructorCall] call to String +# 1276| Type = [VoidType] void +# 1276| ValueCategory = prvalue +# 1277| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1277| Type = [VoidType] void +# 1277| ValueCategory = prvalue +# 1277| getQualifier(): [VariableAccess] x419 +# 1277| Type = [Struct] String +# 1277| ValueCategory = lvalue +# 1277| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1277| Conversion = [BoolConversion] conversion to bool +# 1277| Type = [BoolType] bool +# 1277| Value = [CStyleCast] 0 +# 1277| ValueCategory = prvalue +# 1278| getStmt(420): [DoStmt] do (...) ... +# 1280| getCondition(): [Literal] 0 +# 1280| Type = [IntType] int +# 1280| Value = [Literal] 0 +# 1280| ValueCategory = prvalue +# 1278| getStmt(): [BlockStmt] { ... } +# 1279| getStmt(0): [DeclStmt] declaration +# 1279| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x420 +# 1279| Type = [Struct] String +# 1279| getVariable().getInitializer(): [Initializer] initializer for x420 +# 1279| getExpr(): [ConstructorCall] call to String +# 1279| Type = [VoidType] void +# 1279| ValueCategory = prvalue +# 1280| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1280| Type = [VoidType] void +# 1280| ValueCategory = prvalue +# 1280| getQualifier(): [VariableAccess] x420 +# 1280| Type = [Struct] String +# 1280| ValueCategory = lvalue +# 1280| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1280| Conversion = [BoolConversion] conversion to bool +# 1280| Type = [BoolType] bool +# 1280| Value = [CStyleCast] 0 +# 1280| ValueCategory = prvalue +# 1281| getStmt(421): [DoStmt] do (...) ... +# 1283| getCondition(): [Literal] 0 +# 1283| Type = [IntType] int +# 1283| Value = [Literal] 0 +# 1283| ValueCategory = prvalue +# 1281| getStmt(): [BlockStmt] { ... } +# 1282| getStmt(0): [DeclStmt] declaration +# 1282| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x421 +# 1282| Type = [Struct] String +# 1282| getVariable().getInitializer(): [Initializer] initializer for x421 +# 1282| getExpr(): [ConstructorCall] call to String +# 1282| Type = [VoidType] void +# 1282| ValueCategory = prvalue +# 1283| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1283| Type = [VoidType] void +# 1283| ValueCategory = prvalue +# 1283| getQualifier(): [VariableAccess] x421 +# 1283| Type = [Struct] String +# 1283| ValueCategory = lvalue +# 1283| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1283| Conversion = [BoolConversion] conversion to bool +# 1283| Type = [BoolType] bool +# 1283| Value = [CStyleCast] 0 +# 1283| ValueCategory = prvalue +# 1284| getStmt(422): [DoStmt] do (...) ... +# 1286| getCondition(): [Literal] 0 +# 1286| Type = [IntType] int +# 1286| Value = [Literal] 0 +# 1286| ValueCategory = prvalue +# 1284| getStmt(): [BlockStmt] { ... } +# 1285| getStmt(0): [DeclStmt] declaration +# 1285| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x422 +# 1285| Type = [Struct] String +# 1285| getVariable().getInitializer(): [Initializer] initializer for x422 +# 1285| getExpr(): [ConstructorCall] call to String +# 1285| Type = [VoidType] void +# 1285| ValueCategory = prvalue +# 1286| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1286| Type = [VoidType] void +# 1286| ValueCategory = prvalue +# 1286| getQualifier(): [VariableAccess] x422 +# 1286| Type = [Struct] String +# 1286| ValueCategory = lvalue +# 1286| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1286| Conversion = [BoolConversion] conversion to bool +# 1286| Type = [BoolType] bool +# 1286| Value = [CStyleCast] 0 +# 1286| ValueCategory = prvalue +# 1287| getStmt(423): [DoStmt] do (...) ... +# 1289| getCondition(): [Literal] 0 +# 1289| Type = [IntType] int +# 1289| Value = [Literal] 0 +# 1289| ValueCategory = prvalue +# 1287| getStmt(): [BlockStmt] { ... } +# 1288| getStmt(0): [DeclStmt] declaration +# 1288| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x423 +# 1288| Type = [Struct] String +# 1288| getVariable().getInitializer(): [Initializer] initializer for x423 +# 1288| getExpr(): [ConstructorCall] call to String +# 1288| Type = [VoidType] void +# 1288| ValueCategory = prvalue +# 1289| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1289| Type = [VoidType] void +# 1289| ValueCategory = prvalue +# 1289| getQualifier(): [VariableAccess] x423 +# 1289| Type = [Struct] String +# 1289| ValueCategory = lvalue +# 1289| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1289| Conversion = [BoolConversion] conversion to bool +# 1289| Type = [BoolType] bool +# 1289| Value = [CStyleCast] 0 +# 1289| ValueCategory = prvalue +# 1290| getStmt(424): [DoStmt] do (...) ... +# 1292| getCondition(): [Literal] 0 +# 1292| Type = [IntType] int +# 1292| Value = [Literal] 0 +# 1292| ValueCategory = prvalue +# 1290| getStmt(): [BlockStmt] { ... } +# 1291| getStmt(0): [DeclStmt] declaration +# 1291| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x424 +# 1291| Type = [Struct] String +# 1291| getVariable().getInitializer(): [Initializer] initializer for x424 +# 1291| getExpr(): [ConstructorCall] call to String +# 1291| Type = [VoidType] void +# 1291| ValueCategory = prvalue +# 1292| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1292| Type = [VoidType] void +# 1292| ValueCategory = prvalue +# 1292| getQualifier(): [VariableAccess] x424 +# 1292| Type = [Struct] String +# 1292| ValueCategory = lvalue +# 1292| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1292| Conversion = [BoolConversion] conversion to bool +# 1292| Type = [BoolType] bool +# 1292| Value = [CStyleCast] 0 +# 1292| ValueCategory = prvalue +# 1293| getStmt(425): [DoStmt] do (...) ... +# 1295| getCondition(): [Literal] 0 +# 1295| Type = [IntType] int +# 1295| Value = [Literal] 0 +# 1295| ValueCategory = prvalue +# 1293| getStmt(): [BlockStmt] { ... } +# 1294| getStmt(0): [DeclStmt] declaration +# 1294| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x425 +# 1294| Type = [Struct] String +# 1294| getVariable().getInitializer(): [Initializer] initializer for x425 +# 1294| getExpr(): [ConstructorCall] call to String +# 1294| Type = [VoidType] void +# 1294| ValueCategory = prvalue +# 1295| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1295| Type = [VoidType] void +# 1295| ValueCategory = prvalue +# 1295| getQualifier(): [VariableAccess] x425 +# 1295| Type = [Struct] String +# 1295| ValueCategory = lvalue +# 1295| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1295| Conversion = [BoolConversion] conversion to bool +# 1295| Type = [BoolType] bool +# 1295| Value = [CStyleCast] 0 +# 1295| ValueCategory = prvalue +# 1296| getStmt(426): [DoStmt] do (...) ... +# 1298| getCondition(): [Literal] 0 +# 1298| Type = [IntType] int +# 1298| Value = [Literal] 0 +# 1298| ValueCategory = prvalue +# 1296| getStmt(): [BlockStmt] { ... } +# 1297| getStmt(0): [DeclStmt] declaration +# 1297| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x426 +# 1297| Type = [Struct] String +# 1297| getVariable().getInitializer(): [Initializer] initializer for x426 +# 1297| getExpr(): [ConstructorCall] call to String +# 1297| Type = [VoidType] void +# 1297| ValueCategory = prvalue +# 1298| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1298| Type = [VoidType] void +# 1298| ValueCategory = prvalue +# 1298| getQualifier(): [VariableAccess] x426 +# 1298| Type = [Struct] String +# 1298| ValueCategory = lvalue +# 1298| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1298| Conversion = [BoolConversion] conversion to bool +# 1298| Type = [BoolType] bool +# 1298| Value = [CStyleCast] 0 +# 1298| ValueCategory = prvalue +# 1299| getStmt(427): [DoStmt] do (...) ... +# 1301| getCondition(): [Literal] 0 +# 1301| Type = [IntType] int +# 1301| Value = [Literal] 0 +# 1301| ValueCategory = prvalue +# 1299| getStmt(): [BlockStmt] { ... } +# 1300| getStmt(0): [DeclStmt] declaration +# 1300| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x427 +# 1300| Type = [Struct] String +# 1300| getVariable().getInitializer(): [Initializer] initializer for x427 +# 1300| getExpr(): [ConstructorCall] call to String +# 1300| Type = [VoidType] void +# 1300| ValueCategory = prvalue +# 1301| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1301| Type = [VoidType] void +# 1301| ValueCategory = prvalue +# 1301| getQualifier(): [VariableAccess] x427 +# 1301| Type = [Struct] String +# 1301| ValueCategory = lvalue +# 1301| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1301| Conversion = [BoolConversion] conversion to bool +# 1301| Type = [BoolType] bool +# 1301| Value = [CStyleCast] 0 +# 1301| ValueCategory = prvalue +# 1302| getStmt(428): [DoStmt] do (...) ... +# 1304| getCondition(): [Literal] 0 +# 1304| Type = [IntType] int +# 1304| Value = [Literal] 0 +# 1304| ValueCategory = prvalue +# 1302| getStmt(): [BlockStmt] { ... } +# 1303| getStmt(0): [DeclStmt] declaration +# 1303| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x428 +# 1303| Type = [Struct] String +# 1303| getVariable().getInitializer(): [Initializer] initializer for x428 +# 1303| getExpr(): [ConstructorCall] call to String +# 1303| Type = [VoidType] void +# 1303| ValueCategory = prvalue +# 1304| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1304| Type = [VoidType] void +# 1304| ValueCategory = prvalue +# 1304| getQualifier(): [VariableAccess] x428 +# 1304| Type = [Struct] String +# 1304| ValueCategory = lvalue +# 1304| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1304| Conversion = [BoolConversion] conversion to bool +# 1304| Type = [BoolType] bool +# 1304| Value = [CStyleCast] 0 +# 1304| ValueCategory = prvalue +# 1305| getStmt(429): [DoStmt] do (...) ... +# 1307| getCondition(): [Literal] 0 +# 1307| Type = [IntType] int +# 1307| Value = [Literal] 0 +# 1307| ValueCategory = prvalue +# 1305| getStmt(): [BlockStmt] { ... } +# 1306| getStmt(0): [DeclStmt] declaration +# 1306| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x429 +# 1306| Type = [Struct] String +# 1306| getVariable().getInitializer(): [Initializer] initializer for x429 +# 1306| getExpr(): [ConstructorCall] call to String +# 1306| Type = [VoidType] void +# 1306| ValueCategory = prvalue +# 1307| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1307| Type = [VoidType] void +# 1307| ValueCategory = prvalue +# 1307| getQualifier(): [VariableAccess] x429 +# 1307| Type = [Struct] String +# 1307| ValueCategory = lvalue +# 1307| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1307| Conversion = [BoolConversion] conversion to bool +# 1307| Type = [BoolType] bool +# 1307| Value = [CStyleCast] 0 +# 1307| ValueCategory = prvalue +# 1308| getStmt(430): [DoStmt] do (...) ... +# 1310| getCondition(): [Literal] 0 +# 1310| Type = [IntType] int +# 1310| Value = [Literal] 0 +# 1310| ValueCategory = prvalue +# 1308| getStmt(): [BlockStmt] { ... } +# 1309| getStmt(0): [DeclStmt] declaration +# 1309| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x430 +# 1309| Type = [Struct] String +# 1309| getVariable().getInitializer(): [Initializer] initializer for x430 +# 1309| getExpr(): [ConstructorCall] call to String +# 1309| Type = [VoidType] void +# 1309| ValueCategory = prvalue +# 1310| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1310| Type = [VoidType] void +# 1310| ValueCategory = prvalue +# 1310| getQualifier(): [VariableAccess] x430 +# 1310| Type = [Struct] String +# 1310| ValueCategory = lvalue +# 1310| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1310| Conversion = [BoolConversion] conversion to bool +# 1310| Type = [BoolType] bool +# 1310| Value = [CStyleCast] 0 +# 1310| ValueCategory = prvalue +# 1311| getStmt(431): [DoStmt] do (...) ... +# 1313| getCondition(): [Literal] 0 +# 1313| Type = [IntType] int +# 1313| Value = [Literal] 0 +# 1313| ValueCategory = prvalue +# 1311| getStmt(): [BlockStmt] { ... } +# 1312| getStmt(0): [DeclStmt] declaration +# 1312| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x431 +# 1312| Type = [Struct] String +# 1312| getVariable().getInitializer(): [Initializer] initializer for x431 +# 1312| getExpr(): [ConstructorCall] call to String +# 1312| Type = [VoidType] void +# 1312| ValueCategory = prvalue +# 1313| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1313| Type = [VoidType] void +# 1313| ValueCategory = prvalue +# 1313| getQualifier(): [VariableAccess] x431 +# 1313| Type = [Struct] String +# 1313| ValueCategory = lvalue +# 1313| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1313| Conversion = [BoolConversion] conversion to bool +# 1313| Type = [BoolType] bool +# 1313| Value = [CStyleCast] 0 +# 1313| ValueCategory = prvalue +# 1314| getStmt(432): [DoStmt] do (...) ... +# 1316| getCondition(): [Literal] 0 +# 1316| Type = [IntType] int +# 1316| Value = [Literal] 0 +# 1316| ValueCategory = prvalue +# 1314| getStmt(): [BlockStmt] { ... } +# 1315| getStmt(0): [DeclStmt] declaration +# 1315| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x432 +# 1315| Type = [Struct] String +# 1315| getVariable().getInitializer(): [Initializer] initializer for x432 +# 1315| getExpr(): [ConstructorCall] call to String +# 1315| Type = [VoidType] void +# 1315| ValueCategory = prvalue +# 1316| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1316| Type = [VoidType] void +# 1316| ValueCategory = prvalue +# 1316| getQualifier(): [VariableAccess] x432 +# 1316| Type = [Struct] String +# 1316| ValueCategory = lvalue +# 1316| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1316| Conversion = [BoolConversion] conversion to bool +# 1316| Type = [BoolType] bool +# 1316| Value = [CStyleCast] 0 +# 1316| ValueCategory = prvalue +# 1317| getStmt(433): [DoStmt] do (...) ... +# 1319| getCondition(): [Literal] 0 +# 1319| Type = [IntType] int +# 1319| Value = [Literal] 0 +# 1319| ValueCategory = prvalue +# 1317| getStmt(): [BlockStmt] { ... } +# 1318| getStmt(0): [DeclStmt] declaration +# 1318| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x433 +# 1318| Type = [Struct] String +# 1318| getVariable().getInitializer(): [Initializer] initializer for x433 +# 1318| getExpr(): [ConstructorCall] call to String +# 1318| Type = [VoidType] void +# 1318| ValueCategory = prvalue +# 1319| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1319| Type = [VoidType] void +# 1319| ValueCategory = prvalue +# 1319| getQualifier(): [VariableAccess] x433 +# 1319| Type = [Struct] String +# 1319| ValueCategory = lvalue +# 1319| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1319| Conversion = [BoolConversion] conversion to bool +# 1319| Type = [BoolType] bool +# 1319| Value = [CStyleCast] 0 +# 1319| ValueCategory = prvalue +# 1320| getStmt(434): [DoStmt] do (...) ... +# 1322| getCondition(): [Literal] 0 +# 1322| Type = [IntType] int +# 1322| Value = [Literal] 0 +# 1322| ValueCategory = prvalue +# 1320| getStmt(): [BlockStmt] { ... } +# 1321| getStmt(0): [DeclStmt] declaration +# 1321| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x434 +# 1321| Type = [Struct] String +# 1321| getVariable().getInitializer(): [Initializer] initializer for x434 +# 1321| getExpr(): [ConstructorCall] call to String +# 1321| Type = [VoidType] void +# 1321| ValueCategory = prvalue +# 1322| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1322| Type = [VoidType] void +# 1322| ValueCategory = prvalue +# 1322| getQualifier(): [VariableAccess] x434 +# 1322| Type = [Struct] String +# 1322| ValueCategory = lvalue +# 1322| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1322| Conversion = [BoolConversion] conversion to bool +# 1322| Type = [BoolType] bool +# 1322| Value = [CStyleCast] 0 +# 1322| ValueCategory = prvalue +# 1323| getStmt(435): [DoStmt] do (...) ... +# 1325| getCondition(): [Literal] 0 +# 1325| Type = [IntType] int +# 1325| Value = [Literal] 0 +# 1325| ValueCategory = prvalue +# 1323| getStmt(): [BlockStmt] { ... } +# 1324| getStmt(0): [DeclStmt] declaration +# 1324| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x435 +# 1324| Type = [Struct] String +# 1324| getVariable().getInitializer(): [Initializer] initializer for x435 +# 1324| getExpr(): [ConstructorCall] call to String +# 1324| Type = [VoidType] void +# 1324| ValueCategory = prvalue +# 1325| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1325| Type = [VoidType] void +# 1325| ValueCategory = prvalue +# 1325| getQualifier(): [VariableAccess] x435 +# 1325| Type = [Struct] String +# 1325| ValueCategory = lvalue +# 1325| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1325| Conversion = [BoolConversion] conversion to bool +# 1325| Type = [BoolType] bool +# 1325| Value = [CStyleCast] 0 +# 1325| ValueCategory = prvalue +# 1326| getStmt(436): [DoStmt] do (...) ... +# 1328| getCondition(): [Literal] 0 +# 1328| Type = [IntType] int +# 1328| Value = [Literal] 0 +# 1328| ValueCategory = prvalue +# 1326| getStmt(): [BlockStmt] { ... } +# 1327| getStmt(0): [DeclStmt] declaration +# 1327| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x436 +# 1327| Type = [Struct] String +# 1327| getVariable().getInitializer(): [Initializer] initializer for x436 +# 1327| getExpr(): [ConstructorCall] call to String +# 1327| Type = [VoidType] void +# 1327| ValueCategory = prvalue +# 1328| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1328| Type = [VoidType] void +# 1328| ValueCategory = prvalue +# 1328| getQualifier(): [VariableAccess] x436 +# 1328| Type = [Struct] String +# 1328| ValueCategory = lvalue +# 1328| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1328| Conversion = [BoolConversion] conversion to bool +# 1328| Type = [BoolType] bool +# 1328| Value = [CStyleCast] 0 +# 1328| ValueCategory = prvalue +# 1329| getStmt(437): [DoStmt] do (...) ... +# 1331| getCondition(): [Literal] 0 +# 1331| Type = [IntType] int +# 1331| Value = [Literal] 0 +# 1331| ValueCategory = prvalue +# 1329| getStmt(): [BlockStmt] { ... } +# 1330| getStmt(0): [DeclStmt] declaration +# 1330| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x437 +# 1330| Type = [Struct] String +# 1330| getVariable().getInitializer(): [Initializer] initializer for x437 +# 1330| getExpr(): [ConstructorCall] call to String +# 1330| Type = [VoidType] void +# 1330| ValueCategory = prvalue +# 1331| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1331| Type = [VoidType] void +# 1331| ValueCategory = prvalue +# 1331| getQualifier(): [VariableAccess] x437 +# 1331| Type = [Struct] String +# 1331| ValueCategory = lvalue +# 1331| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1331| Conversion = [BoolConversion] conversion to bool +# 1331| Type = [BoolType] bool +# 1331| Value = [CStyleCast] 0 +# 1331| ValueCategory = prvalue +# 1332| getStmt(438): [DoStmt] do (...) ... +# 1334| getCondition(): [Literal] 0 +# 1334| Type = [IntType] int +# 1334| Value = [Literal] 0 +# 1334| ValueCategory = prvalue +# 1332| getStmt(): [BlockStmt] { ... } +# 1333| getStmt(0): [DeclStmt] declaration +# 1333| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x438 +# 1333| Type = [Struct] String +# 1333| getVariable().getInitializer(): [Initializer] initializer for x438 +# 1333| getExpr(): [ConstructorCall] call to String +# 1333| Type = [VoidType] void +# 1333| ValueCategory = prvalue +# 1334| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1334| Type = [VoidType] void +# 1334| ValueCategory = prvalue +# 1334| getQualifier(): [VariableAccess] x438 +# 1334| Type = [Struct] String +# 1334| ValueCategory = lvalue +# 1334| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1334| Conversion = [BoolConversion] conversion to bool +# 1334| Type = [BoolType] bool +# 1334| Value = [CStyleCast] 0 +# 1334| ValueCategory = prvalue +# 1335| getStmt(439): [DoStmt] do (...) ... +# 1337| getCondition(): [Literal] 0 +# 1337| Type = [IntType] int +# 1337| Value = [Literal] 0 +# 1337| ValueCategory = prvalue +# 1335| getStmt(): [BlockStmt] { ... } +# 1336| getStmt(0): [DeclStmt] declaration +# 1336| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x439 +# 1336| Type = [Struct] String +# 1336| getVariable().getInitializer(): [Initializer] initializer for x439 +# 1336| getExpr(): [ConstructorCall] call to String +# 1336| Type = [VoidType] void +# 1336| ValueCategory = prvalue +# 1337| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1337| Type = [VoidType] void +# 1337| ValueCategory = prvalue +# 1337| getQualifier(): [VariableAccess] x439 +# 1337| Type = [Struct] String +# 1337| ValueCategory = lvalue +# 1337| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1337| Conversion = [BoolConversion] conversion to bool +# 1337| Type = [BoolType] bool +# 1337| Value = [CStyleCast] 0 +# 1337| ValueCategory = prvalue +# 1338| getStmt(440): [DoStmt] do (...) ... +# 1340| getCondition(): [Literal] 0 +# 1340| Type = [IntType] int +# 1340| Value = [Literal] 0 +# 1340| ValueCategory = prvalue +# 1338| getStmt(): [BlockStmt] { ... } +# 1339| getStmt(0): [DeclStmt] declaration +# 1339| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x440 +# 1339| Type = [Struct] String +# 1339| getVariable().getInitializer(): [Initializer] initializer for x440 +# 1339| getExpr(): [ConstructorCall] call to String +# 1339| Type = [VoidType] void +# 1339| ValueCategory = prvalue +# 1340| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1340| Type = [VoidType] void +# 1340| ValueCategory = prvalue +# 1340| getQualifier(): [VariableAccess] x440 +# 1340| Type = [Struct] String +# 1340| ValueCategory = lvalue +# 1340| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1340| Conversion = [BoolConversion] conversion to bool +# 1340| Type = [BoolType] bool +# 1340| Value = [CStyleCast] 0 +# 1340| ValueCategory = prvalue +# 1341| getStmt(441): [DoStmt] do (...) ... +# 1343| getCondition(): [Literal] 0 +# 1343| Type = [IntType] int +# 1343| Value = [Literal] 0 +# 1343| ValueCategory = prvalue +# 1341| getStmt(): [BlockStmt] { ... } +# 1342| getStmt(0): [DeclStmt] declaration +# 1342| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x441 +# 1342| Type = [Struct] String +# 1342| getVariable().getInitializer(): [Initializer] initializer for x441 +# 1342| getExpr(): [ConstructorCall] call to String +# 1342| Type = [VoidType] void +# 1342| ValueCategory = prvalue +# 1343| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1343| Type = [VoidType] void +# 1343| ValueCategory = prvalue +# 1343| getQualifier(): [VariableAccess] x441 +# 1343| Type = [Struct] String +# 1343| ValueCategory = lvalue +# 1343| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1343| Conversion = [BoolConversion] conversion to bool +# 1343| Type = [BoolType] bool +# 1343| Value = [CStyleCast] 0 +# 1343| ValueCategory = prvalue +# 1344| getStmt(442): [DoStmt] do (...) ... +# 1346| getCondition(): [Literal] 0 +# 1346| Type = [IntType] int +# 1346| Value = [Literal] 0 +# 1346| ValueCategory = prvalue +# 1344| getStmt(): [BlockStmt] { ... } +# 1345| getStmt(0): [DeclStmt] declaration +# 1345| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x442 +# 1345| Type = [Struct] String +# 1345| getVariable().getInitializer(): [Initializer] initializer for x442 +# 1345| getExpr(): [ConstructorCall] call to String +# 1345| Type = [VoidType] void +# 1345| ValueCategory = prvalue +# 1346| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1346| Type = [VoidType] void +# 1346| ValueCategory = prvalue +# 1346| getQualifier(): [VariableAccess] x442 +# 1346| Type = [Struct] String +# 1346| ValueCategory = lvalue +# 1346| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1346| Conversion = [BoolConversion] conversion to bool +# 1346| Type = [BoolType] bool +# 1346| Value = [CStyleCast] 0 +# 1346| ValueCategory = prvalue +# 1347| getStmt(443): [DoStmt] do (...) ... +# 1349| getCondition(): [Literal] 0 +# 1349| Type = [IntType] int +# 1349| Value = [Literal] 0 +# 1349| ValueCategory = prvalue +# 1347| getStmt(): [BlockStmt] { ... } +# 1348| getStmt(0): [DeclStmt] declaration +# 1348| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x443 +# 1348| Type = [Struct] String +# 1348| getVariable().getInitializer(): [Initializer] initializer for x443 +# 1348| getExpr(): [ConstructorCall] call to String +# 1348| Type = [VoidType] void +# 1348| ValueCategory = prvalue +# 1349| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1349| Type = [VoidType] void +# 1349| ValueCategory = prvalue +# 1349| getQualifier(): [VariableAccess] x443 +# 1349| Type = [Struct] String +# 1349| ValueCategory = lvalue +# 1349| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1349| Conversion = [BoolConversion] conversion to bool +# 1349| Type = [BoolType] bool +# 1349| Value = [CStyleCast] 0 +# 1349| ValueCategory = prvalue +# 1350| getStmt(444): [DoStmt] do (...) ... +# 1352| getCondition(): [Literal] 0 +# 1352| Type = [IntType] int +# 1352| Value = [Literal] 0 +# 1352| ValueCategory = prvalue +# 1350| getStmt(): [BlockStmt] { ... } +# 1351| getStmt(0): [DeclStmt] declaration +# 1351| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x444 +# 1351| Type = [Struct] String +# 1351| getVariable().getInitializer(): [Initializer] initializer for x444 +# 1351| getExpr(): [ConstructorCall] call to String +# 1351| Type = [VoidType] void +# 1351| ValueCategory = prvalue +# 1352| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1352| Type = [VoidType] void +# 1352| ValueCategory = prvalue +# 1352| getQualifier(): [VariableAccess] x444 +# 1352| Type = [Struct] String +# 1352| ValueCategory = lvalue +# 1352| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1352| Conversion = [BoolConversion] conversion to bool +# 1352| Type = [BoolType] bool +# 1352| Value = [CStyleCast] 0 +# 1352| ValueCategory = prvalue +# 1353| getStmt(445): [DoStmt] do (...) ... +# 1355| getCondition(): [Literal] 0 +# 1355| Type = [IntType] int +# 1355| Value = [Literal] 0 +# 1355| ValueCategory = prvalue +# 1353| getStmt(): [BlockStmt] { ... } +# 1354| getStmt(0): [DeclStmt] declaration +# 1354| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x445 +# 1354| Type = [Struct] String +# 1354| getVariable().getInitializer(): [Initializer] initializer for x445 +# 1354| getExpr(): [ConstructorCall] call to String +# 1354| Type = [VoidType] void +# 1354| ValueCategory = prvalue +# 1355| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1355| Type = [VoidType] void +# 1355| ValueCategory = prvalue +# 1355| getQualifier(): [VariableAccess] x445 +# 1355| Type = [Struct] String +# 1355| ValueCategory = lvalue +# 1355| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1355| Conversion = [BoolConversion] conversion to bool +# 1355| Type = [BoolType] bool +# 1355| Value = [CStyleCast] 0 +# 1355| ValueCategory = prvalue +# 1356| getStmt(446): [DoStmt] do (...) ... +# 1358| getCondition(): [Literal] 0 +# 1358| Type = [IntType] int +# 1358| Value = [Literal] 0 +# 1358| ValueCategory = prvalue +# 1356| getStmt(): [BlockStmt] { ... } +# 1357| getStmt(0): [DeclStmt] declaration +# 1357| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x446 +# 1357| Type = [Struct] String +# 1357| getVariable().getInitializer(): [Initializer] initializer for x446 +# 1357| getExpr(): [ConstructorCall] call to String +# 1357| Type = [VoidType] void +# 1357| ValueCategory = prvalue +# 1358| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1358| Type = [VoidType] void +# 1358| ValueCategory = prvalue +# 1358| getQualifier(): [VariableAccess] x446 +# 1358| Type = [Struct] String +# 1358| ValueCategory = lvalue +# 1358| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1358| Conversion = [BoolConversion] conversion to bool +# 1358| Type = [BoolType] bool +# 1358| Value = [CStyleCast] 0 +# 1358| ValueCategory = prvalue +# 1359| getStmt(447): [DoStmt] do (...) ... +# 1361| getCondition(): [Literal] 0 +# 1361| Type = [IntType] int +# 1361| Value = [Literal] 0 +# 1361| ValueCategory = prvalue +# 1359| getStmt(): [BlockStmt] { ... } +# 1360| getStmt(0): [DeclStmt] declaration +# 1360| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x447 +# 1360| Type = [Struct] String +# 1360| getVariable().getInitializer(): [Initializer] initializer for x447 +# 1360| getExpr(): [ConstructorCall] call to String +# 1360| Type = [VoidType] void +# 1360| ValueCategory = prvalue +# 1361| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1361| Type = [VoidType] void +# 1361| ValueCategory = prvalue +# 1361| getQualifier(): [VariableAccess] x447 +# 1361| Type = [Struct] String +# 1361| ValueCategory = lvalue +# 1361| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1361| Conversion = [BoolConversion] conversion to bool +# 1361| Type = [BoolType] bool +# 1361| Value = [CStyleCast] 0 +# 1361| ValueCategory = prvalue +# 1362| getStmt(448): [DoStmt] do (...) ... +# 1364| getCondition(): [Literal] 0 +# 1364| Type = [IntType] int +# 1364| Value = [Literal] 0 +# 1364| ValueCategory = prvalue +# 1362| getStmt(): [BlockStmt] { ... } +# 1363| getStmt(0): [DeclStmt] declaration +# 1363| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x448 +# 1363| Type = [Struct] String +# 1363| getVariable().getInitializer(): [Initializer] initializer for x448 +# 1363| getExpr(): [ConstructorCall] call to String +# 1363| Type = [VoidType] void +# 1363| ValueCategory = prvalue +# 1364| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1364| Type = [VoidType] void +# 1364| ValueCategory = prvalue +# 1364| getQualifier(): [VariableAccess] x448 +# 1364| Type = [Struct] String +# 1364| ValueCategory = lvalue +# 1364| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1364| Conversion = [BoolConversion] conversion to bool +# 1364| Type = [BoolType] bool +# 1364| Value = [CStyleCast] 0 +# 1364| ValueCategory = prvalue +# 1365| getStmt(449): [DoStmt] do (...) ... +# 1367| getCondition(): [Literal] 0 +# 1367| Type = [IntType] int +# 1367| Value = [Literal] 0 +# 1367| ValueCategory = prvalue +# 1365| getStmt(): [BlockStmt] { ... } +# 1366| getStmt(0): [DeclStmt] declaration +# 1366| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x449 +# 1366| Type = [Struct] String +# 1366| getVariable().getInitializer(): [Initializer] initializer for x449 +# 1366| getExpr(): [ConstructorCall] call to String +# 1366| Type = [VoidType] void +# 1366| ValueCategory = prvalue +# 1367| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1367| Type = [VoidType] void +# 1367| ValueCategory = prvalue +# 1367| getQualifier(): [VariableAccess] x449 +# 1367| Type = [Struct] String +# 1367| ValueCategory = lvalue +# 1367| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1367| Conversion = [BoolConversion] conversion to bool +# 1367| Type = [BoolType] bool +# 1367| Value = [CStyleCast] 0 +# 1367| ValueCategory = prvalue +# 1368| getStmt(450): [DoStmt] do (...) ... +# 1370| getCondition(): [Literal] 0 +# 1370| Type = [IntType] int +# 1370| Value = [Literal] 0 +# 1370| ValueCategory = prvalue +# 1368| getStmt(): [BlockStmt] { ... } +# 1369| getStmt(0): [DeclStmt] declaration +# 1369| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x450 +# 1369| Type = [Struct] String +# 1369| getVariable().getInitializer(): [Initializer] initializer for x450 +# 1369| getExpr(): [ConstructorCall] call to String +# 1369| Type = [VoidType] void +# 1369| ValueCategory = prvalue +# 1370| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1370| Type = [VoidType] void +# 1370| ValueCategory = prvalue +# 1370| getQualifier(): [VariableAccess] x450 +# 1370| Type = [Struct] String +# 1370| ValueCategory = lvalue +# 1370| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1370| Conversion = [BoolConversion] conversion to bool +# 1370| Type = [BoolType] bool +# 1370| Value = [CStyleCast] 0 +# 1370| ValueCategory = prvalue +# 1371| getStmt(451): [DoStmt] do (...) ... +# 1373| getCondition(): [Literal] 0 +# 1373| Type = [IntType] int +# 1373| Value = [Literal] 0 +# 1373| ValueCategory = prvalue +# 1371| getStmt(): [BlockStmt] { ... } +# 1372| getStmt(0): [DeclStmt] declaration +# 1372| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x451 +# 1372| Type = [Struct] String +# 1372| getVariable().getInitializer(): [Initializer] initializer for x451 +# 1372| getExpr(): [ConstructorCall] call to String +# 1372| Type = [VoidType] void +# 1372| ValueCategory = prvalue +# 1373| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1373| Type = [VoidType] void +# 1373| ValueCategory = prvalue +# 1373| getQualifier(): [VariableAccess] x451 +# 1373| Type = [Struct] String +# 1373| ValueCategory = lvalue +# 1373| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1373| Conversion = [BoolConversion] conversion to bool +# 1373| Type = [BoolType] bool +# 1373| Value = [CStyleCast] 0 +# 1373| ValueCategory = prvalue +# 1374| getStmt(452): [DoStmt] do (...) ... +# 1376| getCondition(): [Literal] 0 +# 1376| Type = [IntType] int +# 1376| Value = [Literal] 0 +# 1376| ValueCategory = prvalue +# 1374| getStmt(): [BlockStmt] { ... } +# 1375| getStmt(0): [DeclStmt] declaration +# 1375| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x452 +# 1375| Type = [Struct] String +# 1375| getVariable().getInitializer(): [Initializer] initializer for x452 +# 1375| getExpr(): [ConstructorCall] call to String +# 1375| Type = [VoidType] void +# 1375| ValueCategory = prvalue +# 1376| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1376| Type = [VoidType] void +# 1376| ValueCategory = prvalue +# 1376| getQualifier(): [VariableAccess] x452 +# 1376| Type = [Struct] String +# 1376| ValueCategory = lvalue +# 1376| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1376| Conversion = [BoolConversion] conversion to bool +# 1376| Type = [BoolType] bool +# 1376| Value = [CStyleCast] 0 +# 1376| ValueCategory = prvalue +# 1377| getStmt(453): [DoStmt] do (...) ... +# 1379| getCondition(): [Literal] 0 +# 1379| Type = [IntType] int +# 1379| Value = [Literal] 0 +# 1379| ValueCategory = prvalue +# 1377| getStmt(): [BlockStmt] { ... } +# 1378| getStmt(0): [DeclStmt] declaration +# 1378| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x453 +# 1378| Type = [Struct] String +# 1378| getVariable().getInitializer(): [Initializer] initializer for x453 +# 1378| getExpr(): [ConstructorCall] call to String +# 1378| Type = [VoidType] void +# 1378| ValueCategory = prvalue +# 1379| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1379| Type = [VoidType] void +# 1379| ValueCategory = prvalue +# 1379| getQualifier(): [VariableAccess] x453 +# 1379| Type = [Struct] String +# 1379| ValueCategory = lvalue +# 1379| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1379| Conversion = [BoolConversion] conversion to bool +# 1379| Type = [BoolType] bool +# 1379| Value = [CStyleCast] 0 +# 1379| ValueCategory = prvalue +# 1380| getStmt(454): [DoStmt] do (...) ... +# 1382| getCondition(): [Literal] 0 +# 1382| Type = [IntType] int +# 1382| Value = [Literal] 0 +# 1382| ValueCategory = prvalue +# 1380| getStmt(): [BlockStmt] { ... } +# 1381| getStmt(0): [DeclStmt] declaration +# 1381| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x454 +# 1381| Type = [Struct] String +# 1381| getVariable().getInitializer(): [Initializer] initializer for x454 +# 1381| getExpr(): [ConstructorCall] call to String +# 1381| Type = [VoidType] void +# 1381| ValueCategory = prvalue +# 1382| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1382| Type = [VoidType] void +# 1382| ValueCategory = prvalue +# 1382| getQualifier(): [VariableAccess] x454 +# 1382| Type = [Struct] String +# 1382| ValueCategory = lvalue +# 1382| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1382| Conversion = [BoolConversion] conversion to bool +# 1382| Type = [BoolType] bool +# 1382| Value = [CStyleCast] 0 +# 1382| ValueCategory = prvalue +# 1383| getStmt(455): [DoStmt] do (...) ... +# 1385| getCondition(): [Literal] 0 +# 1385| Type = [IntType] int +# 1385| Value = [Literal] 0 +# 1385| ValueCategory = prvalue +# 1383| getStmt(): [BlockStmt] { ... } +# 1384| getStmt(0): [DeclStmt] declaration +# 1384| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x455 +# 1384| Type = [Struct] String +# 1384| getVariable().getInitializer(): [Initializer] initializer for x455 +# 1384| getExpr(): [ConstructorCall] call to String +# 1384| Type = [VoidType] void +# 1384| ValueCategory = prvalue +# 1385| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1385| Type = [VoidType] void +# 1385| ValueCategory = prvalue +# 1385| getQualifier(): [VariableAccess] x455 +# 1385| Type = [Struct] String +# 1385| ValueCategory = lvalue +# 1385| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1385| Conversion = [BoolConversion] conversion to bool +# 1385| Type = [BoolType] bool +# 1385| Value = [CStyleCast] 0 +# 1385| ValueCategory = prvalue +# 1386| getStmt(456): [DoStmt] do (...) ... +# 1388| getCondition(): [Literal] 0 +# 1388| Type = [IntType] int +# 1388| Value = [Literal] 0 +# 1388| ValueCategory = prvalue +# 1386| getStmt(): [BlockStmt] { ... } +# 1387| getStmt(0): [DeclStmt] declaration +# 1387| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x456 +# 1387| Type = [Struct] String +# 1387| getVariable().getInitializer(): [Initializer] initializer for x456 +# 1387| getExpr(): [ConstructorCall] call to String +# 1387| Type = [VoidType] void +# 1387| ValueCategory = prvalue +# 1388| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1388| Type = [VoidType] void +# 1388| ValueCategory = prvalue +# 1388| getQualifier(): [VariableAccess] x456 +# 1388| Type = [Struct] String +# 1388| ValueCategory = lvalue +# 1388| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1388| Conversion = [BoolConversion] conversion to bool +# 1388| Type = [BoolType] bool +# 1388| Value = [CStyleCast] 0 +# 1388| ValueCategory = prvalue +# 1389| getStmt(457): [DoStmt] do (...) ... +# 1391| getCondition(): [Literal] 0 +# 1391| Type = [IntType] int +# 1391| Value = [Literal] 0 +# 1391| ValueCategory = prvalue +# 1389| getStmt(): [BlockStmt] { ... } +# 1390| getStmt(0): [DeclStmt] declaration +# 1390| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x457 +# 1390| Type = [Struct] String +# 1390| getVariable().getInitializer(): [Initializer] initializer for x457 +# 1390| getExpr(): [ConstructorCall] call to String +# 1390| Type = [VoidType] void +# 1390| ValueCategory = prvalue +# 1391| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1391| Type = [VoidType] void +# 1391| ValueCategory = prvalue +# 1391| getQualifier(): [VariableAccess] x457 +# 1391| Type = [Struct] String +# 1391| ValueCategory = lvalue +# 1391| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1391| Conversion = [BoolConversion] conversion to bool +# 1391| Type = [BoolType] bool +# 1391| Value = [CStyleCast] 0 +# 1391| ValueCategory = prvalue +# 1392| getStmt(458): [DoStmt] do (...) ... +# 1394| getCondition(): [Literal] 0 +# 1394| Type = [IntType] int +# 1394| Value = [Literal] 0 +# 1394| ValueCategory = prvalue +# 1392| getStmt(): [BlockStmt] { ... } +# 1393| getStmt(0): [DeclStmt] declaration +# 1393| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x458 +# 1393| Type = [Struct] String +# 1393| getVariable().getInitializer(): [Initializer] initializer for x458 +# 1393| getExpr(): [ConstructorCall] call to String +# 1393| Type = [VoidType] void +# 1393| ValueCategory = prvalue +# 1394| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1394| Type = [VoidType] void +# 1394| ValueCategory = prvalue +# 1394| getQualifier(): [VariableAccess] x458 +# 1394| Type = [Struct] String +# 1394| ValueCategory = lvalue +# 1394| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1394| Conversion = [BoolConversion] conversion to bool +# 1394| Type = [BoolType] bool +# 1394| Value = [CStyleCast] 0 +# 1394| ValueCategory = prvalue +# 1395| getStmt(459): [DoStmt] do (...) ... +# 1397| getCondition(): [Literal] 0 +# 1397| Type = [IntType] int +# 1397| Value = [Literal] 0 +# 1397| ValueCategory = prvalue +# 1395| getStmt(): [BlockStmt] { ... } +# 1396| getStmt(0): [DeclStmt] declaration +# 1396| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x459 +# 1396| Type = [Struct] String +# 1396| getVariable().getInitializer(): [Initializer] initializer for x459 +# 1396| getExpr(): [ConstructorCall] call to String +# 1396| Type = [VoidType] void +# 1396| ValueCategory = prvalue +# 1397| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1397| Type = [VoidType] void +# 1397| ValueCategory = prvalue +# 1397| getQualifier(): [VariableAccess] x459 +# 1397| Type = [Struct] String +# 1397| ValueCategory = lvalue +# 1397| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1397| Conversion = [BoolConversion] conversion to bool +# 1397| Type = [BoolType] bool +# 1397| Value = [CStyleCast] 0 +# 1397| ValueCategory = prvalue +# 1398| getStmt(460): [DoStmt] do (...) ... +# 1400| getCondition(): [Literal] 0 +# 1400| Type = [IntType] int +# 1400| Value = [Literal] 0 +# 1400| ValueCategory = prvalue +# 1398| getStmt(): [BlockStmt] { ... } +# 1399| getStmt(0): [DeclStmt] declaration +# 1399| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x460 +# 1399| Type = [Struct] String +# 1399| getVariable().getInitializer(): [Initializer] initializer for x460 +# 1399| getExpr(): [ConstructorCall] call to String +# 1399| Type = [VoidType] void +# 1399| ValueCategory = prvalue +# 1400| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1400| Type = [VoidType] void +# 1400| ValueCategory = prvalue +# 1400| getQualifier(): [VariableAccess] x460 +# 1400| Type = [Struct] String +# 1400| ValueCategory = lvalue +# 1400| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1400| Conversion = [BoolConversion] conversion to bool +# 1400| Type = [BoolType] bool +# 1400| Value = [CStyleCast] 0 +# 1400| ValueCategory = prvalue +# 1401| getStmt(461): [DoStmt] do (...) ... +# 1403| getCondition(): [Literal] 0 +# 1403| Type = [IntType] int +# 1403| Value = [Literal] 0 +# 1403| ValueCategory = prvalue +# 1401| getStmt(): [BlockStmt] { ... } +# 1402| getStmt(0): [DeclStmt] declaration +# 1402| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x461 +# 1402| Type = [Struct] String +# 1402| getVariable().getInitializer(): [Initializer] initializer for x461 +# 1402| getExpr(): [ConstructorCall] call to String +# 1402| Type = [VoidType] void +# 1402| ValueCategory = prvalue +# 1403| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1403| Type = [VoidType] void +# 1403| ValueCategory = prvalue +# 1403| getQualifier(): [VariableAccess] x461 +# 1403| Type = [Struct] String +# 1403| ValueCategory = lvalue +# 1403| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1403| Conversion = [BoolConversion] conversion to bool +# 1403| Type = [BoolType] bool +# 1403| Value = [CStyleCast] 0 +# 1403| ValueCategory = prvalue +# 1404| getStmt(462): [DoStmt] do (...) ... +# 1406| getCondition(): [Literal] 0 +# 1406| Type = [IntType] int +# 1406| Value = [Literal] 0 +# 1406| ValueCategory = prvalue +# 1404| getStmt(): [BlockStmt] { ... } +# 1405| getStmt(0): [DeclStmt] declaration +# 1405| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x462 +# 1405| Type = [Struct] String +# 1405| getVariable().getInitializer(): [Initializer] initializer for x462 +# 1405| getExpr(): [ConstructorCall] call to String +# 1405| Type = [VoidType] void +# 1405| ValueCategory = prvalue +# 1406| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1406| Type = [VoidType] void +# 1406| ValueCategory = prvalue +# 1406| getQualifier(): [VariableAccess] x462 +# 1406| Type = [Struct] String +# 1406| ValueCategory = lvalue +# 1406| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1406| Conversion = [BoolConversion] conversion to bool +# 1406| Type = [BoolType] bool +# 1406| Value = [CStyleCast] 0 +# 1406| ValueCategory = prvalue +# 1407| getStmt(463): [DoStmt] do (...) ... +# 1409| getCondition(): [Literal] 0 +# 1409| Type = [IntType] int +# 1409| Value = [Literal] 0 +# 1409| ValueCategory = prvalue +# 1407| getStmt(): [BlockStmt] { ... } +# 1408| getStmt(0): [DeclStmt] declaration +# 1408| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x463 +# 1408| Type = [Struct] String +# 1408| getVariable().getInitializer(): [Initializer] initializer for x463 +# 1408| getExpr(): [ConstructorCall] call to String +# 1408| Type = [VoidType] void +# 1408| ValueCategory = prvalue +# 1409| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1409| Type = [VoidType] void +# 1409| ValueCategory = prvalue +# 1409| getQualifier(): [VariableAccess] x463 +# 1409| Type = [Struct] String +# 1409| ValueCategory = lvalue +# 1409| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1409| Conversion = [BoolConversion] conversion to bool +# 1409| Type = [BoolType] bool +# 1409| Value = [CStyleCast] 0 +# 1409| ValueCategory = prvalue +# 1410| getStmt(464): [DoStmt] do (...) ... +# 1412| getCondition(): [Literal] 0 +# 1412| Type = [IntType] int +# 1412| Value = [Literal] 0 +# 1412| ValueCategory = prvalue +# 1410| getStmt(): [BlockStmt] { ... } +# 1411| getStmt(0): [DeclStmt] declaration +# 1411| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x464 +# 1411| Type = [Struct] String +# 1411| getVariable().getInitializer(): [Initializer] initializer for x464 +# 1411| getExpr(): [ConstructorCall] call to String +# 1411| Type = [VoidType] void +# 1411| ValueCategory = prvalue +# 1412| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1412| Type = [VoidType] void +# 1412| ValueCategory = prvalue +# 1412| getQualifier(): [VariableAccess] x464 +# 1412| Type = [Struct] String +# 1412| ValueCategory = lvalue +# 1412| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1412| Conversion = [BoolConversion] conversion to bool +# 1412| Type = [BoolType] bool +# 1412| Value = [CStyleCast] 0 +# 1412| ValueCategory = prvalue +# 1413| getStmt(465): [DoStmt] do (...) ... +# 1415| getCondition(): [Literal] 0 +# 1415| Type = [IntType] int +# 1415| Value = [Literal] 0 +# 1415| ValueCategory = prvalue +# 1413| getStmt(): [BlockStmt] { ... } +# 1414| getStmt(0): [DeclStmt] declaration +# 1414| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x465 +# 1414| Type = [Struct] String +# 1414| getVariable().getInitializer(): [Initializer] initializer for x465 +# 1414| getExpr(): [ConstructorCall] call to String +# 1414| Type = [VoidType] void +# 1414| ValueCategory = prvalue +# 1415| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1415| Type = [VoidType] void +# 1415| ValueCategory = prvalue +# 1415| getQualifier(): [VariableAccess] x465 +# 1415| Type = [Struct] String +# 1415| ValueCategory = lvalue +# 1415| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1415| Conversion = [BoolConversion] conversion to bool +# 1415| Type = [BoolType] bool +# 1415| Value = [CStyleCast] 0 +# 1415| ValueCategory = prvalue +# 1416| getStmt(466): [DoStmt] do (...) ... +# 1418| getCondition(): [Literal] 0 +# 1418| Type = [IntType] int +# 1418| Value = [Literal] 0 +# 1418| ValueCategory = prvalue +# 1416| getStmt(): [BlockStmt] { ... } +# 1417| getStmt(0): [DeclStmt] declaration +# 1417| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x466 +# 1417| Type = [Struct] String +# 1417| getVariable().getInitializer(): [Initializer] initializer for x466 +# 1417| getExpr(): [ConstructorCall] call to String +# 1417| Type = [VoidType] void +# 1417| ValueCategory = prvalue +# 1418| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1418| Type = [VoidType] void +# 1418| ValueCategory = prvalue +# 1418| getQualifier(): [VariableAccess] x466 +# 1418| Type = [Struct] String +# 1418| ValueCategory = lvalue +# 1418| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1418| Conversion = [BoolConversion] conversion to bool +# 1418| Type = [BoolType] bool +# 1418| Value = [CStyleCast] 0 +# 1418| ValueCategory = prvalue +# 1419| getStmt(467): [DoStmt] do (...) ... +# 1421| getCondition(): [Literal] 0 +# 1421| Type = [IntType] int +# 1421| Value = [Literal] 0 +# 1421| ValueCategory = prvalue +# 1419| getStmt(): [BlockStmt] { ... } +# 1420| getStmt(0): [DeclStmt] declaration +# 1420| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x467 +# 1420| Type = [Struct] String +# 1420| getVariable().getInitializer(): [Initializer] initializer for x467 +# 1420| getExpr(): [ConstructorCall] call to String +# 1420| Type = [VoidType] void +# 1420| ValueCategory = prvalue +# 1421| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1421| Type = [VoidType] void +# 1421| ValueCategory = prvalue +# 1421| getQualifier(): [VariableAccess] x467 +# 1421| Type = [Struct] String +# 1421| ValueCategory = lvalue +# 1421| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1421| Conversion = [BoolConversion] conversion to bool +# 1421| Type = [BoolType] bool +# 1421| Value = [CStyleCast] 0 +# 1421| ValueCategory = prvalue +# 1422| getStmt(468): [DoStmt] do (...) ... +# 1424| getCondition(): [Literal] 0 +# 1424| Type = [IntType] int +# 1424| Value = [Literal] 0 +# 1424| ValueCategory = prvalue +# 1422| getStmt(): [BlockStmt] { ... } +# 1423| getStmt(0): [DeclStmt] declaration +# 1423| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x468 +# 1423| Type = [Struct] String +# 1423| getVariable().getInitializer(): [Initializer] initializer for x468 +# 1423| getExpr(): [ConstructorCall] call to String +# 1423| Type = [VoidType] void +# 1423| ValueCategory = prvalue +# 1424| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1424| Type = [VoidType] void +# 1424| ValueCategory = prvalue +# 1424| getQualifier(): [VariableAccess] x468 +# 1424| Type = [Struct] String +# 1424| ValueCategory = lvalue +# 1424| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1424| Conversion = [BoolConversion] conversion to bool +# 1424| Type = [BoolType] bool +# 1424| Value = [CStyleCast] 0 +# 1424| ValueCategory = prvalue +# 1425| getStmt(469): [DoStmt] do (...) ... +# 1427| getCondition(): [Literal] 0 +# 1427| Type = [IntType] int +# 1427| Value = [Literal] 0 +# 1427| ValueCategory = prvalue +# 1425| getStmt(): [BlockStmt] { ... } +# 1426| getStmt(0): [DeclStmt] declaration +# 1426| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x469 +# 1426| Type = [Struct] String +# 1426| getVariable().getInitializer(): [Initializer] initializer for x469 +# 1426| getExpr(): [ConstructorCall] call to String +# 1426| Type = [VoidType] void +# 1426| ValueCategory = prvalue +# 1427| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1427| Type = [VoidType] void +# 1427| ValueCategory = prvalue +# 1427| getQualifier(): [VariableAccess] x469 +# 1427| Type = [Struct] String +# 1427| ValueCategory = lvalue +# 1427| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1427| Conversion = [BoolConversion] conversion to bool +# 1427| Type = [BoolType] bool +# 1427| Value = [CStyleCast] 0 +# 1427| ValueCategory = prvalue +# 1428| getStmt(470): [DoStmt] do (...) ... +# 1430| getCondition(): [Literal] 0 +# 1430| Type = [IntType] int +# 1430| Value = [Literal] 0 +# 1430| ValueCategory = prvalue +# 1428| getStmt(): [BlockStmt] { ... } +# 1429| getStmt(0): [DeclStmt] declaration +# 1429| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x470 +# 1429| Type = [Struct] String +# 1429| getVariable().getInitializer(): [Initializer] initializer for x470 +# 1429| getExpr(): [ConstructorCall] call to String +# 1429| Type = [VoidType] void +# 1429| ValueCategory = prvalue +# 1430| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1430| Type = [VoidType] void +# 1430| ValueCategory = prvalue +# 1430| getQualifier(): [VariableAccess] x470 +# 1430| Type = [Struct] String +# 1430| ValueCategory = lvalue +# 1430| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1430| Conversion = [BoolConversion] conversion to bool +# 1430| Type = [BoolType] bool +# 1430| Value = [CStyleCast] 0 +# 1430| ValueCategory = prvalue +# 1431| getStmt(471): [DoStmt] do (...) ... +# 1433| getCondition(): [Literal] 0 +# 1433| Type = [IntType] int +# 1433| Value = [Literal] 0 +# 1433| ValueCategory = prvalue +# 1431| getStmt(): [BlockStmt] { ... } +# 1432| getStmt(0): [DeclStmt] declaration +# 1432| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x471 +# 1432| Type = [Struct] String +# 1432| getVariable().getInitializer(): [Initializer] initializer for x471 +# 1432| getExpr(): [ConstructorCall] call to String +# 1432| Type = [VoidType] void +# 1432| ValueCategory = prvalue +# 1433| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1433| Type = [VoidType] void +# 1433| ValueCategory = prvalue +# 1433| getQualifier(): [VariableAccess] x471 +# 1433| Type = [Struct] String +# 1433| ValueCategory = lvalue +# 1433| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1433| Conversion = [BoolConversion] conversion to bool +# 1433| Type = [BoolType] bool +# 1433| Value = [CStyleCast] 0 +# 1433| ValueCategory = prvalue +# 1434| getStmt(472): [DoStmt] do (...) ... +# 1436| getCondition(): [Literal] 0 +# 1436| Type = [IntType] int +# 1436| Value = [Literal] 0 +# 1436| ValueCategory = prvalue +# 1434| getStmt(): [BlockStmt] { ... } +# 1435| getStmt(0): [DeclStmt] declaration +# 1435| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x472 +# 1435| Type = [Struct] String +# 1435| getVariable().getInitializer(): [Initializer] initializer for x472 +# 1435| getExpr(): [ConstructorCall] call to String +# 1435| Type = [VoidType] void +# 1435| ValueCategory = prvalue +# 1436| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1436| Type = [VoidType] void +# 1436| ValueCategory = prvalue +# 1436| getQualifier(): [VariableAccess] x472 +# 1436| Type = [Struct] String +# 1436| ValueCategory = lvalue +# 1436| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1436| Conversion = [BoolConversion] conversion to bool +# 1436| Type = [BoolType] bool +# 1436| Value = [CStyleCast] 0 +# 1436| ValueCategory = prvalue +# 1437| getStmt(473): [DoStmt] do (...) ... +# 1439| getCondition(): [Literal] 0 +# 1439| Type = [IntType] int +# 1439| Value = [Literal] 0 +# 1439| ValueCategory = prvalue +# 1437| getStmt(): [BlockStmt] { ... } +# 1438| getStmt(0): [DeclStmt] declaration +# 1438| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x473 +# 1438| Type = [Struct] String +# 1438| getVariable().getInitializer(): [Initializer] initializer for x473 +# 1438| getExpr(): [ConstructorCall] call to String +# 1438| Type = [VoidType] void +# 1438| ValueCategory = prvalue +# 1439| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1439| Type = [VoidType] void +# 1439| ValueCategory = prvalue +# 1439| getQualifier(): [VariableAccess] x473 +# 1439| Type = [Struct] String +# 1439| ValueCategory = lvalue +# 1439| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1439| Conversion = [BoolConversion] conversion to bool +# 1439| Type = [BoolType] bool +# 1439| Value = [CStyleCast] 0 +# 1439| ValueCategory = prvalue +# 1440| getStmt(474): [DoStmt] do (...) ... +# 1442| getCondition(): [Literal] 0 +# 1442| Type = [IntType] int +# 1442| Value = [Literal] 0 +# 1442| ValueCategory = prvalue +# 1440| getStmt(): [BlockStmt] { ... } +# 1441| getStmt(0): [DeclStmt] declaration +# 1441| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x474 +# 1441| Type = [Struct] String +# 1441| getVariable().getInitializer(): [Initializer] initializer for x474 +# 1441| getExpr(): [ConstructorCall] call to String +# 1441| Type = [VoidType] void +# 1441| ValueCategory = prvalue +# 1442| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1442| Type = [VoidType] void +# 1442| ValueCategory = prvalue +# 1442| getQualifier(): [VariableAccess] x474 +# 1442| Type = [Struct] String +# 1442| ValueCategory = lvalue +# 1442| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1442| Conversion = [BoolConversion] conversion to bool +# 1442| Type = [BoolType] bool +# 1442| Value = [CStyleCast] 0 +# 1442| ValueCategory = prvalue +# 1443| getStmt(475): [DoStmt] do (...) ... +# 1445| getCondition(): [Literal] 0 +# 1445| Type = [IntType] int +# 1445| Value = [Literal] 0 +# 1445| ValueCategory = prvalue +# 1443| getStmt(): [BlockStmt] { ... } +# 1444| getStmt(0): [DeclStmt] declaration +# 1444| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x475 +# 1444| Type = [Struct] String +# 1444| getVariable().getInitializer(): [Initializer] initializer for x475 +# 1444| getExpr(): [ConstructorCall] call to String +# 1444| Type = [VoidType] void +# 1444| ValueCategory = prvalue +# 1445| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1445| Type = [VoidType] void +# 1445| ValueCategory = prvalue +# 1445| getQualifier(): [VariableAccess] x475 +# 1445| Type = [Struct] String +# 1445| ValueCategory = lvalue +# 1445| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1445| Conversion = [BoolConversion] conversion to bool +# 1445| Type = [BoolType] bool +# 1445| Value = [CStyleCast] 0 +# 1445| ValueCategory = prvalue +# 1446| getStmt(476): [DoStmt] do (...) ... +# 1448| getCondition(): [Literal] 0 +# 1448| Type = [IntType] int +# 1448| Value = [Literal] 0 +# 1448| ValueCategory = prvalue +# 1446| getStmt(): [BlockStmt] { ... } +# 1447| getStmt(0): [DeclStmt] declaration +# 1447| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x476 +# 1447| Type = [Struct] String +# 1447| getVariable().getInitializer(): [Initializer] initializer for x476 +# 1447| getExpr(): [ConstructorCall] call to String +# 1447| Type = [VoidType] void +# 1447| ValueCategory = prvalue +# 1448| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1448| Type = [VoidType] void +# 1448| ValueCategory = prvalue +# 1448| getQualifier(): [VariableAccess] x476 +# 1448| Type = [Struct] String +# 1448| ValueCategory = lvalue +# 1448| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1448| Conversion = [BoolConversion] conversion to bool +# 1448| Type = [BoolType] bool +# 1448| Value = [CStyleCast] 0 +# 1448| ValueCategory = prvalue +# 1449| getStmt(477): [DoStmt] do (...) ... +# 1451| getCondition(): [Literal] 0 +# 1451| Type = [IntType] int +# 1451| Value = [Literal] 0 +# 1451| ValueCategory = prvalue +# 1449| getStmt(): [BlockStmt] { ... } +# 1450| getStmt(0): [DeclStmt] declaration +# 1450| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x477 +# 1450| Type = [Struct] String +# 1450| getVariable().getInitializer(): [Initializer] initializer for x477 +# 1450| getExpr(): [ConstructorCall] call to String +# 1450| Type = [VoidType] void +# 1450| ValueCategory = prvalue +# 1451| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1451| Type = [VoidType] void +# 1451| ValueCategory = prvalue +# 1451| getQualifier(): [VariableAccess] x477 +# 1451| Type = [Struct] String +# 1451| ValueCategory = lvalue +# 1451| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1451| Conversion = [BoolConversion] conversion to bool +# 1451| Type = [BoolType] bool +# 1451| Value = [CStyleCast] 0 +# 1451| ValueCategory = prvalue +# 1452| getStmt(478): [DoStmt] do (...) ... +# 1454| getCondition(): [Literal] 0 +# 1454| Type = [IntType] int +# 1454| Value = [Literal] 0 +# 1454| ValueCategory = prvalue +# 1452| getStmt(): [BlockStmt] { ... } +# 1453| getStmt(0): [DeclStmt] declaration +# 1453| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x478 +# 1453| Type = [Struct] String +# 1453| getVariable().getInitializer(): [Initializer] initializer for x478 +# 1453| getExpr(): [ConstructorCall] call to String +# 1453| Type = [VoidType] void +# 1453| ValueCategory = prvalue +# 1454| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1454| Type = [VoidType] void +# 1454| ValueCategory = prvalue +# 1454| getQualifier(): [VariableAccess] x478 +# 1454| Type = [Struct] String +# 1454| ValueCategory = lvalue +# 1454| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1454| Conversion = [BoolConversion] conversion to bool +# 1454| Type = [BoolType] bool +# 1454| Value = [CStyleCast] 0 +# 1454| ValueCategory = prvalue +# 1455| getStmt(479): [DoStmt] do (...) ... +# 1457| getCondition(): [Literal] 0 +# 1457| Type = [IntType] int +# 1457| Value = [Literal] 0 +# 1457| ValueCategory = prvalue +# 1455| getStmt(): [BlockStmt] { ... } +# 1456| getStmt(0): [DeclStmt] declaration +# 1456| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x479 +# 1456| Type = [Struct] String +# 1456| getVariable().getInitializer(): [Initializer] initializer for x479 +# 1456| getExpr(): [ConstructorCall] call to String +# 1456| Type = [VoidType] void +# 1456| ValueCategory = prvalue +# 1457| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1457| Type = [VoidType] void +# 1457| ValueCategory = prvalue +# 1457| getQualifier(): [VariableAccess] x479 +# 1457| Type = [Struct] String +# 1457| ValueCategory = lvalue +# 1457| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1457| Conversion = [BoolConversion] conversion to bool +# 1457| Type = [BoolType] bool +# 1457| Value = [CStyleCast] 0 +# 1457| ValueCategory = prvalue +# 1458| getStmt(480): [DoStmt] do (...) ... +# 1460| getCondition(): [Literal] 0 +# 1460| Type = [IntType] int +# 1460| Value = [Literal] 0 +# 1460| ValueCategory = prvalue +# 1458| getStmt(): [BlockStmt] { ... } +# 1459| getStmt(0): [DeclStmt] declaration +# 1459| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x480 +# 1459| Type = [Struct] String +# 1459| getVariable().getInitializer(): [Initializer] initializer for x480 +# 1459| getExpr(): [ConstructorCall] call to String +# 1459| Type = [VoidType] void +# 1459| ValueCategory = prvalue +# 1460| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1460| Type = [VoidType] void +# 1460| ValueCategory = prvalue +# 1460| getQualifier(): [VariableAccess] x480 +# 1460| Type = [Struct] String +# 1460| ValueCategory = lvalue +# 1460| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1460| Conversion = [BoolConversion] conversion to bool +# 1460| Type = [BoolType] bool +# 1460| Value = [CStyleCast] 0 +# 1460| ValueCategory = prvalue +# 1461| getStmt(481): [DoStmt] do (...) ... +# 1463| getCondition(): [Literal] 0 +# 1463| Type = [IntType] int +# 1463| Value = [Literal] 0 +# 1463| ValueCategory = prvalue +# 1461| getStmt(): [BlockStmt] { ... } +# 1462| getStmt(0): [DeclStmt] declaration +# 1462| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x481 +# 1462| Type = [Struct] String +# 1462| getVariable().getInitializer(): [Initializer] initializer for x481 +# 1462| getExpr(): [ConstructorCall] call to String +# 1462| Type = [VoidType] void +# 1462| ValueCategory = prvalue +# 1463| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1463| Type = [VoidType] void +# 1463| ValueCategory = prvalue +# 1463| getQualifier(): [VariableAccess] x481 +# 1463| Type = [Struct] String +# 1463| ValueCategory = lvalue +# 1463| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1463| Conversion = [BoolConversion] conversion to bool +# 1463| Type = [BoolType] bool +# 1463| Value = [CStyleCast] 0 +# 1463| ValueCategory = prvalue +# 1464| getStmt(482): [DoStmt] do (...) ... +# 1466| getCondition(): [Literal] 0 +# 1466| Type = [IntType] int +# 1466| Value = [Literal] 0 +# 1466| ValueCategory = prvalue +# 1464| getStmt(): [BlockStmt] { ... } +# 1465| getStmt(0): [DeclStmt] declaration +# 1465| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x482 +# 1465| Type = [Struct] String +# 1465| getVariable().getInitializer(): [Initializer] initializer for x482 +# 1465| getExpr(): [ConstructorCall] call to String +# 1465| Type = [VoidType] void +# 1465| ValueCategory = prvalue +# 1466| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1466| Type = [VoidType] void +# 1466| ValueCategory = prvalue +# 1466| getQualifier(): [VariableAccess] x482 +# 1466| Type = [Struct] String +# 1466| ValueCategory = lvalue +# 1466| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1466| Conversion = [BoolConversion] conversion to bool +# 1466| Type = [BoolType] bool +# 1466| Value = [CStyleCast] 0 +# 1466| ValueCategory = prvalue +# 1467| getStmt(483): [DoStmt] do (...) ... +# 1469| getCondition(): [Literal] 0 +# 1469| Type = [IntType] int +# 1469| Value = [Literal] 0 +# 1469| ValueCategory = prvalue +# 1467| getStmt(): [BlockStmt] { ... } +# 1468| getStmt(0): [DeclStmt] declaration +# 1468| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x483 +# 1468| Type = [Struct] String +# 1468| getVariable().getInitializer(): [Initializer] initializer for x483 +# 1468| getExpr(): [ConstructorCall] call to String +# 1468| Type = [VoidType] void +# 1468| ValueCategory = prvalue +# 1469| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1469| Type = [VoidType] void +# 1469| ValueCategory = prvalue +# 1469| getQualifier(): [VariableAccess] x483 +# 1469| Type = [Struct] String +# 1469| ValueCategory = lvalue +# 1469| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1469| Conversion = [BoolConversion] conversion to bool +# 1469| Type = [BoolType] bool +# 1469| Value = [CStyleCast] 0 +# 1469| ValueCategory = prvalue +# 1470| getStmt(484): [DoStmt] do (...) ... +# 1472| getCondition(): [Literal] 0 +# 1472| Type = [IntType] int +# 1472| Value = [Literal] 0 +# 1472| ValueCategory = prvalue +# 1470| getStmt(): [BlockStmt] { ... } +# 1471| getStmt(0): [DeclStmt] declaration +# 1471| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x484 +# 1471| Type = [Struct] String +# 1471| getVariable().getInitializer(): [Initializer] initializer for x484 +# 1471| getExpr(): [ConstructorCall] call to String +# 1471| Type = [VoidType] void +# 1471| ValueCategory = prvalue +# 1472| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1472| Type = [VoidType] void +# 1472| ValueCategory = prvalue +# 1472| getQualifier(): [VariableAccess] x484 +# 1472| Type = [Struct] String +# 1472| ValueCategory = lvalue +# 1472| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1472| Conversion = [BoolConversion] conversion to bool +# 1472| Type = [BoolType] bool +# 1472| Value = [CStyleCast] 0 +# 1472| ValueCategory = prvalue +# 1473| getStmt(485): [DoStmt] do (...) ... +# 1475| getCondition(): [Literal] 0 +# 1475| Type = [IntType] int +# 1475| Value = [Literal] 0 +# 1475| ValueCategory = prvalue +# 1473| getStmt(): [BlockStmt] { ... } +# 1474| getStmt(0): [DeclStmt] declaration +# 1474| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x485 +# 1474| Type = [Struct] String +# 1474| getVariable().getInitializer(): [Initializer] initializer for x485 +# 1474| getExpr(): [ConstructorCall] call to String +# 1474| Type = [VoidType] void +# 1474| ValueCategory = prvalue +# 1475| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1475| Type = [VoidType] void +# 1475| ValueCategory = prvalue +# 1475| getQualifier(): [VariableAccess] x485 +# 1475| Type = [Struct] String +# 1475| ValueCategory = lvalue +# 1475| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1475| Conversion = [BoolConversion] conversion to bool +# 1475| Type = [BoolType] bool +# 1475| Value = [CStyleCast] 0 +# 1475| ValueCategory = prvalue +# 1476| getStmt(486): [DoStmt] do (...) ... +# 1478| getCondition(): [Literal] 0 +# 1478| Type = [IntType] int +# 1478| Value = [Literal] 0 +# 1478| ValueCategory = prvalue +# 1476| getStmt(): [BlockStmt] { ... } +# 1477| getStmt(0): [DeclStmt] declaration +# 1477| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x486 +# 1477| Type = [Struct] String +# 1477| getVariable().getInitializer(): [Initializer] initializer for x486 +# 1477| getExpr(): [ConstructorCall] call to String +# 1477| Type = [VoidType] void +# 1477| ValueCategory = prvalue +# 1478| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1478| Type = [VoidType] void +# 1478| ValueCategory = prvalue +# 1478| getQualifier(): [VariableAccess] x486 +# 1478| Type = [Struct] String +# 1478| ValueCategory = lvalue +# 1478| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1478| Conversion = [BoolConversion] conversion to bool +# 1478| Type = [BoolType] bool +# 1478| Value = [CStyleCast] 0 +# 1478| ValueCategory = prvalue +# 1479| getStmt(487): [DoStmt] do (...) ... +# 1481| getCondition(): [Literal] 0 +# 1481| Type = [IntType] int +# 1481| Value = [Literal] 0 +# 1481| ValueCategory = prvalue +# 1479| getStmt(): [BlockStmt] { ... } +# 1480| getStmt(0): [DeclStmt] declaration +# 1480| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x487 +# 1480| Type = [Struct] String +# 1480| getVariable().getInitializer(): [Initializer] initializer for x487 +# 1480| getExpr(): [ConstructorCall] call to String +# 1480| Type = [VoidType] void +# 1480| ValueCategory = prvalue +# 1481| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1481| Type = [VoidType] void +# 1481| ValueCategory = prvalue +# 1481| getQualifier(): [VariableAccess] x487 +# 1481| Type = [Struct] String +# 1481| ValueCategory = lvalue +# 1481| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1481| Conversion = [BoolConversion] conversion to bool +# 1481| Type = [BoolType] bool +# 1481| Value = [CStyleCast] 0 +# 1481| ValueCategory = prvalue +# 1482| getStmt(488): [DoStmt] do (...) ... +# 1484| getCondition(): [Literal] 0 +# 1484| Type = [IntType] int +# 1484| Value = [Literal] 0 +# 1484| ValueCategory = prvalue +# 1482| getStmt(): [BlockStmt] { ... } +# 1483| getStmt(0): [DeclStmt] declaration +# 1483| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x488 +# 1483| Type = [Struct] String +# 1483| getVariable().getInitializer(): [Initializer] initializer for x488 +# 1483| getExpr(): [ConstructorCall] call to String +# 1483| Type = [VoidType] void +# 1483| ValueCategory = prvalue +# 1484| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1484| Type = [VoidType] void +# 1484| ValueCategory = prvalue +# 1484| getQualifier(): [VariableAccess] x488 +# 1484| Type = [Struct] String +# 1484| ValueCategory = lvalue +# 1484| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1484| Conversion = [BoolConversion] conversion to bool +# 1484| Type = [BoolType] bool +# 1484| Value = [CStyleCast] 0 +# 1484| ValueCategory = prvalue +# 1485| getStmt(489): [DoStmt] do (...) ... +# 1487| getCondition(): [Literal] 0 +# 1487| Type = [IntType] int +# 1487| Value = [Literal] 0 +# 1487| ValueCategory = prvalue +# 1485| getStmt(): [BlockStmt] { ... } +# 1486| getStmt(0): [DeclStmt] declaration +# 1486| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x489 +# 1486| Type = [Struct] String +# 1486| getVariable().getInitializer(): [Initializer] initializer for x489 +# 1486| getExpr(): [ConstructorCall] call to String +# 1486| Type = [VoidType] void +# 1486| ValueCategory = prvalue +# 1487| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1487| Type = [VoidType] void +# 1487| ValueCategory = prvalue +# 1487| getQualifier(): [VariableAccess] x489 +# 1487| Type = [Struct] String +# 1487| ValueCategory = lvalue +# 1487| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1487| Conversion = [BoolConversion] conversion to bool +# 1487| Type = [BoolType] bool +# 1487| Value = [CStyleCast] 0 +# 1487| ValueCategory = prvalue +# 1488| getStmt(490): [DoStmt] do (...) ... +# 1490| getCondition(): [Literal] 0 +# 1490| Type = [IntType] int +# 1490| Value = [Literal] 0 +# 1490| ValueCategory = prvalue +# 1488| getStmt(): [BlockStmt] { ... } +# 1489| getStmt(0): [DeclStmt] declaration +# 1489| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x490 +# 1489| Type = [Struct] String +# 1489| getVariable().getInitializer(): [Initializer] initializer for x490 +# 1489| getExpr(): [ConstructorCall] call to String +# 1489| Type = [VoidType] void +# 1489| ValueCategory = prvalue +# 1490| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1490| Type = [VoidType] void +# 1490| ValueCategory = prvalue +# 1490| getQualifier(): [VariableAccess] x490 +# 1490| Type = [Struct] String +# 1490| ValueCategory = lvalue +# 1490| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1490| Conversion = [BoolConversion] conversion to bool +# 1490| Type = [BoolType] bool +# 1490| Value = [CStyleCast] 0 +# 1490| ValueCategory = prvalue +# 1491| getStmt(491): [DoStmt] do (...) ... +# 1493| getCondition(): [Literal] 0 +# 1493| Type = [IntType] int +# 1493| Value = [Literal] 0 +# 1493| ValueCategory = prvalue +# 1491| getStmt(): [BlockStmt] { ... } +# 1492| getStmt(0): [DeclStmt] declaration +# 1492| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x491 +# 1492| Type = [Struct] String +# 1492| getVariable().getInitializer(): [Initializer] initializer for x491 +# 1492| getExpr(): [ConstructorCall] call to String +# 1492| Type = [VoidType] void +# 1492| ValueCategory = prvalue +# 1493| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1493| Type = [VoidType] void +# 1493| ValueCategory = prvalue +# 1493| getQualifier(): [VariableAccess] x491 +# 1493| Type = [Struct] String +# 1493| ValueCategory = lvalue +# 1493| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1493| Conversion = [BoolConversion] conversion to bool +# 1493| Type = [BoolType] bool +# 1493| Value = [CStyleCast] 0 +# 1493| ValueCategory = prvalue +# 1494| getStmt(492): [DoStmt] do (...) ... +# 1496| getCondition(): [Literal] 0 +# 1496| Type = [IntType] int +# 1496| Value = [Literal] 0 +# 1496| ValueCategory = prvalue +# 1494| getStmt(): [BlockStmt] { ... } +# 1495| getStmt(0): [DeclStmt] declaration +# 1495| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x492 +# 1495| Type = [Struct] String +# 1495| getVariable().getInitializer(): [Initializer] initializer for x492 +# 1495| getExpr(): [ConstructorCall] call to String +# 1495| Type = [VoidType] void +# 1495| ValueCategory = prvalue +# 1496| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1496| Type = [VoidType] void +# 1496| ValueCategory = prvalue +# 1496| getQualifier(): [VariableAccess] x492 +# 1496| Type = [Struct] String +# 1496| ValueCategory = lvalue +# 1496| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1496| Conversion = [BoolConversion] conversion to bool +# 1496| Type = [BoolType] bool +# 1496| Value = [CStyleCast] 0 +# 1496| ValueCategory = prvalue +# 1497| getStmt(493): [DoStmt] do (...) ... +# 1499| getCondition(): [Literal] 0 +# 1499| Type = [IntType] int +# 1499| Value = [Literal] 0 +# 1499| ValueCategory = prvalue +# 1497| getStmt(): [BlockStmt] { ... } +# 1498| getStmt(0): [DeclStmt] declaration +# 1498| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x493 +# 1498| Type = [Struct] String +# 1498| getVariable().getInitializer(): [Initializer] initializer for x493 +# 1498| getExpr(): [ConstructorCall] call to String +# 1498| Type = [VoidType] void +# 1498| ValueCategory = prvalue +# 1499| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1499| Type = [VoidType] void +# 1499| ValueCategory = prvalue +# 1499| getQualifier(): [VariableAccess] x493 +# 1499| Type = [Struct] String +# 1499| ValueCategory = lvalue +# 1499| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1499| Conversion = [BoolConversion] conversion to bool +# 1499| Type = [BoolType] bool +# 1499| Value = [CStyleCast] 0 +# 1499| ValueCategory = prvalue +# 1500| getStmt(494): [DoStmt] do (...) ... +# 1502| getCondition(): [Literal] 0 +# 1502| Type = [IntType] int +# 1502| Value = [Literal] 0 +# 1502| ValueCategory = prvalue +# 1500| getStmt(): [BlockStmt] { ... } +# 1501| getStmt(0): [DeclStmt] declaration +# 1501| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x494 +# 1501| Type = [Struct] String +# 1501| getVariable().getInitializer(): [Initializer] initializer for x494 +# 1501| getExpr(): [ConstructorCall] call to String +# 1501| Type = [VoidType] void +# 1501| ValueCategory = prvalue +# 1502| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1502| Type = [VoidType] void +# 1502| ValueCategory = prvalue +# 1502| getQualifier(): [VariableAccess] x494 +# 1502| Type = [Struct] String +# 1502| ValueCategory = lvalue +# 1502| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1502| Conversion = [BoolConversion] conversion to bool +# 1502| Type = [BoolType] bool +# 1502| Value = [CStyleCast] 0 +# 1502| ValueCategory = prvalue +# 1503| getStmt(495): [DoStmt] do (...) ... +# 1505| getCondition(): [Literal] 0 +# 1505| Type = [IntType] int +# 1505| Value = [Literal] 0 +# 1505| ValueCategory = prvalue +# 1503| getStmt(): [BlockStmt] { ... } +# 1504| getStmt(0): [DeclStmt] declaration +# 1504| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x495 +# 1504| Type = [Struct] String +# 1504| getVariable().getInitializer(): [Initializer] initializer for x495 +# 1504| getExpr(): [ConstructorCall] call to String +# 1504| Type = [VoidType] void +# 1504| ValueCategory = prvalue +# 1505| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1505| Type = [VoidType] void +# 1505| ValueCategory = prvalue +# 1505| getQualifier(): [VariableAccess] x495 +# 1505| Type = [Struct] String +# 1505| ValueCategory = lvalue +# 1505| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1505| Conversion = [BoolConversion] conversion to bool +# 1505| Type = [BoolType] bool +# 1505| Value = [CStyleCast] 0 +# 1505| ValueCategory = prvalue +# 1506| getStmt(496): [DoStmt] do (...) ... +# 1508| getCondition(): [Literal] 0 +# 1508| Type = [IntType] int +# 1508| Value = [Literal] 0 +# 1508| ValueCategory = prvalue +# 1506| getStmt(): [BlockStmt] { ... } +# 1507| getStmt(0): [DeclStmt] declaration +# 1507| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x496 +# 1507| Type = [Struct] String +# 1507| getVariable().getInitializer(): [Initializer] initializer for x496 +# 1507| getExpr(): [ConstructorCall] call to String +# 1507| Type = [VoidType] void +# 1507| ValueCategory = prvalue +# 1508| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1508| Type = [VoidType] void +# 1508| ValueCategory = prvalue +# 1508| getQualifier(): [VariableAccess] x496 +# 1508| Type = [Struct] String +# 1508| ValueCategory = lvalue +# 1508| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1508| Conversion = [BoolConversion] conversion to bool +# 1508| Type = [BoolType] bool +# 1508| Value = [CStyleCast] 0 +# 1508| ValueCategory = prvalue +# 1509| getStmt(497): [DoStmt] do (...) ... +# 1511| getCondition(): [Literal] 0 +# 1511| Type = [IntType] int +# 1511| Value = [Literal] 0 +# 1511| ValueCategory = prvalue +# 1509| getStmt(): [BlockStmt] { ... } +# 1510| getStmt(0): [DeclStmt] declaration +# 1510| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x497 +# 1510| Type = [Struct] String +# 1510| getVariable().getInitializer(): [Initializer] initializer for x497 +# 1510| getExpr(): [ConstructorCall] call to String +# 1510| Type = [VoidType] void +# 1510| ValueCategory = prvalue +# 1511| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1511| Type = [VoidType] void +# 1511| ValueCategory = prvalue +# 1511| getQualifier(): [VariableAccess] x497 +# 1511| Type = [Struct] String +# 1511| ValueCategory = lvalue +# 1511| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1511| Conversion = [BoolConversion] conversion to bool +# 1511| Type = [BoolType] bool +# 1511| Value = [CStyleCast] 0 +# 1511| ValueCategory = prvalue +# 1512| getStmt(498): [DoStmt] do (...) ... +# 1514| getCondition(): [Literal] 0 +# 1514| Type = [IntType] int +# 1514| Value = [Literal] 0 +# 1514| ValueCategory = prvalue +# 1512| getStmt(): [BlockStmt] { ... } +# 1513| getStmt(0): [DeclStmt] declaration +# 1513| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x498 +# 1513| Type = [Struct] String +# 1513| getVariable().getInitializer(): [Initializer] initializer for x498 +# 1513| getExpr(): [ConstructorCall] call to String +# 1513| Type = [VoidType] void +# 1513| ValueCategory = prvalue +# 1514| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1514| Type = [VoidType] void +# 1514| ValueCategory = prvalue +# 1514| getQualifier(): [VariableAccess] x498 +# 1514| Type = [Struct] String +# 1514| ValueCategory = lvalue +# 1514| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1514| Conversion = [BoolConversion] conversion to bool +# 1514| Type = [BoolType] bool +# 1514| Value = [CStyleCast] 0 +# 1514| ValueCategory = prvalue +# 1515| getStmt(499): [DoStmt] do (...) ... +# 1517| getCondition(): [Literal] 0 +# 1517| Type = [IntType] int +# 1517| Value = [Literal] 0 +# 1517| ValueCategory = prvalue +# 1515| getStmt(): [BlockStmt] { ... } +# 1516| getStmt(0): [DeclStmt] declaration +# 1516| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x499 +# 1516| Type = [Struct] String +# 1516| getVariable().getInitializer(): [Initializer] initializer for x499 +# 1516| getExpr(): [ConstructorCall] call to String +# 1516| Type = [VoidType] void +# 1516| ValueCategory = prvalue +# 1517| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1517| Type = [VoidType] void +# 1517| ValueCategory = prvalue +# 1517| getQualifier(): [VariableAccess] x499 +# 1517| Type = [Struct] String +# 1517| ValueCategory = lvalue +# 1517| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1517| Conversion = [BoolConversion] conversion to bool +# 1517| Type = [BoolType] bool +# 1517| Value = [CStyleCast] 0 +# 1517| ValueCategory = prvalue +# 1518| getStmt(500): [DoStmt] do (...) ... +# 1520| getCondition(): [Literal] 0 +# 1520| Type = [IntType] int +# 1520| Value = [Literal] 0 +# 1520| ValueCategory = prvalue +# 1518| getStmt(): [BlockStmt] { ... } +# 1519| getStmt(0): [DeclStmt] declaration +# 1519| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x500 +# 1519| Type = [Struct] String +# 1519| getVariable().getInitializer(): [Initializer] initializer for x500 +# 1519| getExpr(): [ConstructorCall] call to String +# 1519| Type = [VoidType] void +# 1519| ValueCategory = prvalue +# 1520| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1520| Type = [VoidType] void +# 1520| ValueCategory = prvalue +# 1520| getQualifier(): [VariableAccess] x500 +# 1520| Type = [Struct] String +# 1520| ValueCategory = lvalue +# 1520| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1520| Conversion = [BoolConversion] conversion to bool +# 1520| Type = [BoolType] bool +# 1520| Value = [CStyleCast] 0 +# 1520| ValueCategory = prvalue +# 1521| getStmt(501): [DoStmt] do (...) ... +# 1523| getCondition(): [Literal] 0 +# 1523| Type = [IntType] int +# 1523| Value = [Literal] 0 +# 1523| ValueCategory = prvalue +# 1521| getStmt(): [BlockStmt] { ... } +# 1522| getStmt(0): [DeclStmt] declaration +# 1522| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x501 +# 1522| Type = [Struct] String +# 1522| getVariable().getInitializer(): [Initializer] initializer for x501 +# 1522| getExpr(): [ConstructorCall] call to String +# 1522| Type = [VoidType] void +# 1522| ValueCategory = prvalue +# 1523| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1523| Type = [VoidType] void +# 1523| ValueCategory = prvalue +# 1523| getQualifier(): [VariableAccess] x501 +# 1523| Type = [Struct] String +# 1523| ValueCategory = lvalue +# 1523| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1523| Conversion = [BoolConversion] conversion to bool +# 1523| Type = [BoolType] bool +# 1523| Value = [CStyleCast] 0 +# 1523| ValueCategory = prvalue +# 1524| getStmt(502): [DoStmt] do (...) ... +# 1526| getCondition(): [Literal] 0 +# 1526| Type = [IntType] int +# 1526| Value = [Literal] 0 +# 1526| ValueCategory = prvalue +# 1524| getStmt(): [BlockStmt] { ... } +# 1525| getStmt(0): [DeclStmt] declaration +# 1525| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x502 +# 1525| Type = [Struct] String +# 1525| getVariable().getInitializer(): [Initializer] initializer for x502 +# 1525| getExpr(): [ConstructorCall] call to String +# 1525| Type = [VoidType] void +# 1525| ValueCategory = prvalue +# 1526| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1526| Type = [VoidType] void +# 1526| ValueCategory = prvalue +# 1526| getQualifier(): [VariableAccess] x502 +# 1526| Type = [Struct] String +# 1526| ValueCategory = lvalue +# 1526| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1526| Conversion = [BoolConversion] conversion to bool +# 1526| Type = [BoolType] bool +# 1526| Value = [CStyleCast] 0 +# 1526| ValueCategory = prvalue +# 1527| getStmt(503): [DoStmt] do (...) ... +# 1529| getCondition(): [Literal] 0 +# 1529| Type = [IntType] int +# 1529| Value = [Literal] 0 +# 1529| ValueCategory = prvalue +# 1527| getStmt(): [BlockStmt] { ... } +# 1528| getStmt(0): [DeclStmt] declaration +# 1528| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x503 +# 1528| Type = [Struct] String +# 1528| getVariable().getInitializer(): [Initializer] initializer for x503 +# 1528| getExpr(): [ConstructorCall] call to String +# 1528| Type = [VoidType] void +# 1528| ValueCategory = prvalue +# 1529| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1529| Type = [VoidType] void +# 1529| ValueCategory = prvalue +# 1529| getQualifier(): [VariableAccess] x503 +# 1529| Type = [Struct] String +# 1529| ValueCategory = lvalue +# 1529| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1529| Conversion = [BoolConversion] conversion to bool +# 1529| Type = [BoolType] bool +# 1529| Value = [CStyleCast] 0 +# 1529| ValueCategory = prvalue +# 1530| getStmt(504): [DoStmt] do (...) ... +# 1532| getCondition(): [Literal] 0 +# 1532| Type = [IntType] int +# 1532| Value = [Literal] 0 +# 1532| ValueCategory = prvalue +# 1530| getStmt(): [BlockStmt] { ... } +# 1531| getStmt(0): [DeclStmt] declaration +# 1531| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x504 +# 1531| Type = [Struct] String +# 1531| getVariable().getInitializer(): [Initializer] initializer for x504 +# 1531| getExpr(): [ConstructorCall] call to String +# 1531| Type = [VoidType] void +# 1531| ValueCategory = prvalue +# 1532| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1532| Type = [VoidType] void +# 1532| ValueCategory = prvalue +# 1532| getQualifier(): [VariableAccess] x504 +# 1532| Type = [Struct] String +# 1532| ValueCategory = lvalue +# 1532| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1532| Conversion = [BoolConversion] conversion to bool +# 1532| Type = [BoolType] bool +# 1532| Value = [CStyleCast] 0 +# 1532| ValueCategory = prvalue +# 1533| getStmt(505): [DoStmt] do (...) ... +# 1535| getCondition(): [Literal] 0 +# 1535| Type = [IntType] int +# 1535| Value = [Literal] 0 +# 1535| ValueCategory = prvalue +# 1533| getStmt(): [BlockStmt] { ... } +# 1534| getStmt(0): [DeclStmt] declaration +# 1534| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x505 +# 1534| Type = [Struct] String +# 1534| getVariable().getInitializer(): [Initializer] initializer for x505 +# 1534| getExpr(): [ConstructorCall] call to String +# 1534| Type = [VoidType] void +# 1534| ValueCategory = prvalue +# 1535| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1535| Type = [VoidType] void +# 1535| ValueCategory = prvalue +# 1535| getQualifier(): [VariableAccess] x505 +# 1535| Type = [Struct] String +# 1535| ValueCategory = lvalue +# 1535| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1535| Conversion = [BoolConversion] conversion to bool +# 1535| Type = [BoolType] bool +# 1535| Value = [CStyleCast] 0 +# 1535| ValueCategory = prvalue +# 1536| getStmt(506): [DoStmt] do (...) ... +# 1538| getCondition(): [Literal] 0 +# 1538| Type = [IntType] int +# 1538| Value = [Literal] 0 +# 1538| ValueCategory = prvalue +# 1536| getStmt(): [BlockStmt] { ... } +# 1537| getStmt(0): [DeclStmt] declaration +# 1537| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x506 +# 1537| Type = [Struct] String +# 1537| getVariable().getInitializer(): [Initializer] initializer for x506 +# 1537| getExpr(): [ConstructorCall] call to String +# 1537| Type = [VoidType] void +# 1537| ValueCategory = prvalue +# 1538| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1538| Type = [VoidType] void +# 1538| ValueCategory = prvalue +# 1538| getQualifier(): [VariableAccess] x506 +# 1538| Type = [Struct] String +# 1538| ValueCategory = lvalue +# 1538| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1538| Conversion = [BoolConversion] conversion to bool +# 1538| Type = [BoolType] bool +# 1538| Value = [CStyleCast] 0 +# 1538| ValueCategory = prvalue +# 1539| getStmt(507): [DoStmt] do (...) ... +# 1541| getCondition(): [Literal] 0 +# 1541| Type = [IntType] int +# 1541| Value = [Literal] 0 +# 1541| ValueCategory = prvalue +# 1539| getStmt(): [BlockStmt] { ... } +# 1540| getStmt(0): [DeclStmt] declaration +# 1540| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x507 +# 1540| Type = [Struct] String +# 1540| getVariable().getInitializer(): [Initializer] initializer for x507 +# 1540| getExpr(): [ConstructorCall] call to String +# 1540| Type = [VoidType] void +# 1540| ValueCategory = prvalue +# 1541| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1541| Type = [VoidType] void +# 1541| ValueCategory = prvalue +# 1541| getQualifier(): [VariableAccess] x507 +# 1541| Type = [Struct] String +# 1541| ValueCategory = lvalue +# 1541| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1541| Conversion = [BoolConversion] conversion to bool +# 1541| Type = [BoolType] bool +# 1541| Value = [CStyleCast] 0 +# 1541| ValueCategory = prvalue +# 1542| getStmt(508): [DoStmt] do (...) ... +# 1544| getCondition(): [Literal] 0 +# 1544| Type = [IntType] int +# 1544| Value = [Literal] 0 +# 1544| ValueCategory = prvalue +# 1542| getStmt(): [BlockStmt] { ... } +# 1543| getStmt(0): [DeclStmt] declaration +# 1543| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x508 +# 1543| Type = [Struct] String +# 1543| getVariable().getInitializer(): [Initializer] initializer for x508 +# 1543| getExpr(): [ConstructorCall] call to String +# 1543| Type = [VoidType] void +# 1543| ValueCategory = prvalue +# 1544| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1544| Type = [VoidType] void +# 1544| ValueCategory = prvalue +# 1544| getQualifier(): [VariableAccess] x508 +# 1544| Type = [Struct] String +# 1544| ValueCategory = lvalue +# 1544| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1544| Conversion = [BoolConversion] conversion to bool +# 1544| Type = [BoolType] bool +# 1544| Value = [CStyleCast] 0 +# 1544| ValueCategory = prvalue +# 1545| getStmt(509): [DoStmt] do (...) ... +# 1547| getCondition(): [Literal] 0 +# 1547| Type = [IntType] int +# 1547| Value = [Literal] 0 +# 1547| ValueCategory = prvalue +# 1545| getStmt(): [BlockStmt] { ... } +# 1546| getStmt(0): [DeclStmt] declaration +# 1546| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x509 +# 1546| Type = [Struct] String +# 1546| getVariable().getInitializer(): [Initializer] initializer for x509 +# 1546| getExpr(): [ConstructorCall] call to String +# 1546| Type = [VoidType] void +# 1546| ValueCategory = prvalue +# 1547| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1547| Type = [VoidType] void +# 1547| ValueCategory = prvalue +# 1547| getQualifier(): [VariableAccess] x509 +# 1547| Type = [Struct] String +# 1547| ValueCategory = lvalue +# 1547| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1547| Conversion = [BoolConversion] conversion to bool +# 1547| Type = [BoolType] bool +# 1547| Value = [CStyleCast] 0 +# 1547| ValueCategory = prvalue +# 1548| getStmt(510): [DoStmt] do (...) ... +# 1550| getCondition(): [Literal] 0 +# 1550| Type = [IntType] int +# 1550| Value = [Literal] 0 +# 1550| ValueCategory = prvalue +# 1548| getStmt(): [BlockStmt] { ... } +# 1549| getStmt(0): [DeclStmt] declaration +# 1549| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x510 +# 1549| Type = [Struct] String +# 1549| getVariable().getInitializer(): [Initializer] initializer for x510 +# 1549| getExpr(): [ConstructorCall] call to String +# 1549| Type = [VoidType] void +# 1549| ValueCategory = prvalue +# 1550| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1550| Type = [VoidType] void +# 1550| ValueCategory = prvalue +# 1550| getQualifier(): [VariableAccess] x510 +# 1550| Type = [Struct] String +# 1550| ValueCategory = lvalue +# 1550| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1550| Conversion = [BoolConversion] conversion to bool +# 1550| Type = [BoolType] bool +# 1550| Value = [CStyleCast] 0 +# 1550| ValueCategory = prvalue +# 1551| getStmt(511): [DoStmt] do (...) ... +# 1553| getCondition(): [Literal] 0 +# 1553| Type = [IntType] int +# 1553| Value = [Literal] 0 +# 1553| ValueCategory = prvalue +# 1551| getStmt(): [BlockStmt] { ... } +# 1552| getStmt(0): [DeclStmt] declaration +# 1552| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x511 +# 1552| Type = [Struct] String +# 1552| getVariable().getInitializer(): [Initializer] initializer for x511 +# 1552| getExpr(): [ConstructorCall] call to String +# 1552| Type = [VoidType] void +# 1552| ValueCategory = prvalue +# 1553| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1553| Type = [VoidType] void +# 1553| ValueCategory = prvalue +# 1553| getQualifier(): [VariableAccess] x511 +# 1553| Type = [Struct] String +# 1553| ValueCategory = lvalue +# 1553| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1553| Conversion = [BoolConversion] conversion to bool +# 1553| Type = [BoolType] bool +# 1553| Value = [CStyleCast] 0 +# 1553| ValueCategory = prvalue +# 1554| getStmt(512): [DoStmt] do (...) ... +# 1556| getCondition(): [Literal] 0 +# 1556| Type = [IntType] int +# 1556| Value = [Literal] 0 +# 1556| ValueCategory = prvalue +# 1554| getStmt(): [BlockStmt] { ... } +# 1555| getStmt(0): [DeclStmt] declaration +# 1555| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x512 +# 1555| Type = [Struct] String +# 1555| getVariable().getInitializer(): [Initializer] initializer for x512 +# 1555| getExpr(): [ConstructorCall] call to String +# 1555| Type = [VoidType] void +# 1555| ValueCategory = prvalue +# 1556| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1556| Type = [VoidType] void +# 1556| ValueCategory = prvalue +# 1556| getQualifier(): [VariableAccess] x512 +# 1556| Type = [Struct] String +# 1556| ValueCategory = lvalue +# 1556| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1556| Conversion = [BoolConversion] conversion to bool +# 1556| Type = [BoolType] bool +# 1556| Value = [CStyleCast] 0 +# 1556| ValueCategory = prvalue +# 1557| getStmt(513): [DoStmt] do (...) ... +# 1559| getCondition(): [Literal] 0 +# 1559| Type = [IntType] int +# 1559| Value = [Literal] 0 +# 1559| ValueCategory = prvalue +# 1557| getStmt(): [BlockStmt] { ... } +# 1558| getStmt(0): [DeclStmt] declaration +# 1558| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x513 +# 1558| Type = [Struct] String +# 1558| getVariable().getInitializer(): [Initializer] initializer for x513 +# 1558| getExpr(): [ConstructorCall] call to String +# 1558| Type = [VoidType] void +# 1558| ValueCategory = prvalue +# 1559| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1559| Type = [VoidType] void +# 1559| ValueCategory = prvalue +# 1559| getQualifier(): [VariableAccess] x513 +# 1559| Type = [Struct] String +# 1559| ValueCategory = lvalue +# 1559| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1559| Conversion = [BoolConversion] conversion to bool +# 1559| Type = [BoolType] bool +# 1559| Value = [CStyleCast] 0 +# 1559| ValueCategory = prvalue +# 1560| getStmt(514): [DoStmt] do (...) ... +# 1562| getCondition(): [Literal] 0 +# 1562| Type = [IntType] int +# 1562| Value = [Literal] 0 +# 1562| ValueCategory = prvalue +# 1560| getStmt(): [BlockStmt] { ... } +# 1561| getStmt(0): [DeclStmt] declaration +# 1561| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x514 +# 1561| Type = [Struct] String +# 1561| getVariable().getInitializer(): [Initializer] initializer for x514 +# 1561| getExpr(): [ConstructorCall] call to String +# 1561| Type = [VoidType] void +# 1561| ValueCategory = prvalue +# 1562| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1562| Type = [VoidType] void +# 1562| ValueCategory = prvalue +# 1562| getQualifier(): [VariableAccess] x514 +# 1562| Type = [Struct] String +# 1562| ValueCategory = lvalue +# 1562| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1562| Conversion = [BoolConversion] conversion to bool +# 1562| Type = [BoolType] bool +# 1562| Value = [CStyleCast] 0 +# 1562| ValueCategory = prvalue +# 1563| getStmt(515): [DoStmt] do (...) ... +# 1565| getCondition(): [Literal] 0 +# 1565| Type = [IntType] int +# 1565| Value = [Literal] 0 +# 1565| ValueCategory = prvalue +# 1563| getStmt(): [BlockStmt] { ... } +# 1564| getStmt(0): [DeclStmt] declaration +# 1564| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x515 +# 1564| Type = [Struct] String +# 1564| getVariable().getInitializer(): [Initializer] initializer for x515 +# 1564| getExpr(): [ConstructorCall] call to String +# 1564| Type = [VoidType] void +# 1564| ValueCategory = prvalue +# 1565| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1565| Type = [VoidType] void +# 1565| ValueCategory = prvalue +# 1565| getQualifier(): [VariableAccess] x515 +# 1565| Type = [Struct] String +# 1565| ValueCategory = lvalue +# 1565| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1565| Conversion = [BoolConversion] conversion to bool +# 1565| Type = [BoolType] bool +# 1565| Value = [CStyleCast] 0 +# 1565| ValueCategory = prvalue +# 1566| getStmt(516): [DoStmt] do (...) ... +# 1568| getCondition(): [Literal] 0 +# 1568| Type = [IntType] int +# 1568| Value = [Literal] 0 +# 1568| ValueCategory = prvalue +# 1566| getStmt(): [BlockStmt] { ... } +# 1567| getStmt(0): [DeclStmt] declaration +# 1567| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x516 +# 1567| Type = [Struct] String +# 1567| getVariable().getInitializer(): [Initializer] initializer for x516 +# 1567| getExpr(): [ConstructorCall] call to String +# 1567| Type = [VoidType] void +# 1567| ValueCategory = prvalue +# 1568| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1568| Type = [VoidType] void +# 1568| ValueCategory = prvalue +# 1568| getQualifier(): [VariableAccess] x516 +# 1568| Type = [Struct] String +# 1568| ValueCategory = lvalue +# 1568| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1568| Conversion = [BoolConversion] conversion to bool +# 1568| Type = [BoolType] bool +# 1568| Value = [CStyleCast] 0 +# 1568| ValueCategory = prvalue +# 1569| getStmt(517): [DoStmt] do (...) ... +# 1571| getCondition(): [Literal] 0 +# 1571| Type = [IntType] int +# 1571| Value = [Literal] 0 +# 1571| ValueCategory = prvalue +# 1569| getStmt(): [BlockStmt] { ... } +# 1570| getStmt(0): [DeclStmt] declaration +# 1570| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x517 +# 1570| Type = [Struct] String +# 1570| getVariable().getInitializer(): [Initializer] initializer for x517 +# 1570| getExpr(): [ConstructorCall] call to String +# 1570| Type = [VoidType] void +# 1570| ValueCategory = prvalue +# 1571| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1571| Type = [VoidType] void +# 1571| ValueCategory = prvalue +# 1571| getQualifier(): [VariableAccess] x517 +# 1571| Type = [Struct] String +# 1571| ValueCategory = lvalue +# 1571| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1571| Conversion = [BoolConversion] conversion to bool +# 1571| Type = [BoolType] bool +# 1571| Value = [CStyleCast] 0 +# 1571| ValueCategory = prvalue +# 1572| getStmt(518): [DoStmt] do (...) ... +# 1574| getCondition(): [Literal] 0 +# 1574| Type = [IntType] int +# 1574| Value = [Literal] 0 +# 1574| ValueCategory = prvalue +# 1572| getStmt(): [BlockStmt] { ... } +# 1573| getStmt(0): [DeclStmt] declaration +# 1573| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x518 +# 1573| Type = [Struct] String +# 1573| getVariable().getInitializer(): [Initializer] initializer for x518 +# 1573| getExpr(): [ConstructorCall] call to String +# 1573| Type = [VoidType] void +# 1573| ValueCategory = prvalue +# 1574| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1574| Type = [VoidType] void +# 1574| ValueCategory = prvalue +# 1574| getQualifier(): [VariableAccess] x518 +# 1574| Type = [Struct] String +# 1574| ValueCategory = lvalue +# 1574| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1574| Conversion = [BoolConversion] conversion to bool +# 1574| Type = [BoolType] bool +# 1574| Value = [CStyleCast] 0 +# 1574| ValueCategory = prvalue +# 1575| getStmt(519): [DoStmt] do (...) ... +# 1577| getCondition(): [Literal] 0 +# 1577| Type = [IntType] int +# 1577| Value = [Literal] 0 +# 1577| ValueCategory = prvalue +# 1575| getStmt(): [BlockStmt] { ... } +# 1576| getStmt(0): [DeclStmt] declaration +# 1576| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x519 +# 1576| Type = [Struct] String +# 1576| getVariable().getInitializer(): [Initializer] initializer for x519 +# 1576| getExpr(): [ConstructorCall] call to String +# 1576| Type = [VoidType] void +# 1576| ValueCategory = prvalue +# 1577| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1577| Type = [VoidType] void +# 1577| ValueCategory = prvalue +# 1577| getQualifier(): [VariableAccess] x519 +# 1577| Type = [Struct] String +# 1577| ValueCategory = lvalue +# 1577| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1577| Conversion = [BoolConversion] conversion to bool +# 1577| Type = [BoolType] bool +# 1577| Value = [CStyleCast] 0 +# 1577| ValueCategory = prvalue +# 1578| getStmt(520): [DoStmt] do (...) ... +# 1580| getCondition(): [Literal] 0 +# 1580| Type = [IntType] int +# 1580| Value = [Literal] 0 +# 1580| ValueCategory = prvalue +# 1578| getStmt(): [BlockStmt] { ... } +# 1579| getStmt(0): [DeclStmt] declaration +# 1579| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x520 +# 1579| Type = [Struct] String +# 1579| getVariable().getInitializer(): [Initializer] initializer for x520 +# 1579| getExpr(): [ConstructorCall] call to String +# 1579| Type = [VoidType] void +# 1579| ValueCategory = prvalue +# 1580| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1580| Type = [VoidType] void +# 1580| ValueCategory = prvalue +# 1580| getQualifier(): [VariableAccess] x520 +# 1580| Type = [Struct] String +# 1580| ValueCategory = lvalue +# 1580| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1580| Conversion = [BoolConversion] conversion to bool +# 1580| Type = [BoolType] bool +# 1580| Value = [CStyleCast] 0 +# 1580| ValueCategory = prvalue +# 1581| getStmt(521): [DoStmt] do (...) ... +# 1583| getCondition(): [Literal] 0 +# 1583| Type = [IntType] int +# 1583| Value = [Literal] 0 +# 1583| ValueCategory = prvalue +# 1581| getStmt(): [BlockStmt] { ... } +# 1582| getStmt(0): [DeclStmt] declaration +# 1582| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x521 +# 1582| Type = [Struct] String +# 1582| getVariable().getInitializer(): [Initializer] initializer for x521 +# 1582| getExpr(): [ConstructorCall] call to String +# 1582| Type = [VoidType] void +# 1582| ValueCategory = prvalue +# 1583| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1583| Type = [VoidType] void +# 1583| ValueCategory = prvalue +# 1583| getQualifier(): [VariableAccess] x521 +# 1583| Type = [Struct] String +# 1583| ValueCategory = lvalue +# 1583| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1583| Conversion = [BoolConversion] conversion to bool +# 1583| Type = [BoolType] bool +# 1583| Value = [CStyleCast] 0 +# 1583| ValueCategory = prvalue +# 1584| getStmt(522): [DoStmt] do (...) ... +# 1586| getCondition(): [Literal] 0 +# 1586| Type = [IntType] int +# 1586| Value = [Literal] 0 +# 1586| ValueCategory = prvalue +# 1584| getStmt(): [BlockStmt] { ... } +# 1585| getStmt(0): [DeclStmt] declaration +# 1585| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x522 +# 1585| Type = [Struct] String +# 1585| getVariable().getInitializer(): [Initializer] initializer for x522 +# 1585| getExpr(): [ConstructorCall] call to String +# 1585| Type = [VoidType] void +# 1585| ValueCategory = prvalue +# 1586| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1586| Type = [VoidType] void +# 1586| ValueCategory = prvalue +# 1586| getQualifier(): [VariableAccess] x522 +# 1586| Type = [Struct] String +# 1586| ValueCategory = lvalue +# 1586| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1586| Conversion = [BoolConversion] conversion to bool +# 1586| Type = [BoolType] bool +# 1586| Value = [CStyleCast] 0 +# 1586| ValueCategory = prvalue +# 1587| getStmt(523): [DoStmt] do (...) ... +# 1589| getCondition(): [Literal] 0 +# 1589| Type = [IntType] int +# 1589| Value = [Literal] 0 +# 1589| ValueCategory = prvalue +# 1587| getStmt(): [BlockStmt] { ... } +# 1588| getStmt(0): [DeclStmt] declaration +# 1588| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x523 +# 1588| Type = [Struct] String +# 1588| getVariable().getInitializer(): [Initializer] initializer for x523 +# 1588| getExpr(): [ConstructorCall] call to String +# 1588| Type = [VoidType] void +# 1588| ValueCategory = prvalue +# 1589| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1589| Type = [VoidType] void +# 1589| ValueCategory = prvalue +# 1589| getQualifier(): [VariableAccess] x523 +# 1589| Type = [Struct] String +# 1589| ValueCategory = lvalue +# 1589| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1589| Conversion = [BoolConversion] conversion to bool +# 1589| Type = [BoolType] bool +# 1589| Value = [CStyleCast] 0 +# 1589| ValueCategory = prvalue +# 1590| getStmt(524): [DoStmt] do (...) ... +# 1592| getCondition(): [Literal] 0 +# 1592| Type = [IntType] int +# 1592| Value = [Literal] 0 +# 1592| ValueCategory = prvalue +# 1590| getStmt(): [BlockStmt] { ... } +# 1591| getStmt(0): [DeclStmt] declaration +# 1591| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x524 +# 1591| Type = [Struct] String +# 1591| getVariable().getInitializer(): [Initializer] initializer for x524 +# 1591| getExpr(): [ConstructorCall] call to String +# 1591| Type = [VoidType] void +# 1591| ValueCategory = prvalue +# 1592| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1592| Type = [VoidType] void +# 1592| ValueCategory = prvalue +# 1592| getQualifier(): [VariableAccess] x524 +# 1592| Type = [Struct] String +# 1592| ValueCategory = lvalue +# 1592| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1592| Conversion = [BoolConversion] conversion to bool +# 1592| Type = [BoolType] bool +# 1592| Value = [CStyleCast] 0 +# 1592| ValueCategory = prvalue +# 1593| getStmt(525): [DoStmt] do (...) ... +# 1595| getCondition(): [Literal] 0 +# 1595| Type = [IntType] int +# 1595| Value = [Literal] 0 +# 1595| ValueCategory = prvalue +# 1593| getStmt(): [BlockStmt] { ... } +# 1594| getStmt(0): [DeclStmt] declaration +# 1594| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x525 +# 1594| Type = [Struct] String +# 1594| getVariable().getInitializer(): [Initializer] initializer for x525 +# 1594| getExpr(): [ConstructorCall] call to String +# 1594| Type = [VoidType] void +# 1594| ValueCategory = prvalue +# 1595| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1595| Type = [VoidType] void +# 1595| ValueCategory = prvalue +# 1595| getQualifier(): [VariableAccess] x525 +# 1595| Type = [Struct] String +# 1595| ValueCategory = lvalue +# 1595| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1595| Conversion = [BoolConversion] conversion to bool +# 1595| Type = [BoolType] bool +# 1595| Value = [CStyleCast] 0 +# 1595| ValueCategory = prvalue +# 1596| getStmt(526): [DoStmt] do (...) ... +# 1598| getCondition(): [Literal] 0 +# 1598| Type = [IntType] int +# 1598| Value = [Literal] 0 +# 1598| ValueCategory = prvalue +# 1596| getStmt(): [BlockStmt] { ... } +# 1597| getStmt(0): [DeclStmt] declaration +# 1597| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x526 +# 1597| Type = [Struct] String +# 1597| getVariable().getInitializer(): [Initializer] initializer for x526 +# 1597| getExpr(): [ConstructorCall] call to String +# 1597| Type = [VoidType] void +# 1597| ValueCategory = prvalue +# 1598| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1598| Type = [VoidType] void +# 1598| ValueCategory = prvalue +# 1598| getQualifier(): [VariableAccess] x526 +# 1598| Type = [Struct] String +# 1598| ValueCategory = lvalue +# 1598| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1598| Conversion = [BoolConversion] conversion to bool +# 1598| Type = [BoolType] bool +# 1598| Value = [CStyleCast] 0 +# 1598| ValueCategory = prvalue +# 1599| getStmt(527): [DoStmt] do (...) ... +# 1601| getCondition(): [Literal] 0 +# 1601| Type = [IntType] int +# 1601| Value = [Literal] 0 +# 1601| ValueCategory = prvalue +# 1599| getStmt(): [BlockStmt] { ... } +# 1600| getStmt(0): [DeclStmt] declaration +# 1600| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x527 +# 1600| Type = [Struct] String +# 1600| getVariable().getInitializer(): [Initializer] initializer for x527 +# 1600| getExpr(): [ConstructorCall] call to String +# 1600| Type = [VoidType] void +# 1600| ValueCategory = prvalue +# 1601| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1601| Type = [VoidType] void +# 1601| ValueCategory = prvalue +# 1601| getQualifier(): [VariableAccess] x527 +# 1601| Type = [Struct] String +# 1601| ValueCategory = lvalue +# 1601| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1601| Conversion = [BoolConversion] conversion to bool +# 1601| Type = [BoolType] bool +# 1601| Value = [CStyleCast] 0 +# 1601| ValueCategory = prvalue +# 1602| getStmt(528): [DoStmt] do (...) ... +# 1604| getCondition(): [Literal] 0 +# 1604| Type = [IntType] int +# 1604| Value = [Literal] 0 +# 1604| ValueCategory = prvalue +# 1602| getStmt(): [BlockStmt] { ... } +# 1603| getStmt(0): [DeclStmt] declaration +# 1603| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x528 +# 1603| Type = [Struct] String +# 1603| getVariable().getInitializer(): [Initializer] initializer for x528 +# 1603| getExpr(): [ConstructorCall] call to String +# 1603| Type = [VoidType] void +# 1603| ValueCategory = prvalue +# 1604| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1604| Type = [VoidType] void +# 1604| ValueCategory = prvalue +# 1604| getQualifier(): [VariableAccess] x528 +# 1604| Type = [Struct] String +# 1604| ValueCategory = lvalue +# 1604| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1604| Conversion = [BoolConversion] conversion to bool +# 1604| Type = [BoolType] bool +# 1604| Value = [CStyleCast] 0 +# 1604| ValueCategory = prvalue +# 1605| getStmt(529): [DoStmt] do (...) ... +# 1607| getCondition(): [Literal] 0 +# 1607| Type = [IntType] int +# 1607| Value = [Literal] 0 +# 1607| ValueCategory = prvalue +# 1605| getStmt(): [BlockStmt] { ... } +# 1606| getStmt(0): [DeclStmt] declaration +# 1606| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x529 +# 1606| Type = [Struct] String +# 1606| getVariable().getInitializer(): [Initializer] initializer for x529 +# 1606| getExpr(): [ConstructorCall] call to String +# 1606| Type = [VoidType] void +# 1606| ValueCategory = prvalue +# 1607| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1607| Type = [VoidType] void +# 1607| ValueCategory = prvalue +# 1607| getQualifier(): [VariableAccess] x529 +# 1607| Type = [Struct] String +# 1607| ValueCategory = lvalue +# 1607| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1607| Conversion = [BoolConversion] conversion to bool +# 1607| Type = [BoolType] bool +# 1607| Value = [CStyleCast] 0 +# 1607| ValueCategory = prvalue +# 1608| getStmt(530): [DoStmt] do (...) ... +# 1610| getCondition(): [Literal] 0 +# 1610| Type = [IntType] int +# 1610| Value = [Literal] 0 +# 1610| ValueCategory = prvalue +# 1608| getStmt(): [BlockStmt] { ... } +# 1609| getStmt(0): [DeclStmt] declaration +# 1609| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x530 +# 1609| Type = [Struct] String +# 1609| getVariable().getInitializer(): [Initializer] initializer for x530 +# 1609| getExpr(): [ConstructorCall] call to String +# 1609| Type = [VoidType] void +# 1609| ValueCategory = prvalue +# 1610| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1610| Type = [VoidType] void +# 1610| ValueCategory = prvalue +# 1610| getQualifier(): [VariableAccess] x530 +# 1610| Type = [Struct] String +# 1610| ValueCategory = lvalue +# 1610| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1610| Conversion = [BoolConversion] conversion to bool +# 1610| Type = [BoolType] bool +# 1610| Value = [CStyleCast] 0 +# 1610| ValueCategory = prvalue +# 1611| getStmt(531): [DoStmt] do (...) ... +# 1613| getCondition(): [Literal] 0 +# 1613| Type = [IntType] int +# 1613| Value = [Literal] 0 +# 1613| ValueCategory = prvalue +# 1611| getStmt(): [BlockStmt] { ... } +# 1612| getStmt(0): [DeclStmt] declaration +# 1612| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x531 +# 1612| Type = [Struct] String +# 1612| getVariable().getInitializer(): [Initializer] initializer for x531 +# 1612| getExpr(): [ConstructorCall] call to String +# 1612| Type = [VoidType] void +# 1612| ValueCategory = prvalue +# 1613| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1613| Type = [VoidType] void +# 1613| ValueCategory = prvalue +# 1613| getQualifier(): [VariableAccess] x531 +# 1613| Type = [Struct] String +# 1613| ValueCategory = lvalue +# 1613| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1613| Conversion = [BoolConversion] conversion to bool +# 1613| Type = [BoolType] bool +# 1613| Value = [CStyleCast] 0 +# 1613| ValueCategory = prvalue +# 1614| getStmt(532): [DoStmt] do (...) ... +# 1616| getCondition(): [Literal] 0 +# 1616| Type = [IntType] int +# 1616| Value = [Literal] 0 +# 1616| ValueCategory = prvalue +# 1614| getStmt(): [BlockStmt] { ... } +# 1615| getStmt(0): [DeclStmt] declaration +# 1615| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x532 +# 1615| Type = [Struct] String +# 1615| getVariable().getInitializer(): [Initializer] initializer for x532 +# 1615| getExpr(): [ConstructorCall] call to String +# 1615| Type = [VoidType] void +# 1615| ValueCategory = prvalue +# 1616| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1616| Type = [VoidType] void +# 1616| ValueCategory = prvalue +# 1616| getQualifier(): [VariableAccess] x532 +# 1616| Type = [Struct] String +# 1616| ValueCategory = lvalue +# 1616| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1616| Conversion = [BoolConversion] conversion to bool +# 1616| Type = [BoolType] bool +# 1616| Value = [CStyleCast] 0 +# 1616| ValueCategory = prvalue +# 1617| getStmt(533): [DoStmt] do (...) ... +# 1619| getCondition(): [Literal] 0 +# 1619| Type = [IntType] int +# 1619| Value = [Literal] 0 +# 1619| ValueCategory = prvalue +# 1617| getStmt(): [BlockStmt] { ... } +# 1618| getStmt(0): [DeclStmt] declaration +# 1618| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x533 +# 1618| Type = [Struct] String +# 1618| getVariable().getInitializer(): [Initializer] initializer for x533 +# 1618| getExpr(): [ConstructorCall] call to String +# 1618| Type = [VoidType] void +# 1618| ValueCategory = prvalue +# 1619| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1619| Type = [VoidType] void +# 1619| ValueCategory = prvalue +# 1619| getQualifier(): [VariableAccess] x533 +# 1619| Type = [Struct] String +# 1619| ValueCategory = lvalue +# 1619| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1619| Conversion = [BoolConversion] conversion to bool +# 1619| Type = [BoolType] bool +# 1619| Value = [CStyleCast] 0 +# 1619| ValueCategory = prvalue +# 1620| getStmt(534): [DoStmt] do (...) ... +# 1622| getCondition(): [Literal] 0 +# 1622| Type = [IntType] int +# 1622| Value = [Literal] 0 +# 1622| ValueCategory = prvalue +# 1620| getStmt(): [BlockStmt] { ... } +# 1621| getStmt(0): [DeclStmt] declaration +# 1621| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x534 +# 1621| Type = [Struct] String +# 1621| getVariable().getInitializer(): [Initializer] initializer for x534 +# 1621| getExpr(): [ConstructorCall] call to String +# 1621| Type = [VoidType] void +# 1621| ValueCategory = prvalue +# 1622| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1622| Type = [VoidType] void +# 1622| ValueCategory = prvalue +# 1622| getQualifier(): [VariableAccess] x534 +# 1622| Type = [Struct] String +# 1622| ValueCategory = lvalue +# 1622| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1622| Conversion = [BoolConversion] conversion to bool +# 1622| Type = [BoolType] bool +# 1622| Value = [CStyleCast] 0 +# 1622| ValueCategory = prvalue +# 1623| getStmt(535): [DoStmt] do (...) ... +# 1625| getCondition(): [Literal] 0 +# 1625| Type = [IntType] int +# 1625| Value = [Literal] 0 +# 1625| ValueCategory = prvalue +# 1623| getStmt(): [BlockStmt] { ... } +# 1624| getStmt(0): [DeclStmt] declaration +# 1624| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x535 +# 1624| Type = [Struct] String +# 1624| getVariable().getInitializer(): [Initializer] initializer for x535 +# 1624| getExpr(): [ConstructorCall] call to String +# 1624| Type = [VoidType] void +# 1624| ValueCategory = prvalue +# 1625| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1625| Type = [VoidType] void +# 1625| ValueCategory = prvalue +# 1625| getQualifier(): [VariableAccess] x535 +# 1625| Type = [Struct] String +# 1625| ValueCategory = lvalue +# 1625| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1625| Conversion = [BoolConversion] conversion to bool +# 1625| Type = [BoolType] bool +# 1625| Value = [CStyleCast] 0 +# 1625| ValueCategory = prvalue +# 1626| getStmt(536): [DoStmt] do (...) ... +# 1628| getCondition(): [Literal] 0 +# 1628| Type = [IntType] int +# 1628| Value = [Literal] 0 +# 1628| ValueCategory = prvalue +# 1626| getStmt(): [BlockStmt] { ... } +# 1627| getStmt(0): [DeclStmt] declaration +# 1627| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x536 +# 1627| Type = [Struct] String +# 1627| getVariable().getInitializer(): [Initializer] initializer for x536 +# 1627| getExpr(): [ConstructorCall] call to String +# 1627| Type = [VoidType] void +# 1627| ValueCategory = prvalue +# 1628| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1628| Type = [VoidType] void +# 1628| ValueCategory = prvalue +# 1628| getQualifier(): [VariableAccess] x536 +# 1628| Type = [Struct] String +# 1628| ValueCategory = lvalue +# 1628| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1628| Conversion = [BoolConversion] conversion to bool +# 1628| Type = [BoolType] bool +# 1628| Value = [CStyleCast] 0 +# 1628| ValueCategory = prvalue +# 1629| getStmt(537): [DoStmt] do (...) ... +# 1631| getCondition(): [Literal] 0 +# 1631| Type = [IntType] int +# 1631| Value = [Literal] 0 +# 1631| ValueCategory = prvalue +# 1629| getStmt(): [BlockStmt] { ... } +# 1630| getStmt(0): [DeclStmt] declaration +# 1630| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x537 +# 1630| Type = [Struct] String +# 1630| getVariable().getInitializer(): [Initializer] initializer for x537 +# 1630| getExpr(): [ConstructorCall] call to String +# 1630| Type = [VoidType] void +# 1630| ValueCategory = prvalue +# 1631| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1631| Type = [VoidType] void +# 1631| ValueCategory = prvalue +# 1631| getQualifier(): [VariableAccess] x537 +# 1631| Type = [Struct] String +# 1631| ValueCategory = lvalue +# 1631| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1631| Conversion = [BoolConversion] conversion to bool +# 1631| Type = [BoolType] bool +# 1631| Value = [CStyleCast] 0 +# 1631| ValueCategory = prvalue +# 1632| getStmt(538): [DoStmt] do (...) ... +# 1634| getCondition(): [Literal] 0 +# 1634| Type = [IntType] int +# 1634| Value = [Literal] 0 +# 1634| ValueCategory = prvalue +# 1632| getStmt(): [BlockStmt] { ... } +# 1633| getStmt(0): [DeclStmt] declaration +# 1633| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x538 +# 1633| Type = [Struct] String +# 1633| getVariable().getInitializer(): [Initializer] initializer for x538 +# 1633| getExpr(): [ConstructorCall] call to String +# 1633| Type = [VoidType] void +# 1633| ValueCategory = prvalue +# 1634| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1634| Type = [VoidType] void +# 1634| ValueCategory = prvalue +# 1634| getQualifier(): [VariableAccess] x538 +# 1634| Type = [Struct] String +# 1634| ValueCategory = lvalue +# 1634| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1634| Conversion = [BoolConversion] conversion to bool +# 1634| Type = [BoolType] bool +# 1634| Value = [CStyleCast] 0 +# 1634| ValueCategory = prvalue +# 1635| getStmt(539): [DoStmt] do (...) ... +# 1637| getCondition(): [Literal] 0 +# 1637| Type = [IntType] int +# 1637| Value = [Literal] 0 +# 1637| ValueCategory = prvalue +# 1635| getStmt(): [BlockStmt] { ... } +# 1636| getStmt(0): [DeclStmt] declaration +# 1636| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x539 +# 1636| Type = [Struct] String +# 1636| getVariable().getInitializer(): [Initializer] initializer for x539 +# 1636| getExpr(): [ConstructorCall] call to String +# 1636| Type = [VoidType] void +# 1636| ValueCategory = prvalue +# 1637| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1637| Type = [VoidType] void +# 1637| ValueCategory = prvalue +# 1637| getQualifier(): [VariableAccess] x539 +# 1637| Type = [Struct] String +# 1637| ValueCategory = lvalue +# 1637| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1637| Conversion = [BoolConversion] conversion to bool +# 1637| Type = [BoolType] bool +# 1637| Value = [CStyleCast] 0 +# 1637| ValueCategory = prvalue +# 1638| getStmt(540): [DoStmt] do (...) ... +# 1640| getCondition(): [Literal] 0 +# 1640| Type = [IntType] int +# 1640| Value = [Literal] 0 +# 1640| ValueCategory = prvalue +# 1638| getStmt(): [BlockStmt] { ... } +# 1639| getStmt(0): [DeclStmt] declaration +# 1639| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x540 +# 1639| Type = [Struct] String +# 1639| getVariable().getInitializer(): [Initializer] initializer for x540 +# 1639| getExpr(): [ConstructorCall] call to String +# 1639| Type = [VoidType] void +# 1639| ValueCategory = prvalue +# 1640| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1640| Type = [VoidType] void +# 1640| ValueCategory = prvalue +# 1640| getQualifier(): [VariableAccess] x540 +# 1640| Type = [Struct] String +# 1640| ValueCategory = lvalue +# 1640| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1640| Conversion = [BoolConversion] conversion to bool +# 1640| Type = [BoolType] bool +# 1640| Value = [CStyleCast] 0 +# 1640| ValueCategory = prvalue +# 1641| getStmt(541): [DoStmt] do (...) ... +# 1643| getCondition(): [Literal] 0 +# 1643| Type = [IntType] int +# 1643| Value = [Literal] 0 +# 1643| ValueCategory = prvalue +# 1641| getStmt(): [BlockStmt] { ... } +# 1642| getStmt(0): [DeclStmt] declaration +# 1642| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x541 +# 1642| Type = [Struct] String +# 1642| getVariable().getInitializer(): [Initializer] initializer for x541 +# 1642| getExpr(): [ConstructorCall] call to String +# 1642| Type = [VoidType] void +# 1642| ValueCategory = prvalue +# 1643| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1643| Type = [VoidType] void +# 1643| ValueCategory = prvalue +# 1643| getQualifier(): [VariableAccess] x541 +# 1643| Type = [Struct] String +# 1643| ValueCategory = lvalue +# 1643| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1643| Conversion = [BoolConversion] conversion to bool +# 1643| Type = [BoolType] bool +# 1643| Value = [CStyleCast] 0 +# 1643| ValueCategory = prvalue +# 1644| getStmt(542): [DoStmt] do (...) ... +# 1646| getCondition(): [Literal] 0 +# 1646| Type = [IntType] int +# 1646| Value = [Literal] 0 +# 1646| ValueCategory = prvalue +# 1644| getStmt(): [BlockStmt] { ... } +# 1645| getStmt(0): [DeclStmt] declaration +# 1645| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x542 +# 1645| Type = [Struct] String +# 1645| getVariable().getInitializer(): [Initializer] initializer for x542 +# 1645| getExpr(): [ConstructorCall] call to String +# 1645| Type = [VoidType] void +# 1645| ValueCategory = prvalue +# 1646| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1646| Type = [VoidType] void +# 1646| ValueCategory = prvalue +# 1646| getQualifier(): [VariableAccess] x542 +# 1646| Type = [Struct] String +# 1646| ValueCategory = lvalue +# 1646| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1646| Conversion = [BoolConversion] conversion to bool +# 1646| Type = [BoolType] bool +# 1646| Value = [CStyleCast] 0 +# 1646| ValueCategory = prvalue +# 1647| getStmt(543): [DoStmt] do (...) ... +# 1649| getCondition(): [Literal] 0 +# 1649| Type = [IntType] int +# 1649| Value = [Literal] 0 +# 1649| ValueCategory = prvalue +# 1647| getStmt(): [BlockStmt] { ... } +# 1648| getStmt(0): [DeclStmt] declaration +# 1648| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x543 +# 1648| Type = [Struct] String +# 1648| getVariable().getInitializer(): [Initializer] initializer for x543 +# 1648| getExpr(): [ConstructorCall] call to String +# 1648| Type = [VoidType] void +# 1648| ValueCategory = prvalue +# 1649| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1649| Type = [VoidType] void +# 1649| ValueCategory = prvalue +# 1649| getQualifier(): [VariableAccess] x543 +# 1649| Type = [Struct] String +# 1649| ValueCategory = lvalue +# 1649| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1649| Conversion = [BoolConversion] conversion to bool +# 1649| Type = [BoolType] bool +# 1649| Value = [CStyleCast] 0 +# 1649| ValueCategory = prvalue +# 1650| getStmt(544): [DoStmt] do (...) ... +# 1652| getCondition(): [Literal] 0 +# 1652| Type = [IntType] int +# 1652| Value = [Literal] 0 +# 1652| ValueCategory = prvalue +# 1650| getStmt(): [BlockStmt] { ... } +# 1651| getStmt(0): [DeclStmt] declaration +# 1651| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x544 +# 1651| Type = [Struct] String +# 1651| getVariable().getInitializer(): [Initializer] initializer for x544 +# 1651| getExpr(): [ConstructorCall] call to String +# 1651| Type = [VoidType] void +# 1651| ValueCategory = prvalue +# 1652| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1652| Type = [VoidType] void +# 1652| ValueCategory = prvalue +# 1652| getQualifier(): [VariableAccess] x544 +# 1652| Type = [Struct] String +# 1652| ValueCategory = lvalue +# 1652| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1652| Conversion = [BoolConversion] conversion to bool +# 1652| Type = [BoolType] bool +# 1652| Value = [CStyleCast] 0 +# 1652| ValueCategory = prvalue +# 1653| getStmt(545): [DoStmt] do (...) ... +# 1655| getCondition(): [Literal] 0 +# 1655| Type = [IntType] int +# 1655| Value = [Literal] 0 +# 1655| ValueCategory = prvalue +# 1653| getStmt(): [BlockStmt] { ... } +# 1654| getStmt(0): [DeclStmt] declaration +# 1654| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x545 +# 1654| Type = [Struct] String +# 1654| getVariable().getInitializer(): [Initializer] initializer for x545 +# 1654| getExpr(): [ConstructorCall] call to String +# 1654| Type = [VoidType] void +# 1654| ValueCategory = prvalue +# 1655| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1655| Type = [VoidType] void +# 1655| ValueCategory = prvalue +# 1655| getQualifier(): [VariableAccess] x545 +# 1655| Type = [Struct] String +# 1655| ValueCategory = lvalue +# 1655| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1655| Conversion = [BoolConversion] conversion to bool +# 1655| Type = [BoolType] bool +# 1655| Value = [CStyleCast] 0 +# 1655| ValueCategory = prvalue +# 1656| getStmt(546): [DoStmt] do (...) ... +# 1658| getCondition(): [Literal] 0 +# 1658| Type = [IntType] int +# 1658| Value = [Literal] 0 +# 1658| ValueCategory = prvalue +# 1656| getStmt(): [BlockStmt] { ... } +# 1657| getStmt(0): [DeclStmt] declaration +# 1657| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x546 +# 1657| Type = [Struct] String +# 1657| getVariable().getInitializer(): [Initializer] initializer for x546 +# 1657| getExpr(): [ConstructorCall] call to String +# 1657| Type = [VoidType] void +# 1657| ValueCategory = prvalue +# 1658| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1658| Type = [VoidType] void +# 1658| ValueCategory = prvalue +# 1658| getQualifier(): [VariableAccess] x546 +# 1658| Type = [Struct] String +# 1658| ValueCategory = lvalue +# 1658| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1658| Conversion = [BoolConversion] conversion to bool +# 1658| Type = [BoolType] bool +# 1658| Value = [CStyleCast] 0 +# 1658| ValueCategory = prvalue +# 1659| getStmt(547): [DoStmt] do (...) ... +# 1661| getCondition(): [Literal] 0 +# 1661| Type = [IntType] int +# 1661| Value = [Literal] 0 +# 1661| ValueCategory = prvalue +# 1659| getStmt(): [BlockStmt] { ... } +# 1660| getStmt(0): [DeclStmt] declaration +# 1660| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x547 +# 1660| Type = [Struct] String +# 1660| getVariable().getInitializer(): [Initializer] initializer for x547 +# 1660| getExpr(): [ConstructorCall] call to String +# 1660| Type = [VoidType] void +# 1660| ValueCategory = prvalue +# 1661| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1661| Type = [VoidType] void +# 1661| ValueCategory = prvalue +# 1661| getQualifier(): [VariableAccess] x547 +# 1661| Type = [Struct] String +# 1661| ValueCategory = lvalue +# 1661| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1661| Conversion = [BoolConversion] conversion to bool +# 1661| Type = [BoolType] bool +# 1661| Value = [CStyleCast] 0 +# 1661| ValueCategory = prvalue +# 1662| getStmt(548): [DoStmt] do (...) ... +# 1664| getCondition(): [Literal] 0 +# 1664| Type = [IntType] int +# 1664| Value = [Literal] 0 +# 1664| ValueCategory = prvalue +# 1662| getStmt(): [BlockStmt] { ... } +# 1663| getStmt(0): [DeclStmt] declaration +# 1663| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x548 +# 1663| Type = [Struct] String +# 1663| getVariable().getInitializer(): [Initializer] initializer for x548 +# 1663| getExpr(): [ConstructorCall] call to String +# 1663| Type = [VoidType] void +# 1663| ValueCategory = prvalue +# 1664| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1664| Type = [VoidType] void +# 1664| ValueCategory = prvalue +# 1664| getQualifier(): [VariableAccess] x548 +# 1664| Type = [Struct] String +# 1664| ValueCategory = lvalue +# 1664| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1664| Conversion = [BoolConversion] conversion to bool +# 1664| Type = [BoolType] bool +# 1664| Value = [CStyleCast] 0 +# 1664| ValueCategory = prvalue +# 1665| getStmt(549): [DoStmt] do (...) ... +# 1667| getCondition(): [Literal] 0 +# 1667| Type = [IntType] int +# 1667| Value = [Literal] 0 +# 1667| ValueCategory = prvalue +# 1665| getStmt(): [BlockStmt] { ... } +# 1666| getStmt(0): [DeclStmt] declaration +# 1666| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x549 +# 1666| Type = [Struct] String +# 1666| getVariable().getInitializer(): [Initializer] initializer for x549 +# 1666| getExpr(): [ConstructorCall] call to String +# 1666| Type = [VoidType] void +# 1666| ValueCategory = prvalue +# 1667| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1667| Type = [VoidType] void +# 1667| ValueCategory = prvalue +# 1667| getQualifier(): [VariableAccess] x549 +# 1667| Type = [Struct] String +# 1667| ValueCategory = lvalue +# 1667| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1667| Conversion = [BoolConversion] conversion to bool +# 1667| Type = [BoolType] bool +# 1667| Value = [CStyleCast] 0 +# 1667| ValueCategory = prvalue +# 1668| getStmt(550): [DoStmt] do (...) ... +# 1670| getCondition(): [Literal] 0 +# 1670| Type = [IntType] int +# 1670| Value = [Literal] 0 +# 1670| ValueCategory = prvalue +# 1668| getStmt(): [BlockStmt] { ... } +# 1669| getStmt(0): [DeclStmt] declaration +# 1669| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x550 +# 1669| Type = [Struct] String +# 1669| getVariable().getInitializer(): [Initializer] initializer for x550 +# 1669| getExpr(): [ConstructorCall] call to String +# 1669| Type = [VoidType] void +# 1669| ValueCategory = prvalue +# 1670| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1670| Type = [VoidType] void +# 1670| ValueCategory = prvalue +# 1670| getQualifier(): [VariableAccess] x550 +# 1670| Type = [Struct] String +# 1670| ValueCategory = lvalue +# 1670| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1670| Conversion = [BoolConversion] conversion to bool +# 1670| Type = [BoolType] bool +# 1670| Value = [CStyleCast] 0 +# 1670| ValueCategory = prvalue +# 1671| getStmt(551): [DoStmt] do (...) ... +# 1673| getCondition(): [Literal] 0 +# 1673| Type = [IntType] int +# 1673| Value = [Literal] 0 +# 1673| ValueCategory = prvalue +# 1671| getStmt(): [BlockStmt] { ... } +# 1672| getStmt(0): [DeclStmt] declaration +# 1672| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x551 +# 1672| Type = [Struct] String +# 1672| getVariable().getInitializer(): [Initializer] initializer for x551 +# 1672| getExpr(): [ConstructorCall] call to String +# 1672| Type = [VoidType] void +# 1672| ValueCategory = prvalue +# 1673| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1673| Type = [VoidType] void +# 1673| ValueCategory = prvalue +# 1673| getQualifier(): [VariableAccess] x551 +# 1673| Type = [Struct] String +# 1673| ValueCategory = lvalue +# 1673| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1673| Conversion = [BoolConversion] conversion to bool +# 1673| Type = [BoolType] bool +# 1673| Value = [CStyleCast] 0 +# 1673| ValueCategory = prvalue +# 1674| getStmt(552): [DoStmt] do (...) ... +# 1676| getCondition(): [Literal] 0 +# 1676| Type = [IntType] int +# 1676| Value = [Literal] 0 +# 1676| ValueCategory = prvalue +# 1674| getStmt(): [BlockStmt] { ... } +# 1675| getStmt(0): [DeclStmt] declaration +# 1675| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x552 +# 1675| Type = [Struct] String +# 1675| getVariable().getInitializer(): [Initializer] initializer for x552 +# 1675| getExpr(): [ConstructorCall] call to String +# 1675| Type = [VoidType] void +# 1675| ValueCategory = prvalue +# 1676| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1676| Type = [VoidType] void +# 1676| ValueCategory = prvalue +# 1676| getQualifier(): [VariableAccess] x552 +# 1676| Type = [Struct] String +# 1676| ValueCategory = lvalue +# 1676| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1676| Conversion = [BoolConversion] conversion to bool +# 1676| Type = [BoolType] bool +# 1676| Value = [CStyleCast] 0 +# 1676| ValueCategory = prvalue +# 1677| getStmt(553): [DoStmt] do (...) ... +# 1679| getCondition(): [Literal] 0 +# 1679| Type = [IntType] int +# 1679| Value = [Literal] 0 +# 1679| ValueCategory = prvalue +# 1677| getStmt(): [BlockStmt] { ... } +# 1678| getStmt(0): [DeclStmt] declaration +# 1678| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x553 +# 1678| Type = [Struct] String +# 1678| getVariable().getInitializer(): [Initializer] initializer for x553 +# 1678| getExpr(): [ConstructorCall] call to String +# 1678| Type = [VoidType] void +# 1678| ValueCategory = prvalue +# 1679| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1679| Type = [VoidType] void +# 1679| ValueCategory = prvalue +# 1679| getQualifier(): [VariableAccess] x553 +# 1679| Type = [Struct] String +# 1679| ValueCategory = lvalue +# 1679| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1679| Conversion = [BoolConversion] conversion to bool +# 1679| Type = [BoolType] bool +# 1679| Value = [CStyleCast] 0 +# 1679| ValueCategory = prvalue +# 1680| getStmt(554): [DoStmt] do (...) ... +# 1682| getCondition(): [Literal] 0 +# 1682| Type = [IntType] int +# 1682| Value = [Literal] 0 +# 1682| ValueCategory = prvalue +# 1680| getStmt(): [BlockStmt] { ... } +# 1681| getStmt(0): [DeclStmt] declaration +# 1681| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x554 +# 1681| Type = [Struct] String +# 1681| getVariable().getInitializer(): [Initializer] initializer for x554 +# 1681| getExpr(): [ConstructorCall] call to String +# 1681| Type = [VoidType] void +# 1681| ValueCategory = prvalue +# 1682| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1682| Type = [VoidType] void +# 1682| ValueCategory = prvalue +# 1682| getQualifier(): [VariableAccess] x554 +# 1682| Type = [Struct] String +# 1682| ValueCategory = lvalue +# 1682| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1682| Conversion = [BoolConversion] conversion to bool +# 1682| Type = [BoolType] bool +# 1682| Value = [CStyleCast] 0 +# 1682| ValueCategory = prvalue +# 1683| getStmt(555): [DoStmt] do (...) ... +# 1685| getCondition(): [Literal] 0 +# 1685| Type = [IntType] int +# 1685| Value = [Literal] 0 +# 1685| ValueCategory = prvalue +# 1683| getStmt(): [BlockStmt] { ... } +# 1684| getStmt(0): [DeclStmt] declaration +# 1684| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x555 +# 1684| Type = [Struct] String +# 1684| getVariable().getInitializer(): [Initializer] initializer for x555 +# 1684| getExpr(): [ConstructorCall] call to String +# 1684| Type = [VoidType] void +# 1684| ValueCategory = prvalue +# 1685| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1685| Type = [VoidType] void +# 1685| ValueCategory = prvalue +# 1685| getQualifier(): [VariableAccess] x555 +# 1685| Type = [Struct] String +# 1685| ValueCategory = lvalue +# 1685| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1685| Conversion = [BoolConversion] conversion to bool +# 1685| Type = [BoolType] bool +# 1685| Value = [CStyleCast] 0 +# 1685| ValueCategory = prvalue +# 1686| getStmt(556): [DoStmt] do (...) ... +# 1688| getCondition(): [Literal] 0 +# 1688| Type = [IntType] int +# 1688| Value = [Literal] 0 +# 1688| ValueCategory = prvalue +# 1686| getStmt(): [BlockStmt] { ... } +# 1687| getStmt(0): [DeclStmt] declaration +# 1687| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x556 +# 1687| Type = [Struct] String +# 1687| getVariable().getInitializer(): [Initializer] initializer for x556 +# 1687| getExpr(): [ConstructorCall] call to String +# 1687| Type = [VoidType] void +# 1687| ValueCategory = prvalue +# 1688| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1688| Type = [VoidType] void +# 1688| ValueCategory = prvalue +# 1688| getQualifier(): [VariableAccess] x556 +# 1688| Type = [Struct] String +# 1688| ValueCategory = lvalue +# 1688| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1688| Conversion = [BoolConversion] conversion to bool +# 1688| Type = [BoolType] bool +# 1688| Value = [CStyleCast] 0 +# 1688| ValueCategory = prvalue +# 1689| getStmt(557): [DoStmt] do (...) ... +# 1691| getCondition(): [Literal] 0 +# 1691| Type = [IntType] int +# 1691| Value = [Literal] 0 +# 1691| ValueCategory = prvalue +# 1689| getStmt(): [BlockStmt] { ... } +# 1690| getStmt(0): [DeclStmt] declaration +# 1690| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x557 +# 1690| Type = [Struct] String +# 1690| getVariable().getInitializer(): [Initializer] initializer for x557 +# 1690| getExpr(): [ConstructorCall] call to String +# 1690| Type = [VoidType] void +# 1690| ValueCategory = prvalue +# 1691| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1691| Type = [VoidType] void +# 1691| ValueCategory = prvalue +# 1691| getQualifier(): [VariableAccess] x557 +# 1691| Type = [Struct] String +# 1691| ValueCategory = lvalue +# 1691| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1691| Conversion = [BoolConversion] conversion to bool +# 1691| Type = [BoolType] bool +# 1691| Value = [CStyleCast] 0 +# 1691| ValueCategory = prvalue +# 1692| getStmt(558): [DoStmt] do (...) ... +# 1694| getCondition(): [Literal] 0 +# 1694| Type = [IntType] int +# 1694| Value = [Literal] 0 +# 1694| ValueCategory = prvalue +# 1692| getStmt(): [BlockStmt] { ... } +# 1693| getStmt(0): [DeclStmt] declaration +# 1693| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x558 +# 1693| Type = [Struct] String +# 1693| getVariable().getInitializer(): [Initializer] initializer for x558 +# 1693| getExpr(): [ConstructorCall] call to String +# 1693| Type = [VoidType] void +# 1693| ValueCategory = prvalue +# 1694| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1694| Type = [VoidType] void +# 1694| ValueCategory = prvalue +# 1694| getQualifier(): [VariableAccess] x558 +# 1694| Type = [Struct] String +# 1694| ValueCategory = lvalue +# 1694| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1694| Conversion = [BoolConversion] conversion to bool +# 1694| Type = [BoolType] bool +# 1694| Value = [CStyleCast] 0 +# 1694| ValueCategory = prvalue +# 1695| getStmt(559): [DoStmt] do (...) ... +# 1697| getCondition(): [Literal] 0 +# 1697| Type = [IntType] int +# 1697| Value = [Literal] 0 +# 1697| ValueCategory = prvalue +# 1695| getStmt(): [BlockStmt] { ... } +# 1696| getStmt(0): [DeclStmt] declaration +# 1696| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x559 +# 1696| Type = [Struct] String +# 1696| getVariable().getInitializer(): [Initializer] initializer for x559 +# 1696| getExpr(): [ConstructorCall] call to String +# 1696| Type = [VoidType] void +# 1696| ValueCategory = prvalue +# 1697| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1697| Type = [VoidType] void +# 1697| ValueCategory = prvalue +# 1697| getQualifier(): [VariableAccess] x559 +# 1697| Type = [Struct] String +# 1697| ValueCategory = lvalue +# 1697| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1697| Conversion = [BoolConversion] conversion to bool +# 1697| Type = [BoolType] bool +# 1697| Value = [CStyleCast] 0 +# 1697| ValueCategory = prvalue +# 1698| getStmt(560): [DoStmt] do (...) ... +# 1700| getCondition(): [Literal] 0 +# 1700| Type = [IntType] int +# 1700| Value = [Literal] 0 +# 1700| ValueCategory = prvalue +# 1698| getStmt(): [BlockStmt] { ... } +# 1699| getStmt(0): [DeclStmt] declaration +# 1699| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x560 +# 1699| Type = [Struct] String +# 1699| getVariable().getInitializer(): [Initializer] initializer for x560 +# 1699| getExpr(): [ConstructorCall] call to String +# 1699| Type = [VoidType] void +# 1699| ValueCategory = prvalue +# 1700| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1700| Type = [VoidType] void +# 1700| ValueCategory = prvalue +# 1700| getQualifier(): [VariableAccess] x560 +# 1700| Type = [Struct] String +# 1700| ValueCategory = lvalue +# 1700| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1700| Conversion = [BoolConversion] conversion to bool +# 1700| Type = [BoolType] bool +# 1700| Value = [CStyleCast] 0 +# 1700| ValueCategory = prvalue +# 1701| getStmt(561): [DoStmt] do (...) ... +# 1703| getCondition(): [Literal] 0 +# 1703| Type = [IntType] int +# 1703| Value = [Literal] 0 +# 1703| ValueCategory = prvalue +# 1701| getStmt(): [BlockStmt] { ... } +# 1702| getStmt(0): [DeclStmt] declaration +# 1702| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x561 +# 1702| Type = [Struct] String +# 1702| getVariable().getInitializer(): [Initializer] initializer for x561 +# 1702| getExpr(): [ConstructorCall] call to String +# 1702| Type = [VoidType] void +# 1702| ValueCategory = prvalue +# 1703| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1703| Type = [VoidType] void +# 1703| ValueCategory = prvalue +# 1703| getQualifier(): [VariableAccess] x561 +# 1703| Type = [Struct] String +# 1703| ValueCategory = lvalue +# 1703| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1703| Conversion = [BoolConversion] conversion to bool +# 1703| Type = [BoolType] bool +# 1703| Value = [CStyleCast] 0 +# 1703| ValueCategory = prvalue +# 1704| getStmt(562): [DoStmt] do (...) ... +# 1706| getCondition(): [Literal] 0 +# 1706| Type = [IntType] int +# 1706| Value = [Literal] 0 +# 1706| ValueCategory = prvalue +# 1704| getStmt(): [BlockStmt] { ... } +# 1705| getStmt(0): [DeclStmt] declaration +# 1705| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x562 +# 1705| Type = [Struct] String +# 1705| getVariable().getInitializer(): [Initializer] initializer for x562 +# 1705| getExpr(): [ConstructorCall] call to String +# 1705| Type = [VoidType] void +# 1705| ValueCategory = prvalue +# 1706| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1706| Type = [VoidType] void +# 1706| ValueCategory = prvalue +# 1706| getQualifier(): [VariableAccess] x562 +# 1706| Type = [Struct] String +# 1706| ValueCategory = lvalue +# 1706| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1706| Conversion = [BoolConversion] conversion to bool +# 1706| Type = [BoolType] bool +# 1706| Value = [CStyleCast] 0 +# 1706| ValueCategory = prvalue +# 1707| getStmt(563): [DoStmt] do (...) ... +# 1709| getCondition(): [Literal] 0 +# 1709| Type = [IntType] int +# 1709| Value = [Literal] 0 +# 1709| ValueCategory = prvalue +# 1707| getStmt(): [BlockStmt] { ... } +# 1708| getStmt(0): [DeclStmt] declaration +# 1708| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x563 +# 1708| Type = [Struct] String +# 1708| getVariable().getInitializer(): [Initializer] initializer for x563 +# 1708| getExpr(): [ConstructorCall] call to String +# 1708| Type = [VoidType] void +# 1708| ValueCategory = prvalue +# 1709| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1709| Type = [VoidType] void +# 1709| ValueCategory = prvalue +# 1709| getQualifier(): [VariableAccess] x563 +# 1709| Type = [Struct] String +# 1709| ValueCategory = lvalue +# 1709| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1709| Conversion = [BoolConversion] conversion to bool +# 1709| Type = [BoolType] bool +# 1709| Value = [CStyleCast] 0 +# 1709| ValueCategory = prvalue +# 1710| getStmt(564): [DoStmt] do (...) ... +# 1712| getCondition(): [Literal] 0 +# 1712| Type = [IntType] int +# 1712| Value = [Literal] 0 +# 1712| ValueCategory = prvalue +# 1710| getStmt(): [BlockStmt] { ... } +# 1711| getStmt(0): [DeclStmt] declaration +# 1711| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x564 +# 1711| Type = [Struct] String +# 1711| getVariable().getInitializer(): [Initializer] initializer for x564 +# 1711| getExpr(): [ConstructorCall] call to String +# 1711| Type = [VoidType] void +# 1711| ValueCategory = prvalue +# 1712| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1712| Type = [VoidType] void +# 1712| ValueCategory = prvalue +# 1712| getQualifier(): [VariableAccess] x564 +# 1712| Type = [Struct] String +# 1712| ValueCategory = lvalue +# 1712| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1712| Conversion = [BoolConversion] conversion to bool +# 1712| Type = [BoolType] bool +# 1712| Value = [CStyleCast] 0 +# 1712| ValueCategory = prvalue +# 1713| getStmt(565): [DoStmt] do (...) ... +# 1715| getCondition(): [Literal] 0 +# 1715| Type = [IntType] int +# 1715| Value = [Literal] 0 +# 1715| ValueCategory = prvalue +# 1713| getStmt(): [BlockStmt] { ... } +# 1714| getStmt(0): [DeclStmt] declaration +# 1714| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x565 +# 1714| Type = [Struct] String +# 1714| getVariable().getInitializer(): [Initializer] initializer for x565 +# 1714| getExpr(): [ConstructorCall] call to String +# 1714| Type = [VoidType] void +# 1714| ValueCategory = prvalue +# 1715| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1715| Type = [VoidType] void +# 1715| ValueCategory = prvalue +# 1715| getQualifier(): [VariableAccess] x565 +# 1715| Type = [Struct] String +# 1715| ValueCategory = lvalue +# 1715| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1715| Conversion = [BoolConversion] conversion to bool +# 1715| Type = [BoolType] bool +# 1715| Value = [CStyleCast] 0 +# 1715| ValueCategory = prvalue +# 1716| getStmt(566): [DoStmt] do (...) ... +# 1718| getCondition(): [Literal] 0 +# 1718| Type = [IntType] int +# 1718| Value = [Literal] 0 +# 1718| ValueCategory = prvalue +# 1716| getStmt(): [BlockStmt] { ... } +# 1717| getStmt(0): [DeclStmt] declaration +# 1717| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x566 +# 1717| Type = [Struct] String +# 1717| getVariable().getInitializer(): [Initializer] initializer for x566 +# 1717| getExpr(): [ConstructorCall] call to String +# 1717| Type = [VoidType] void +# 1717| ValueCategory = prvalue +# 1718| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1718| Type = [VoidType] void +# 1718| ValueCategory = prvalue +# 1718| getQualifier(): [VariableAccess] x566 +# 1718| Type = [Struct] String +# 1718| ValueCategory = lvalue +# 1718| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1718| Conversion = [BoolConversion] conversion to bool +# 1718| Type = [BoolType] bool +# 1718| Value = [CStyleCast] 0 +# 1718| ValueCategory = prvalue +# 1719| getStmt(567): [DoStmt] do (...) ... +# 1721| getCondition(): [Literal] 0 +# 1721| Type = [IntType] int +# 1721| Value = [Literal] 0 +# 1721| ValueCategory = prvalue +# 1719| getStmt(): [BlockStmt] { ... } +# 1720| getStmt(0): [DeclStmt] declaration +# 1720| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x567 +# 1720| Type = [Struct] String +# 1720| getVariable().getInitializer(): [Initializer] initializer for x567 +# 1720| getExpr(): [ConstructorCall] call to String +# 1720| Type = [VoidType] void +# 1720| ValueCategory = prvalue +# 1721| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1721| Type = [VoidType] void +# 1721| ValueCategory = prvalue +# 1721| getQualifier(): [VariableAccess] x567 +# 1721| Type = [Struct] String +# 1721| ValueCategory = lvalue +# 1721| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1721| Conversion = [BoolConversion] conversion to bool +# 1721| Type = [BoolType] bool +# 1721| Value = [CStyleCast] 0 +# 1721| ValueCategory = prvalue +# 1722| getStmt(568): [DoStmt] do (...) ... +# 1724| getCondition(): [Literal] 0 +# 1724| Type = [IntType] int +# 1724| Value = [Literal] 0 +# 1724| ValueCategory = prvalue +# 1722| getStmt(): [BlockStmt] { ... } +# 1723| getStmt(0): [DeclStmt] declaration +# 1723| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x568 +# 1723| Type = [Struct] String +# 1723| getVariable().getInitializer(): [Initializer] initializer for x568 +# 1723| getExpr(): [ConstructorCall] call to String +# 1723| Type = [VoidType] void +# 1723| ValueCategory = prvalue +# 1724| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1724| Type = [VoidType] void +# 1724| ValueCategory = prvalue +# 1724| getQualifier(): [VariableAccess] x568 +# 1724| Type = [Struct] String +# 1724| ValueCategory = lvalue +# 1724| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1724| Conversion = [BoolConversion] conversion to bool +# 1724| Type = [BoolType] bool +# 1724| Value = [CStyleCast] 0 +# 1724| ValueCategory = prvalue +# 1725| getStmt(569): [DoStmt] do (...) ... +# 1727| getCondition(): [Literal] 0 +# 1727| Type = [IntType] int +# 1727| Value = [Literal] 0 +# 1727| ValueCategory = prvalue +# 1725| getStmt(): [BlockStmt] { ... } +# 1726| getStmt(0): [DeclStmt] declaration +# 1726| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x569 +# 1726| Type = [Struct] String +# 1726| getVariable().getInitializer(): [Initializer] initializer for x569 +# 1726| getExpr(): [ConstructorCall] call to String +# 1726| Type = [VoidType] void +# 1726| ValueCategory = prvalue +# 1727| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1727| Type = [VoidType] void +# 1727| ValueCategory = prvalue +# 1727| getQualifier(): [VariableAccess] x569 +# 1727| Type = [Struct] String +# 1727| ValueCategory = lvalue +# 1727| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1727| Conversion = [BoolConversion] conversion to bool +# 1727| Type = [BoolType] bool +# 1727| Value = [CStyleCast] 0 +# 1727| ValueCategory = prvalue +# 1728| getStmt(570): [DoStmt] do (...) ... +# 1730| getCondition(): [Literal] 0 +# 1730| Type = [IntType] int +# 1730| Value = [Literal] 0 +# 1730| ValueCategory = prvalue +# 1728| getStmt(): [BlockStmt] { ... } +# 1729| getStmt(0): [DeclStmt] declaration +# 1729| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x570 +# 1729| Type = [Struct] String +# 1729| getVariable().getInitializer(): [Initializer] initializer for x570 +# 1729| getExpr(): [ConstructorCall] call to String +# 1729| Type = [VoidType] void +# 1729| ValueCategory = prvalue +# 1730| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1730| Type = [VoidType] void +# 1730| ValueCategory = prvalue +# 1730| getQualifier(): [VariableAccess] x570 +# 1730| Type = [Struct] String +# 1730| ValueCategory = lvalue +# 1730| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1730| Conversion = [BoolConversion] conversion to bool +# 1730| Type = [BoolType] bool +# 1730| Value = [CStyleCast] 0 +# 1730| ValueCategory = prvalue +# 1731| getStmt(571): [DoStmt] do (...) ... +# 1733| getCondition(): [Literal] 0 +# 1733| Type = [IntType] int +# 1733| Value = [Literal] 0 +# 1733| ValueCategory = prvalue +# 1731| getStmt(): [BlockStmt] { ... } +# 1732| getStmt(0): [DeclStmt] declaration +# 1732| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x571 +# 1732| Type = [Struct] String +# 1732| getVariable().getInitializer(): [Initializer] initializer for x571 +# 1732| getExpr(): [ConstructorCall] call to String +# 1732| Type = [VoidType] void +# 1732| ValueCategory = prvalue +# 1733| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1733| Type = [VoidType] void +# 1733| ValueCategory = prvalue +# 1733| getQualifier(): [VariableAccess] x571 +# 1733| Type = [Struct] String +# 1733| ValueCategory = lvalue +# 1733| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1733| Conversion = [BoolConversion] conversion to bool +# 1733| Type = [BoolType] bool +# 1733| Value = [CStyleCast] 0 +# 1733| ValueCategory = prvalue +# 1734| getStmt(572): [DoStmt] do (...) ... +# 1736| getCondition(): [Literal] 0 +# 1736| Type = [IntType] int +# 1736| Value = [Literal] 0 +# 1736| ValueCategory = prvalue +# 1734| getStmt(): [BlockStmt] { ... } +# 1735| getStmt(0): [DeclStmt] declaration +# 1735| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x572 +# 1735| Type = [Struct] String +# 1735| getVariable().getInitializer(): [Initializer] initializer for x572 +# 1735| getExpr(): [ConstructorCall] call to String +# 1735| Type = [VoidType] void +# 1735| ValueCategory = prvalue +# 1736| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1736| Type = [VoidType] void +# 1736| ValueCategory = prvalue +# 1736| getQualifier(): [VariableAccess] x572 +# 1736| Type = [Struct] String +# 1736| ValueCategory = lvalue +# 1736| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1736| Conversion = [BoolConversion] conversion to bool +# 1736| Type = [BoolType] bool +# 1736| Value = [CStyleCast] 0 +# 1736| ValueCategory = prvalue +# 1737| getStmt(573): [DoStmt] do (...) ... +# 1739| getCondition(): [Literal] 0 +# 1739| Type = [IntType] int +# 1739| Value = [Literal] 0 +# 1739| ValueCategory = prvalue +# 1737| getStmt(): [BlockStmt] { ... } +# 1738| getStmt(0): [DeclStmt] declaration +# 1738| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x573 +# 1738| Type = [Struct] String +# 1738| getVariable().getInitializer(): [Initializer] initializer for x573 +# 1738| getExpr(): [ConstructorCall] call to String +# 1738| Type = [VoidType] void +# 1738| ValueCategory = prvalue +# 1739| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1739| Type = [VoidType] void +# 1739| ValueCategory = prvalue +# 1739| getQualifier(): [VariableAccess] x573 +# 1739| Type = [Struct] String +# 1739| ValueCategory = lvalue +# 1739| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1739| Conversion = [BoolConversion] conversion to bool +# 1739| Type = [BoolType] bool +# 1739| Value = [CStyleCast] 0 +# 1739| ValueCategory = prvalue +# 1740| getStmt(574): [DoStmt] do (...) ... +# 1742| getCondition(): [Literal] 0 +# 1742| Type = [IntType] int +# 1742| Value = [Literal] 0 +# 1742| ValueCategory = prvalue +# 1740| getStmt(): [BlockStmt] { ... } +# 1741| getStmt(0): [DeclStmt] declaration +# 1741| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x574 +# 1741| Type = [Struct] String +# 1741| getVariable().getInitializer(): [Initializer] initializer for x574 +# 1741| getExpr(): [ConstructorCall] call to String +# 1741| Type = [VoidType] void +# 1741| ValueCategory = prvalue +# 1742| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1742| Type = [VoidType] void +# 1742| ValueCategory = prvalue +# 1742| getQualifier(): [VariableAccess] x574 +# 1742| Type = [Struct] String +# 1742| ValueCategory = lvalue +# 1742| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1742| Conversion = [BoolConversion] conversion to bool +# 1742| Type = [BoolType] bool +# 1742| Value = [CStyleCast] 0 +# 1742| ValueCategory = prvalue +# 1743| getStmt(575): [DoStmt] do (...) ... +# 1745| getCondition(): [Literal] 0 +# 1745| Type = [IntType] int +# 1745| Value = [Literal] 0 +# 1745| ValueCategory = prvalue +# 1743| getStmt(): [BlockStmt] { ... } +# 1744| getStmt(0): [DeclStmt] declaration +# 1744| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x575 +# 1744| Type = [Struct] String +# 1744| getVariable().getInitializer(): [Initializer] initializer for x575 +# 1744| getExpr(): [ConstructorCall] call to String +# 1744| Type = [VoidType] void +# 1744| ValueCategory = prvalue +# 1745| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1745| Type = [VoidType] void +# 1745| ValueCategory = prvalue +# 1745| getQualifier(): [VariableAccess] x575 +# 1745| Type = [Struct] String +# 1745| ValueCategory = lvalue +# 1745| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1745| Conversion = [BoolConversion] conversion to bool +# 1745| Type = [BoolType] bool +# 1745| Value = [CStyleCast] 0 +# 1745| ValueCategory = prvalue +# 1746| getStmt(576): [DoStmt] do (...) ... +# 1748| getCondition(): [Literal] 0 +# 1748| Type = [IntType] int +# 1748| Value = [Literal] 0 +# 1748| ValueCategory = prvalue +# 1746| getStmt(): [BlockStmt] { ... } +# 1747| getStmt(0): [DeclStmt] declaration +# 1747| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x576 +# 1747| Type = [Struct] String +# 1747| getVariable().getInitializer(): [Initializer] initializer for x576 +# 1747| getExpr(): [ConstructorCall] call to String +# 1747| Type = [VoidType] void +# 1747| ValueCategory = prvalue +# 1748| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1748| Type = [VoidType] void +# 1748| ValueCategory = prvalue +# 1748| getQualifier(): [VariableAccess] x576 +# 1748| Type = [Struct] String +# 1748| ValueCategory = lvalue +# 1748| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1748| Conversion = [BoolConversion] conversion to bool +# 1748| Type = [BoolType] bool +# 1748| Value = [CStyleCast] 0 +# 1748| ValueCategory = prvalue +# 1749| getStmt(577): [DoStmt] do (...) ... +# 1751| getCondition(): [Literal] 0 +# 1751| Type = [IntType] int +# 1751| Value = [Literal] 0 +# 1751| ValueCategory = prvalue +# 1749| getStmt(): [BlockStmt] { ... } +# 1750| getStmt(0): [DeclStmt] declaration +# 1750| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x577 +# 1750| Type = [Struct] String +# 1750| getVariable().getInitializer(): [Initializer] initializer for x577 +# 1750| getExpr(): [ConstructorCall] call to String +# 1750| Type = [VoidType] void +# 1750| ValueCategory = prvalue +# 1751| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1751| Type = [VoidType] void +# 1751| ValueCategory = prvalue +# 1751| getQualifier(): [VariableAccess] x577 +# 1751| Type = [Struct] String +# 1751| ValueCategory = lvalue +# 1751| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1751| Conversion = [BoolConversion] conversion to bool +# 1751| Type = [BoolType] bool +# 1751| Value = [CStyleCast] 0 +# 1751| ValueCategory = prvalue +# 1752| getStmt(578): [DoStmt] do (...) ... +# 1754| getCondition(): [Literal] 0 +# 1754| Type = [IntType] int +# 1754| Value = [Literal] 0 +# 1754| ValueCategory = prvalue +# 1752| getStmt(): [BlockStmt] { ... } +# 1753| getStmt(0): [DeclStmt] declaration +# 1753| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x578 +# 1753| Type = [Struct] String +# 1753| getVariable().getInitializer(): [Initializer] initializer for x578 +# 1753| getExpr(): [ConstructorCall] call to String +# 1753| Type = [VoidType] void +# 1753| ValueCategory = prvalue +# 1754| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1754| Type = [VoidType] void +# 1754| ValueCategory = prvalue +# 1754| getQualifier(): [VariableAccess] x578 +# 1754| Type = [Struct] String +# 1754| ValueCategory = lvalue +# 1754| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1754| Conversion = [BoolConversion] conversion to bool +# 1754| Type = [BoolType] bool +# 1754| Value = [CStyleCast] 0 +# 1754| ValueCategory = prvalue +# 1755| getStmt(579): [DoStmt] do (...) ... +# 1757| getCondition(): [Literal] 0 +# 1757| Type = [IntType] int +# 1757| Value = [Literal] 0 +# 1757| ValueCategory = prvalue +# 1755| getStmt(): [BlockStmt] { ... } +# 1756| getStmt(0): [DeclStmt] declaration +# 1756| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x579 +# 1756| Type = [Struct] String +# 1756| getVariable().getInitializer(): [Initializer] initializer for x579 +# 1756| getExpr(): [ConstructorCall] call to String +# 1756| Type = [VoidType] void +# 1756| ValueCategory = prvalue +# 1757| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1757| Type = [VoidType] void +# 1757| ValueCategory = prvalue +# 1757| getQualifier(): [VariableAccess] x579 +# 1757| Type = [Struct] String +# 1757| ValueCategory = lvalue +# 1757| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1757| Conversion = [BoolConversion] conversion to bool +# 1757| Type = [BoolType] bool +# 1757| Value = [CStyleCast] 0 +# 1757| ValueCategory = prvalue +# 1758| getStmt(580): [DoStmt] do (...) ... +# 1760| getCondition(): [Literal] 0 +# 1760| Type = [IntType] int +# 1760| Value = [Literal] 0 +# 1760| ValueCategory = prvalue +# 1758| getStmt(): [BlockStmt] { ... } +# 1759| getStmt(0): [DeclStmt] declaration +# 1759| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x580 +# 1759| Type = [Struct] String +# 1759| getVariable().getInitializer(): [Initializer] initializer for x580 +# 1759| getExpr(): [ConstructorCall] call to String +# 1759| Type = [VoidType] void +# 1759| ValueCategory = prvalue +# 1760| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1760| Type = [VoidType] void +# 1760| ValueCategory = prvalue +# 1760| getQualifier(): [VariableAccess] x580 +# 1760| Type = [Struct] String +# 1760| ValueCategory = lvalue +# 1760| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1760| Conversion = [BoolConversion] conversion to bool +# 1760| Type = [BoolType] bool +# 1760| Value = [CStyleCast] 0 +# 1760| ValueCategory = prvalue +# 1761| getStmt(581): [DoStmt] do (...) ... +# 1763| getCondition(): [Literal] 0 +# 1763| Type = [IntType] int +# 1763| Value = [Literal] 0 +# 1763| ValueCategory = prvalue +# 1761| getStmt(): [BlockStmt] { ... } +# 1762| getStmt(0): [DeclStmt] declaration +# 1762| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x581 +# 1762| Type = [Struct] String +# 1762| getVariable().getInitializer(): [Initializer] initializer for x581 +# 1762| getExpr(): [ConstructorCall] call to String +# 1762| Type = [VoidType] void +# 1762| ValueCategory = prvalue +# 1763| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1763| Type = [VoidType] void +# 1763| ValueCategory = prvalue +# 1763| getQualifier(): [VariableAccess] x581 +# 1763| Type = [Struct] String +# 1763| ValueCategory = lvalue +# 1763| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1763| Conversion = [BoolConversion] conversion to bool +# 1763| Type = [BoolType] bool +# 1763| Value = [CStyleCast] 0 +# 1763| ValueCategory = prvalue +# 1764| getStmt(582): [DoStmt] do (...) ... +# 1766| getCondition(): [Literal] 0 +# 1766| Type = [IntType] int +# 1766| Value = [Literal] 0 +# 1766| ValueCategory = prvalue +# 1764| getStmt(): [BlockStmt] { ... } +# 1765| getStmt(0): [DeclStmt] declaration +# 1765| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x582 +# 1765| Type = [Struct] String +# 1765| getVariable().getInitializer(): [Initializer] initializer for x582 +# 1765| getExpr(): [ConstructorCall] call to String +# 1765| Type = [VoidType] void +# 1765| ValueCategory = prvalue +# 1766| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1766| Type = [VoidType] void +# 1766| ValueCategory = prvalue +# 1766| getQualifier(): [VariableAccess] x582 +# 1766| Type = [Struct] String +# 1766| ValueCategory = lvalue +# 1766| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1766| Conversion = [BoolConversion] conversion to bool +# 1766| Type = [BoolType] bool +# 1766| Value = [CStyleCast] 0 +# 1766| ValueCategory = prvalue +# 1767| getStmt(583): [DoStmt] do (...) ... +# 1769| getCondition(): [Literal] 0 +# 1769| Type = [IntType] int +# 1769| Value = [Literal] 0 +# 1769| ValueCategory = prvalue +# 1767| getStmt(): [BlockStmt] { ... } +# 1768| getStmt(0): [DeclStmt] declaration +# 1768| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x583 +# 1768| Type = [Struct] String +# 1768| getVariable().getInitializer(): [Initializer] initializer for x583 +# 1768| getExpr(): [ConstructorCall] call to String +# 1768| Type = [VoidType] void +# 1768| ValueCategory = prvalue +# 1769| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1769| Type = [VoidType] void +# 1769| ValueCategory = prvalue +# 1769| getQualifier(): [VariableAccess] x583 +# 1769| Type = [Struct] String +# 1769| ValueCategory = lvalue +# 1769| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1769| Conversion = [BoolConversion] conversion to bool +# 1769| Type = [BoolType] bool +# 1769| Value = [CStyleCast] 0 +# 1769| ValueCategory = prvalue +# 1770| getStmt(584): [DoStmt] do (...) ... +# 1772| getCondition(): [Literal] 0 +# 1772| Type = [IntType] int +# 1772| Value = [Literal] 0 +# 1772| ValueCategory = prvalue +# 1770| getStmt(): [BlockStmt] { ... } +# 1771| getStmt(0): [DeclStmt] declaration +# 1771| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x584 +# 1771| Type = [Struct] String +# 1771| getVariable().getInitializer(): [Initializer] initializer for x584 +# 1771| getExpr(): [ConstructorCall] call to String +# 1771| Type = [VoidType] void +# 1771| ValueCategory = prvalue +# 1772| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1772| Type = [VoidType] void +# 1772| ValueCategory = prvalue +# 1772| getQualifier(): [VariableAccess] x584 +# 1772| Type = [Struct] String +# 1772| ValueCategory = lvalue +# 1772| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1772| Conversion = [BoolConversion] conversion to bool +# 1772| Type = [BoolType] bool +# 1772| Value = [CStyleCast] 0 +# 1772| ValueCategory = prvalue +# 1773| getStmt(585): [DoStmt] do (...) ... +# 1775| getCondition(): [Literal] 0 +# 1775| Type = [IntType] int +# 1775| Value = [Literal] 0 +# 1775| ValueCategory = prvalue +# 1773| getStmt(): [BlockStmt] { ... } +# 1774| getStmt(0): [DeclStmt] declaration +# 1774| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x585 +# 1774| Type = [Struct] String +# 1774| getVariable().getInitializer(): [Initializer] initializer for x585 +# 1774| getExpr(): [ConstructorCall] call to String +# 1774| Type = [VoidType] void +# 1774| ValueCategory = prvalue +# 1775| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1775| Type = [VoidType] void +# 1775| ValueCategory = prvalue +# 1775| getQualifier(): [VariableAccess] x585 +# 1775| Type = [Struct] String +# 1775| ValueCategory = lvalue +# 1775| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1775| Conversion = [BoolConversion] conversion to bool +# 1775| Type = [BoolType] bool +# 1775| Value = [CStyleCast] 0 +# 1775| ValueCategory = prvalue +# 1776| getStmt(586): [DoStmt] do (...) ... +# 1778| getCondition(): [Literal] 0 +# 1778| Type = [IntType] int +# 1778| Value = [Literal] 0 +# 1778| ValueCategory = prvalue +# 1776| getStmt(): [BlockStmt] { ... } +# 1777| getStmt(0): [DeclStmt] declaration +# 1777| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x586 +# 1777| Type = [Struct] String +# 1777| getVariable().getInitializer(): [Initializer] initializer for x586 +# 1777| getExpr(): [ConstructorCall] call to String +# 1777| Type = [VoidType] void +# 1777| ValueCategory = prvalue +# 1778| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1778| Type = [VoidType] void +# 1778| ValueCategory = prvalue +# 1778| getQualifier(): [VariableAccess] x586 +# 1778| Type = [Struct] String +# 1778| ValueCategory = lvalue +# 1778| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1778| Conversion = [BoolConversion] conversion to bool +# 1778| Type = [BoolType] bool +# 1778| Value = [CStyleCast] 0 +# 1778| ValueCategory = prvalue +# 1779| getStmt(587): [DoStmt] do (...) ... +# 1781| getCondition(): [Literal] 0 +# 1781| Type = [IntType] int +# 1781| Value = [Literal] 0 +# 1781| ValueCategory = prvalue +# 1779| getStmt(): [BlockStmt] { ... } +# 1780| getStmt(0): [DeclStmt] declaration +# 1780| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x587 +# 1780| Type = [Struct] String +# 1780| getVariable().getInitializer(): [Initializer] initializer for x587 +# 1780| getExpr(): [ConstructorCall] call to String +# 1780| Type = [VoidType] void +# 1780| ValueCategory = prvalue +# 1781| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1781| Type = [VoidType] void +# 1781| ValueCategory = prvalue +# 1781| getQualifier(): [VariableAccess] x587 +# 1781| Type = [Struct] String +# 1781| ValueCategory = lvalue +# 1781| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1781| Conversion = [BoolConversion] conversion to bool +# 1781| Type = [BoolType] bool +# 1781| Value = [CStyleCast] 0 +# 1781| ValueCategory = prvalue +# 1782| getStmt(588): [DoStmt] do (...) ... +# 1784| getCondition(): [Literal] 0 +# 1784| Type = [IntType] int +# 1784| Value = [Literal] 0 +# 1784| ValueCategory = prvalue +# 1782| getStmt(): [BlockStmt] { ... } +# 1783| getStmt(0): [DeclStmt] declaration +# 1783| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x588 +# 1783| Type = [Struct] String +# 1783| getVariable().getInitializer(): [Initializer] initializer for x588 +# 1783| getExpr(): [ConstructorCall] call to String +# 1783| Type = [VoidType] void +# 1783| ValueCategory = prvalue +# 1784| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1784| Type = [VoidType] void +# 1784| ValueCategory = prvalue +# 1784| getQualifier(): [VariableAccess] x588 +# 1784| Type = [Struct] String +# 1784| ValueCategory = lvalue +# 1784| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1784| Conversion = [BoolConversion] conversion to bool +# 1784| Type = [BoolType] bool +# 1784| Value = [CStyleCast] 0 +# 1784| ValueCategory = prvalue +# 1785| getStmt(589): [DoStmt] do (...) ... +# 1787| getCondition(): [Literal] 0 +# 1787| Type = [IntType] int +# 1787| Value = [Literal] 0 +# 1787| ValueCategory = prvalue +# 1785| getStmt(): [BlockStmt] { ... } +# 1786| getStmt(0): [DeclStmt] declaration +# 1786| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x589 +# 1786| Type = [Struct] String +# 1786| getVariable().getInitializer(): [Initializer] initializer for x589 +# 1786| getExpr(): [ConstructorCall] call to String +# 1786| Type = [VoidType] void +# 1786| ValueCategory = prvalue +# 1787| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1787| Type = [VoidType] void +# 1787| ValueCategory = prvalue +# 1787| getQualifier(): [VariableAccess] x589 +# 1787| Type = [Struct] String +# 1787| ValueCategory = lvalue +# 1787| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1787| Conversion = [BoolConversion] conversion to bool +# 1787| Type = [BoolType] bool +# 1787| Value = [CStyleCast] 0 +# 1787| ValueCategory = prvalue +# 1788| getStmt(590): [DoStmt] do (...) ... +# 1790| getCondition(): [Literal] 0 +# 1790| Type = [IntType] int +# 1790| Value = [Literal] 0 +# 1790| ValueCategory = prvalue +# 1788| getStmt(): [BlockStmt] { ... } +# 1789| getStmt(0): [DeclStmt] declaration +# 1789| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x590 +# 1789| Type = [Struct] String +# 1789| getVariable().getInitializer(): [Initializer] initializer for x590 +# 1789| getExpr(): [ConstructorCall] call to String +# 1789| Type = [VoidType] void +# 1789| ValueCategory = prvalue +# 1790| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1790| Type = [VoidType] void +# 1790| ValueCategory = prvalue +# 1790| getQualifier(): [VariableAccess] x590 +# 1790| Type = [Struct] String +# 1790| ValueCategory = lvalue +# 1790| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1790| Conversion = [BoolConversion] conversion to bool +# 1790| Type = [BoolType] bool +# 1790| Value = [CStyleCast] 0 +# 1790| ValueCategory = prvalue +# 1791| getStmt(591): [DoStmt] do (...) ... +# 1793| getCondition(): [Literal] 0 +# 1793| Type = [IntType] int +# 1793| Value = [Literal] 0 +# 1793| ValueCategory = prvalue +# 1791| getStmt(): [BlockStmt] { ... } +# 1792| getStmt(0): [DeclStmt] declaration +# 1792| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x591 +# 1792| Type = [Struct] String +# 1792| getVariable().getInitializer(): [Initializer] initializer for x591 +# 1792| getExpr(): [ConstructorCall] call to String +# 1792| Type = [VoidType] void +# 1792| ValueCategory = prvalue +# 1793| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1793| Type = [VoidType] void +# 1793| ValueCategory = prvalue +# 1793| getQualifier(): [VariableAccess] x591 +# 1793| Type = [Struct] String +# 1793| ValueCategory = lvalue +# 1793| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1793| Conversion = [BoolConversion] conversion to bool +# 1793| Type = [BoolType] bool +# 1793| Value = [CStyleCast] 0 +# 1793| ValueCategory = prvalue +# 1794| getStmt(592): [DoStmt] do (...) ... +# 1796| getCondition(): [Literal] 0 +# 1796| Type = [IntType] int +# 1796| Value = [Literal] 0 +# 1796| ValueCategory = prvalue +# 1794| getStmt(): [BlockStmt] { ... } +# 1795| getStmt(0): [DeclStmt] declaration +# 1795| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x592 +# 1795| Type = [Struct] String +# 1795| getVariable().getInitializer(): [Initializer] initializer for x592 +# 1795| getExpr(): [ConstructorCall] call to String +# 1795| Type = [VoidType] void +# 1795| ValueCategory = prvalue +# 1796| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1796| Type = [VoidType] void +# 1796| ValueCategory = prvalue +# 1796| getQualifier(): [VariableAccess] x592 +# 1796| Type = [Struct] String +# 1796| ValueCategory = lvalue +# 1796| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1796| Conversion = [BoolConversion] conversion to bool +# 1796| Type = [BoolType] bool +# 1796| Value = [CStyleCast] 0 +# 1796| ValueCategory = prvalue +# 1797| getStmt(593): [DoStmt] do (...) ... +# 1799| getCondition(): [Literal] 0 +# 1799| Type = [IntType] int +# 1799| Value = [Literal] 0 +# 1799| ValueCategory = prvalue +# 1797| getStmt(): [BlockStmt] { ... } +# 1798| getStmt(0): [DeclStmt] declaration +# 1798| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x593 +# 1798| Type = [Struct] String +# 1798| getVariable().getInitializer(): [Initializer] initializer for x593 +# 1798| getExpr(): [ConstructorCall] call to String +# 1798| Type = [VoidType] void +# 1798| ValueCategory = prvalue +# 1799| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1799| Type = [VoidType] void +# 1799| ValueCategory = prvalue +# 1799| getQualifier(): [VariableAccess] x593 +# 1799| Type = [Struct] String +# 1799| ValueCategory = lvalue +# 1799| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1799| Conversion = [BoolConversion] conversion to bool +# 1799| Type = [BoolType] bool +# 1799| Value = [CStyleCast] 0 +# 1799| ValueCategory = prvalue +# 1800| getStmt(594): [DoStmt] do (...) ... +# 1802| getCondition(): [Literal] 0 +# 1802| Type = [IntType] int +# 1802| Value = [Literal] 0 +# 1802| ValueCategory = prvalue +# 1800| getStmt(): [BlockStmt] { ... } +# 1801| getStmt(0): [DeclStmt] declaration +# 1801| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x594 +# 1801| Type = [Struct] String +# 1801| getVariable().getInitializer(): [Initializer] initializer for x594 +# 1801| getExpr(): [ConstructorCall] call to String +# 1801| Type = [VoidType] void +# 1801| ValueCategory = prvalue +# 1802| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1802| Type = [VoidType] void +# 1802| ValueCategory = prvalue +# 1802| getQualifier(): [VariableAccess] x594 +# 1802| Type = [Struct] String +# 1802| ValueCategory = lvalue +# 1802| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1802| Conversion = [BoolConversion] conversion to bool +# 1802| Type = [BoolType] bool +# 1802| Value = [CStyleCast] 0 +# 1802| ValueCategory = prvalue +# 1803| getStmt(595): [DoStmt] do (...) ... +# 1805| getCondition(): [Literal] 0 +# 1805| Type = [IntType] int +# 1805| Value = [Literal] 0 +# 1805| ValueCategory = prvalue +# 1803| getStmt(): [BlockStmt] { ... } +# 1804| getStmt(0): [DeclStmt] declaration +# 1804| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x595 +# 1804| Type = [Struct] String +# 1804| getVariable().getInitializer(): [Initializer] initializer for x595 +# 1804| getExpr(): [ConstructorCall] call to String +# 1804| Type = [VoidType] void +# 1804| ValueCategory = prvalue +# 1805| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1805| Type = [VoidType] void +# 1805| ValueCategory = prvalue +# 1805| getQualifier(): [VariableAccess] x595 +# 1805| Type = [Struct] String +# 1805| ValueCategory = lvalue +# 1805| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1805| Conversion = [BoolConversion] conversion to bool +# 1805| Type = [BoolType] bool +# 1805| Value = [CStyleCast] 0 +# 1805| ValueCategory = prvalue +# 1806| getStmt(596): [DoStmt] do (...) ... +# 1808| getCondition(): [Literal] 0 +# 1808| Type = [IntType] int +# 1808| Value = [Literal] 0 +# 1808| ValueCategory = prvalue +# 1806| getStmt(): [BlockStmt] { ... } +# 1807| getStmt(0): [DeclStmt] declaration +# 1807| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x596 +# 1807| Type = [Struct] String +# 1807| getVariable().getInitializer(): [Initializer] initializer for x596 +# 1807| getExpr(): [ConstructorCall] call to String +# 1807| Type = [VoidType] void +# 1807| ValueCategory = prvalue +# 1808| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1808| Type = [VoidType] void +# 1808| ValueCategory = prvalue +# 1808| getQualifier(): [VariableAccess] x596 +# 1808| Type = [Struct] String +# 1808| ValueCategory = lvalue +# 1808| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1808| Conversion = [BoolConversion] conversion to bool +# 1808| Type = [BoolType] bool +# 1808| Value = [CStyleCast] 0 +# 1808| ValueCategory = prvalue +# 1809| getStmt(597): [DoStmt] do (...) ... +# 1811| getCondition(): [Literal] 0 +# 1811| Type = [IntType] int +# 1811| Value = [Literal] 0 +# 1811| ValueCategory = prvalue +# 1809| getStmt(): [BlockStmt] { ... } +# 1810| getStmt(0): [DeclStmt] declaration +# 1810| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x597 +# 1810| Type = [Struct] String +# 1810| getVariable().getInitializer(): [Initializer] initializer for x597 +# 1810| getExpr(): [ConstructorCall] call to String +# 1810| Type = [VoidType] void +# 1810| ValueCategory = prvalue +# 1811| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1811| Type = [VoidType] void +# 1811| ValueCategory = prvalue +# 1811| getQualifier(): [VariableAccess] x597 +# 1811| Type = [Struct] String +# 1811| ValueCategory = lvalue +# 1811| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1811| Conversion = [BoolConversion] conversion to bool +# 1811| Type = [BoolType] bool +# 1811| Value = [CStyleCast] 0 +# 1811| ValueCategory = prvalue +# 1812| getStmt(598): [DoStmt] do (...) ... +# 1814| getCondition(): [Literal] 0 +# 1814| Type = [IntType] int +# 1814| Value = [Literal] 0 +# 1814| ValueCategory = prvalue +# 1812| getStmt(): [BlockStmt] { ... } +# 1813| getStmt(0): [DeclStmt] declaration +# 1813| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x598 +# 1813| Type = [Struct] String +# 1813| getVariable().getInitializer(): [Initializer] initializer for x598 +# 1813| getExpr(): [ConstructorCall] call to String +# 1813| Type = [VoidType] void +# 1813| ValueCategory = prvalue +# 1814| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1814| Type = [VoidType] void +# 1814| ValueCategory = prvalue +# 1814| getQualifier(): [VariableAccess] x598 +# 1814| Type = [Struct] String +# 1814| ValueCategory = lvalue +# 1814| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1814| Conversion = [BoolConversion] conversion to bool +# 1814| Type = [BoolType] bool +# 1814| Value = [CStyleCast] 0 +# 1814| ValueCategory = prvalue +# 1815| getStmt(599): [DoStmt] do (...) ... +# 1817| getCondition(): [Literal] 0 +# 1817| Type = [IntType] int +# 1817| Value = [Literal] 0 +# 1817| ValueCategory = prvalue +# 1815| getStmt(): [BlockStmt] { ... } +# 1816| getStmt(0): [DeclStmt] declaration +# 1816| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x599 +# 1816| Type = [Struct] String +# 1816| getVariable().getInitializer(): [Initializer] initializer for x599 +# 1816| getExpr(): [ConstructorCall] call to String +# 1816| Type = [VoidType] void +# 1816| ValueCategory = prvalue +# 1817| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1817| Type = [VoidType] void +# 1817| ValueCategory = prvalue +# 1817| getQualifier(): [VariableAccess] x599 +# 1817| Type = [Struct] String +# 1817| ValueCategory = lvalue +# 1817| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1817| Conversion = [BoolConversion] conversion to bool +# 1817| Type = [BoolType] bool +# 1817| Value = [CStyleCast] 0 +# 1817| ValueCategory = prvalue +# 1818| getStmt(600): [DoStmt] do (...) ... +# 1820| getCondition(): [Literal] 0 +# 1820| Type = [IntType] int +# 1820| Value = [Literal] 0 +# 1820| ValueCategory = prvalue +# 1818| getStmt(): [BlockStmt] { ... } +# 1819| getStmt(0): [DeclStmt] declaration +# 1819| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x600 +# 1819| Type = [Struct] String +# 1819| getVariable().getInitializer(): [Initializer] initializer for x600 +# 1819| getExpr(): [ConstructorCall] call to String +# 1819| Type = [VoidType] void +# 1819| ValueCategory = prvalue +# 1820| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1820| Type = [VoidType] void +# 1820| ValueCategory = prvalue +# 1820| getQualifier(): [VariableAccess] x600 +# 1820| Type = [Struct] String +# 1820| ValueCategory = lvalue +# 1820| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1820| Conversion = [BoolConversion] conversion to bool +# 1820| Type = [BoolType] bool +# 1820| Value = [CStyleCast] 0 +# 1820| ValueCategory = prvalue +# 1821| getStmt(601): [DoStmt] do (...) ... +# 1823| getCondition(): [Literal] 0 +# 1823| Type = [IntType] int +# 1823| Value = [Literal] 0 +# 1823| ValueCategory = prvalue +# 1821| getStmt(): [BlockStmt] { ... } +# 1822| getStmt(0): [DeclStmt] declaration +# 1822| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x601 +# 1822| Type = [Struct] String +# 1822| getVariable().getInitializer(): [Initializer] initializer for x601 +# 1822| getExpr(): [ConstructorCall] call to String +# 1822| Type = [VoidType] void +# 1822| ValueCategory = prvalue +# 1823| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1823| Type = [VoidType] void +# 1823| ValueCategory = prvalue +# 1823| getQualifier(): [VariableAccess] x601 +# 1823| Type = [Struct] String +# 1823| ValueCategory = lvalue +# 1823| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1823| Conversion = [BoolConversion] conversion to bool +# 1823| Type = [BoolType] bool +# 1823| Value = [CStyleCast] 0 +# 1823| ValueCategory = prvalue +# 1824| getStmt(602): [DoStmt] do (...) ... +# 1826| getCondition(): [Literal] 0 +# 1826| Type = [IntType] int +# 1826| Value = [Literal] 0 +# 1826| ValueCategory = prvalue +# 1824| getStmt(): [BlockStmt] { ... } +# 1825| getStmt(0): [DeclStmt] declaration +# 1825| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x602 +# 1825| Type = [Struct] String +# 1825| getVariable().getInitializer(): [Initializer] initializer for x602 +# 1825| getExpr(): [ConstructorCall] call to String +# 1825| Type = [VoidType] void +# 1825| ValueCategory = prvalue +# 1826| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1826| Type = [VoidType] void +# 1826| ValueCategory = prvalue +# 1826| getQualifier(): [VariableAccess] x602 +# 1826| Type = [Struct] String +# 1826| ValueCategory = lvalue +# 1826| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1826| Conversion = [BoolConversion] conversion to bool +# 1826| Type = [BoolType] bool +# 1826| Value = [CStyleCast] 0 +# 1826| ValueCategory = prvalue +# 1827| getStmt(603): [DoStmt] do (...) ... +# 1829| getCondition(): [Literal] 0 +# 1829| Type = [IntType] int +# 1829| Value = [Literal] 0 +# 1829| ValueCategory = prvalue +# 1827| getStmt(): [BlockStmt] { ... } +# 1828| getStmt(0): [DeclStmt] declaration +# 1828| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x603 +# 1828| Type = [Struct] String +# 1828| getVariable().getInitializer(): [Initializer] initializer for x603 +# 1828| getExpr(): [ConstructorCall] call to String +# 1828| Type = [VoidType] void +# 1828| ValueCategory = prvalue +# 1829| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1829| Type = [VoidType] void +# 1829| ValueCategory = prvalue +# 1829| getQualifier(): [VariableAccess] x603 +# 1829| Type = [Struct] String +# 1829| ValueCategory = lvalue +# 1829| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1829| Conversion = [BoolConversion] conversion to bool +# 1829| Type = [BoolType] bool +# 1829| Value = [CStyleCast] 0 +# 1829| ValueCategory = prvalue +# 1830| getStmt(604): [DoStmt] do (...) ... +# 1832| getCondition(): [Literal] 0 +# 1832| Type = [IntType] int +# 1832| Value = [Literal] 0 +# 1832| ValueCategory = prvalue +# 1830| getStmt(): [BlockStmt] { ... } +# 1831| getStmt(0): [DeclStmt] declaration +# 1831| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x604 +# 1831| Type = [Struct] String +# 1831| getVariable().getInitializer(): [Initializer] initializer for x604 +# 1831| getExpr(): [ConstructorCall] call to String +# 1831| Type = [VoidType] void +# 1831| ValueCategory = prvalue +# 1832| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1832| Type = [VoidType] void +# 1832| ValueCategory = prvalue +# 1832| getQualifier(): [VariableAccess] x604 +# 1832| Type = [Struct] String +# 1832| ValueCategory = lvalue +# 1832| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1832| Conversion = [BoolConversion] conversion to bool +# 1832| Type = [BoolType] bool +# 1832| Value = [CStyleCast] 0 +# 1832| ValueCategory = prvalue +# 1833| getStmt(605): [DoStmt] do (...) ... +# 1835| getCondition(): [Literal] 0 +# 1835| Type = [IntType] int +# 1835| Value = [Literal] 0 +# 1835| ValueCategory = prvalue +# 1833| getStmt(): [BlockStmt] { ... } +# 1834| getStmt(0): [DeclStmt] declaration +# 1834| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x605 +# 1834| Type = [Struct] String +# 1834| getVariable().getInitializer(): [Initializer] initializer for x605 +# 1834| getExpr(): [ConstructorCall] call to String +# 1834| Type = [VoidType] void +# 1834| ValueCategory = prvalue +# 1835| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1835| Type = [VoidType] void +# 1835| ValueCategory = prvalue +# 1835| getQualifier(): [VariableAccess] x605 +# 1835| Type = [Struct] String +# 1835| ValueCategory = lvalue +# 1835| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1835| Conversion = [BoolConversion] conversion to bool +# 1835| Type = [BoolType] bool +# 1835| Value = [CStyleCast] 0 +# 1835| ValueCategory = prvalue +# 1836| getStmt(606): [DoStmt] do (...) ... +# 1838| getCondition(): [Literal] 0 +# 1838| Type = [IntType] int +# 1838| Value = [Literal] 0 +# 1838| ValueCategory = prvalue +# 1836| getStmt(): [BlockStmt] { ... } +# 1837| getStmt(0): [DeclStmt] declaration +# 1837| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x606 +# 1837| Type = [Struct] String +# 1837| getVariable().getInitializer(): [Initializer] initializer for x606 +# 1837| getExpr(): [ConstructorCall] call to String +# 1837| Type = [VoidType] void +# 1837| ValueCategory = prvalue +# 1838| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1838| Type = [VoidType] void +# 1838| ValueCategory = prvalue +# 1838| getQualifier(): [VariableAccess] x606 +# 1838| Type = [Struct] String +# 1838| ValueCategory = lvalue +# 1838| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1838| Conversion = [BoolConversion] conversion to bool +# 1838| Type = [BoolType] bool +# 1838| Value = [CStyleCast] 0 +# 1838| ValueCategory = prvalue +# 1839| getStmt(607): [DoStmt] do (...) ... +# 1841| getCondition(): [Literal] 0 +# 1841| Type = [IntType] int +# 1841| Value = [Literal] 0 +# 1841| ValueCategory = prvalue +# 1839| getStmt(): [BlockStmt] { ... } +# 1840| getStmt(0): [DeclStmt] declaration +# 1840| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x607 +# 1840| Type = [Struct] String +# 1840| getVariable().getInitializer(): [Initializer] initializer for x607 +# 1840| getExpr(): [ConstructorCall] call to String +# 1840| Type = [VoidType] void +# 1840| ValueCategory = prvalue +# 1841| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1841| Type = [VoidType] void +# 1841| ValueCategory = prvalue +# 1841| getQualifier(): [VariableAccess] x607 +# 1841| Type = [Struct] String +# 1841| ValueCategory = lvalue +# 1841| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1841| Conversion = [BoolConversion] conversion to bool +# 1841| Type = [BoolType] bool +# 1841| Value = [CStyleCast] 0 +# 1841| ValueCategory = prvalue +# 1842| getStmt(608): [DoStmt] do (...) ... +# 1844| getCondition(): [Literal] 0 +# 1844| Type = [IntType] int +# 1844| Value = [Literal] 0 +# 1844| ValueCategory = prvalue +# 1842| getStmt(): [BlockStmt] { ... } +# 1843| getStmt(0): [DeclStmt] declaration +# 1843| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x608 +# 1843| Type = [Struct] String +# 1843| getVariable().getInitializer(): [Initializer] initializer for x608 +# 1843| getExpr(): [ConstructorCall] call to String +# 1843| Type = [VoidType] void +# 1843| ValueCategory = prvalue +# 1844| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1844| Type = [VoidType] void +# 1844| ValueCategory = prvalue +# 1844| getQualifier(): [VariableAccess] x608 +# 1844| Type = [Struct] String +# 1844| ValueCategory = lvalue +# 1844| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1844| Conversion = [BoolConversion] conversion to bool +# 1844| Type = [BoolType] bool +# 1844| Value = [CStyleCast] 0 +# 1844| ValueCategory = prvalue +# 1845| getStmt(609): [DoStmt] do (...) ... +# 1847| getCondition(): [Literal] 0 +# 1847| Type = [IntType] int +# 1847| Value = [Literal] 0 +# 1847| ValueCategory = prvalue +# 1845| getStmt(): [BlockStmt] { ... } +# 1846| getStmt(0): [DeclStmt] declaration +# 1846| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x609 +# 1846| Type = [Struct] String +# 1846| getVariable().getInitializer(): [Initializer] initializer for x609 +# 1846| getExpr(): [ConstructorCall] call to String +# 1846| Type = [VoidType] void +# 1846| ValueCategory = prvalue +# 1847| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1847| Type = [VoidType] void +# 1847| ValueCategory = prvalue +# 1847| getQualifier(): [VariableAccess] x609 +# 1847| Type = [Struct] String +# 1847| ValueCategory = lvalue +# 1847| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1847| Conversion = [BoolConversion] conversion to bool +# 1847| Type = [BoolType] bool +# 1847| Value = [CStyleCast] 0 +# 1847| ValueCategory = prvalue +# 1848| getStmt(610): [DoStmt] do (...) ... +# 1850| getCondition(): [Literal] 0 +# 1850| Type = [IntType] int +# 1850| Value = [Literal] 0 +# 1850| ValueCategory = prvalue +# 1848| getStmt(): [BlockStmt] { ... } +# 1849| getStmt(0): [DeclStmt] declaration +# 1849| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x610 +# 1849| Type = [Struct] String +# 1849| getVariable().getInitializer(): [Initializer] initializer for x610 +# 1849| getExpr(): [ConstructorCall] call to String +# 1849| Type = [VoidType] void +# 1849| ValueCategory = prvalue +# 1850| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1850| Type = [VoidType] void +# 1850| ValueCategory = prvalue +# 1850| getQualifier(): [VariableAccess] x610 +# 1850| Type = [Struct] String +# 1850| ValueCategory = lvalue +# 1850| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1850| Conversion = [BoolConversion] conversion to bool +# 1850| Type = [BoolType] bool +# 1850| Value = [CStyleCast] 0 +# 1850| ValueCategory = prvalue +# 1851| getStmt(611): [DoStmt] do (...) ... +# 1853| getCondition(): [Literal] 0 +# 1853| Type = [IntType] int +# 1853| Value = [Literal] 0 +# 1853| ValueCategory = prvalue +# 1851| getStmt(): [BlockStmt] { ... } +# 1852| getStmt(0): [DeclStmt] declaration +# 1852| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x611 +# 1852| Type = [Struct] String +# 1852| getVariable().getInitializer(): [Initializer] initializer for x611 +# 1852| getExpr(): [ConstructorCall] call to String +# 1852| Type = [VoidType] void +# 1852| ValueCategory = prvalue +# 1853| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1853| Type = [VoidType] void +# 1853| ValueCategory = prvalue +# 1853| getQualifier(): [VariableAccess] x611 +# 1853| Type = [Struct] String +# 1853| ValueCategory = lvalue +# 1853| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1853| Conversion = [BoolConversion] conversion to bool +# 1853| Type = [BoolType] bool +# 1853| Value = [CStyleCast] 0 +# 1853| ValueCategory = prvalue +# 1854| getStmt(612): [DoStmt] do (...) ... +# 1856| getCondition(): [Literal] 0 +# 1856| Type = [IntType] int +# 1856| Value = [Literal] 0 +# 1856| ValueCategory = prvalue +# 1854| getStmt(): [BlockStmt] { ... } +# 1855| getStmt(0): [DeclStmt] declaration +# 1855| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x612 +# 1855| Type = [Struct] String +# 1855| getVariable().getInitializer(): [Initializer] initializer for x612 +# 1855| getExpr(): [ConstructorCall] call to String +# 1855| Type = [VoidType] void +# 1855| ValueCategory = prvalue +# 1856| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1856| Type = [VoidType] void +# 1856| ValueCategory = prvalue +# 1856| getQualifier(): [VariableAccess] x612 +# 1856| Type = [Struct] String +# 1856| ValueCategory = lvalue +# 1856| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1856| Conversion = [BoolConversion] conversion to bool +# 1856| Type = [BoolType] bool +# 1856| Value = [CStyleCast] 0 +# 1856| ValueCategory = prvalue +# 1857| getStmt(613): [DoStmt] do (...) ... +# 1859| getCondition(): [Literal] 0 +# 1859| Type = [IntType] int +# 1859| Value = [Literal] 0 +# 1859| ValueCategory = prvalue +# 1857| getStmt(): [BlockStmt] { ... } +# 1858| getStmt(0): [DeclStmt] declaration +# 1858| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x613 +# 1858| Type = [Struct] String +# 1858| getVariable().getInitializer(): [Initializer] initializer for x613 +# 1858| getExpr(): [ConstructorCall] call to String +# 1858| Type = [VoidType] void +# 1858| ValueCategory = prvalue +# 1859| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1859| Type = [VoidType] void +# 1859| ValueCategory = prvalue +# 1859| getQualifier(): [VariableAccess] x613 +# 1859| Type = [Struct] String +# 1859| ValueCategory = lvalue +# 1859| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1859| Conversion = [BoolConversion] conversion to bool +# 1859| Type = [BoolType] bool +# 1859| Value = [CStyleCast] 0 +# 1859| ValueCategory = prvalue +# 1860| getStmt(614): [DoStmt] do (...) ... +# 1862| getCondition(): [Literal] 0 +# 1862| Type = [IntType] int +# 1862| Value = [Literal] 0 +# 1862| ValueCategory = prvalue +# 1860| getStmt(): [BlockStmt] { ... } +# 1861| getStmt(0): [DeclStmt] declaration +# 1861| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x614 +# 1861| Type = [Struct] String +# 1861| getVariable().getInitializer(): [Initializer] initializer for x614 +# 1861| getExpr(): [ConstructorCall] call to String +# 1861| Type = [VoidType] void +# 1861| ValueCategory = prvalue +# 1862| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1862| Type = [VoidType] void +# 1862| ValueCategory = prvalue +# 1862| getQualifier(): [VariableAccess] x614 +# 1862| Type = [Struct] String +# 1862| ValueCategory = lvalue +# 1862| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1862| Conversion = [BoolConversion] conversion to bool +# 1862| Type = [BoolType] bool +# 1862| Value = [CStyleCast] 0 +# 1862| ValueCategory = prvalue +# 1863| getStmt(615): [DoStmt] do (...) ... +# 1865| getCondition(): [Literal] 0 +# 1865| Type = [IntType] int +# 1865| Value = [Literal] 0 +# 1865| ValueCategory = prvalue +# 1863| getStmt(): [BlockStmt] { ... } +# 1864| getStmt(0): [DeclStmt] declaration +# 1864| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x615 +# 1864| Type = [Struct] String +# 1864| getVariable().getInitializer(): [Initializer] initializer for x615 +# 1864| getExpr(): [ConstructorCall] call to String +# 1864| Type = [VoidType] void +# 1864| ValueCategory = prvalue +# 1865| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1865| Type = [VoidType] void +# 1865| ValueCategory = prvalue +# 1865| getQualifier(): [VariableAccess] x615 +# 1865| Type = [Struct] String +# 1865| ValueCategory = lvalue +# 1865| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1865| Conversion = [BoolConversion] conversion to bool +# 1865| Type = [BoolType] bool +# 1865| Value = [CStyleCast] 0 +# 1865| ValueCategory = prvalue +# 1866| getStmt(616): [DoStmt] do (...) ... +# 1868| getCondition(): [Literal] 0 +# 1868| Type = [IntType] int +# 1868| Value = [Literal] 0 +# 1868| ValueCategory = prvalue +# 1866| getStmt(): [BlockStmt] { ... } +# 1867| getStmt(0): [DeclStmt] declaration +# 1867| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x616 +# 1867| Type = [Struct] String +# 1867| getVariable().getInitializer(): [Initializer] initializer for x616 +# 1867| getExpr(): [ConstructorCall] call to String +# 1867| Type = [VoidType] void +# 1867| ValueCategory = prvalue +# 1868| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1868| Type = [VoidType] void +# 1868| ValueCategory = prvalue +# 1868| getQualifier(): [VariableAccess] x616 +# 1868| Type = [Struct] String +# 1868| ValueCategory = lvalue +# 1868| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1868| Conversion = [BoolConversion] conversion to bool +# 1868| Type = [BoolType] bool +# 1868| Value = [CStyleCast] 0 +# 1868| ValueCategory = prvalue +# 1869| getStmt(617): [DoStmt] do (...) ... +# 1871| getCondition(): [Literal] 0 +# 1871| Type = [IntType] int +# 1871| Value = [Literal] 0 +# 1871| ValueCategory = prvalue +# 1869| getStmt(): [BlockStmt] { ... } +# 1870| getStmt(0): [DeclStmt] declaration +# 1870| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x617 +# 1870| Type = [Struct] String +# 1870| getVariable().getInitializer(): [Initializer] initializer for x617 +# 1870| getExpr(): [ConstructorCall] call to String +# 1870| Type = [VoidType] void +# 1870| ValueCategory = prvalue +# 1871| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1871| Type = [VoidType] void +# 1871| ValueCategory = prvalue +# 1871| getQualifier(): [VariableAccess] x617 +# 1871| Type = [Struct] String +# 1871| ValueCategory = lvalue +# 1871| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1871| Conversion = [BoolConversion] conversion to bool +# 1871| Type = [BoolType] bool +# 1871| Value = [CStyleCast] 0 +# 1871| ValueCategory = prvalue +# 1872| getStmt(618): [DoStmt] do (...) ... +# 1874| getCondition(): [Literal] 0 +# 1874| Type = [IntType] int +# 1874| Value = [Literal] 0 +# 1874| ValueCategory = prvalue +# 1872| getStmt(): [BlockStmt] { ... } +# 1873| getStmt(0): [DeclStmt] declaration +# 1873| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x618 +# 1873| Type = [Struct] String +# 1873| getVariable().getInitializer(): [Initializer] initializer for x618 +# 1873| getExpr(): [ConstructorCall] call to String +# 1873| Type = [VoidType] void +# 1873| ValueCategory = prvalue +# 1874| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1874| Type = [VoidType] void +# 1874| ValueCategory = prvalue +# 1874| getQualifier(): [VariableAccess] x618 +# 1874| Type = [Struct] String +# 1874| ValueCategory = lvalue +# 1874| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1874| Conversion = [BoolConversion] conversion to bool +# 1874| Type = [BoolType] bool +# 1874| Value = [CStyleCast] 0 +# 1874| ValueCategory = prvalue +# 1875| getStmt(619): [DoStmt] do (...) ... +# 1877| getCondition(): [Literal] 0 +# 1877| Type = [IntType] int +# 1877| Value = [Literal] 0 +# 1877| ValueCategory = prvalue +# 1875| getStmt(): [BlockStmt] { ... } +# 1876| getStmt(0): [DeclStmt] declaration +# 1876| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x619 +# 1876| Type = [Struct] String +# 1876| getVariable().getInitializer(): [Initializer] initializer for x619 +# 1876| getExpr(): [ConstructorCall] call to String +# 1876| Type = [VoidType] void +# 1876| ValueCategory = prvalue +# 1877| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1877| Type = [VoidType] void +# 1877| ValueCategory = prvalue +# 1877| getQualifier(): [VariableAccess] x619 +# 1877| Type = [Struct] String +# 1877| ValueCategory = lvalue +# 1877| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1877| Conversion = [BoolConversion] conversion to bool +# 1877| Type = [BoolType] bool +# 1877| Value = [CStyleCast] 0 +# 1877| ValueCategory = prvalue +# 1878| getStmt(620): [DoStmt] do (...) ... +# 1880| getCondition(): [Literal] 0 +# 1880| Type = [IntType] int +# 1880| Value = [Literal] 0 +# 1880| ValueCategory = prvalue +# 1878| getStmt(): [BlockStmt] { ... } +# 1879| getStmt(0): [DeclStmt] declaration +# 1879| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x620 +# 1879| Type = [Struct] String +# 1879| getVariable().getInitializer(): [Initializer] initializer for x620 +# 1879| getExpr(): [ConstructorCall] call to String +# 1879| Type = [VoidType] void +# 1879| ValueCategory = prvalue +# 1880| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1880| Type = [VoidType] void +# 1880| ValueCategory = prvalue +# 1880| getQualifier(): [VariableAccess] x620 +# 1880| Type = [Struct] String +# 1880| ValueCategory = lvalue +# 1880| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1880| Conversion = [BoolConversion] conversion to bool +# 1880| Type = [BoolType] bool +# 1880| Value = [CStyleCast] 0 +# 1880| ValueCategory = prvalue +# 1881| getStmt(621): [DoStmt] do (...) ... +# 1883| getCondition(): [Literal] 0 +# 1883| Type = [IntType] int +# 1883| Value = [Literal] 0 +# 1883| ValueCategory = prvalue +# 1881| getStmt(): [BlockStmt] { ... } +# 1882| getStmt(0): [DeclStmt] declaration +# 1882| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x621 +# 1882| Type = [Struct] String +# 1882| getVariable().getInitializer(): [Initializer] initializer for x621 +# 1882| getExpr(): [ConstructorCall] call to String +# 1882| Type = [VoidType] void +# 1882| ValueCategory = prvalue +# 1883| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1883| Type = [VoidType] void +# 1883| ValueCategory = prvalue +# 1883| getQualifier(): [VariableAccess] x621 +# 1883| Type = [Struct] String +# 1883| ValueCategory = lvalue +# 1883| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1883| Conversion = [BoolConversion] conversion to bool +# 1883| Type = [BoolType] bool +# 1883| Value = [CStyleCast] 0 +# 1883| ValueCategory = prvalue +# 1884| getStmt(622): [DoStmt] do (...) ... +# 1886| getCondition(): [Literal] 0 +# 1886| Type = [IntType] int +# 1886| Value = [Literal] 0 +# 1886| ValueCategory = prvalue +# 1884| getStmt(): [BlockStmt] { ... } +# 1885| getStmt(0): [DeclStmt] declaration +# 1885| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x622 +# 1885| Type = [Struct] String +# 1885| getVariable().getInitializer(): [Initializer] initializer for x622 +# 1885| getExpr(): [ConstructorCall] call to String +# 1885| Type = [VoidType] void +# 1885| ValueCategory = prvalue +# 1886| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1886| Type = [VoidType] void +# 1886| ValueCategory = prvalue +# 1886| getQualifier(): [VariableAccess] x622 +# 1886| Type = [Struct] String +# 1886| ValueCategory = lvalue +# 1886| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1886| Conversion = [BoolConversion] conversion to bool +# 1886| Type = [BoolType] bool +# 1886| Value = [CStyleCast] 0 +# 1886| ValueCategory = prvalue +# 1887| getStmt(623): [DoStmt] do (...) ... +# 1889| getCondition(): [Literal] 0 +# 1889| Type = [IntType] int +# 1889| Value = [Literal] 0 +# 1889| ValueCategory = prvalue +# 1887| getStmt(): [BlockStmt] { ... } +# 1888| getStmt(0): [DeclStmt] declaration +# 1888| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x623 +# 1888| Type = [Struct] String +# 1888| getVariable().getInitializer(): [Initializer] initializer for x623 +# 1888| getExpr(): [ConstructorCall] call to String +# 1888| Type = [VoidType] void +# 1888| ValueCategory = prvalue +# 1889| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1889| Type = [VoidType] void +# 1889| ValueCategory = prvalue +# 1889| getQualifier(): [VariableAccess] x623 +# 1889| Type = [Struct] String +# 1889| ValueCategory = lvalue +# 1889| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1889| Conversion = [BoolConversion] conversion to bool +# 1889| Type = [BoolType] bool +# 1889| Value = [CStyleCast] 0 +# 1889| ValueCategory = prvalue +# 1890| getStmt(624): [DoStmt] do (...) ... +# 1892| getCondition(): [Literal] 0 +# 1892| Type = [IntType] int +# 1892| Value = [Literal] 0 +# 1892| ValueCategory = prvalue +# 1890| getStmt(): [BlockStmt] { ... } +# 1891| getStmt(0): [DeclStmt] declaration +# 1891| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x624 +# 1891| Type = [Struct] String +# 1891| getVariable().getInitializer(): [Initializer] initializer for x624 +# 1891| getExpr(): [ConstructorCall] call to String +# 1891| Type = [VoidType] void +# 1891| ValueCategory = prvalue +# 1892| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1892| Type = [VoidType] void +# 1892| ValueCategory = prvalue +# 1892| getQualifier(): [VariableAccess] x624 +# 1892| Type = [Struct] String +# 1892| ValueCategory = lvalue +# 1892| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1892| Conversion = [BoolConversion] conversion to bool +# 1892| Type = [BoolType] bool +# 1892| Value = [CStyleCast] 0 +# 1892| ValueCategory = prvalue +# 1893| getStmt(625): [DoStmt] do (...) ... +# 1895| getCondition(): [Literal] 0 +# 1895| Type = [IntType] int +# 1895| Value = [Literal] 0 +# 1895| ValueCategory = prvalue +# 1893| getStmt(): [BlockStmt] { ... } +# 1894| getStmt(0): [DeclStmt] declaration +# 1894| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x625 +# 1894| Type = [Struct] String +# 1894| getVariable().getInitializer(): [Initializer] initializer for x625 +# 1894| getExpr(): [ConstructorCall] call to String +# 1894| Type = [VoidType] void +# 1894| ValueCategory = prvalue +# 1895| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1895| Type = [VoidType] void +# 1895| ValueCategory = prvalue +# 1895| getQualifier(): [VariableAccess] x625 +# 1895| Type = [Struct] String +# 1895| ValueCategory = lvalue +# 1895| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1895| Conversion = [BoolConversion] conversion to bool +# 1895| Type = [BoolType] bool +# 1895| Value = [CStyleCast] 0 +# 1895| ValueCategory = prvalue +# 1896| getStmt(626): [DoStmt] do (...) ... +# 1898| getCondition(): [Literal] 0 +# 1898| Type = [IntType] int +# 1898| Value = [Literal] 0 +# 1898| ValueCategory = prvalue +# 1896| getStmt(): [BlockStmt] { ... } +# 1897| getStmt(0): [DeclStmt] declaration +# 1897| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x626 +# 1897| Type = [Struct] String +# 1897| getVariable().getInitializer(): [Initializer] initializer for x626 +# 1897| getExpr(): [ConstructorCall] call to String +# 1897| Type = [VoidType] void +# 1897| ValueCategory = prvalue +# 1898| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1898| Type = [VoidType] void +# 1898| ValueCategory = prvalue +# 1898| getQualifier(): [VariableAccess] x626 +# 1898| Type = [Struct] String +# 1898| ValueCategory = lvalue +# 1898| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1898| Conversion = [BoolConversion] conversion to bool +# 1898| Type = [BoolType] bool +# 1898| Value = [CStyleCast] 0 +# 1898| ValueCategory = prvalue +# 1899| getStmt(627): [DoStmt] do (...) ... +# 1901| getCondition(): [Literal] 0 +# 1901| Type = [IntType] int +# 1901| Value = [Literal] 0 +# 1901| ValueCategory = prvalue +# 1899| getStmt(): [BlockStmt] { ... } +# 1900| getStmt(0): [DeclStmt] declaration +# 1900| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x627 +# 1900| Type = [Struct] String +# 1900| getVariable().getInitializer(): [Initializer] initializer for x627 +# 1900| getExpr(): [ConstructorCall] call to String +# 1900| Type = [VoidType] void +# 1900| ValueCategory = prvalue +# 1901| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1901| Type = [VoidType] void +# 1901| ValueCategory = prvalue +# 1901| getQualifier(): [VariableAccess] x627 +# 1901| Type = [Struct] String +# 1901| ValueCategory = lvalue +# 1901| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1901| Conversion = [BoolConversion] conversion to bool +# 1901| Type = [BoolType] bool +# 1901| Value = [CStyleCast] 0 +# 1901| ValueCategory = prvalue +# 1902| getStmt(628): [DoStmt] do (...) ... +# 1904| getCondition(): [Literal] 0 +# 1904| Type = [IntType] int +# 1904| Value = [Literal] 0 +# 1904| ValueCategory = prvalue +# 1902| getStmt(): [BlockStmt] { ... } +# 1903| getStmt(0): [DeclStmt] declaration +# 1903| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x628 +# 1903| Type = [Struct] String +# 1903| getVariable().getInitializer(): [Initializer] initializer for x628 +# 1903| getExpr(): [ConstructorCall] call to String +# 1903| Type = [VoidType] void +# 1903| ValueCategory = prvalue +# 1904| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1904| Type = [VoidType] void +# 1904| ValueCategory = prvalue +# 1904| getQualifier(): [VariableAccess] x628 +# 1904| Type = [Struct] String +# 1904| ValueCategory = lvalue +# 1904| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1904| Conversion = [BoolConversion] conversion to bool +# 1904| Type = [BoolType] bool +# 1904| Value = [CStyleCast] 0 +# 1904| ValueCategory = prvalue +# 1905| getStmt(629): [DoStmt] do (...) ... +# 1907| getCondition(): [Literal] 0 +# 1907| Type = [IntType] int +# 1907| Value = [Literal] 0 +# 1907| ValueCategory = prvalue +# 1905| getStmt(): [BlockStmt] { ... } +# 1906| getStmt(0): [DeclStmt] declaration +# 1906| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x629 +# 1906| Type = [Struct] String +# 1906| getVariable().getInitializer(): [Initializer] initializer for x629 +# 1906| getExpr(): [ConstructorCall] call to String +# 1906| Type = [VoidType] void +# 1906| ValueCategory = prvalue +# 1907| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1907| Type = [VoidType] void +# 1907| ValueCategory = prvalue +# 1907| getQualifier(): [VariableAccess] x629 +# 1907| Type = [Struct] String +# 1907| ValueCategory = lvalue +# 1907| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1907| Conversion = [BoolConversion] conversion to bool +# 1907| Type = [BoolType] bool +# 1907| Value = [CStyleCast] 0 +# 1907| ValueCategory = prvalue +# 1908| getStmt(630): [DoStmt] do (...) ... +# 1910| getCondition(): [Literal] 0 +# 1910| Type = [IntType] int +# 1910| Value = [Literal] 0 +# 1910| ValueCategory = prvalue +# 1908| getStmt(): [BlockStmt] { ... } +# 1909| getStmt(0): [DeclStmt] declaration +# 1909| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x630 +# 1909| Type = [Struct] String +# 1909| getVariable().getInitializer(): [Initializer] initializer for x630 +# 1909| getExpr(): [ConstructorCall] call to String +# 1909| Type = [VoidType] void +# 1909| ValueCategory = prvalue +# 1910| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1910| Type = [VoidType] void +# 1910| ValueCategory = prvalue +# 1910| getQualifier(): [VariableAccess] x630 +# 1910| Type = [Struct] String +# 1910| ValueCategory = lvalue +# 1910| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1910| Conversion = [BoolConversion] conversion to bool +# 1910| Type = [BoolType] bool +# 1910| Value = [CStyleCast] 0 +# 1910| ValueCategory = prvalue +# 1911| getStmt(631): [DoStmt] do (...) ... +# 1913| getCondition(): [Literal] 0 +# 1913| Type = [IntType] int +# 1913| Value = [Literal] 0 +# 1913| ValueCategory = prvalue +# 1911| getStmt(): [BlockStmt] { ... } +# 1912| getStmt(0): [DeclStmt] declaration +# 1912| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x631 +# 1912| Type = [Struct] String +# 1912| getVariable().getInitializer(): [Initializer] initializer for x631 +# 1912| getExpr(): [ConstructorCall] call to String +# 1912| Type = [VoidType] void +# 1912| ValueCategory = prvalue +# 1913| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1913| Type = [VoidType] void +# 1913| ValueCategory = prvalue +# 1913| getQualifier(): [VariableAccess] x631 +# 1913| Type = [Struct] String +# 1913| ValueCategory = lvalue +# 1913| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1913| Conversion = [BoolConversion] conversion to bool +# 1913| Type = [BoolType] bool +# 1913| Value = [CStyleCast] 0 +# 1913| ValueCategory = prvalue +# 1914| getStmt(632): [DoStmt] do (...) ... +# 1916| getCondition(): [Literal] 0 +# 1916| Type = [IntType] int +# 1916| Value = [Literal] 0 +# 1916| ValueCategory = prvalue +# 1914| getStmt(): [BlockStmt] { ... } +# 1915| getStmt(0): [DeclStmt] declaration +# 1915| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x632 +# 1915| Type = [Struct] String +# 1915| getVariable().getInitializer(): [Initializer] initializer for x632 +# 1915| getExpr(): [ConstructorCall] call to String +# 1915| Type = [VoidType] void +# 1915| ValueCategory = prvalue +# 1916| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1916| Type = [VoidType] void +# 1916| ValueCategory = prvalue +# 1916| getQualifier(): [VariableAccess] x632 +# 1916| Type = [Struct] String +# 1916| ValueCategory = lvalue +# 1916| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1916| Conversion = [BoolConversion] conversion to bool +# 1916| Type = [BoolType] bool +# 1916| Value = [CStyleCast] 0 +# 1916| ValueCategory = prvalue +# 1917| getStmt(633): [DoStmt] do (...) ... +# 1919| getCondition(): [Literal] 0 +# 1919| Type = [IntType] int +# 1919| Value = [Literal] 0 +# 1919| ValueCategory = prvalue +# 1917| getStmt(): [BlockStmt] { ... } +# 1918| getStmt(0): [DeclStmt] declaration +# 1918| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x633 +# 1918| Type = [Struct] String +# 1918| getVariable().getInitializer(): [Initializer] initializer for x633 +# 1918| getExpr(): [ConstructorCall] call to String +# 1918| Type = [VoidType] void +# 1918| ValueCategory = prvalue +# 1919| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1919| Type = [VoidType] void +# 1919| ValueCategory = prvalue +# 1919| getQualifier(): [VariableAccess] x633 +# 1919| Type = [Struct] String +# 1919| ValueCategory = lvalue +# 1919| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1919| Conversion = [BoolConversion] conversion to bool +# 1919| Type = [BoolType] bool +# 1919| Value = [CStyleCast] 0 +# 1919| ValueCategory = prvalue +# 1920| getStmt(634): [DoStmt] do (...) ... +# 1922| getCondition(): [Literal] 0 +# 1922| Type = [IntType] int +# 1922| Value = [Literal] 0 +# 1922| ValueCategory = prvalue +# 1920| getStmt(): [BlockStmt] { ... } +# 1921| getStmt(0): [DeclStmt] declaration +# 1921| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x634 +# 1921| Type = [Struct] String +# 1921| getVariable().getInitializer(): [Initializer] initializer for x634 +# 1921| getExpr(): [ConstructorCall] call to String +# 1921| Type = [VoidType] void +# 1921| ValueCategory = prvalue +# 1922| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1922| Type = [VoidType] void +# 1922| ValueCategory = prvalue +# 1922| getQualifier(): [VariableAccess] x634 +# 1922| Type = [Struct] String +# 1922| ValueCategory = lvalue +# 1922| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1922| Conversion = [BoolConversion] conversion to bool +# 1922| Type = [BoolType] bool +# 1922| Value = [CStyleCast] 0 +# 1922| ValueCategory = prvalue +# 1923| getStmt(635): [DoStmt] do (...) ... +# 1925| getCondition(): [Literal] 0 +# 1925| Type = [IntType] int +# 1925| Value = [Literal] 0 +# 1925| ValueCategory = prvalue +# 1923| getStmt(): [BlockStmt] { ... } +# 1924| getStmt(0): [DeclStmt] declaration +# 1924| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x635 +# 1924| Type = [Struct] String +# 1924| getVariable().getInitializer(): [Initializer] initializer for x635 +# 1924| getExpr(): [ConstructorCall] call to String +# 1924| Type = [VoidType] void +# 1924| ValueCategory = prvalue +# 1925| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1925| Type = [VoidType] void +# 1925| ValueCategory = prvalue +# 1925| getQualifier(): [VariableAccess] x635 +# 1925| Type = [Struct] String +# 1925| ValueCategory = lvalue +# 1925| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1925| Conversion = [BoolConversion] conversion to bool +# 1925| Type = [BoolType] bool +# 1925| Value = [CStyleCast] 0 +# 1925| ValueCategory = prvalue +# 1926| getStmt(636): [DoStmt] do (...) ... +# 1928| getCondition(): [Literal] 0 +# 1928| Type = [IntType] int +# 1928| Value = [Literal] 0 +# 1928| ValueCategory = prvalue +# 1926| getStmt(): [BlockStmt] { ... } +# 1927| getStmt(0): [DeclStmt] declaration +# 1927| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x636 +# 1927| Type = [Struct] String +# 1927| getVariable().getInitializer(): [Initializer] initializer for x636 +# 1927| getExpr(): [ConstructorCall] call to String +# 1927| Type = [VoidType] void +# 1927| ValueCategory = prvalue +# 1928| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1928| Type = [VoidType] void +# 1928| ValueCategory = prvalue +# 1928| getQualifier(): [VariableAccess] x636 +# 1928| Type = [Struct] String +# 1928| ValueCategory = lvalue +# 1928| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1928| Conversion = [BoolConversion] conversion to bool +# 1928| Type = [BoolType] bool +# 1928| Value = [CStyleCast] 0 +# 1928| ValueCategory = prvalue +# 1929| getStmt(637): [DoStmt] do (...) ... +# 1931| getCondition(): [Literal] 0 +# 1931| Type = [IntType] int +# 1931| Value = [Literal] 0 +# 1931| ValueCategory = prvalue +# 1929| getStmt(): [BlockStmt] { ... } +# 1930| getStmt(0): [DeclStmt] declaration +# 1930| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x637 +# 1930| Type = [Struct] String +# 1930| getVariable().getInitializer(): [Initializer] initializer for x637 +# 1930| getExpr(): [ConstructorCall] call to String +# 1930| Type = [VoidType] void +# 1930| ValueCategory = prvalue +# 1931| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1931| Type = [VoidType] void +# 1931| ValueCategory = prvalue +# 1931| getQualifier(): [VariableAccess] x637 +# 1931| Type = [Struct] String +# 1931| ValueCategory = lvalue +# 1931| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1931| Conversion = [BoolConversion] conversion to bool +# 1931| Type = [BoolType] bool +# 1931| Value = [CStyleCast] 0 +# 1931| ValueCategory = prvalue +# 1932| getStmt(638): [DoStmt] do (...) ... +# 1934| getCondition(): [Literal] 0 +# 1934| Type = [IntType] int +# 1934| Value = [Literal] 0 +# 1934| ValueCategory = prvalue +# 1932| getStmt(): [BlockStmt] { ... } +# 1933| getStmt(0): [DeclStmt] declaration +# 1933| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x638 +# 1933| Type = [Struct] String +# 1933| getVariable().getInitializer(): [Initializer] initializer for x638 +# 1933| getExpr(): [ConstructorCall] call to String +# 1933| Type = [VoidType] void +# 1933| ValueCategory = prvalue +# 1934| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1934| Type = [VoidType] void +# 1934| ValueCategory = prvalue +# 1934| getQualifier(): [VariableAccess] x638 +# 1934| Type = [Struct] String +# 1934| ValueCategory = lvalue +# 1934| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1934| Conversion = [BoolConversion] conversion to bool +# 1934| Type = [BoolType] bool +# 1934| Value = [CStyleCast] 0 +# 1934| ValueCategory = prvalue +# 1935| getStmt(639): [DoStmt] do (...) ... +# 1937| getCondition(): [Literal] 0 +# 1937| Type = [IntType] int +# 1937| Value = [Literal] 0 +# 1937| ValueCategory = prvalue +# 1935| getStmt(): [BlockStmt] { ... } +# 1936| getStmt(0): [DeclStmt] declaration +# 1936| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x639 +# 1936| Type = [Struct] String +# 1936| getVariable().getInitializer(): [Initializer] initializer for x639 +# 1936| getExpr(): [ConstructorCall] call to String +# 1936| Type = [VoidType] void +# 1936| ValueCategory = prvalue +# 1937| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1937| Type = [VoidType] void +# 1937| ValueCategory = prvalue +# 1937| getQualifier(): [VariableAccess] x639 +# 1937| Type = [Struct] String +# 1937| ValueCategory = lvalue +# 1937| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1937| Conversion = [BoolConversion] conversion to bool +# 1937| Type = [BoolType] bool +# 1937| Value = [CStyleCast] 0 +# 1937| ValueCategory = prvalue +# 1938| getStmt(640): [DoStmt] do (...) ... +# 1940| getCondition(): [Literal] 0 +# 1940| Type = [IntType] int +# 1940| Value = [Literal] 0 +# 1940| ValueCategory = prvalue +# 1938| getStmt(): [BlockStmt] { ... } +# 1939| getStmt(0): [DeclStmt] declaration +# 1939| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x640 +# 1939| Type = [Struct] String +# 1939| getVariable().getInitializer(): [Initializer] initializer for x640 +# 1939| getExpr(): [ConstructorCall] call to String +# 1939| Type = [VoidType] void +# 1939| ValueCategory = prvalue +# 1940| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1940| Type = [VoidType] void +# 1940| ValueCategory = prvalue +# 1940| getQualifier(): [VariableAccess] x640 +# 1940| Type = [Struct] String +# 1940| ValueCategory = lvalue +# 1940| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1940| Conversion = [BoolConversion] conversion to bool +# 1940| Type = [BoolType] bool +# 1940| Value = [CStyleCast] 0 +# 1940| ValueCategory = prvalue +# 1941| getStmt(641): [DoStmt] do (...) ... +# 1943| getCondition(): [Literal] 0 +# 1943| Type = [IntType] int +# 1943| Value = [Literal] 0 +# 1943| ValueCategory = prvalue +# 1941| getStmt(): [BlockStmt] { ... } +# 1942| getStmt(0): [DeclStmt] declaration +# 1942| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x641 +# 1942| Type = [Struct] String +# 1942| getVariable().getInitializer(): [Initializer] initializer for x641 +# 1942| getExpr(): [ConstructorCall] call to String +# 1942| Type = [VoidType] void +# 1942| ValueCategory = prvalue +# 1943| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1943| Type = [VoidType] void +# 1943| ValueCategory = prvalue +# 1943| getQualifier(): [VariableAccess] x641 +# 1943| Type = [Struct] String +# 1943| ValueCategory = lvalue +# 1943| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1943| Conversion = [BoolConversion] conversion to bool +# 1943| Type = [BoolType] bool +# 1943| Value = [CStyleCast] 0 +# 1943| ValueCategory = prvalue +# 1944| getStmt(642): [DoStmt] do (...) ... +# 1946| getCondition(): [Literal] 0 +# 1946| Type = [IntType] int +# 1946| Value = [Literal] 0 +# 1946| ValueCategory = prvalue +# 1944| getStmt(): [BlockStmt] { ... } +# 1945| getStmt(0): [DeclStmt] declaration +# 1945| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x642 +# 1945| Type = [Struct] String +# 1945| getVariable().getInitializer(): [Initializer] initializer for x642 +# 1945| getExpr(): [ConstructorCall] call to String +# 1945| Type = [VoidType] void +# 1945| ValueCategory = prvalue +# 1946| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1946| Type = [VoidType] void +# 1946| ValueCategory = prvalue +# 1946| getQualifier(): [VariableAccess] x642 +# 1946| Type = [Struct] String +# 1946| ValueCategory = lvalue +# 1946| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1946| Conversion = [BoolConversion] conversion to bool +# 1946| Type = [BoolType] bool +# 1946| Value = [CStyleCast] 0 +# 1946| ValueCategory = prvalue +# 1947| getStmt(643): [DoStmt] do (...) ... +# 1949| getCondition(): [Literal] 0 +# 1949| Type = [IntType] int +# 1949| Value = [Literal] 0 +# 1949| ValueCategory = prvalue +# 1947| getStmt(): [BlockStmt] { ... } +# 1948| getStmt(0): [DeclStmt] declaration +# 1948| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x643 +# 1948| Type = [Struct] String +# 1948| getVariable().getInitializer(): [Initializer] initializer for x643 +# 1948| getExpr(): [ConstructorCall] call to String +# 1948| Type = [VoidType] void +# 1948| ValueCategory = prvalue +# 1949| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1949| Type = [VoidType] void +# 1949| ValueCategory = prvalue +# 1949| getQualifier(): [VariableAccess] x643 +# 1949| Type = [Struct] String +# 1949| ValueCategory = lvalue +# 1949| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1949| Conversion = [BoolConversion] conversion to bool +# 1949| Type = [BoolType] bool +# 1949| Value = [CStyleCast] 0 +# 1949| ValueCategory = prvalue +# 1950| getStmt(644): [DoStmt] do (...) ... +# 1952| getCondition(): [Literal] 0 +# 1952| Type = [IntType] int +# 1952| Value = [Literal] 0 +# 1952| ValueCategory = prvalue +# 1950| getStmt(): [BlockStmt] { ... } +# 1951| getStmt(0): [DeclStmt] declaration +# 1951| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x644 +# 1951| Type = [Struct] String +# 1951| getVariable().getInitializer(): [Initializer] initializer for x644 +# 1951| getExpr(): [ConstructorCall] call to String +# 1951| Type = [VoidType] void +# 1951| ValueCategory = prvalue +# 1952| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1952| Type = [VoidType] void +# 1952| ValueCategory = prvalue +# 1952| getQualifier(): [VariableAccess] x644 +# 1952| Type = [Struct] String +# 1952| ValueCategory = lvalue +# 1952| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1952| Conversion = [BoolConversion] conversion to bool +# 1952| Type = [BoolType] bool +# 1952| Value = [CStyleCast] 0 +# 1952| ValueCategory = prvalue +# 1953| getStmt(645): [DoStmt] do (...) ... +# 1955| getCondition(): [Literal] 0 +# 1955| Type = [IntType] int +# 1955| Value = [Literal] 0 +# 1955| ValueCategory = prvalue +# 1953| getStmt(): [BlockStmt] { ... } +# 1954| getStmt(0): [DeclStmt] declaration +# 1954| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x645 +# 1954| Type = [Struct] String +# 1954| getVariable().getInitializer(): [Initializer] initializer for x645 +# 1954| getExpr(): [ConstructorCall] call to String +# 1954| Type = [VoidType] void +# 1954| ValueCategory = prvalue +# 1955| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1955| Type = [VoidType] void +# 1955| ValueCategory = prvalue +# 1955| getQualifier(): [VariableAccess] x645 +# 1955| Type = [Struct] String +# 1955| ValueCategory = lvalue +# 1955| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1955| Conversion = [BoolConversion] conversion to bool +# 1955| Type = [BoolType] bool +# 1955| Value = [CStyleCast] 0 +# 1955| ValueCategory = prvalue +# 1956| getStmt(646): [DoStmt] do (...) ... +# 1958| getCondition(): [Literal] 0 +# 1958| Type = [IntType] int +# 1958| Value = [Literal] 0 +# 1958| ValueCategory = prvalue +# 1956| getStmt(): [BlockStmt] { ... } +# 1957| getStmt(0): [DeclStmt] declaration +# 1957| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x646 +# 1957| Type = [Struct] String +# 1957| getVariable().getInitializer(): [Initializer] initializer for x646 +# 1957| getExpr(): [ConstructorCall] call to String +# 1957| Type = [VoidType] void +# 1957| ValueCategory = prvalue +# 1958| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1958| Type = [VoidType] void +# 1958| ValueCategory = prvalue +# 1958| getQualifier(): [VariableAccess] x646 +# 1958| Type = [Struct] String +# 1958| ValueCategory = lvalue +# 1958| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1958| Conversion = [BoolConversion] conversion to bool +# 1958| Type = [BoolType] bool +# 1958| Value = [CStyleCast] 0 +# 1958| ValueCategory = prvalue +# 1959| getStmt(647): [DoStmt] do (...) ... +# 1961| getCondition(): [Literal] 0 +# 1961| Type = [IntType] int +# 1961| Value = [Literal] 0 +# 1961| ValueCategory = prvalue +# 1959| getStmt(): [BlockStmt] { ... } +# 1960| getStmt(0): [DeclStmt] declaration +# 1960| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x647 +# 1960| Type = [Struct] String +# 1960| getVariable().getInitializer(): [Initializer] initializer for x647 +# 1960| getExpr(): [ConstructorCall] call to String +# 1960| Type = [VoidType] void +# 1960| ValueCategory = prvalue +# 1961| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1961| Type = [VoidType] void +# 1961| ValueCategory = prvalue +# 1961| getQualifier(): [VariableAccess] x647 +# 1961| Type = [Struct] String +# 1961| ValueCategory = lvalue +# 1961| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1961| Conversion = [BoolConversion] conversion to bool +# 1961| Type = [BoolType] bool +# 1961| Value = [CStyleCast] 0 +# 1961| ValueCategory = prvalue +# 1962| getStmt(648): [DoStmt] do (...) ... +# 1964| getCondition(): [Literal] 0 +# 1964| Type = [IntType] int +# 1964| Value = [Literal] 0 +# 1964| ValueCategory = prvalue +# 1962| getStmt(): [BlockStmt] { ... } +# 1963| getStmt(0): [DeclStmt] declaration +# 1963| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x648 +# 1963| Type = [Struct] String +# 1963| getVariable().getInitializer(): [Initializer] initializer for x648 +# 1963| getExpr(): [ConstructorCall] call to String +# 1963| Type = [VoidType] void +# 1963| ValueCategory = prvalue +# 1964| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1964| Type = [VoidType] void +# 1964| ValueCategory = prvalue +# 1964| getQualifier(): [VariableAccess] x648 +# 1964| Type = [Struct] String +# 1964| ValueCategory = lvalue +# 1964| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1964| Conversion = [BoolConversion] conversion to bool +# 1964| Type = [BoolType] bool +# 1964| Value = [CStyleCast] 0 +# 1964| ValueCategory = prvalue +# 1965| getStmt(649): [DoStmt] do (...) ... +# 1967| getCondition(): [Literal] 0 +# 1967| Type = [IntType] int +# 1967| Value = [Literal] 0 +# 1967| ValueCategory = prvalue +# 1965| getStmt(): [BlockStmt] { ... } +# 1966| getStmt(0): [DeclStmt] declaration +# 1966| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x649 +# 1966| Type = [Struct] String +# 1966| getVariable().getInitializer(): [Initializer] initializer for x649 +# 1966| getExpr(): [ConstructorCall] call to String +# 1966| Type = [VoidType] void +# 1966| ValueCategory = prvalue +# 1967| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1967| Type = [VoidType] void +# 1967| ValueCategory = prvalue +# 1967| getQualifier(): [VariableAccess] x649 +# 1967| Type = [Struct] String +# 1967| ValueCategory = lvalue +# 1967| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1967| Conversion = [BoolConversion] conversion to bool +# 1967| Type = [BoolType] bool +# 1967| Value = [CStyleCast] 0 +# 1967| ValueCategory = prvalue +# 1968| getStmt(650): [DoStmt] do (...) ... +# 1970| getCondition(): [Literal] 0 +# 1970| Type = [IntType] int +# 1970| Value = [Literal] 0 +# 1970| ValueCategory = prvalue +# 1968| getStmt(): [BlockStmt] { ... } +# 1969| getStmt(0): [DeclStmt] declaration +# 1969| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x650 +# 1969| Type = [Struct] String +# 1969| getVariable().getInitializer(): [Initializer] initializer for x650 +# 1969| getExpr(): [ConstructorCall] call to String +# 1969| Type = [VoidType] void +# 1969| ValueCategory = prvalue +# 1970| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1970| Type = [VoidType] void +# 1970| ValueCategory = prvalue +# 1970| getQualifier(): [VariableAccess] x650 +# 1970| Type = [Struct] String +# 1970| ValueCategory = lvalue +# 1970| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1970| Conversion = [BoolConversion] conversion to bool +# 1970| Type = [BoolType] bool +# 1970| Value = [CStyleCast] 0 +# 1970| ValueCategory = prvalue +# 1971| getStmt(651): [DoStmt] do (...) ... +# 1973| getCondition(): [Literal] 0 +# 1973| Type = [IntType] int +# 1973| Value = [Literal] 0 +# 1973| ValueCategory = prvalue +# 1971| getStmt(): [BlockStmt] { ... } +# 1972| getStmt(0): [DeclStmt] declaration +# 1972| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x651 +# 1972| Type = [Struct] String +# 1972| getVariable().getInitializer(): [Initializer] initializer for x651 +# 1972| getExpr(): [ConstructorCall] call to String +# 1972| Type = [VoidType] void +# 1972| ValueCategory = prvalue +# 1973| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1973| Type = [VoidType] void +# 1973| ValueCategory = prvalue +# 1973| getQualifier(): [VariableAccess] x651 +# 1973| Type = [Struct] String +# 1973| ValueCategory = lvalue +# 1973| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1973| Conversion = [BoolConversion] conversion to bool +# 1973| Type = [BoolType] bool +# 1973| Value = [CStyleCast] 0 +# 1973| ValueCategory = prvalue +# 1974| getStmt(652): [DoStmt] do (...) ... +# 1976| getCondition(): [Literal] 0 +# 1976| Type = [IntType] int +# 1976| Value = [Literal] 0 +# 1976| ValueCategory = prvalue +# 1974| getStmt(): [BlockStmt] { ... } +# 1975| getStmt(0): [DeclStmt] declaration +# 1975| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x652 +# 1975| Type = [Struct] String +# 1975| getVariable().getInitializer(): [Initializer] initializer for x652 +# 1975| getExpr(): [ConstructorCall] call to String +# 1975| Type = [VoidType] void +# 1975| ValueCategory = prvalue +# 1976| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1976| Type = [VoidType] void +# 1976| ValueCategory = prvalue +# 1976| getQualifier(): [VariableAccess] x652 +# 1976| Type = [Struct] String +# 1976| ValueCategory = lvalue +# 1976| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1976| Conversion = [BoolConversion] conversion to bool +# 1976| Type = [BoolType] bool +# 1976| Value = [CStyleCast] 0 +# 1976| ValueCategory = prvalue +# 1977| getStmt(653): [DoStmt] do (...) ... +# 1979| getCondition(): [Literal] 0 +# 1979| Type = [IntType] int +# 1979| Value = [Literal] 0 +# 1979| ValueCategory = prvalue +# 1977| getStmt(): [BlockStmt] { ... } +# 1978| getStmt(0): [DeclStmt] declaration +# 1978| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x653 +# 1978| Type = [Struct] String +# 1978| getVariable().getInitializer(): [Initializer] initializer for x653 +# 1978| getExpr(): [ConstructorCall] call to String +# 1978| Type = [VoidType] void +# 1978| ValueCategory = prvalue +# 1979| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1979| Type = [VoidType] void +# 1979| ValueCategory = prvalue +# 1979| getQualifier(): [VariableAccess] x653 +# 1979| Type = [Struct] String +# 1979| ValueCategory = lvalue +# 1979| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1979| Conversion = [BoolConversion] conversion to bool +# 1979| Type = [BoolType] bool +# 1979| Value = [CStyleCast] 0 +# 1979| ValueCategory = prvalue +# 1980| getStmt(654): [DoStmt] do (...) ... +# 1982| getCondition(): [Literal] 0 +# 1982| Type = [IntType] int +# 1982| Value = [Literal] 0 +# 1982| ValueCategory = prvalue +# 1980| getStmt(): [BlockStmt] { ... } +# 1981| getStmt(0): [DeclStmt] declaration +# 1981| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x654 +# 1981| Type = [Struct] String +# 1981| getVariable().getInitializer(): [Initializer] initializer for x654 +# 1981| getExpr(): [ConstructorCall] call to String +# 1981| Type = [VoidType] void +# 1981| ValueCategory = prvalue +# 1982| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1982| Type = [VoidType] void +# 1982| ValueCategory = prvalue +# 1982| getQualifier(): [VariableAccess] x654 +# 1982| Type = [Struct] String +# 1982| ValueCategory = lvalue +# 1982| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1982| Conversion = [BoolConversion] conversion to bool +# 1982| Type = [BoolType] bool +# 1982| Value = [CStyleCast] 0 +# 1982| ValueCategory = prvalue +# 1983| getStmt(655): [DoStmt] do (...) ... +# 1985| getCondition(): [Literal] 0 +# 1985| Type = [IntType] int +# 1985| Value = [Literal] 0 +# 1985| ValueCategory = prvalue +# 1983| getStmt(): [BlockStmt] { ... } +# 1984| getStmt(0): [DeclStmt] declaration +# 1984| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x655 +# 1984| Type = [Struct] String +# 1984| getVariable().getInitializer(): [Initializer] initializer for x655 +# 1984| getExpr(): [ConstructorCall] call to String +# 1984| Type = [VoidType] void +# 1984| ValueCategory = prvalue +# 1985| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1985| Type = [VoidType] void +# 1985| ValueCategory = prvalue +# 1985| getQualifier(): [VariableAccess] x655 +# 1985| Type = [Struct] String +# 1985| ValueCategory = lvalue +# 1985| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1985| Conversion = [BoolConversion] conversion to bool +# 1985| Type = [BoolType] bool +# 1985| Value = [CStyleCast] 0 +# 1985| ValueCategory = prvalue +# 1986| getStmt(656): [DoStmt] do (...) ... +# 1988| getCondition(): [Literal] 0 +# 1988| Type = [IntType] int +# 1988| Value = [Literal] 0 +# 1988| ValueCategory = prvalue +# 1986| getStmt(): [BlockStmt] { ... } +# 1987| getStmt(0): [DeclStmt] declaration +# 1987| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x656 +# 1987| Type = [Struct] String +# 1987| getVariable().getInitializer(): [Initializer] initializer for x656 +# 1987| getExpr(): [ConstructorCall] call to String +# 1987| Type = [VoidType] void +# 1987| ValueCategory = prvalue +# 1988| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1988| Type = [VoidType] void +# 1988| ValueCategory = prvalue +# 1988| getQualifier(): [VariableAccess] x656 +# 1988| Type = [Struct] String +# 1988| ValueCategory = lvalue +# 1988| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1988| Conversion = [BoolConversion] conversion to bool +# 1988| Type = [BoolType] bool +# 1988| Value = [CStyleCast] 0 +# 1988| ValueCategory = prvalue +# 1989| getStmt(657): [DoStmt] do (...) ... +# 1991| getCondition(): [Literal] 0 +# 1991| Type = [IntType] int +# 1991| Value = [Literal] 0 +# 1991| ValueCategory = prvalue +# 1989| getStmt(): [BlockStmt] { ... } +# 1990| getStmt(0): [DeclStmt] declaration +# 1990| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x657 +# 1990| Type = [Struct] String +# 1990| getVariable().getInitializer(): [Initializer] initializer for x657 +# 1990| getExpr(): [ConstructorCall] call to String +# 1990| Type = [VoidType] void +# 1990| ValueCategory = prvalue +# 1991| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1991| Type = [VoidType] void +# 1991| ValueCategory = prvalue +# 1991| getQualifier(): [VariableAccess] x657 +# 1991| Type = [Struct] String +# 1991| ValueCategory = lvalue +# 1991| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1991| Conversion = [BoolConversion] conversion to bool +# 1991| Type = [BoolType] bool +# 1991| Value = [CStyleCast] 0 +# 1991| ValueCategory = prvalue +# 1992| getStmt(658): [DoStmt] do (...) ... +# 1994| getCondition(): [Literal] 0 +# 1994| Type = [IntType] int +# 1994| Value = [Literal] 0 +# 1994| ValueCategory = prvalue +# 1992| getStmt(): [BlockStmt] { ... } +# 1993| getStmt(0): [DeclStmt] declaration +# 1993| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x658 +# 1993| Type = [Struct] String +# 1993| getVariable().getInitializer(): [Initializer] initializer for x658 +# 1993| getExpr(): [ConstructorCall] call to String +# 1993| Type = [VoidType] void +# 1993| ValueCategory = prvalue +# 1994| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1994| Type = [VoidType] void +# 1994| ValueCategory = prvalue +# 1994| getQualifier(): [VariableAccess] x658 +# 1994| Type = [Struct] String +# 1994| ValueCategory = lvalue +# 1994| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1994| Conversion = [BoolConversion] conversion to bool +# 1994| Type = [BoolType] bool +# 1994| Value = [CStyleCast] 0 +# 1994| ValueCategory = prvalue +# 1995| getStmt(659): [DoStmt] do (...) ... +# 1997| getCondition(): [Literal] 0 +# 1997| Type = [IntType] int +# 1997| Value = [Literal] 0 +# 1997| ValueCategory = prvalue +# 1995| getStmt(): [BlockStmt] { ... } +# 1996| getStmt(0): [DeclStmt] declaration +# 1996| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x659 +# 1996| Type = [Struct] String +# 1996| getVariable().getInitializer(): [Initializer] initializer for x659 +# 1996| getExpr(): [ConstructorCall] call to String +# 1996| Type = [VoidType] void +# 1996| ValueCategory = prvalue +# 1997| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 1997| Type = [VoidType] void +# 1997| ValueCategory = prvalue +# 1997| getQualifier(): [VariableAccess] x659 +# 1997| Type = [Struct] String +# 1997| ValueCategory = lvalue +# 1997| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 1997| Conversion = [BoolConversion] conversion to bool +# 1997| Type = [BoolType] bool +# 1997| Value = [CStyleCast] 0 +# 1997| ValueCategory = prvalue +# 1998| getStmt(660): [DoStmt] do (...) ... +# 2000| getCondition(): [Literal] 0 +# 2000| Type = [IntType] int +# 2000| Value = [Literal] 0 +# 2000| ValueCategory = prvalue +# 1998| getStmt(): [BlockStmt] { ... } +# 1999| getStmt(0): [DeclStmt] declaration +# 1999| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x660 +# 1999| Type = [Struct] String +# 1999| getVariable().getInitializer(): [Initializer] initializer for x660 +# 1999| getExpr(): [ConstructorCall] call to String +# 1999| Type = [VoidType] void +# 1999| ValueCategory = prvalue +# 2000| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2000| Type = [VoidType] void +# 2000| ValueCategory = prvalue +# 2000| getQualifier(): [VariableAccess] x660 +# 2000| Type = [Struct] String +# 2000| ValueCategory = lvalue +# 2000| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2000| Conversion = [BoolConversion] conversion to bool +# 2000| Type = [BoolType] bool +# 2000| Value = [CStyleCast] 0 +# 2000| ValueCategory = prvalue +# 2001| getStmt(661): [DoStmt] do (...) ... +# 2003| getCondition(): [Literal] 0 +# 2003| Type = [IntType] int +# 2003| Value = [Literal] 0 +# 2003| ValueCategory = prvalue +# 2001| getStmt(): [BlockStmt] { ... } +# 2002| getStmt(0): [DeclStmt] declaration +# 2002| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x661 +# 2002| Type = [Struct] String +# 2002| getVariable().getInitializer(): [Initializer] initializer for x661 +# 2002| getExpr(): [ConstructorCall] call to String +# 2002| Type = [VoidType] void +# 2002| ValueCategory = prvalue +# 2003| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2003| Type = [VoidType] void +# 2003| ValueCategory = prvalue +# 2003| getQualifier(): [VariableAccess] x661 +# 2003| Type = [Struct] String +# 2003| ValueCategory = lvalue +# 2003| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2003| Conversion = [BoolConversion] conversion to bool +# 2003| Type = [BoolType] bool +# 2003| Value = [CStyleCast] 0 +# 2003| ValueCategory = prvalue +# 2004| getStmt(662): [DoStmt] do (...) ... +# 2006| getCondition(): [Literal] 0 +# 2006| Type = [IntType] int +# 2006| Value = [Literal] 0 +# 2006| ValueCategory = prvalue +# 2004| getStmt(): [BlockStmt] { ... } +# 2005| getStmt(0): [DeclStmt] declaration +# 2005| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x662 +# 2005| Type = [Struct] String +# 2005| getVariable().getInitializer(): [Initializer] initializer for x662 +# 2005| getExpr(): [ConstructorCall] call to String +# 2005| Type = [VoidType] void +# 2005| ValueCategory = prvalue +# 2006| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2006| Type = [VoidType] void +# 2006| ValueCategory = prvalue +# 2006| getQualifier(): [VariableAccess] x662 +# 2006| Type = [Struct] String +# 2006| ValueCategory = lvalue +# 2006| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2006| Conversion = [BoolConversion] conversion to bool +# 2006| Type = [BoolType] bool +# 2006| Value = [CStyleCast] 0 +# 2006| ValueCategory = prvalue +# 2007| getStmt(663): [DoStmt] do (...) ... +# 2009| getCondition(): [Literal] 0 +# 2009| Type = [IntType] int +# 2009| Value = [Literal] 0 +# 2009| ValueCategory = prvalue +# 2007| getStmt(): [BlockStmt] { ... } +# 2008| getStmt(0): [DeclStmt] declaration +# 2008| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x663 +# 2008| Type = [Struct] String +# 2008| getVariable().getInitializer(): [Initializer] initializer for x663 +# 2008| getExpr(): [ConstructorCall] call to String +# 2008| Type = [VoidType] void +# 2008| ValueCategory = prvalue +# 2009| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2009| Type = [VoidType] void +# 2009| ValueCategory = prvalue +# 2009| getQualifier(): [VariableAccess] x663 +# 2009| Type = [Struct] String +# 2009| ValueCategory = lvalue +# 2009| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2009| Conversion = [BoolConversion] conversion to bool +# 2009| Type = [BoolType] bool +# 2009| Value = [CStyleCast] 0 +# 2009| ValueCategory = prvalue +# 2010| getStmt(664): [DoStmt] do (...) ... +# 2012| getCondition(): [Literal] 0 +# 2012| Type = [IntType] int +# 2012| Value = [Literal] 0 +# 2012| ValueCategory = prvalue +# 2010| getStmt(): [BlockStmt] { ... } +# 2011| getStmt(0): [DeclStmt] declaration +# 2011| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x664 +# 2011| Type = [Struct] String +# 2011| getVariable().getInitializer(): [Initializer] initializer for x664 +# 2011| getExpr(): [ConstructorCall] call to String +# 2011| Type = [VoidType] void +# 2011| ValueCategory = prvalue +# 2012| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2012| Type = [VoidType] void +# 2012| ValueCategory = prvalue +# 2012| getQualifier(): [VariableAccess] x664 +# 2012| Type = [Struct] String +# 2012| ValueCategory = lvalue +# 2012| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2012| Conversion = [BoolConversion] conversion to bool +# 2012| Type = [BoolType] bool +# 2012| Value = [CStyleCast] 0 +# 2012| ValueCategory = prvalue +# 2013| getStmt(665): [DoStmt] do (...) ... +# 2015| getCondition(): [Literal] 0 +# 2015| Type = [IntType] int +# 2015| Value = [Literal] 0 +# 2015| ValueCategory = prvalue +# 2013| getStmt(): [BlockStmt] { ... } +# 2014| getStmt(0): [DeclStmt] declaration +# 2014| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x665 +# 2014| Type = [Struct] String +# 2014| getVariable().getInitializer(): [Initializer] initializer for x665 +# 2014| getExpr(): [ConstructorCall] call to String +# 2014| Type = [VoidType] void +# 2014| ValueCategory = prvalue +# 2015| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2015| Type = [VoidType] void +# 2015| ValueCategory = prvalue +# 2015| getQualifier(): [VariableAccess] x665 +# 2015| Type = [Struct] String +# 2015| ValueCategory = lvalue +# 2015| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2015| Conversion = [BoolConversion] conversion to bool +# 2015| Type = [BoolType] bool +# 2015| Value = [CStyleCast] 0 +# 2015| ValueCategory = prvalue +# 2016| getStmt(666): [DoStmt] do (...) ... +# 2018| getCondition(): [Literal] 0 +# 2018| Type = [IntType] int +# 2018| Value = [Literal] 0 +# 2018| ValueCategory = prvalue +# 2016| getStmt(): [BlockStmt] { ... } +# 2017| getStmt(0): [DeclStmt] declaration +# 2017| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x666 +# 2017| Type = [Struct] String +# 2017| getVariable().getInitializer(): [Initializer] initializer for x666 +# 2017| getExpr(): [ConstructorCall] call to String +# 2017| Type = [VoidType] void +# 2017| ValueCategory = prvalue +# 2018| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2018| Type = [VoidType] void +# 2018| ValueCategory = prvalue +# 2018| getQualifier(): [VariableAccess] x666 +# 2018| Type = [Struct] String +# 2018| ValueCategory = lvalue +# 2018| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2018| Conversion = [BoolConversion] conversion to bool +# 2018| Type = [BoolType] bool +# 2018| Value = [CStyleCast] 0 +# 2018| ValueCategory = prvalue +# 2019| getStmt(667): [DoStmt] do (...) ... +# 2021| getCondition(): [Literal] 0 +# 2021| Type = [IntType] int +# 2021| Value = [Literal] 0 +# 2021| ValueCategory = prvalue +# 2019| getStmt(): [BlockStmt] { ... } +# 2020| getStmt(0): [DeclStmt] declaration +# 2020| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x667 +# 2020| Type = [Struct] String +# 2020| getVariable().getInitializer(): [Initializer] initializer for x667 +# 2020| getExpr(): [ConstructorCall] call to String +# 2020| Type = [VoidType] void +# 2020| ValueCategory = prvalue +# 2021| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2021| Type = [VoidType] void +# 2021| ValueCategory = prvalue +# 2021| getQualifier(): [VariableAccess] x667 +# 2021| Type = [Struct] String +# 2021| ValueCategory = lvalue +# 2021| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2021| Conversion = [BoolConversion] conversion to bool +# 2021| Type = [BoolType] bool +# 2021| Value = [CStyleCast] 0 +# 2021| ValueCategory = prvalue +# 2022| getStmt(668): [DoStmt] do (...) ... +# 2024| getCondition(): [Literal] 0 +# 2024| Type = [IntType] int +# 2024| Value = [Literal] 0 +# 2024| ValueCategory = prvalue +# 2022| getStmt(): [BlockStmt] { ... } +# 2023| getStmt(0): [DeclStmt] declaration +# 2023| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x668 +# 2023| Type = [Struct] String +# 2023| getVariable().getInitializer(): [Initializer] initializer for x668 +# 2023| getExpr(): [ConstructorCall] call to String +# 2023| Type = [VoidType] void +# 2023| ValueCategory = prvalue +# 2024| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2024| Type = [VoidType] void +# 2024| ValueCategory = prvalue +# 2024| getQualifier(): [VariableAccess] x668 +# 2024| Type = [Struct] String +# 2024| ValueCategory = lvalue +# 2024| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2024| Conversion = [BoolConversion] conversion to bool +# 2024| Type = [BoolType] bool +# 2024| Value = [CStyleCast] 0 +# 2024| ValueCategory = prvalue +# 2025| getStmt(669): [DoStmt] do (...) ... +# 2027| getCondition(): [Literal] 0 +# 2027| Type = [IntType] int +# 2027| Value = [Literal] 0 +# 2027| ValueCategory = prvalue +# 2025| getStmt(): [BlockStmt] { ... } +# 2026| getStmt(0): [DeclStmt] declaration +# 2026| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x669 +# 2026| Type = [Struct] String +# 2026| getVariable().getInitializer(): [Initializer] initializer for x669 +# 2026| getExpr(): [ConstructorCall] call to String +# 2026| Type = [VoidType] void +# 2026| ValueCategory = prvalue +# 2027| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2027| Type = [VoidType] void +# 2027| ValueCategory = prvalue +# 2027| getQualifier(): [VariableAccess] x669 +# 2027| Type = [Struct] String +# 2027| ValueCategory = lvalue +# 2027| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2027| Conversion = [BoolConversion] conversion to bool +# 2027| Type = [BoolType] bool +# 2027| Value = [CStyleCast] 0 +# 2027| ValueCategory = prvalue +# 2028| getStmt(670): [DoStmt] do (...) ... +# 2030| getCondition(): [Literal] 0 +# 2030| Type = [IntType] int +# 2030| Value = [Literal] 0 +# 2030| ValueCategory = prvalue +# 2028| getStmt(): [BlockStmt] { ... } +# 2029| getStmt(0): [DeclStmt] declaration +# 2029| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x670 +# 2029| Type = [Struct] String +# 2029| getVariable().getInitializer(): [Initializer] initializer for x670 +# 2029| getExpr(): [ConstructorCall] call to String +# 2029| Type = [VoidType] void +# 2029| ValueCategory = prvalue +# 2030| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2030| Type = [VoidType] void +# 2030| ValueCategory = prvalue +# 2030| getQualifier(): [VariableAccess] x670 +# 2030| Type = [Struct] String +# 2030| ValueCategory = lvalue +# 2030| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2030| Conversion = [BoolConversion] conversion to bool +# 2030| Type = [BoolType] bool +# 2030| Value = [CStyleCast] 0 +# 2030| ValueCategory = prvalue +# 2031| getStmt(671): [DoStmt] do (...) ... +# 2033| getCondition(): [Literal] 0 +# 2033| Type = [IntType] int +# 2033| Value = [Literal] 0 +# 2033| ValueCategory = prvalue +# 2031| getStmt(): [BlockStmt] { ... } +# 2032| getStmt(0): [DeclStmt] declaration +# 2032| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x671 +# 2032| Type = [Struct] String +# 2032| getVariable().getInitializer(): [Initializer] initializer for x671 +# 2032| getExpr(): [ConstructorCall] call to String +# 2032| Type = [VoidType] void +# 2032| ValueCategory = prvalue +# 2033| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2033| Type = [VoidType] void +# 2033| ValueCategory = prvalue +# 2033| getQualifier(): [VariableAccess] x671 +# 2033| Type = [Struct] String +# 2033| ValueCategory = lvalue +# 2033| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2033| Conversion = [BoolConversion] conversion to bool +# 2033| Type = [BoolType] bool +# 2033| Value = [CStyleCast] 0 +# 2033| ValueCategory = prvalue +# 2034| getStmt(672): [DoStmt] do (...) ... +# 2036| getCondition(): [Literal] 0 +# 2036| Type = [IntType] int +# 2036| Value = [Literal] 0 +# 2036| ValueCategory = prvalue +# 2034| getStmt(): [BlockStmt] { ... } +# 2035| getStmt(0): [DeclStmt] declaration +# 2035| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x672 +# 2035| Type = [Struct] String +# 2035| getVariable().getInitializer(): [Initializer] initializer for x672 +# 2035| getExpr(): [ConstructorCall] call to String +# 2035| Type = [VoidType] void +# 2035| ValueCategory = prvalue +# 2036| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2036| Type = [VoidType] void +# 2036| ValueCategory = prvalue +# 2036| getQualifier(): [VariableAccess] x672 +# 2036| Type = [Struct] String +# 2036| ValueCategory = lvalue +# 2036| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2036| Conversion = [BoolConversion] conversion to bool +# 2036| Type = [BoolType] bool +# 2036| Value = [CStyleCast] 0 +# 2036| ValueCategory = prvalue +# 2037| getStmt(673): [DoStmt] do (...) ... +# 2039| getCondition(): [Literal] 0 +# 2039| Type = [IntType] int +# 2039| Value = [Literal] 0 +# 2039| ValueCategory = prvalue +# 2037| getStmt(): [BlockStmt] { ... } +# 2038| getStmt(0): [DeclStmt] declaration +# 2038| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x673 +# 2038| Type = [Struct] String +# 2038| getVariable().getInitializer(): [Initializer] initializer for x673 +# 2038| getExpr(): [ConstructorCall] call to String +# 2038| Type = [VoidType] void +# 2038| ValueCategory = prvalue +# 2039| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2039| Type = [VoidType] void +# 2039| ValueCategory = prvalue +# 2039| getQualifier(): [VariableAccess] x673 +# 2039| Type = [Struct] String +# 2039| ValueCategory = lvalue +# 2039| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2039| Conversion = [BoolConversion] conversion to bool +# 2039| Type = [BoolType] bool +# 2039| Value = [CStyleCast] 0 +# 2039| ValueCategory = prvalue +# 2040| getStmt(674): [DoStmt] do (...) ... +# 2042| getCondition(): [Literal] 0 +# 2042| Type = [IntType] int +# 2042| Value = [Literal] 0 +# 2042| ValueCategory = prvalue +# 2040| getStmt(): [BlockStmt] { ... } +# 2041| getStmt(0): [DeclStmt] declaration +# 2041| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x674 +# 2041| Type = [Struct] String +# 2041| getVariable().getInitializer(): [Initializer] initializer for x674 +# 2041| getExpr(): [ConstructorCall] call to String +# 2041| Type = [VoidType] void +# 2041| ValueCategory = prvalue +# 2042| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2042| Type = [VoidType] void +# 2042| ValueCategory = prvalue +# 2042| getQualifier(): [VariableAccess] x674 +# 2042| Type = [Struct] String +# 2042| ValueCategory = lvalue +# 2042| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2042| Conversion = [BoolConversion] conversion to bool +# 2042| Type = [BoolType] bool +# 2042| Value = [CStyleCast] 0 +# 2042| ValueCategory = prvalue +# 2043| getStmt(675): [DoStmt] do (...) ... +# 2045| getCondition(): [Literal] 0 +# 2045| Type = [IntType] int +# 2045| Value = [Literal] 0 +# 2045| ValueCategory = prvalue +# 2043| getStmt(): [BlockStmt] { ... } +# 2044| getStmt(0): [DeclStmt] declaration +# 2044| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x675 +# 2044| Type = [Struct] String +# 2044| getVariable().getInitializer(): [Initializer] initializer for x675 +# 2044| getExpr(): [ConstructorCall] call to String +# 2044| Type = [VoidType] void +# 2044| ValueCategory = prvalue +# 2045| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2045| Type = [VoidType] void +# 2045| ValueCategory = prvalue +# 2045| getQualifier(): [VariableAccess] x675 +# 2045| Type = [Struct] String +# 2045| ValueCategory = lvalue +# 2045| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2045| Conversion = [BoolConversion] conversion to bool +# 2045| Type = [BoolType] bool +# 2045| Value = [CStyleCast] 0 +# 2045| ValueCategory = prvalue +# 2046| getStmt(676): [DoStmt] do (...) ... +# 2048| getCondition(): [Literal] 0 +# 2048| Type = [IntType] int +# 2048| Value = [Literal] 0 +# 2048| ValueCategory = prvalue +# 2046| getStmt(): [BlockStmt] { ... } +# 2047| getStmt(0): [DeclStmt] declaration +# 2047| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x676 +# 2047| Type = [Struct] String +# 2047| getVariable().getInitializer(): [Initializer] initializer for x676 +# 2047| getExpr(): [ConstructorCall] call to String +# 2047| Type = [VoidType] void +# 2047| ValueCategory = prvalue +# 2048| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2048| Type = [VoidType] void +# 2048| ValueCategory = prvalue +# 2048| getQualifier(): [VariableAccess] x676 +# 2048| Type = [Struct] String +# 2048| ValueCategory = lvalue +# 2048| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2048| Conversion = [BoolConversion] conversion to bool +# 2048| Type = [BoolType] bool +# 2048| Value = [CStyleCast] 0 +# 2048| ValueCategory = prvalue +# 2049| getStmt(677): [DoStmt] do (...) ... +# 2051| getCondition(): [Literal] 0 +# 2051| Type = [IntType] int +# 2051| Value = [Literal] 0 +# 2051| ValueCategory = prvalue +# 2049| getStmt(): [BlockStmt] { ... } +# 2050| getStmt(0): [DeclStmt] declaration +# 2050| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x677 +# 2050| Type = [Struct] String +# 2050| getVariable().getInitializer(): [Initializer] initializer for x677 +# 2050| getExpr(): [ConstructorCall] call to String +# 2050| Type = [VoidType] void +# 2050| ValueCategory = prvalue +# 2051| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2051| Type = [VoidType] void +# 2051| ValueCategory = prvalue +# 2051| getQualifier(): [VariableAccess] x677 +# 2051| Type = [Struct] String +# 2051| ValueCategory = lvalue +# 2051| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2051| Conversion = [BoolConversion] conversion to bool +# 2051| Type = [BoolType] bool +# 2051| Value = [CStyleCast] 0 +# 2051| ValueCategory = prvalue +# 2052| getStmt(678): [DoStmt] do (...) ... +# 2054| getCondition(): [Literal] 0 +# 2054| Type = [IntType] int +# 2054| Value = [Literal] 0 +# 2054| ValueCategory = prvalue +# 2052| getStmt(): [BlockStmt] { ... } +# 2053| getStmt(0): [DeclStmt] declaration +# 2053| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x678 +# 2053| Type = [Struct] String +# 2053| getVariable().getInitializer(): [Initializer] initializer for x678 +# 2053| getExpr(): [ConstructorCall] call to String +# 2053| Type = [VoidType] void +# 2053| ValueCategory = prvalue +# 2054| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2054| Type = [VoidType] void +# 2054| ValueCategory = prvalue +# 2054| getQualifier(): [VariableAccess] x678 +# 2054| Type = [Struct] String +# 2054| ValueCategory = lvalue +# 2054| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2054| Conversion = [BoolConversion] conversion to bool +# 2054| Type = [BoolType] bool +# 2054| Value = [CStyleCast] 0 +# 2054| ValueCategory = prvalue +# 2055| getStmt(679): [DoStmt] do (...) ... +# 2057| getCondition(): [Literal] 0 +# 2057| Type = [IntType] int +# 2057| Value = [Literal] 0 +# 2057| ValueCategory = prvalue +# 2055| getStmt(): [BlockStmt] { ... } +# 2056| getStmt(0): [DeclStmt] declaration +# 2056| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x679 +# 2056| Type = [Struct] String +# 2056| getVariable().getInitializer(): [Initializer] initializer for x679 +# 2056| getExpr(): [ConstructorCall] call to String +# 2056| Type = [VoidType] void +# 2056| ValueCategory = prvalue +# 2057| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2057| Type = [VoidType] void +# 2057| ValueCategory = prvalue +# 2057| getQualifier(): [VariableAccess] x679 +# 2057| Type = [Struct] String +# 2057| ValueCategory = lvalue +# 2057| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2057| Conversion = [BoolConversion] conversion to bool +# 2057| Type = [BoolType] bool +# 2057| Value = [CStyleCast] 0 +# 2057| ValueCategory = prvalue +# 2058| getStmt(680): [DoStmt] do (...) ... +# 2060| getCondition(): [Literal] 0 +# 2060| Type = [IntType] int +# 2060| Value = [Literal] 0 +# 2060| ValueCategory = prvalue +# 2058| getStmt(): [BlockStmt] { ... } +# 2059| getStmt(0): [DeclStmt] declaration +# 2059| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x680 +# 2059| Type = [Struct] String +# 2059| getVariable().getInitializer(): [Initializer] initializer for x680 +# 2059| getExpr(): [ConstructorCall] call to String +# 2059| Type = [VoidType] void +# 2059| ValueCategory = prvalue +# 2060| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2060| Type = [VoidType] void +# 2060| ValueCategory = prvalue +# 2060| getQualifier(): [VariableAccess] x680 +# 2060| Type = [Struct] String +# 2060| ValueCategory = lvalue +# 2060| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2060| Conversion = [BoolConversion] conversion to bool +# 2060| Type = [BoolType] bool +# 2060| Value = [CStyleCast] 0 +# 2060| ValueCategory = prvalue +# 2061| getStmt(681): [DoStmt] do (...) ... +# 2063| getCondition(): [Literal] 0 +# 2063| Type = [IntType] int +# 2063| Value = [Literal] 0 +# 2063| ValueCategory = prvalue +# 2061| getStmt(): [BlockStmt] { ... } +# 2062| getStmt(0): [DeclStmt] declaration +# 2062| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x681 +# 2062| Type = [Struct] String +# 2062| getVariable().getInitializer(): [Initializer] initializer for x681 +# 2062| getExpr(): [ConstructorCall] call to String +# 2062| Type = [VoidType] void +# 2062| ValueCategory = prvalue +# 2063| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2063| Type = [VoidType] void +# 2063| ValueCategory = prvalue +# 2063| getQualifier(): [VariableAccess] x681 +# 2063| Type = [Struct] String +# 2063| ValueCategory = lvalue +# 2063| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2063| Conversion = [BoolConversion] conversion to bool +# 2063| Type = [BoolType] bool +# 2063| Value = [CStyleCast] 0 +# 2063| ValueCategory = prvalue +# 2064| getStmt(682): [DoStmt] do (...) ... +# 2066| getCondition(): [Literal] 0 +# 2066| Type = [IntType] int +# 2066| Value = [Literal] 0 +# 2066| ValueCategory = prvalue +# 2064| getStmt(): [BlockStmt] { ... } +# 2065| getStmt(0): [DeclStmt] declaration +# 2065| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x682 +# 2065| Type = [Struct] String +# 2065| getVariable().getInitializer(): [Initializer] initializer for x682 +# 2065| getExpr(): [ConstructorCall] call to String +# 2065| Type = [VoidType] void +# 2065| ValueCategory = prvalue +# 2066| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2066| Type = [VoidType] void +# 2066| ValueCategory = prvalue +# 2066| getQualifier(): [VariableAccess] x682 +# 2066| Type = [Struct] String +# 2066| ValueCategory = lvalue +# 2066| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2066| Conversion = [BoolConversion] conversion to bool +# 2066| Type = [BoolType] bool +# 2066| Value = [CStyleCast] 0 +# 2066| ValueCategory = prvalue +# 2067| getStmt(683): [DoStmt] do (...) ... +# 2069| getCondition(): [Literal] 0 +# 2069| Type = [IntType] int +# 2069| Value = [Literal] 0 +# 2069| ValueCategory = prvalue +# 2067| getStmt(): [BlockStmt] { ... } +# 2068| getStmt(0): [DeclStmt] declaration +# 2068| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x683 +# 2068| Type = [Struct] String +# 2068| getVariable().getInitializer(): [Initializer] initializer for x683 +# 2068| getExpr(): [ConstructorCall] call to String +# 2068| Type = [VoidType] void +# 2068| ValueCategory = prvalue +# 2069| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2069| Type = [VoidType] void +# 2069| ValueCategory = prvalue +# 2069| getQualifier(): [VariableAccess] x683 +# 2069| Type = [Struct] String +# 2069| ValueCategory = lvalue +# 2069| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2069| Conversion = [BoolConversion] conversion to bool +# 2069| Type = [BoolType] bool +# 2069| Value = [CStyleCast] 0 +# 2069| ValueCategory = prvalue +# 2070| getStmt(684): [DoStmt] do (...) ... +# 2072| getCondition(): [Literal] 0 +# 2072| Type = [IntType] int +# 2072| Value = [Literal] 0 +# 2072| ValueCategory = prvalue +# 2070| getStmt(): [BlockStmt] { ... } +# 2071| getStmt(0): [DeclStmt] declaration +# 2071| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x684 +# 2071| Type = [Struct] String +# 2071| getVariable().getInitializer(): [Initializer] initializer for x684 +# 2071| getExpr(): [ConstructorCall] call to String +# 2071| Type = [VoidType] void +# 2071| ValueCategory = prvalue +# 2072| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2072| Type = [VoidType] void +# 2072| ValueCategory = prvalue +# 2072| getQualifier(): [VariableAccess] x684 +# 2072| Type = [Struct] String +# 2072| ValueCategory = lvalue +# 2072| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2072| Conversion = [BoolConversion] conversion to bool +# 2072| Type = [BoolType] bool +# 2072| Value = [CStyleCast] 0 +# 2072| ValueCategory = prvalue +# 2073| getStmt(685): [DoStmt] do (...) ... +# 2075| getCondition(): [Literal] 0 +# 2075| Type = [IntType] int +# 2075| Value = [Literal] 0 +# 2075| ValueCategory = prvalue +# 2073| getStmt(): [BlockStmt] { ... } +# 2074| getStmt(0): [DeclStmt] declaration +# 2074| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x685 +# 2074| Type = [Struct] String +# 2074| getVariable().getInitializer(): [Initializer] initializer for x685 +# 2074| getExpr(): [ConstructorCall] call to String +# 2074| Type = [VoidType] void +# 2074| ValueCategory = prvalue +# 2075| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2075| Type = [VoidType] void +# 2075| ValueCategory = prvalue +# 2075| getQualifier(): [VariableAccess] x685 +# 2075| Type = [Struct] String +# 2075| ValueCategory = lvalue +# 2075| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2075| Conversion = [BoolConversion] conversion to bool +# 2075| Type = [BoolType] bool +# 2075| Value = [CStyleCast] 0 +# 2075| ValueCategory = prvalue +# 2076| getStmt(686): [DoStmt] do (...) ... +# 2078| getCondition(): [Literal] 0 +# 2078| Type = [IntType] int +# 2078| Value = [Literal] 0 +# 2078| ValueCategory = prvalue +# 2076| getStmt(): [BlockStmt] { ... } +# 2077| getStmt(0): [DeclStmt] declaration +# 2077| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x686 +# 2077| Type = [Struct] String +# 2077| getVariable().getInitializer(): [Initializer] initializer for x686 +# 2077| getExpr(): [ConstructorCall] call to String +# 2077| Type = [VoidType] void +# 2077| ValueCategory = prvalue +# 2078| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2078| Type = [VoidType] void +# 2078| ValueCategory = prvalue +# 2078| getQualifier(): [VariableAccess] x686 +# 2078| Type = [Struct] String +# 2078| ValueCategory = lvalue +# 2078| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2078| Conversion = [BoolConversion] conversion to bool +# 2078| Type = [BoolType] bool +# 2078| Value = [CStyleCast] 0 +# 2078| ValueCategory = prvalue +# 2079| getStmt(687): [DoStmt] do (...) ... +# 2081| getCondition(): [Literal] 0 +# 2081| Type = [IntType] int +# 2081| Value = [Literal] 0 +# 2081| ValueCategory = prvalue +# 2079| getStmt(): [BlockStmt] { ... } +# 2080| getStmt(0): [DeclStmt] declaration +# 2080| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x687 +# 2080| Type = [Struct] String +# 2080| getVariable().getInitializer(): [Initializer] initializer for x687 +# 2080| getExpr(): [ConstructorCall] call to String +# 2080| Type = [VoidType] void +# 2080| ValueCategory = prvalue +# 2081| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2081| Type = [VoidType] void +# 2081| ValueCategory = prvalue +# 2081| getQualifier(): [VariableAccess] x687 +# 2081| Type = [Struct] String +# 2081| ValueCategory = lvalue +# 2081| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2081| Conversion = [BoolConversion] conversion to bool +# 2081| Type = [BoolType] bool +# 2081| Value = [CStyleCast] 0 +# 2081| ValueCategory = prvalue +# 2082| getStmt(688): [DoStmt] do (...) ... +# 2084| getCondition(): [Literal] 0 +# 2084| Type = [IntType] int +# 2084| Value = [Literal] 0 +# 2084| ValueCategory = prvalue +# 2082| getStmt(): [BlockStmt] { ... } +# 2083| getStmt(0): [DeclStmt] declaration +# 2083| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x688 +# 2083| Type = [Struct] String +# 2083| getVariable().getInitializer(): [Initializer] initializer for x688 +# 2083| getExpr(): [ConstructorCall] call to String +# 2083| Type = [VoidType] void +# 2083| ValueCategory = prvalue +# 2084| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2084| Type = [VoidType] void +# 2084| ValueCategory = prvalue +# 2084| getQualifier(): [VariableAccess] x688 +# 2084| Type = [Struct] String +# 2084| ValueCategory = lvalue +# 2084| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2084| Conversion = [BoolConversion] conversion to bool +# 2084| Type = [BoolType] bool +# 2084| Value = [CStyleCast] 0 +# 2084| ValueCategory = prvalue +# 2085| getStmt(689): [DoStmt] do (...) ... +# 2087| getCondition(): [Literal] 0 +# 2087| Type = [IntType] int +# 2087| Value = [Literal] 0 +# 2087| ValueCategory = prvalue +# 2085| getStmt(): [BlockStmt] { ... } +# 2086| getStmt(0): [DeclStmt] declaration +# 2086| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x689 +# 2086| Type = [Struct] String +# 2086| getVariable().getInitializer(): [Initializer] initializer for x689 +# 2086| getExpr(): [ConstructorCall] call to String +# 2086| Type = [VoidType] void +# 2086| ValueCategory = prvalue +# 2087| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2087| Type = [VoidType] void +# 2087| ValueCategory = prvalue +# 2087| getQualifier(): [VariableAccess] x689 +# 2087| Type = [Struct] String +# 2087| ValueCategory = lvalue +# 2087| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2087| Conversion = [BoolConversion] conversion to bool +# 2087| Type = [BoolType] bool +# 2087| Value = [CStyleCast] 0 +# 2087| ValueCategory = prvalue +# 2088| getStmt(690): [DoStmt] do (...) ... +# 2090| getCondition(): [Literal] 0 +# 2090| Type = [IntType] int +# 2090| Value = [Literal] 0 +# 2090| ValueCategory = prvalue +# 2088| getStmt(): [BlockStmt] { ... } +# 2089| getStmt(0): [DeclStmt] declaration +# 2089| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x690 +# 2089| Type = [Struct] String +# 2089| getVariable().getInitializer(): [Initializer] initializer for x690 +# 2089| getExpr(): [ConstructorCall] call to String +# 2089| Type = [VoidType] void +# 2089| ValueCategory = prvalue +# 2090| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2090| Type = [VoidType] void +# 2090| ValueCategory = prvalue +# 2090| getQualifier(): [VariableAccess] x690 +# 2090| Type = [Struct] String +# 2090| ValueCategory = lvalue +# 2090| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2090| Conversion = [BoolConversion] conversion to bool +# 2090| Type = [BoolType] bool +# 2090| Value = [CStyleCast] 0 +# 2090| ValueCategory = prvalue +# 2091| getStmt(691): [DoStmt] do (...) ... +# 2093| getCondition(): [Literal] 0 +# 2093| Type = [IntType] int +# 2093| Value = [Literal] 0 +# 2093| ValueCategory = prvalue +# 2091| getStmt(): [BlockStmt] { ... } +# 2092| getStmt(0): [DeclStmt] declaration +# 2092| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x691 +# 2092| Type = [Struct] String +# 2092| getVariable().getInitializer(): [Initializer] initializer for x691 +# 2092| getExpr(): [ConstructorCall] call to String +# 2092| Type = [VoidType] void +# 2092| ValueCategory = prvalue +# 2093| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2093| Type = [VoidType] void +# 2093| ValueCategory = prvalue +# 2093| getQualifier(): [VariableAccess] x691 +# 2093| Type = [Struct] String +# 2093| ValueCategory = lvalue +# 2093| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2093| Conversion = [BoolConversion] conversion to bool +# 2093| Type = [BoolType] bool +# 2093| Value = [CStyleCast] 0 +# 2093| ValueCategory = prvalue +# 2094| getStmt(692): [DoStmt] do (...) ... +# 2096| getCondition(): [Literal] 0 +# 2096| Type = [IntType] int +# 2096| Value = [Literal] 0 +# 2096| ValueCategory = prvalue +# 2094| getStmt(): [BlockStmt] { ... } +# 2095| getStmt(0): [DeclStmt] declaration +# 2095| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x692 +# 2095| Type = [Struct] String +# 2095| getVariable().getInitializer(): [Initializer] initializer for x692 +# 2095| getExpr(): [ConstructorCall] call to String +# 2095| Type = [VoidType] void +# 2095| ValueCategory = prvalue +# 2096| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2096| Type = [VoidType] void +# 2096| ValueCategory = prvalue +# 2096| getQualifier(): [VariableAccess] x692 +# 2096| Type = [Struct] String +# 2096| ValueCategory = lvalue +# 2096| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2096| Conversion = [BoolConversion] conversion to bool +# 2096| Type = [BoolType] bool +# 2096| Value = [CStyleCast] 0 +# 2096| ValueCategory = prvalue +# 2097| getStmt(693): [DoStmt] do (...) ... +# 2099| getCondition(): [Literal] 0 +# 2099| Type = [IntType] int +# 2099| Value = [Literal] 0 +# 2099| ValueCategory = prvalue +# 2097| getStmt(): [BlockStmt] { ... } +# 2098| getStmt(0): [DeclStmt] declaration +# 2098| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x693 +# 2098| Type = [Struct] String +# 2098| getVariable().getInitializer(): [Initializer] initializer for x693 +# 2098| getExpr(): [ConstructorCall] call to String +# 2098| Type = [VoidType] void +# 2098| ValueCategory = prvalue +# 2099| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2099| Type = [VoidType] void +# 2099| ValueCategory = prvalue +# 2099| getQualifier(): [VariableAccess] x693 +# 2099| Type = [Struct] String +# 2099| ValueCategory = lvalue +# 2099| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2099| Conversion = [BoolConversion] conversion to bool +# 2099| Type = [BoolType] bool +# 2099| Value = [CStyleCast] 0 +# 2099| ValueCategory = prvalue +# 2100| getStmt(694): [DoStmt] do (...) ... +# 2102| getCondition(): [Literal] 0 +# 2102| Type = [IntType] int +# 2102| Value = [Literal] 0 +# 2102| ValueCategory = prvalue +# 2100| getStmt(): [BlockStmt] { ... } +# 2101| getStmt(0): [DeclStmt] declaration +# 2101| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x694 +# 2101| Type = [Struct] String +# 2101| getVariable().getInitializer(): [Initializer] initializer for x694 +# 2101| getExpr(): [ConstructorCall] call to String +# 2101| Type = [VoidType] void +# 2101| ValueCategory = prvalue +# 2102| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2102| Type = [VoidType] void +# 2102| ValueCategory = prvalue +# 2102| getQualifier(): [VariableAccess] x694 +# 2102| Type = [Struct] String +# 2102| ValueCategory = lvalue +# 2102| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2102| Conversion = [BoolConversion] conversion to bool +# 2102| Type = [BoolType] bool +# 2102| Value = [CStyleCast] 0 +# 2102| ValueCategory = prvalue +# 2103| getStmt(695): [DoStmt] do (...) ... +# 2105| getCondition(): [Literal] 0 +# 2105| Type = [IntType] int +# 2105| Value = [Literal] 0 +# 2105| ValueCategory = prvalue +# 2103| getStmt(): [BlockStmt] { ... } +# 2104| getStmt(0): [DeclStmt] declaration +# 2104| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x695 +# 2104| Type = [Struct] String +# 2104| getVariable().getInitializer(): [Initializer] initializer for x695 +# 2104| getExpr(): [ConstructorCall] call to String +# 2104| Type = [VoidType] void +# 2104| ValueCategory = prvalue +# 2105| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2105| Type = [VoidType] void +# 2105| ValueCategory = prvalue +# 2105| getQualifier(): [VariableAccess] x695 +# 2105| Type = [Struct] String +# 2105| ValueCategory = lvalue +# 2105| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2105| Conversion = [BoolConversion] conversion to bool +# 2105| Type = [BoolType] bool +# 2105| Value = [CStyleCast] 0 +# 2105| ValueCategory = prvalue +# 2106| getStmt(696): [DoStmt] do (...) ... +# 2108| getCondition(): [Literal] 0 +# 2108| Type = [IntType] int +# 2108| Value = [Literal] 0 +# 2108| ValueCategory = prvalue +# 2106| getStmt(): [BlockStmt] { ... } +# 2107| getStmt(0): [DeclStmt] declaration +# 2107| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x696 +# 2107| Type = [Struct] String +# 2107| getVariable().getInitializer(): [Initializer] initializer for x696 +# 2107| getExpr(): [ConstructorCall] call to String +# 2107| Type = [VoidType] void +# 2107| ValueCategory = prvalue +# 2108| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2108| Type = [VoidType] void +# 2108| ValueCategory = prvalue +# 2108| getQualifier(): [VariableAccess] x696 +# 2108| Type = [Struct] String +# 2108| ValueCategory = lvalue +# 2108| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2108| Conversion = [BoolConversion] conversion to bool +# 2108| Type = [BoolType] bool +# 2108| Value = [CStyleCast] 0 +# 2108| ValueCategory = prvalue +# 2109| getStmt(697): [DoStmt] do (...) ... +# 2111| getCondition(): [Literal] 0 +# 2111| Type = [IntType] int +# 2111| Value = [Literal] 0 +# 2111| ValueCategory = prvalue +# 2109| getStmt(): [BlockStmt] { ... } +# 2110| getStmt(0): [DeclStmt] declaration +# 2110| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x697 +# 2110| Type = [Struct] String +# 2110| getVariable().getInitializer(): [Initializer] initializer for x697 +# 2110| getExpr(): [ConstructorCall] call to String +# 2110| Type = [VoidType] void +# 2110| ValueCategory = prvalue +# 2111| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2111| Type = [VoidType] void +# 2111| ValueCategory = prvalue +# 2111| getQualifier(): [VariableAccess] x697 +# 2111| Type = [Struct] String +# 2111| ValueCategory = lvalue +# 2111| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2111| Conversion = [BoolConversion] conversion to bool +# 2111| Type = [BoolType] bool +# 2111| Value = [CStyleCast] 0 +# 2111| ValueCategory = prvalue +# 2112| getStmt(698): [DoStmt] do (...) ... +# 2114| getCondition(): [Literal] 0 +# 2114| Type = [IntType] int +# 2114| Value = [Literal] 0 +# 2114| ValueCategory = prvalue +# 2112| getStmt(): [BlockStmt] { ... } +# 2113| getStmt(0): [DeclStmt] declaration +# 2113| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x698 +# 2113| Type = [Struct] String +# 2113| getVariable().getInitializer(): [Initializer] initializer for x698 +# 2113| getExpr(): [ConstructorCall] call to String +# 2113| Type = [VoidType] void +# 2113| ValueCategory = prvalue +# 2114| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2114| Type = [VoidType] void +# 2114| ValueCategory = prvalue +# 2114| getQualifier(): [VariableAccess] x698 +# 2114| Type = [Struct] String +# 2114| ValueCategory = lvalue +# 2114| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2114| Conversion = [BoolConversion] conversion to bool +# 2114| Type = [BoolType] bool +# 2114| Value = [CStyleCast] 0 +# 2114| ValueCategory = prvalue +# 2115| getStmt(699): [DoStmt] do (...) ... +# 2117| getCondition(): [Literal] 0 +# 2117| Type = [IntType] int +# 2117| Value = [Literal] 0 +# 2117| ValueCategory = prvalue +# 2115| getStmt(): [BlockStmt] { ... } +# 2116| getStmt(0): [DeclStmt] declaration +# 2116| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x699 +# 2116| Type = [Struct] String +# 2116| getVariable().getInitializer(): [Initializer] initializer for x699 +# 2116| getExpr(): [ConstructorCall] call to String +# 2116| Type = [VoidType] void +# 2116| ValueCategory = prvalue +# 2117| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2117| Type = [VoidType] void +# 2117| ValueCategory = prvalue +# 2117| getQualifier(): [VariableAccess] x699 +# 2117| Type = [Struct] String +# 2117| ValueCategory = lvalue +# 2117| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2117| Conversion = [BoolConversion] conversion to bool +# 2117| Type = [BoolType] bool +# 2117| Value = [CStyleCast] 0 +# 2117| ValueCategory = prvalue +# 2118| getStmt(700): [DoStmt] do (...) ... +# 2120| getCondition(): [Literal] 0 +# 2120| Type = [IntType] int +# 2120| Value = [Literal] 0 +# 2120| ValueCategory = prvalue +# 2118| getStmt(): [BlockStmt] { ... } +# 2119| getStmt(0): [DeclStmt] declaration +# 2119| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x700 +# 2119| Type = [Struct] String +# 2119| getVariable().getInitializer(): [Initializer] initializer for x700 +# 2119| getExpr(): [ConstructorCall] call to String +# 2119| Type = [VoidType] void +# 2119| ValueCategory = prvalue +# 2120| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2120| Type = [VoidType] void +# 2120| ValueCategory = prvalue +# 2120| getQualifier(): [VariableAccess] x700 +# 2120| Type = [Struct] String +# 2120| ValueCategory = lvalue +# 2120| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2120| Conversion = [BoolConversion] conversion to bool +# 2120| Type = [BoolType] bool +# 2120| Value = [CStyleCast] 0 +# 2120| ValueCategory = prvalue +# 2121| getStmt(701): [DoStmt] do (...) ... +# 2123| getCondition(): [Literal] 0 +# 2123| Type = [IntType] int +# 2123| Value = [Literal] 0 +# 2123| ValueCategory = prvalue +# 2121| getStmt(): [BlockStmt] { ... } +# 2122| getStmt(0): [DeclStmt] declaration +# 2122| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x701 +# 2122| Type = [Struct] String +# 2122| getVariable().getInitializer(): [Initializer] initializer for x701 +# 2122| getExpr(): [ConstructorCall] call to String +# 2122| Type = [VoidType] void +# 2122| ValueCategory = prvalue +# 2123| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2123| Type = [VoidType] void +# 2123| ValueCategory = prvalue +# 2123| getQualifier(): [VariableAccess] x701 +# 2123| Type = [Struct] String +# 2123| ValueCategory = lvalue +# 2123| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2123| Conversion = [BoolConversion] conversion to bool +# 2123| Type = [BoolType] bool +# 2123| Value = [CStyleCast] 0 +# 2123| ValueCategory = prvalue +# 2124| getStmt(702): [DoStmt] do (...) ... +# 2126| getCondition(): [Literal] 0 +# 2126| Type = [IntType] int +# 2126| Value = [Literal] 0 +# 2126| ValueCategory = prvalue +# 2124| getStmt(): [BlockStmt] { ... } +# 2125| getStmt(0): [DeclStmt] declaration +# 2125| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x702 +# 2125| Type = [Struct] String +# 2125| getVariable().getInitializer(): [Initializer] initializer for x702 +# 2125| getExpr(): [ConstructorCall] call to String +# 2125| Type = [VoidType] void +# 2125| ValueCategory = prvalue +# 2126| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2126| Type = [VoidType] void +# 2126| ValueCategory = prvalue +# 2126| getQualifier(): [VariableAccess] x702 +# 2126| Type = [Struct] String +# 2126| ValueCategory = lvalue +# 2126| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2126| Conversion = [BoolConversion] conversion to bool +# 2126| Type = [BoolType] bool +# 2126| Value = [CStyleCast] 0 +# 2126| ValueCategory = prvalue +# 2127| getStmt(703): [DoStmt] do (...) ... +# 2129| getCondition(): [Literal] 0 +# 2129| Type = [IntType] int +# 2129| Value = [Literal] 0 +# 2129| ValueCategory = prvalue +# 2127| getStmt(): [BlockStmt] { ... } +# 2128| getStmt(0): [DeclStmt] declaration +# 2128| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x703 +# 2128| Type = [Struct] String +# 2128| getVariable().getInitializer(): [Initializer] initializer for x703 +# 2128| getExpr(): [ConstructorCall] call to String +# 2128| Type = [VoidType] void +# 2128| ValueCategory = prvalue +# 2129| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2129| Type = [VoidType] void +# 2129| ValueCategory = prvalue +# 2129| getQualifier(): [VariableAccess] x703 +# 2129| Type = [Struct] String +# 2129| ValueCategory = lvalue +# 2129| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2129| Conversion = [BoolConversion] conversion to bool +# 2129| Type = [BoolType] bool +# 2129| Value = [CStyleCast] 0 +# 2129| ValueCategory = prvalue +# 2130| getStmt(704): [DoStmt] do (...) ... +# 2132| getCondition(): [Literal] 0 +# 2132| Type = [IntType] int +# 2132| Value = [Literal] 0 +# 2132| ValueCategory = prvalue +# 2130| getStmt(): [BlockStmt] { ... } +# 2131| getStmt(0): [DeclStmt] declaration +# 2131| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x704 +# 2131| Type = [Struct] String +# 2131| getVariable().getInitializer(): [Initializer] initializer for x704 +# 2131| getExpr(): [ConstructorCall] call to String +# 2131| Type = [VoidType] void +# 2131| ValueCategory = prvalue +# 2132| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2132| Type = [VoidType] void +# 2132| ValueCategory = prvalue +# 2132| getQualifier(): [VariableAccess] x704 +# 2132| Type = [Struct] String +# 2132| ValueCategory = lvalue +# 2132| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2132| Conversion = [BoolConversion] conversion to bool +# 2132| Type = [BoolType] bool +# 2132| Value = [CStyleCast] 0 +# 2132| ValueCategory = prvalue +# 2133| getStmt(705): [DoStmt] do (...) ... +# 2135| getCondition(): [Literal] 0 +# 2135| Type = [IntType] int +# 2135| Value = [Literal] 0 +# 2135| ValueCategory = prvalue +# 2133| getStmt(): [BlockStmt] { ... } +# 2134| getStmt(0): [DeclStmt] declaration +# 2134| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x705 +# 2134| Type = [Struct] String +# 2134| getVariable().getInitializer(): [Initializer] initializer for x705 +# 2134| getExpr(): [ConstructorCall] call to String +# 2134| Type = [VoidType] void +# 2134| ValueCategory = prvalue +# 2135| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2135| Type = [VoidType] void +# 2135| ValueCategory = prvalue +# 2135| getQualifier(): [VariableAccess] x705 +# 2135| Type = [Struct] String +# 2135| ValueCategory = lvalue +# 2135| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2135| Conversion = [BoolConversion] conversion to bool +# 2135| Type = [BoolType] bool +# 2135| Value = [CStyleCast] 0 +# 2135| ValueCategory = prvalue +# 2136| getStmt(706): [DoStmt] do (...) ... +# 2138| getCondition(): [Literal] 0 +# 2138| Type = [IntType] int +# 2138| Value = [Literal] 0 +# 2138| ValueCategory = prvalue +# 2136| getStmt(): [BlockStmt] { ... } +# 2137| getStmt(0): [DeclStmt] declaration +# 2137| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x706 +# 2137| Type = [Struct] String +# 2137| getVariable().getInitializer(): [Initializer] initializer for x706 +# 2137| getExpr(): [ConstructorCall] call to String +# 2137| Type = [VoidType] void +# 2137| ValueCategory = prvalue +# 2138| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2138| Type = [VoidType] void +# 2138| ValueCategory = prvalue +# 2138| getQualifier(): [VariableAccess] x706 +# 2138| Type = [Struct] String +# 2138| ValueCategory = lvalue +# 2138| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2138| Conversion = [BoolConversion] conversion to bool +# 2138| Type = [BoolType] bool +# 2138| Value = [CStyleCast] 0 +# 2138| ValueCategory = prvalue +# 2139| getStmt(707): [DoStmt] do (...) ... +# 2141| getCondition(): [Literal] 0 +# 2141| Type = [IntType] int +# 2141| Value = [Literal] 0 +# 2141| ValueCategory = prvalue +# 2139| getStmt(): [BlockStmt] { ... } +# 2140| getStmt(0): [DeclStmt] declaration +# 2140| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x707 +# 2140| Type = [Struct] String +# 2140| getVariable().getInitializer(): [Initializer] initializer for x707 +# 2140| getExpr(): [ConstructorCall] call to String +# 2140| Type = [VoidType] void +# 2140| ValueCategory = prvalue +# 2141| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2141| Type = [VoidType] void +# 2141| ValueCategory = prvalue +# 2141| getQualifier(): [VariableAccess] x707 +# 2141| Type = [Struct] String +# 2141| ValueCategory = lvalue +# 2141| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2141| Conversion = [BoolConversion] conversion to bool +# 2141| Type = [BoolType] bool +# 2141| Value = [CStyleCast] 0 +# 2141| ValueCategory = prvalue +# 2142| getStmt(708): [DoStmt] do (...) ... +# 2144| getCondition(): [Literal] 0 +# 2144| Type = [IntType] int +# 2144| Value = [Literal] 0 +# 2144| ValueCategory = prvalue +# 2142| getStmt(): [BlockStmt] { ... } +# 2143| getStmt(0): [DeclStmt] declaration +# 2143| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x708 +# 2143| Type = [Struct] String +# 2143| getVariable().getInitializer(): [Initializer] initializer for x708 +# 2143| getExpr(): [ConstructorCall] call to String +# 2143| Type = [VoidType] void +# 2143| ValueCategory = prvalue +# 2144| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2144| Type = [VoidType] void +# 2144| ValueCategory = prvalue +# 2144| getQualifier(): [VariableAccess] x708 +# 2144| Type = [Struct] String +# 2144| ValueCategory = lvalue +# 2144| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2144| Conversion = [BoolConversion] conversion to bool +# 2144| Type = [BoolType] bool +# 2144| Value = [CStyleCast] 0 +# 2144| ValueCategory = prvalue +# 2145| getStmt(709): [DoStmt] do (...) ... +# 2147| getCondition(): [Literal] 0 +# 2147| Type = [IntType] int +# 2147| Value = [Literal] 0 +# 2147| ValueCategory = prvalue +# 2145| getStmt(): [BlockStmt] { ... } +# 2146| getStmt(0): [DeclStmt] declaration +# 2146| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x709 +# 2146| Type = [Struct] String +# 2146| getVariable().getInitializer(): [Initializer] initializer for x709 +# 2146| getExpr(): [ConstructorCall] call to String +# 2146| Type = [VoidType] void +# 2146| ValueCategory = prvalue +# 2147| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2147| Type = [VoidType] void +# 2147| ValueCategory = prvalue +# 2147| getQualifier(): [VariableAccess] x709 +# 2147| Type = [Struct] String +# 2147| ValueCategory = lvalue +# 2147| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2147| Conversion = [BoolConversion] conversion to bool +# 2147| Type = [BoolType] bool +# 2147| Value = [CStyleCast] 0 +# 2147| ValueCategory = prvalue +# 2148| getStmt(710): [DoStmt] do (...) ... +# 2150| getCondition(): [Literal] 0 +# 2150| Type = [IntType] int +# 2150| Value = [Literal] 0 +# 2150| ValueCategory = prvalue +# 2148| getStmt(): [BlockStmt] { ... } +# 2149| getStmt(0): [DeclStmt] declaration +# 2149| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x710 +# 2149| Type = [Struct] String +# 2149| getVariable().getInitializer(): [Initializer] initializer for x710 +# 2149| getExpr(): [ConstructorCall] call to String +# 2149| Type = [VoidType] void +# 2149| ValueCategory = prvalue +# 2150| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2150| Type = [VoidType] void +# 2150| ValueCategory = prvalue +# 2150| getQualifier(): [VariableAccess] x710 +# 2150| Type = [Struct] String +# 2150| ValueCategory = lvalue +# 2150| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2150| Conversion = [BoolConversion] conversion to bool +# 2150| Type = [BoolType] bool +# 2150| Value = [CStyleCast] 0 +# 2150| ValueCategory = prvalue +# 2151| getStmt(711): [DoStmt] do (...) ... +# 2153| getCondition(): [Literal] 0 +# 2153| Type = [IntType] int +# 2153| Value = [Literal] 0 +# 2153| ValueCategory = prvalue +# 2151| getStmt(): [BlockStmt] { ... } +# 2152| getStmt(0): [DeclStmt] declaration +# 2152| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x711 +# 2152| Type = [Struct] String +# 2152| getVariable().getInitializer(): [Initializer] initializer for x711 +# 2152| getExpr(): [ConstructorCall] call to String +# 2152| Type = [VoidType] void +# 2152| ValueCategory = prvalue +# 2153| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2153| Type = [VoidType] void +# 2153| ValueCategory = prvalue +# 2153| getQualifier(): [VariableAccess] x711 +# 2153| Type = [Struct] String +# 2153| ValueCategory = lvalue +# 2153| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2153| Conversion = [BoolConversion] conversion to bool +# 2153| Type = [BoolType] bool +# 2153| Value = [CStyleCast] 0 +# 2153| ValueCategory = prvalue +# 2154| getStmt(712): [DoStmt] do (...) ... +# 2156| getCondition(): [Literal] 0 +# 2156| Type = [IntType] int +# 2156| Value = [Literal] 0 +# 2156| ValueCategory = prvalue +# 2154| getStmt(): [BlockStmt] { ... } +# 2155| getStmt(0): [DeclStmt] declaration +# 2155| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x712 +# 2155| Type = [Struct] String +# 2155| getVariable().getInitializer(): [Initializer] initializer for x712 +# 2155| getExpr(): [ConstructorCall] call to String +# 2155| Type = [VoidType] void +# 2155| ValueCategory = prvalue +# 2156| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2156| Type = [VoidType] void +# 2156| ValueCategory = prvalue +# 2156| getQualifier(): [VariableAccess] x712 +# 2156| Type = [Struct] String +# 2156| ValueCategory = lvalue +# 2156| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2156| Conversion = [BoolConversion] conversion to bool +# 2156| Type = [BoolType] bool +# 2156| Value = [CStyleCast] 0 +# 2156| ValueCategory = prvalue +# 2157| getStmt(713): [DoStmt] do (...) ... +# 2159| getCondition(): [Literal] 0 +# 2159| Type = [IntType] int +# 2159| Value = [Literal] 0 +# 2159| ValueCategory = prvalue +# 2157| getStmt(): [BlockStmt] { ... } +# 2158| getStmt(0): [DeclStmt] declaration +# 2158| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x713 +# 2158| Type = [Struct] String +# 2158| getVariable().getInitializer(): [Initializer] initializer for x713 +# 2158| getExpr(): [ConstructorCall] call to String +# 2158| Type = [VoidType] void +# 2158| ValueCategory = prvalue +# 2159| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2159| Type = [VoidType] void +# 2159| ValueCategory = prvalue +# 2159| getQualifier(): [VariableAccess] x713 +# 2159| Type = [Struct] String +# 2159| ValueCategory = lvalue +# 2159| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2159| Conversion = [BoolConversion] conversion to bool +# 2159| Type = [BoolType] bool +# 2159| Value = [CStyleCast] 0 +# 2159| ValueCategory = prvalue +# 2160| getStmt(714): [DoStmt] do (...) ... +# 2162| getCondition(): [Literal] 0 +# 2162| Type = [IntType] int +# 2162| Value = [Literal] 0 +# 2162| ValueCategory = prvalue +# 2160| getStmt(): [BlockStmt] { ... } +# 2161| getStmt(0): [DeclStmt] declaration +# 2161| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x714 +# 2161| Type = [Struct] String +# 2161| getVariable().getInitializer(): [Initializer] initializer for x714 +# 2161| getExpr(): [ConstructorCall] call to String +# 2161| Type = [VoidType] void +# 2161| ValueCategory = prvalue +# 2162| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2162| Type = [VoidType] void +# 2162| ValueCategory = prvalue +# 2162| getQualifier(): [VariableAccess] x714 +# 2162| Type = [Struct] String +# 2162| ValueCategory = lvalue +# 2162| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2162| Conversion = [BoolConversion] conversion to bool +# 2162| Type = [BoolType] bool +# 2162| Value = [CStyleCast] 0 +# 2162| ValueCategory = prvalue +# 2163| getStmt(715): [DoStmt] do (...) ... +# 2165| getCondition(): [Literal] 0 +# 2165| Type = [IntType] int +# 2165| Value = [Literal] 0 +# 2165| ValueCategory = prvalue +# 2163| getStmt(): [BlockStmt] { ... } +# 2164| getStmt(0): [DeclStmt] declaration +# 2164| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x715 +# 2164| Type = [Struct] String +# 2164| getVariable().getInitializer(): [Initializer] initializer for x715 +# 2164| getExpr(): [ConstructorCall] call to String +# 2164| Type = [VoidType] void +# 2164| ValueCategory = prvalue +# 2165| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2165| Type = [VoidType] void +# 2165| ValueCategory = prvalue +# 2165| getQualifier(): [VariableAccess] x715 +# 2165| Type = [Struct] String +# 2165| ValueCategory = lvalue +# 2165| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2165| Conversion = [BoolConversion] conversion to bool +# 2165| Type = [BoolType] bool +# 2165| Value = [CStyleCast] 0 +# 2165| ValueCategory = prvalue +# 2166| getStmt(716): [DoStmt] do (...) ... +# 2168| getCondition(): [Literal] 0 +# 2168| Type = [IntType] int +# 2168| Value = [Literal] 0 +# 2168| ValueCategory = prvalue +# 2166| getStmt(): [BlockStmt] { ... } +# 2167| getStmt(0): [DeclStmt] declaration +# 2167| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x716 +# 2167| Type = [Struct] String +# 2167| getVariable().getInitializer(): [Initializer] initializer for x716 +# 2167| getExpr(): [ConstructorCall] call to String +# 2167| Type = [VoidType] void +# 2167| ValueCategory = prvalue +# 2168| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2168| Type = [VoidType] void +# 2168| ValueCategory = prvalue +# 2168| getQualifier(): [VariableAccess] x716 +# 2168| Type = [Struct] String +# 2168| ValueCategory = lvalue +# 2168| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2168| Conversion = [BoolConversion] conversion to bool +# 2168| Type = [BoolType] bool +# 2168| Value = [CStyleCast] 0 +# 2168| ValueCategory = prvalue +# 2169| getStmt(717): [DoStmt] do (...) ... +# 2171| getCondition(): [Literal] 0 +# 2171| Type = [IntType] int +# 2171| Value = [Literal] 0 +# 2171| ValueCategory = prvalue +# 2169| getStmt(): [BlockStmt] { ... } +# 2170| getStmt(0): [DeclStmt] declaration +# 2170| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x717 +# 2170| Type = [Struct] String +# 2170| getVariable().getInitializer(): [Initializer] initializer for x717 +# 2170| getExpr(): [ConstructorCall] call to String +# 2170| Type = [VoidType] void +# 2170| ValueCategory = prvalue +# 2171| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2171| Type = [VoidType] void +# 2171| ValueCategory = prvalue +# 2171| getQualifier(): [VariableAccess] x717 +# 2171| Type = [Struct] String +# 2171| ValueCategory = lvalue +# 2171| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2171| Conversion = [BoolConversion] conversion to bool +# 2171| Type = [BoolType] bool +# 2171| Value = [CStyleCast] 0 +# 2171| ValueCategory = prvalue +# 2172| getStmt(718): [DoStmt] do (...) ... +# 2174| getCondition(): [Literal] 0 +# 2174| Type = [IntType] int +# 2174| Value = [Literal] 0 +# 2174| ValueCategory = prvalue +# 2172| getStmt(): [BlockStmt] { ... } +# 2173| getStmt(0): [DeclStmt] declaration +# 2173| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x718 +# 2173| Type = [Struct] String +# 2173| getVariable().getInitializer(): [Initializer] initializer for x718 +# 2173| getExpr(): [ConstructorCall] call to String +# 2173| Type = [VoidType] void +# 2173| ValueCategory = prvalue +# 2174| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2174| Type = [VoidType] void +# 2174| ValueCategory = prvalue +# 2174| getQualifier(): [VariableAccess] x718 +# 2174| Type = [Struct] String +# 2174| ValueCategory = lvalue +# 2174| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2174| Conversion = [BoolConversion] conversion to bool +# 2174| Type = [BoolType] bool +# 2174| Value = [CStyleCast] 0 +# 2174| ValueCategory = prvalue +# 2175| getStmt(719): [DoStmt] do (...) ... +# 2177| getCondition(): [Literal] 0 +# 2177| Type = [IntType] int +# 2177| Value = [Literal] 0 +# 2177| ValueCategory = prvalue +# 2175| getStmt(): [BlockStmt] { ... } +# 2176| getStmt(0): [DeclStmt] declaration +# 2176| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x719 +# 2176| Type = [Struct] String +# 2176| getVariable().getInitializer(): [Initializer] initializer for x719 +# 2176| getExpr(): [ConstructorCall] call to String +# 2176| Type = [VoidType] void +# 2176| ValueCategory = prvalue +# 2177| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2177| Type = [VoidType] void +# 2177| ValueCategory = prvalue +# 2177| getQualifier(): [VariableAccess] x719 +# 2177| Type = [Struct] String +# 2177| ValueCategory = lvalue +# 2177| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2177| Conversion = [BoolConversion] conversion to bool +# 2177| Type = [BoolType] bool +# 2177| Value = [CStyleCast] 0 +# 2177| ValueCategory = prvalue +# 2178| getStmt(720): [DoStmt] do (...) ... +# 2180| getCondition(): [Literal] 0 +# 2180| Type = [IntType] int +# 2180| Value = [Literal] 0 +# 2180| ValueCategory = prvalue +# 2178| getStmt(): [BlockStmt] { ... } +# 2179| getStmt(0): [DeclStmt] declaration +# 2179| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x720 +# 2179| Type = [Struct] String +# 2179| getVariable().getInitializer(): [Initializer] initializer for x720 +# 2179| getExpr(): [ConstructorCall] call to String +# 2179| Type = [VoidType] void +# 2179| ValueCategory = prvalue +# 2180| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2180| Type = [VoidType] void +# 2180| ValueCategory = prvalue +# 2180| getQualifier(): [VariableAccess] x720 +# 2180| Type = [Struct] String +# 2180| ValueCategory = lvalue +# 2180| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2180| Conversion = [BoolConversion] conversion to bool +# 2180| Type = [BoolType] bool +# 2180| Value = [CStyleCast] 0 +# 2180| ValueCategory = prvalue +# 2181| getStmt(721): [DoStmt] do (...) ... +# 2183| getCondition(): [Literal] 0 +# 2183| Type = [IntType] int +# 2183| Value = [Literal] 0 +# 2183| ValueCategory = prvalue +# 2181| getStmt(): [BlockStmt] { ... } +# 2182| getStmt(0): [DeclStmt] declaration +# 2182| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x721 +# 2182| Type = [Struct] String +# 2182| getVariable().getInitializer(): [Initializer] initializer for x721 +# 2182| getExpr(): [ConstructorCall] call to String +# 2182| Type = [VoidType] void +# 2182| ValueCategory = prvalue +# 2183| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2183| Type = [VoidType] void +# 2183| ValueCategory = prvalue +# 2183| getQualifier(): [VariableAccess] x721 +# 2183| Type = [Struct] String +# 2183| ValueCategory = lvalue +# 2183| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2183| Conversion = [BoolConversion] conversion to bool +# 2183| Type = [BoolType] bool +# 2183| Value = [CStyleCast] 0 +# 2183| ValueCategory = prvalue +# 2184| getStmt(722): [DoStmt] do (...) ... +# 2186| getCondition(): [Literal] 0 +# 2186| Type = [IntType] int +# 2186| Value = [Literal] 0 +# 2186| ValueCategory = prvalue +# 2184| getStmt(): [BlockStmt] { ... } +# 2185| getStmt(0): [DeclStmt] declaration +# 2185| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x722 +# 2185| Type = [Struct] String +# 2185| getVariable().getInitializer(): [Initializer] initializer for x722 +# 2185| getExpr(): [ConstructorCall] call to String +# 2185| Type = [VoidType] void +# 2185| ValueCategory = prvalue +# 2186| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2186| Type = [VoidType] void +# 2186| ValueCategory = prvalue +# 2186| getQualifier(): [VariableAccess] x722 +# 2186| Type = [Struct] String +# 2186| ValueCategory = lvalue +# 2186| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2186| Conversion = [BoolConversion] conversion to bool +# 2186| Type = [BoolType] bool +# 2186| Value = [CStyleCast] 0 +# 2186| ValueCategory = prvalue +# 2187| getStmt(723): [DoStmt] do (...) ... +# 2189| getCondition(): [Literal] 0 +# 2189| Type = [IntType] int +# 2189| Value = [Literal] 0 +# 2189| ValueCategory = prvalue +# 2187| getStmt(): [BlockStmt] { ... } +# 2188| getStmt(0): [DeclStmt] declaration +# 2188| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x723 +# 2188| Type = [Struct] String +# 2188| getVariable().getInitializer(): [Initializer] initializer for x723 +# 2188| getExpr(): [ConstructorCall] call to String +# 2188| Type = [VoidType] void +# 2188| ValueCategory = prvalue +# 2189| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2189| Type = [VoidType] void +# 2189| ValueCategory = prvalue +# 2189| getQualifier(): [VariableAccess] x723 +# 2189| Type = [Struct] String +# 2189| ValueCategory = lvalue +# 2189| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2189| Conversion = [BoolConversion] conversion to bool +# 2189| Type = [BoolType] bool +# 2189| Value = [CStyleCast] 0 +# 2189| ValueCategory = prvalue +# 2190| getStmt(724): [DoStmt] do (...) ... +# 2192| getCondition(): [Literal] 0 +# 2192| Type = [IntType] int +# 2192| Value = [Literal] 0 +# 2192| ValueCategory = prvalue +# 2190| getStmt(): [BlockStmt] { ... } +# 2191| getStmt(0): [DeclStmt] declaration +# 2191| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x724 +# 2191| Type = [Struct] String +# 2191| getVariable().getInitializer(): [Initializer] initializer for x724 +# 2191| getExpr(): [ConstructorCall] call to String +# 2191| Type = [VoidType] void +# 2191| ValueCategory = prvalue +# 2192| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2192| Type = [VoidType] void +# 2192| ValueCategory = prvalue +# 2192| getQualifier(): [VariableAccess] x724 +# 2192| Type = [Struct] String +# 2192| ValueCategory = lvalue +# 2192| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2192| Conversion = [BoolConversion] conversion to bool +# 2192| Type = [BoolType] bool +# 2192| Value = [CStyleCast] 0 +# 2192| ValueCategory = prvalue +# 2193| getStmt(725): [DoStmt] do (...) ... +# 2195| getCondition(): [Literal] 0 +# 2195| Type = [IntType] int +# 2195| Value = [Literal] 0 +# 2195| ValueCategory = prvalue +# 2193| getStmt(): [BlockStmt] { ... } +# 2194| getStmt(0): [DeclStmt] declaration +# 2194| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x725 +# 2194| Type = [Struct] String +# 2194| getVariable().getInitializer(): [Initializer] initializer for x725 +# 2194| getExpr(): [ConstructorCall] call to String +# 2194| Type = [VoidType] void +# 2194| ValueCategory = prvalue +# 2195| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2195| Type = [VoidType] void +# 2195| ValueCategory = prvalue +# 2195| getQualifier(): [VariableAccess] x725 +# 2195| Type = [Struct] String +# 2195| ValueCategory = lvalue +# 2195| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2195| Conversion = [BoolConversion] conversion to bool +# 2195| Type = [BoolType] bool +# 2195| Value = [CStyleCast] 0 +# 2195| ValueCategory = prvalue +# 2196| getStmt(726): [DoStmt] do (...) ... +# 2198| getCondition(): [Literal] 0 +# 2198| Type = [IntType] int +# 2198| Value = [Literal] 0 +# 2198| ValueCategory = prvalue +# 2196| getStmt(): [BlockStmt] { ... } +# 2197| getStmt(0): [DeclStmt] declaration +# 2197| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x726 +# 2197| Type = [Struct] String +# 2197| getVariable().getInitializer(): [Initializer] initializer for x726 +# 2197| getExpr(): [ConstructorCall] call to String +# 2197| Type = [VoidType] void +# 2197| ValueCategory = prvalue +# 2198| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2198| Type = [VoidType] void +# 2198| ValueCategory = prvalue +# 2198| getQualifier(): [VariableAccess] x726 +# 2198| Type = [Struct] String +# 2198| ValueCategory = lvalue +# 2198| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2198| Conversion = [BoolConversion] conversion to bool +# 2198| Type = [BoolType] bool +# 2198| Value = [CStyleCast] 0 +# 2198| ValueCategory = prvalue +# 2199| getStmt(727): [DoStmt] do (...) ... +# 2201| getCondition(): [Literal] 0 +# 2201| Type = [IntType] int +# 2201| Value = [Literal] 0 +# 2201| ValueCategory = prvalue +# 2199| getStmt(): [BlockStmt] { ... } +# 2200| getStmt(0): [DeclStmt] declaration +# 2200| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x727 +# 2200| Type = [Struct] String +# 2200| getVariable().getInitializer(): [Initializer] initializer for x727 +# 2200| getExpr(): [ConstructorCall] call to String +# 2200| Type = [VoidType] void +# 2200| ValueCategory = prvalue +# 2201| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2201| Type = [VoidType] void +# 2201| ValueCategory = prvalue +# 2201| getQualifier(): [VariableAccess] x727 +# 2201| Type = [Struct] String +# 2201| ValueCategory = lvalue +# 2201| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2201| Conversion = [BoolConversion] conversion to bool +# 2201| Type = [BoolType] bool +# 2201| Value = [CStyleCast] 0 +# 2201| ValueCategory = prvalue +# 2202| getStmt(728): [DoStmt] do (...) ... +# 2204| getCondition(): [Literal] 0 +# 2204| Type = [IntType] int +# 2204| Value = [Literal] 0 +# 2204| ValueCategory = prvalue +# 2202| getStmt(): [BlockStmt] { ... } +# 2203| getStmt(0): [DeclStmt] declaration +# 2203| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x728 +# 2203| Type = [Struct] String +# 2203| getVariable().getInitializer(): [Initializer] initializer for x728 +# 2203| getExpr(): [ConstructorCall] call to String +# 2203| Type = [VoidType] void +# 2203| ValueCategory = prvalue +# 2204| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2204| Type = [VoidType] void +# 2204| ValueCategory = prvalue +# 2204| getQualifier(): [VariableAccess] x728 +# 2204| Type = [Struct] String +# 2204| ValueCategory = lvalue +# 2204| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2204| Conversion = [BoolConversion] conversion to bool +# 2204| Type = [BoolType] bool +# 2204| Value = [CStyleCast] 0 +# 2204| ValueCategory = prvalue +# 2205| getStmt(729): [DoStmt] do (...) ... +# 2207| getCondition(): [Literal] 0 +# 2207| Type = [IntType] int +# 2207| Value = [Literal] 0 +# 2207| ValueCategory = prvalue +# 2205| getStmt(): [BlockStmt] { ... } +# 2206| getStmt(0): [DeclStmt] declaration +# 2206| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x729 +# 2206| Type = [Struct] String +# 2206| getVariable().getInitializer(): [Initializer] initializer for x729 +# 2206| getExpr(): [ConstructorCall] call to String +# 2206| Type = [VoidType] void +# 2206| ValueCategory = prvalue +# 2207| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2207| Type = [VoidType] void +# 2207| ValueCategory = prvalue +# 2207| getQualifier(): [VariableAccess] x729 +# 2207| Type = [Struct] String +# 2207| ValueCategory = lvalue +# 2207| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2207| Conversion = [BoolConversion] conversion to bool +# 2207| Type = [BoolType] bool +# 2207| Value = [CStyleCast] 0 +# 2207| ValueCategory = prvalue +# 2208| getStmt(730): [DoStmt] do (...) ... +# 2210| getCondition(): [Literal] 0 +# 2210| Type = [IntType] int +# 2210| Value = [Literal] 0 +# 2210| ValueCategory = prvalue +# 2208| getStmt(): [BlockStmt] { ... } +# 2209| getStmt(0): [DeclStmt] declaration +# 2209| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x730 +# 2209| Type = [Struct] String +# 2209| getVariable().getInitializer(): [Initializer] initializer for x730 +# 2209| getExpr(): [ConstructorCall] call to String +# 2209| Type = [VoidType] void +# 2209| ValueCategory = prvalue +# 2210| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2210| Type = [VoidType] void +# 2210| ValueCategory = prvalue +# 2210| getQualifier(): [VariableAccess] x730 +# 2210| Type = [Struct] String +# 2210| ValueCategory = lvalue +# 2210| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2210| Conversion = [BoolConversion] conversion to bool +# 2210| Type = [BoolType] bool +# 2210| Value = [CStyleCast] 0 +# 2210| ValueCategory = prvalue +# 2211| getStmt(731): [DoStmt] do (...) ... +# 2213| getCondition(): [Literal] 0 +# 2213| Type = [IntType] int +# 2213| Value = [Literal] 0 +# 2213| ValueCategory = prvalue +# 2211| getStmt(): [BlockStmt] { ... } +# 2212| getStmt(0): [DeclStmt] declaration +# 2212| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x731 +# 2212| Type = [Struct] String +# 2212| getVariable().getInitializer(): [Initializer] initializer for x731 +# 2212| getExpr(): [ConstructorCall] call to String +# 2212| Type = [VoidType] void +# 2212| ValueCategory = prvalue +# 2213| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2213| Type = [VoidType] void +# 2213| ValueCategory = prvalue +# 2213| getQualifier(): [VariableAccess] x731 +# 2213| Type = [Struct] String +# 2213| ValueCategory = lvalue +# 2213| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2213| Conversion = [BoolConversion] conversion to bool +# 2213| Type = [BoolType] bool +# 2213| Value = [CStyleCast] 0 +# 2213| ValueCategory = prvalue +# 2214| getStmt(732): [DoStmt] do (...) ... +# 2216| getCondition(): [Literal] 0 +# 2216| Type = [IntType] int +# 2216| Value = [Literal] 0 +# 2216| ValueCategory = prvalue +# 2214| getStmt(): [BlockStmt] { ... } +# 2215| getStmt(0): [DeclStmt] declaration +# 2215| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x732 +# 2215| Type = [Struct] String +# 2215| getVariable().getInitializer(): [Initializer] initializer for x732 +# 2215| getExpr(): [ConstructorCall] call to String +# 2215| Type = [VoidType] void +# 2215| ValueCategory = prvalue +# 2216| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2216| Type = [VoidType] void +# 2216| ValueCategory = prvalue +# 2216| getQualifier(): [VariableAccess] x732 +# 2216| Type = [Struct] String +# 2216| ValueCategory = lvalue +# 2216| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2216| Conversion = [BoolConversion] conversion to bool +# 2216| Type = [BoolType] bool +# 2216| Value = [CStyleCast] 0 +# 2216| ValueCategory = prvalue +# 2217| getStmt(733): [DoStmt] do (...) ... +# 2219| getCondition(): [Literal] 0 +# 2219| Type = [IntType] int +# 2219| Value = [Literal] 0 +# 2219| ValueCategory = prvalue +# 2217| getStmt(): [BlockStmt] { ... } +# 2218| getStmt(0): [DeclStmt] declaration +# 2218| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x733 +# 2218| Type = [Struct] String +# 2218| getVariable().getInitializer(): [Initializer] initializer for x733 +# 2218| getExpr(): [ConstructorCall] call to String +# 2218| Type = [VoidType] void +# 2218| ValueCategory = prvalue +# 2219| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2219| Type = [VoidType] void +# 2219| ValueCategory = prvalue +# 2219| getQualifier(): [VariableAccess] x733 +# 2219| Type = [Struct] String +# 2219| ValueCategory = lvalue +# 2219| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2219| Conversion = [BoolConversion] conversion to bool +# 2219| Type = [BoolType] bool +# 2219| Value = [CStyleCast] 0 +# 2219| ValueCategory = prvalue +# 2220| getStmt(734): [DoStmt] do (...) ... +# 2222| getCondition(): [Literal] 0 +# 2222| Type = [IntType] int +# 2222| Value = [Literal] 0 +# 2222| ValueCategory = prvalue +# 2220| getStmt(): [BlockStmt] { ... } +# 2221| getStmt(0): [DeclStmt] declaration +# 2221| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x734 +# 2221| Type = [Struct] String +# 2221| getVariable().getInitializer(): [Initializer] initializer for x734 +# 2221| getExpr(): [ConstructorCall] call to String +# 2221| Type = [VoidType] void +# 2221| ValueCategory = prvalue +# 2222| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2222| Type = [VoidType] void +# 2222| ValueCategory = prvalue +# 2222| getQualifier(): [VariableAccess] x734 +# 2222| Type = [Struct] String +# 2222| ValueCategory = lvalue +# 2222| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2222| Conversion = [BoolConversion] conversion to bool +# 2222| Type = [BoolType] bool +# 2222| Value = [CStyleCast] 0 +# 2222| ValueCategory = prvalue +# 2223| getStmt(735): [DoStmt] do (...) ... +# 2225| getCondition(): [Literal] 0 +# 2225| Type = [IntType] int +# 2225| Value = [Literal] 0 +# 2225| ValueCategory = prvalue +# 2223| getStmt(): [BlockStmt] { ... } +# 2224| getStmt(0): [DeclStmt] declaration +# 2224| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x735 +# 2224| Type = [Struct] String +# 2224| getVariable().getInitializer(): [Initializer] initializer for x735 +# 2224| getExpr(): [ConstructorCall] call to String +# 2224| Type = [VoidType] void +# 2224| ValueCategory = prvalue +# 2225| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2225| Type = [VoidType] void +# 2225| ValueCategory = prvalue +# 2225| getQualifier(): [VariableAccess] x735 +# 2225| Type = [Struct] String +# 2225| ValueCategory = lvalue +# 2225| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2225| Conversion = [BoolConversion] conversion to bool +# 2225| Type = [BoolType] bool +# 2225| Value = [CStyleCast] 0 +# 2225| ValueCategory = prvalue +# 2226| getStmt(736): [DoStmt] do (...) ... +# 2228| getCondition(): [Literal] 0 +# 2228| Type = [IntType] int +# 2228| Value = [Literal] 0 +# 2228| ValueCategory = prvalue +# 2226| getStmt(): [BlockStmt] { ... } +# 2227| getStmt(0): [DeclStmt] declaration +# 2227| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x736 +# 2227| Type = [Struct] String +# 2227| getVariable().getInitializer(): [Initializer] initializer for x736 +# 2227| getExpr(): [ConstructorCall] call to String +# 2227| Type = [VoidType] void +# 2227| ValueCategory = prvalue +# 2228| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2228| Type = [VoidType] void +# 2228| ValueCategory = prvalue +# 2228| getQualifier(): [VariableAccess] x736 +# 2228| Type = [Struct] String +# 2228| ValueCategory = lvalue +# 2228| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2228| Conversion = [BoolConversion] conversion to bool +# 2228| Type = [BoolType] bool +# 2228| Value = [CStyleCast] 0 +# 2228| ValueCategory = prvalue +# 2229| getStmt(737): [DoStmt] do (...) ... +# 2231| getCondition(): [Literal] 0 +# 2231| Type = [IntType] int +# 2231| Value = [Literal] 0 +# 2231| ValueCategory = prvalue +# 2229| getStmt(): [BlockStmt] { ... } +# 2230| getStmt(0): [DeclStmt] declaration +# 2230| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x737 +# 2230| Type = [Struct] String +# 2230| getVariable().getInitializer(): [Initializer] initializer for x737 +# 2230| getExpr(): [ConstructorCall] call to String +# 2230| Type = [VoidType] void +# 2230| ValueCategory = prvalue +# 2231| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2231| Type = [VoidType] void +# 2231| ValueCategory = prvalue +# 2231| getQualifier(): [VariableAccess] x737 +# 2231| Type = [Struct] String +# 2231| ValueCategory = lvalue +# 2231| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2231| Conversion = [BoolConversion] conversion to bool +# 2231| Type = [BoolType] bool +# 2231| Value = [CStyleCast] 0 +# 2231| ValueCategory = prvalue +# 2232| getStmt(738): [DoStmt] do (...) ... +# 2234| getCondition(): [Literal] 0 +# 2234| Type = [IntType] int +# 2234| Value = [Literal] 0 +# 2234| ValueCategory = prvalue +# 2232| getStmt(): [BlockStmt] { ... } +# 2233| getStmt(0): [DeclStmt] declaration +# 2233| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x738 +# 2233| Type = [Struct] String +# 2233| getVariable().getInitializer(): [Initializer] initializer for x738 +# 2233| getExpr(): [ConstructorCall] call to String +# 2233| Type = [VoidType] void +# 2233| ValueCategory = prvalue +# 2234| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2234| Type = [VoidType] void +# 2234| ValueCategory = prvalue +# 2234| getQualifier(): [VariableAccess] x738 +# 2234| Type = [Struct] String +# 2234| ValueCategory = lvalue +# 2234| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2234| Conversion = [BoolConversion] conversion to bool +# 2234| Type = [BoolType] bool +# 2234| Value = [CStyleCast] 0 +# 2234| ValueCategory = prvalue +# 2235| getStmt(739): [DoStmt] do (...) ... +# 2237| getCondition(): [Literal] 0 +# 2237| Type = [IntType] int +# 2237| Value = [Literal] 0 +# 2237| ValueCategory = prvalue +# 2235| getStmt(): [BlockStmt] { ... } +# 2236| getStmt(0): [DeclStmt] declaration +# 2236| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x739 +# 2236| Type = [Struct] String +# 2236| getVariable().getInitializer(): [Initializer] initializer for x739 +# 2236| getExpr(): [ConstructorCall] call to String +# 2236| Type = [VoidType] void +# 2236| ValueCategory = prvalue +# 2237| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2237| Type = [VoidType] void +# 2237| ValueCategory = prvalue +# 2237| getQualifier(): [VariableAccess] x739 +# 2237| Type = [Struct] String +# 2237| ValueCategory = lvalue +# 2237| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2237| Conversion = [BoolConversion] conversion to bool +# 2237| Type = [BoolType] bool +# 2237| Value = [CStyleCast] 0 +# 2237| ValueCategory = prvalue +# 2238| getStmt(740): [DoStmt] do (...) ... +# 2240| getCondition(): [Literal] 0 +# 2240| Type = [IntType] int +# 2240| Value = [Literal] 0 +# 2240| ValueCategory = prvalue +# 2238| getStmt(): [BlockStmt] { ... } +# 2239| getStmt(0): [DeclStmt] declaration +# 2239| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x740 +# 2239| Type = [Struct] String +# 2239| getVariable().getInitializer(): [Initializer] initializer for x740 +# 2239| getExpr(): [ConstructorCall] call to String +# 2239| Type = [VoidType] void +# 2239| ValueCategory = prvalue +# 2240| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2240| Type = [VoidType] void +# 2240| ValueCategory = prvalue +# 2240| getQualifier(): [VariableAccess] x740 +# 2240| Type = [Struct] String +# 2240| ValueCategory = lvalue +# 2240| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2240| Conversion = [BoolConversion] conversion to bool +# 2240| Type = [BoolType] bool +# 2240| Value = [CStyleCast] 0 +# 2240| ValueCategory = prvalue +# 2241| getStmt(741): [DoStmt] do (...) ... +# 2243| getCondition(): [Literal] 0 +# 2243| Type = [IntType] int +# 2243| Value = [Literal] 0 +# 2243| ValueCategory = prvalue +# 2241| getStmt(): [BlockStmt] { ... } +# 2242| getStmt(0): [DeclStmt] declaration +# 2242| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x741 +# 2242| Type = [Struct] String +# 2242| getVariable().getInitializer(): [Initializer] initializer for x741 +# 2242| getExpr(): [ConstructorCall] call to String +# 2242| Type = [VoidType] void +# 2242| ValueCategory = prvalue +# 2243| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2243| Type = [VoidType] void +# 2243| ValueCategory = prvalue +# 2243| getQualifier(): [VariableAccess] x741 +# 2243| Type = [Struct] String +# 2243| ValueCategory = lvalue +# 2243| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2243| Conversion = [BoolConversion] conversion to bool +# 2243| Type = [BoolType] bool +# 2243| Value = [CStyleCast] 0 +# 2243| ValueCategory = prvalue +# 2244| getStmt(742): [DoStmt] do (...) ... +# 2246| getCondition(): [Literal] 0 +# 2246| Type = [IntType] int +# 2246| Value = [Literal] 0 +# 2246| ValueCategory = prvalue +# 2244| getStmt(): [BlockStmt] { ... } +# 2245| getStmt(0): [DeclStmt] declaration +# 2245| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x742 +# 2245| Type = [Struct] String +# 2245| getVariable().getInitializer(): [Initializer] initializer for x742 +# 2245| getExpr(): [ConstructorCall] call to String +# 2245| Type = [VoidType] void +# 2245| ValueCategory = prvalue +# 2246| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2246| Type = [VoidType] void +# 2246| ValueCategory = prvalue +# 2246| getQualifier(): [VariableAccess] x742 +# 2246| Type = [Struct] String +# 2246| ValueCategory = lvalue +# 2246| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2246| Conversion = [BoolConversion] conversion to bool +# 2246| Type = [BoolType] bool +# 2246| Value = [CStyleCast] 0 +# 2246| ValueCategory = prvalue +# 2247| getStmt(743): [DoStmt] do (...) ... +# 2249| getCondition(): [Literal] 0 +# 2249| Type = [IntType] int +# 2249| Value = [Literal] 0 +# 2249| ValueCategory = prvalue +# 2247| getStmt(): [BlockStmt] { ... } +# 2248| getStmt(0): [DeclStmt] declaration +# 2248| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x743 +# 2248| Type = [Struct] String +# 2248| getVariable().getInitializer(): [Initializer] initializer for x743 +# 2248| getExpr(): [ConstructorCall] call to String +# 2248| Type = [VoidType] void +# 2248| ValueCategory = prvalue +# 2249| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2249| Type = [VoidType] void +# 2249| ValueCategory = prvalue +# 2249| getQualifier(): [VariableAccess] x743 +# 2249| Type = [Struct] String +# 2249| ValueCategory = lvalue +# 2249| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2249| Conversion = [BoolConversion] conversion to bool +# 2249| Type = [BoolType] bool +# 2249| Value = [CStyleCast] 0 +# 2249| ValueCategory = prvalue +# 2250| getStmt(744): [DoStmt] do (...) ... +# 2252| getCondition(): [Literal] 0 +# 2252| Type = [IntType] int +# 2252| Value = [Literal] 0 +# 2252| ValueCategory = prvalue +# 2250| getStmt(): [BlockStmt] { ... } +# 2251| getStmt(0): [DeclStmt] declaration +# 2251| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x744 +# 2251| Type = [Struct] String +# 2251| getVariable().getInitializer(): [Initializer] initializer for x744 +# 2251| getExpr(): [ConstructorCall] call to String +# 2251| Type = [VoidType] void +# 2251| ValueCategory = prvalue +# 2252| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2252| Type = [VoidType] void +# 2252| ValueCategory = prvalue +# 2252| getQualifier(): [VariableAccess] x744 +# 2252| Type = [Struct] String +# 2252| ValueCategory = lvalue +# 2252| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2252| Conversion = [BoolConversion] conversion to bool +# 2252| Type = [BoolType] bool +# 2252| Value = [CStyleCast] 0 +# 2252| ValueCategory = prvalue +# 2253| getStmt(745): [DoStmt] do (...) ... +# 2255| getCondition(): [Literal] 0 +# 2255| Type = [IntType] int +# 2255| Value = [Literal] 0 +# 2255| ValueCategory = prvalue +# 2253| getStmt(): [BlockStmt] { ... } +# 2254| getStmt(0): [DeclStmt] declaration +# 2254| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x745 +# 2254| Type = [Struct] String +# 2254| getVariable().getInitializer(): [Initializer] initializer for x745 +# 2254| getExpr(): [ConstructorCall] call to String +# 2254| Type = [VoidType] void +# 2254| ValueCategory = prvalue +# 2255| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2255| Type = [VoidType] void +# 2255| ValueCategory = prvalue +# 2255| getQualifier(): [VariableAccess] x745 +# 2255| Type = [Struct] String +# 2255| ValueCategory = lvalue +# 2255| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2255| Conversion = [BoolConversion] conversion to bool +# 2255| Type = [BoolType] bool +# 2255| Value = [CStyleCast] 0 +# 2255| ValueCategory = prvalue +# 2256| getStmt(746): [DoStmt] do (...) ... +# 2258| getCondition(): [Literal] 0 +# 2258| Type = [IntType] int +# 2258| Value = [Literal] 0 +# 2258| ValueCategory = prvalue +# 2256| getStmt(): [BlockStmt] { ... } +# 2257| getStmt(0): [DeclStmt] declaration +# 2257| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x746 +# 2257| Type = [Struct] String +# 2257| getVariable().getInitializer(): [Initializer] initializer for x746 +# 2257| getExpr(): [ConstructorCall] call to String +# 2257| Type = [VoidType] void +# 2257| ValueCategory = prvalue +# 2258| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2258| Type = [VoidType] void +# 2258| ValueCategory = prvalue +# 2258| getQualifier(): [VariableAccess] x746 +# 2258| Type = [Struct] String +# 2258| ValueCategory = lvalue +# 2258| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2258| Conversion = [BoolConversion] conversion to bool +# 2258| Type = [BoolType] bool +# 2258| Value = [CStyleCast] 0 +# 2258| ValueCategory = prvalue +# 2259| getStmt(747): [DoStmt] do (...) ... +# 2261| getCondition(): [Literal] 0 +# 2261| Type = [IntType] int +# 2261| Value = [Literal] 0 +# 2261| ValueCategory = prvalue +# 2259| getStmt(): [BlockStmt] { ... } +# 2260| getStmt(0): [DeclStmt] declaration +# 2260| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x747 +# 2260| Type = [Struct] String +# 2260| getVariable().getInitializer(): [Initializer] initializer for x747 +# 2260| getExpr(): [ConstructorCall] call to String +# 2260| Type = [VoidType] void +# 2260| ValueCategory = prvalue +# 2261| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2261| Type = [VoidType] void +# 2261| ValueCategory = prvalue +# 2261| getQualifier(): [VariableAccess] x747 +# 2261| Type = [Struct] String +# 2261| ValueCategory = lvalue +# 2261| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2261| Conversion = [BoolConversion] conversion to bool +# 2261| Type = [BoolType] bool +# 2261| Value = [CStyleCast] 0 +# 2261| ValueCategory = prvalue +# 2262| getStmt(748): [DoStmt] do (...) ... +# 2264| getCondition(): [Literal] 0 +# 2264| Type = [IntType] int +# 2264| Value = [Literal] 0 +# 2264| ValueCategory = prvalue +# 2262| getStmt(): [BlockStmt] { ... } +# 2263| getStmt(0): [DeclStmt] declaration +# 2263| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x748 +# 2263| Type = [Struct] String +# 2263| getVariable().getInitializer(): [Initializer] initializer for x748 +# 2263| getExpr(): [ConstructorCall] call to String +# 2263| Type = [VoidType] void +# 2263| ValueCategory = prvalue +# 2264| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2264| Type = [VoidType] void +# 2264| ValueCategory = prvalue +# 2264| getQualifier(): [VariableAccess] x748 +# 2264| Type = [Struct] String +# 2264| ValueCategory = lvalue +# 2264| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2264| Conversion = [BoolConversion] conversion to bool +# 2264| Type = [BoolType] bool +# 2264| Value = [CStyleCast] 0 +# 2264| ValueCategory = prvalue +# 2265| getStmt(749): [DoStmt] do (...) ... +# 2267| getCondition(): [Literal] 0 +# 2267| Type = [IntType] int +# 2267| Value = [Literal] 0 +# 2267| ValueCategory = prvalue +# 2265| getStmt(): [BlockStmt] { ... } +# 2266| getStmt(0): [DeclStmt] declaration +# 2266| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x749 +# 2266| Type = [Struct] String +# 2266| getVariable().getInitializer(): [Initializer] initializer for x749 +# 2266| getExpr(): [ConstructorCall] call to String +# 2266| Type = [VoidType] void +# 2266| ValueCategory = prvalue +# 2267| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2267| Type = [VoidType] void +# 2267| ValueCategory = prvalue +# 2267| getQualifier(): [VariableAccess] x749 +# 2267| Type = [Struct] String +# 2267| ValueCategory = lvalue +# 2267| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2267| Conversion = [BoolConversion] conversion to bool +# 2267| Type = [BoolType] bool +# 2267| Value = [CStyleCast] 0 +# 2267| ValueCategory = prvalue +# 2268| getStmt(750): [DoStmt] do (...) ... +# 2270| getCondition(): [Literal] 0 +# 2270| Type = [IntType] int +# 2270| Value = [Literal] 0 +# 2270| ValueCategory = prvalue +# 2268| getStmt(): [BlockStmt] { ... } +# 2269| getStmt(0): [DeclStmt] declaration +# 2269| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x750 +# 2269| Type = [Struct] String +# 2269| getVariable().getInitializer(): [Initializer] initializer for x750 +# 2269| getExpr(): [ConstructorCall] call to String +# 2269| Type = [VoidType] void +# 2269| ValueCategory = prvalue +# 2270| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2270| Type = [VoidType] void +# 2270| ValueCategory = prvalue +# 2270| getQualifier(): [VariableAccess] x750 +# 2270| Type = [Struct] String +# 2270| ValueCategory = lvalue +# 2270| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2270| Conversion = [BoolConversion] conversion to bool +# 2270| Type = [BoolType] bool +# 2270| Value = [CStyleCast] 0 +# 2270| ValueCategory = prvalue +# 2271| getStmt(751): [DoStmt] do (...) ... +# 2273| getCondition(): [Literal] 0 +# 2273| Type = [IntType] int +# 2273| Value = [Literal] 0 +# 2273| ValueCategory = prvalue +# 2271| getStmt(): [BlockStmt] { ... } +# 2272| getStmt(0): [DeclStmt] declaration +# 2272| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x751 +# 2272| Type = [Struct] String +# 2272| getVariable().getInitializer(): [Initializer] initializer for x751 +# 2272| getExpr(): [ConstructorCall] call to String +# 2272| Type = [VoidType] void +# 2272| ValueCategory = prvalue +# 2273| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2273| Type = [VoidType] void +# 2273| ValueCategory = prvalue +# 2273| getQualifier(): [VariableAccess] x751 +# 2273| Type = [Struct] String +# 2273| ValueCategory = lvalue +# 2273| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2273| Conversion = [BoolConversion] conversion to bool +# 2273| Type = [BoolType] bool +# 2273| Value = [CStyleCast] 0 +# 2273| ValueCategory = prvalue +# 2274| getStmt(752): [DoStmt] do (...) ... +# 2276| getCondition(): [Literal] 0 +# 2276| Type = [IntType] int +# 2276| Value = [Literal] 0 +# 2276| ValueCategory = prvalue +# 2274| getStmt(): [BlockStmt] { ... } +# 2275| getStmt(0): [DeclStmt] declaration +# 2275| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x752 +# 2275| Type = [Struct] String +# 2275| getVariable().getInitializer(): [Initializer] initializer for x752 +# 2275| getExpr(): [ConstructorCall] call to String +# 2275| Type = [VoidType] void +# 2275| ValueCategory = prvalue +# 2276| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2276| Type = [VoidType] void +# 2276| ValueCategory = prvalue +# 2276| getQualifier(): [VariableAccess] x752 +# 2276| Type = [Struct] String +# 2276| ValueCategory = lvalue +# 2276| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2276| Conversion = [BoolConversion] conversion to bool +# 2276| Type = [BoolType] bool +# 2276| Value = [CStyleCast] 0 +# 2276| ValueCategory = prvalue +# 2277| getStmt(753): [DoStmt] do (...) ... +# 2279| getCondition(): [Literal] 0 +# 2279| Type = [IntType] int +# 2279| Value = [Literal] 0 +# 2279| ValueCategory = prvalue +# 2277| getStmt(): [BlockStmt] { ... } +# 2278| getStmt(0): [DeclStmt] declaration +# 2278| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x753 +# 2278| Type = [Struct] String +# 2278| getVariable().getInitializer(): [Initializer] initializer for x753 +# 2278| getExpr(): [ConstructorCall] call to String +# 2278| Type = [VoidType] void +# 2278| ValueCategory = prvalue +# 2279| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2279| Type = [VoidType] void +# 2279| ValueCategory = prvalue +# 2279| getQualifier(): [VariableAccess] x753 +# 2279| Type = [Struct] String +# 2279| ValueCategory = lvalue +# 2279| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2279| Conversion = [BoolConversion] conversion to bool +# 2279| Type = [BoolType] bool +# 2279| Value = [CStyleCast] 0 +# 2279| ValueCategory = prvalue +# 2280| getStmt(754): [DoStmt] do (...) ... +# 2282| getCondition(): [Literal] 0 +# 2282| Type = [IntType] int +# 2282| Value = [Literal] 0 +# 2282| ValueCategory = prvalue +# 2280| getStmt(): [BlockStmt] { ... } +# 2281| getStmt(0): [DeclStmt] declaration +# 2281| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x754 +# 2281| Type = [Struct] String +# 2281| getVariable().getInitializer(): [Initializer] initializer for x754 +# 2281| getExpr(): [ConstructorCall] call to String +# 2281| Type = [VoidType] void +# 2281| ValueCategory = prvalue +# 2282| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2282| Type = [VoidType] void +# 2282| ValueCategory = prvalue +# 2282| getQualifier(): [VariableAccess] x754 +# 2282| Type = [Struct] String +# 2282| ValueCategory = lvalue +# 2282| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2282| Conversion = [BoolConversion] conversion to bool +# 2282| Type = [BoolType] bool +# 2282| Value = [CStyleCast] 0 +# 2282| ValueCategory = prvalue +# 2283| getStmt(755): [DoStmt] do (...) ... +# 2285| getCondition(): [Literal] 0 +# 2285| Type = [IntType] int +# 2285| Value = [Literal] 0 +# 2285| ValueCategory = prvalue +# 2283| getStmt(): [BlockStmt] { ... } +# 2284| getStmt(0): [DeclStmt] declaration +# 2284| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x755 +# 2284| Type = [Struct] String +# 2284| getVariable().getInitializer(): [Initializer] initializer for x755 +# 2284| getExpr(): [ConstructorCall] call to String +# 2284| Type = [VoidType] void +# 2284| ValueCategory = prvalue +# 2285| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2285| Type = [VoidType] void +# 2285| ValueCategory = prvalue +# 2285| getQualifier(): [VariableAccess] x755 +# 2285| Type = [Struct] String +# 2285| ValueCategory = lvalue +# 2285| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2285| Conversion = [BoolConversion] conversion to bool +# 2285| Type = [BoolType] bool +# 2285| Value = [CStyleCast] 0 +# 2285| ValueCategory = prvalue +# 2286| getStmt(756): [DoStmt] do (...) ... +# 2288| getCondition(): [Literal] 0 +# 2288| Type = [IntType] int +# 2288| Value = [Literal] 0 +# 2288| ValueCategory = prvalue +# 2286| getStmt(): [BlockStmt] { ... } +# 2287| getStmt(0): [DeclStmt] declaration +# 2287| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x756 +# 2287| Type = [Struct] String +# 2287| getVariable().getInitializer(): [Initializer] initializer for x756 +# 2287| getExpr(): [ConstructorCall] call to String +# 2287| Type = [VoidType] void +# 2287| ValueCategory = prvalue +# 2288| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2288| Type = [VoidType] void +# 2288| ValueCategory = prvalue +# 2288| getQualifier(): [VariableAccess] x756 +# 2288| Type = [Struct] String +# 2288| ValueCategory = lvalue +# 2288| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2288| Conversion = [BoolConversion] conversion to bool +# 2288| Type = [BoolType] bool +# 2288| Value = [CStyleCast] 0 +# 2288| ValueCategory = prvalue +# 2289| getStmt(757): [DoStmt] do (...) ... +# 2291| getCondition(): [Literal] 0 +# 2291| Type = [IntType] int +# 2291| Value = [Literal] 0 +# 2291| ValueCategory = prvalue +# 2289| getStmt(): [BlockStmt] { ... } +# 2290| getStmt(0): [DeclStmt] declaration +# 2290| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x757 +# 2290| Type = [Struct] String +# 2290| getVariable().getInitializer(): [Initializer] initializer for x757 +# 2290| getExpr(): [ConstructorCall] call to String +# 2290| Type = [VoidType] void +# 2290| ValueCategory = prvalue +# 2291| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2291| Type = [VoidType] void +# 2291| ValueCategory = prvalue +# 2291| getQualifier(): [VariableAccess] x757 +# 2291| Type = [Struct] String +# 2291| ValueCategory = lvalue +# 2291| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2291| Conversion = [BoolConversion] conversion to bool +# 2291| Type = [BoolType] bool +# 2291| Value = [CStyleCast] 0 +# 2291| ValueCategory = prvalue +# 2292| getStmt(758): [DoStmt] do (...) ... +# 2294| getCondition(): [Literal] 0 +# 2294| Type = [IntType] int +# 2294| Value = [Literal] 0 +# 2294| ValueCategory = prvalue +# 2292| getStmt(): [BlockStmt] { ... } +# 2293| getStmt(0): [DeclStmt] declaration +# 2293| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x758 +# 2293| Type = [Struct] String +# 2293| getVariable().getInitializer(): [Initializer] initializer for x758 +# 2293| getExpr(): [ConstructorCall] call to String +# 2293| Type = [VoidType] void +# 2293| ValueCategory = prvalue +# 2294| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2294| Type = [VoidType] void +# 2294| ValueCategory = prvalue +# 2294| getQualifier(): [VariableAccess] x758 +# 2294| Type = [Struct] String +# 2294| ValueCategory = lvalue +# 2294| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2294| Conversion = [BoolConversion] conversion to bool +# 2294| Type = [BoolType] bool +# 2294| Value = [CStyleCast] 0 +# 2294| ValueCategory = prvalue +# 2295| getStmt(759): [DoStmt] do (...) ... +# 2297| getCondition(): [Literal] 0 +# 2297| Type = [IntType] int +# 2297| Value = [Literal] 0 +# 2297| ValueCategory = prvalue +# 2295| getStmt(): [BlockStmt] { ... } +# 2296| getStmt(0): [DeclStmt] declaration +# 2296| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x759 +# 2296| Type = [Struct] String +# 2296| getVariable().getInitializer(): [Initializer] initializer for x759 +# 2296| getExpr(): [ConstructorCall] call to String +# 2296| Type = [VoidType] void +# 2296| ValueCategory = prvalue +# 2297| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2297| Type = [VoidType] void +# 2297| ValueCategory = prvalue +# 2297| getQualifier(): [VariableAccess] x759 +# 2297| Type = [Struct] String +# 2297| ValueCategory = lvalue +# 2297| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2297| Conversion = [BoolConversion] conversion to bool +# 2297| Type = [BoolType] bool +# 2297| Value = [CStyleCast] 0 +# 2297| ValueCategory = prvalue +# 2298| getStmt(760): [DoStmt] do (...) ... +# 2300| getCondition(): [Literal] 0 +# 2300| Type = [IntType] int +# 2300| Value = [Literal] 0 +# 2300| ValueCategory = prvalue +# 2298| getStmt(): [BlockStmt] { ... } +# 2299| getStmt(0): [DeclStmt] declaration +# 2299| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x760 +# 2299| Type = [Struct] String +# 2299| getVariable().getInitializer(): [Initializer] initializer for x760 +# 2299| getExpr(): [ConstructorCall] call to String +# 2299| Type = [VoidType] void +# 2299| ValueCategory = prvalue +# 2300| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2300| Type = [VoidType] void +# 2300| ValueCategory = prvalue +# 2300| getQualifier(): [VariableAccess] x760 +# 2300| Type = [Struct] String +# 2300| ValueCategory = lvalue +# 2300| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2300| Conversion = [BoolConversion] conversion to bool +# 2300| Type = [BoolType] bool +# 2300| Value = [CStyleCast] 0 +# 2300| ValueCategory = prvalue +# 2301| getStmt(761): [DoStmt] do (...) ... +# 2303| getCondition(): [Literal] 0 +# 2303| Type = [IntType] int +# 2303| Value = [Literal] 0 +# 2303| ValueCategory = prvalue +# 2301| getStmt(): [BlockStmt] { ... } +# 2302| getStmt(0): [DeclStmt] declaration +# 2302| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x761 +# 2302| Type = [Struct] String +# 2302| getVariable().getInitializer(): [Initializer] initializer for x761 +# 2302| getExpr(): [ConstructorCall] call to String +# 2302| Type = [VoidType] void +# 2302| ValueCategory = prvalue +# 2303| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2303| Type = [VoidType] void +# 2303| ValueCategory = prvalue +# 2303| getQualifier(): [VariableAccess] x761 +# 2303| Type = [Struct] String +# 2303| ValueCategory = lvalue +# 2303| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2303| Conversion = [BoolConversion] conversion to bool +# 2303| Type = [BoolType] bool +# 2303| Value = [CStyleCast] 0 +# 2303| ValueCategory = prvalue +# 2304| getStmt(762): [DoStmt] do (...) ... +# 2306| getCondition(): [Literal] 0 +# 2306| Type = [IntType] int +# 2306| Value = [Literal] 0 +# 2306| ValueCategory = prvalue +# 2304| getStmt(): [BlockStmt] { ... } +# 2305| getStmt(0): [DeclStmt] declaration +# 2305| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x762 +# 2305| Type = [Struct] String +# 2305| getVariable().getInitializer(): [Initializer] initializer for x762 +# 2305| getExpr(): [ConstructorCall] call to String +# 2305| Type = [VoidType] void +# 2305| ValueCategory = prvalue +# 2306| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2306| Type = [VoidType] void +# 2306| ValueCategory = prvalue +# 2306| getQualifier(): [VariableAccess] x762 +# 2306| Type = [Struct] String +# 2306| ValueCategory = lvalue +# 2306| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2306| Conversion = [BoolConversion] conversion to bool +# 2306| Type = [BoolType] bool +# 2306| Value = [CStyleCast] 0 +# 2306| ValueCategory = prvalue +# 2307| getStmt(763): [DoStmt] do (...) ... +# 2309| getCondition(): [Literal] 0 +# 2309| Type = [IntType] int +# 2309| Value = [Literal] 0 +# 2309| ValueCategory = prvalue +# 2307| getStmt(): [BlockStmt] { ... } +# 2308| getStmt(0): [DeclStmt] declaration +# 2308| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x763 +# 2308| Type = [Struct] String +# 2308| getVariable().getInitializer(): [Initializer] initializer for x763 +# 2308| getExpr(): [ConstructorCall] call to String +# 2308| Type = [VoidType] void +# 2308| ValueCategory = prvalue +# 2309| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2309| Type = [VoidType] void +# 2309| ValueCategory = prvalue +# 2309| getQualifier(): [VariableAccess] x763 +# 2309| Type = [Struct] String +# 2309| ValueCategory = lvalue +# 2309| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2309| Conversion = [BoolConversion] conversion to bool +# 2309| Type = [BoolType] bool +# 2309| Value = [CStyleCast] 0 +# 2309| ValueCategory = prvalue +# 2310| getStmt(764): [DoStmt] do (...) ... +# 2312| getCondition(): [Literal] 0 +# 2312| Type = [IntType] int +# 2312| Value = [Literal] 0 +# 2312| ValueCategory = prvalue +# 2310| getStmt(): [BlockStmt] { ... } +# 2311| getStmt(0): [DeclStmt] declaration +# 2311| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x764 +# 2311| Type = [Struct] String +# 2311| getVariable().getInitializer(): [Initializer] initializer for x764 +# 2311| getExpr(): [ConstructorCall] call to String +# 2311| Type = [VoidType] void +# 2311| ValueCategory = prvalue +# 2312| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2312| Type = [VoidType] void +# 2312| ValueCategory = prvalue +# 2312| getQualifier(): [VariableAccess] x764 +# 2312| Type = [Struct] String +# 2312| ValueCategory = lvalue +# 2312| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2312| Conversion = [BoolConversion] conversion to bool +# 2312| Type = [BoolType] bool +# 2312| Value = [CStyleCast] 0 +# 2312| ValueCategory = prvalue +# 2313| getStmt(765): [DoStmt] do (...) ... +# 2315| getCondition(): [Literal] 0 +# 2315| Type = [IntType] int +# 2315| Value = [Literal] 0 +# 2315| ValueCategory = prvalue +# 2313| getStmt(): [BlockStmt] { ... } +# 2314| getStmt(0): [DeclStmt] declaration +# 2314| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x765 +# 2314| Type = [Struct] String +# 2314| getVariable().getInitializer(): [Initializer] initializer for x765 +# 2314| getExpr(): [ConstructorCall] call to String +# 2314| Type = [VoidType] void +# 2314| ValueCategory = prvalue +# 2315| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2315| Type = [VoidType] void +# 2315| ValueCategory = prvalue +# 2315| getQualifier(): [VariableAccess] x765 +# 2315| Type = [Struct] String +# 2315| ValueCategory = lvalue +# 2315| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2315| Conversion = [BoolConversion] conversion to bool +# 2315| Type = [BoolType] bool +# 2315| Value = [CStyleCast] 0 +# 2315| ValueCategory = prvalue +# 2316| getStmt(766): [DoStmt] do (...) ... +# 2318| getCondition(): [Literal] 0 +# 2318| Type = [IntType] int +# 2318| Value = [Literal] 0 +# 2318| ValueCategory = prvalue +# 2316| getStmt(): [BlockStmt] { ... } +# 2317| getStmt(0): [DeclStmt] declaration +# 2317| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x766 +# 2317| Type = [Struct] String +# 2317| getVariable().getInitializer(): [Initializer] initializer for x766 +# 2317| getExpr(): [ConstructorCall] call to String +# 2317| Type = [VoidType] void +# 2317| ValueCategory = prvalue +# 2318| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2318| Type = [VoidType] void +# 2318| ValueCategory = prvalue +# 2318| getQualifier(): [VariableAccess] x766 +# 2318| Type = [Struct] String +# 2318| ValueCategory = lvalue +# 2318| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2318| Conversion = [BoolConversion] conversion to bool +# 2318| Type = [BoolType] bool +# 2318| Value = [CStyleCast] 0 +# 2318| ValueCategory = prvalue +# 2319| getStmt(767): [DoStmt] do (...) ... +# 2321| getCondition(): [Literal] 0 +# 2321| Type = [IntType] int +# 2321| Value = [Literal] 0 +# 2321| ValueCategory = prvalue +# 2319| getStmt(): [BlockStmt] { ... } +# 2320| getStmt(0): [DeclStmt] declaration +# 2320| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x767 +# 2320| Type = [Struct] String +# 2320| getVariable().getInitializer(): [Initializer] initializer for x767 +# 2320| getExpr(): [ConstructorCall] call to String +# 2320| Type = [VoidType] void +# 2320| ValueCategory = prvalue +# 2321| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2321| Type = [VoidType] void +# 2321| ValueCategory = prvalue +# 2321| getQualifier(): [VariableAccess] x767 +# 2321| Type = [Struct] String +# 2321| ValueCategory = lvalue +# 2321| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2321| Conversion = [BoolConversion] conversion to bool +# 2321| Type = [BoolType] bool +# 2321| Value = [CStyleCast] 0 +# 2321| ValueCategory = prvalue +# 2322| getStmt(768): [DoStmt] do (...) ... +# 2324| getCondition(): [Literal] 0 +# 2324| Type = [IntType] int +# 2324| Value = [Literal] 0 +# 2324| ValueCategory = prvalue +# 2322| getStmt(): [BlockStmt] { ... } +# 2323| getStmt(0): [DeclStmt] declaration +# 2323| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x768 +# 2323| Type = [Struct] String +# 2323| getVariable().getInitializer(): [Initializer] initializer for x768 +# 2323| getExpr(): [ConstructorCall] call to String +# 2323| Type = [VoidType] void +# 2323| ValueCategory = prvalue +# 2324| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2324| Type = [VoidType] void +# 2324| ValueCategory = prvalue +# 2324| getQualifier(): [VariableAccess] x768 +# 2324| Type = [Struct] String +# 2324| ValueCategory = lvalue +# 2324| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2324| Conversion = [BoolConversion] conversion to bool +# 2324| Type = [BoolType] bool +# 2324| Value = [CStyleCast] 0 +# 2324| ValueCategory = prvalue +# 2325| getStmt(769): [DoStmt] do (...) ... +# 2327| getCondition(): [Literal] 0 +# 2327| Type = [IntType] int +# 2327| Value = [Literal] 0 +# 2327| ValueCategory = prvalue +# 2325| getStmt(): [BlockStmt] { ... } +# 2326| getStmt(0): [DeclStmt] declaration +# 2326| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x769 +# 2326| Type = [Struct] String +# 2326| getVariable().getInitializer(): [Initializer] initializer for x769 +# 2326| getExpr(): [ConstructorCall] call to String +# 2326| Type = [VoidType] void +# 2326| ValueCategory = prvalue +# 2327| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2327| Type = [VoidType] void +# 2327| ValueCategory = prvalue +# 2327| getQualifier(): [VariableAccess] x769 +# 2327| Type = [Struct] String +# 2327| ValueCategory = lvalue +# 2327| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2327| Conversion = [BoolConversion] conversion to bool +# 2327| Type = [BoolType] bool +# 2327| Value = [CStyleCast] 0 +# 2327| ValueCategory = prvalue +# 2328| getStmt(770): [DoStmt] do (...) ... +# 2330| getCondition(): [Literal] 0 +# 2330| Type = [IntType] int +# 2330| Value = [Literal] 0 +# 2330| ValueCategory = prvalue +# 2328| getStmt(): [BlockStmt] { ... } +# 2329| getStmt(0): [DeclStmt] declaration +# 2329| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x770 +# 2329| Type = [Struct] String +# 2329| getVariable().getInitializer(): [Initializer] initializer for x770 +# 2329| getExpr(): [ConstructorCall] call to String +# 2329| Type = [VoidType] void +# 2329| ValueCategory = prvalue +# 2330| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2330| Type = [VoidType] void +# 2330| ValueCategory = prvalue +# 2330| getQualifier(): [VariableAccess] x770 +# 2330| Type = [Struct] String +# 2330| ValueCategory = lvalue +# 2330| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2330| Conversion = [BoolConversion] conversion to bool +# 2330| Type = [BoolType] bool +# 2330| Value = [CStyleCast] 0 +# 2330| ValueCategory = prvalue +# 2331| getStmt(771): [DoStmt] do (...) ... +# 2333| getCondition(): [Literal] 0 +# 2333| Type = [IntType] int +# 2333| Value = [Literal] 0 +# 2333| ValueCategory = prvalue +# 2331| getStmt(): [BlockStmt] { ... } +# 2332| getStmt(0): [DeclStmt] declaration +# 2332| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x771 +# 2332| Type = [Struct] String +# 2332| getVariable().getInitializer(): [Initializer] initializer for x771 +# 2332| getExpr(): [ConstructorCall] call to String +# 2332| Type = [VoidType] void +# 2332| ValueCategory = prvalue +# 2333| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2333| Type = [VoidType] void +# 2333| ValueCategory = prvalue +# 2333| getQualifier(): [VariableAccess] x771 +# 2333| Type = [Struct] String +# 2333| ValueCategory = lvalue +# 2333| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2333| Conversion = [BoolConversion] conversion to bool +# 2333| Type = [BoolType] bool +# 2333| Value = [CStyleCast] 0 +# 2333| ValueCategory = prvalue +# 2334| getStmt(772): [DoStmt] do (...) ... +# 2336| getCondition(): [Literal] 0 +# 2336| Type = [IntType] int +# 2336| Value = [Literal] 0 +# 2336| ValueCategory = prvalue +# 2334| getStmt(): [BlockStmt] { ... } +# 2335| getStmt(0): [DeclStmt] declaration +# 2335| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x772 +# 2335| Type = [Struct] String +# 2335| getVariable().getInitializer(): [Initializer] initializer for x772 +# 2335| getExpr(): [ConstructorCall] call to String +# 2335| Type = [VoidType] void +# 2335| ValueCategory = prvalue +# 2336| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2336| Type = [VoidType] void +# 2336| ValueCategory = prvalue +# 2336| getQualifier(): [VariableAccess] x772 +# 2336| Type = [Struct] String +# 2336| ValueCategory = lvalue +# 2336| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2336| Conversion = [BoolConversion] conversion to bool +# 2336| Type = [BoolType] bool +# 2336| Value = [CStyleCast] 0 +# 2336| ValueCategory = prvalue +# 2337| getStmt(773): [DoStmt] do (...) ... +# 2339| getCondition(): [Literal] 0 +# 2339| Type = [IntType] int +# 2339| Value = [Literal] 0 +# 2339| ValueCategory = prvalue +# 2337| getStmt(): [BlockStmt] { ... } +# 2338| getStmt(0): [DeclStmt] declaration +# 2338| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x773 +# 2338| Type = [Struct] String +# 2338| getVariable().getInitializer(): [Initializer] initializer for x773 +# 2338| getExpr(): [ConstructorCall] call to String +# 2338| Type = [VoidType] void +# 2338| ValueCategory = prvalue +# 2339| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2339| Type = [VoidType] void +# 2339| ValueCategory = prvalue +# 2339| getQualifier(): [VariableAccess] x773 +# 2339| Type = [Struct] String +# 2339| ValueCategory = lvalue +# 2339| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2339| Conversion = [BoolConversion] conversion to bool +# 2339| Type = [BoolType] bool +# 2339| Value = [CStyleCast] 0 +# 2339| ValueCategory = prvalue +# 2340| getStmt(774): [DoStmt] do (...) ... +# 2342| getCondition(): [Literal] 0 +# 2342| Type = [IntType] int +# 2342| Value = [Literal] 0 +# 2342| ValueCategory = prvalue +# 2340| getStmt(): [BlockStmt] { ... } +# 2341| getStmt(0): [DeclStmt] declaration +# 2341| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x774 +# 2341| Type = [Struct] String +# 2341| getVariable().getInitializer(): [Initializer] initializer for x774 +# 2341| getExpr(): [ConstructorCall] call to String +# 2341| Type = [VoidType] void +# 2341| ValueCategory = prvalue +# 2342| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2342| Type = [VoidType] void +# 2342| ValueCategory = prvalue +# 2342| getQualifier(): [VariableAccess] x774 +# 2342| Type = [Struct] String +# 2342| ValueCategory = lvalue +# 2342| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2342| Conversion = [BoolConversion] conversion to bool +# 2342| Type = [BoolType] bool +# 2342| Value = [CStyleCast] 0 +# 2342| ValueCategory = prvalue +# 2343| getStmt(775): [DoStmt] do (...) ... +# 2345| getCondition(): [Literal] 0 +# 2345| Type = [IntType] int +# 2345| Value = [Literal] 0 +# 2345| ValueCategory = prvalue +# 2343| getStmt(): [BlockStmt] { ... } +# 2344| getStmt(0): [DeclStmt] declaration +# 2344| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x775 +# 2344| Type = [Struct] String +# 2344| getVariable().getInitializer(): [Initializer] initializer for x775 +# 2344| getExpr(): [ConstructorCall] call to String +# 2344| Type = [VoidType] void +# 2344| ValueCategory = prvalue +# 2345| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2345| Type = [VoidType] void +# 2345| ValueCategory = prvalue +# 2345| getQualifier(): [VariableAccess] x775 +# 2345| Type = [Struct] String +# 2345| ValueCategory = lvalue +# 2345| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2345| Conversion = [BoolConversion] conversion to bool +# 2345| Type = [BoolType] bool +# 2345| Value = [CStyleCast] 0 +# 2345| ValueCategory = prvalue +# 2346| getStmt(776): [DoStmt] do (...) ... +# 2348| getCondition(): [Literal] 0 +# 2348| Type = [IntType] int +# 2348| Value = [Literal] 0 +# 2348| ValueCategory = prvalue +# 2346| getStmt(): [BlockStmt] { ... } +# 2347| getStmt(0): [DeclStmt] declaration +# 2347| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x776 +# 2347| Type = [Struct] String +# 2347| getVariable().getInitializer(): [Initializer] initializer for x776 +# 2347| getExpr(): [ConstructorCall] call to String +# 2347| Type = [VoidType] void +# 2347| ValueCategory = prvalue +# 2348| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2348| Type = [VoidType] void +# 2348| ValueCategory = prvalue +# 2348| getQualifier(): [VariableAccess] x776 +# 2348| Type = [Struct] String +# 2348| ValueCategory = lvalue +# 2348| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2348| Conversion = [BoolConversion] conversion to bool +# 2348| Type = [BoolType] bool +# 2348| Value = [CStyleCast] 0 +# 2348| ValueCategory = prvalue +# 2349| getStmt(777): [DoStmt] do (...) ... +# 2351| getCondition(): [Literal] 0 +# 2351| Type = [IntType] int +# 2351| Value = [Literal] 0 +# 2351| ValueCategory = prvalue +# 2349| getStmt(): [BlockStmt] { ... } +# 2350| getStmt(0): [DeclStmt] declaration +# 2350| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x777 +# 2350| Type = [Struct] String +# 2350| getVariable().getInitializer(): [Initializer] initializer for x777 +# 2350| getExpr(): [ConstructorCall] call to String +# 2350| Type = [VoidType] void +# 2350| ValueCategory = prvalue +# 2351| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2351| Type = [VoidType] void +# 2351| ValueCategory = prvalue +# 2351| getQualifier(): [VariableAccess] x777 +# 2351| Type = [Struct] String +# 2351| ValueCategory = lvalue +# 2351| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2351| Conversion = [BoolConversion] conversion to bool +# 2351| Type = [BoolType] bool +# 2351| Value = [CStyleCast] 0 +# 2351| ValueCategory = prvalue +# 2352| getStmt(778): [DoStmt] do (...) ... +# 2354| getCondition(): [Literal] 0 +# 2354| Type = [IntType] int +# 2354| Value = [Literal] 0 +# 2354| ValueCategory = prvalue +# 2352| getStmt(): [BlockStmt] { ... } +# 2353| getStmt(0): [DeclStmt] declaration +# 2353| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x778 +# 2353| Type = [Struct] String +# 2353| getVariable().getInitializer(): [Initializer] initializer for x778 +# 2353| getExpr(): [ConstructorCall] call to String +# 2353| Type = [VoidType] void +# 2353| ValueCategory = prvalue +# 2354| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2354| Type = [VoidType] void +# 2354| ValueCategory = prvalue +# 2354| getQualifier(): [VariableAccess] x778 +# 2354| Type = [Struct] String +# 2354| ValueCategory = lvalue +# 2354| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2354| Conversion = [BoolConversion] conversion to bool +# 2354| Type = [BoolType] bool +# 2354| Value = [CStyleCast] 0 +# 2354| ValueCategory = prvalue +# 2355| getStmt(779): [DoStmt] do (...) ... +# 2357| getCondition(): [Literal] 0 +# 2357| Type = [IntType] int +# 2357| Value = [Literal] 0 +# 2357| ValueCategory = prvalue +# 2355| getStmt(): [BlockStmt] { ... } +# 2356| getStmt(0): [DeclStmt] declaration +# 2356| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x779 +# 2356| Type = [Struct] String +# 2356| getVariable().getInitializer(): [Initializer] initializer for x779 +# 2356| getExpr(): [ConstructorCall] call to String +# 2356| Type = [VoidType] void +# 2356| ValueCategory = prvalue +# 2357| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2357| Type = [VoidType] void +# 2357| ValueCategory = prvalue +# 2357| getQualifier(): [VariableAccess] x779 +# 2357| Type = [Struct] String +# 2357| ValueCategory = lvalue +# 2357| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2357| Conversion = [BoolConversion] conversion to bool +# 2357| Type = [BoolType] bool +# 2357| Value = [CStyleCast] 0 +# 2357| ValueCategory = prvalue +# 2358| getStmt(780): [DoStmt] do (...) ... +# 2360| getCondition(): [Literal] 0 +# 2360| Type = [IntType] int +# 2360| Value = [Literal] 0 +# 2360| ValueCategory = prvalue +# 2358| getStmt(): [BlockStmt] { ... } +# 2359| getStmt(0): [DeclStmt] declaration +# 2359| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x780 +# 2359| Type = [Struct] String +# 2359| getVariable().getInitializer(): [Initializer] initializer for x780 +# 2359| getExpr(): [ConstructorCall] call to String +# 2359| Type = [VoidType] void +# 2359| ValueCategory = prvalue +# 2360| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2360| Type = [VoidType] void +# 2360| ValueCategory = prvalue +# 2360| getQualifier(): [VariableAccess] x780 +# 2360| Type = [Struct] String +# 2360| ValueCategory = lvalue +# 2360| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2360| Conversion = [BoolConversion] conversion to bool +# 2360| Type = [BoolType] bool +# 2360| Value = [CStyleCast] 0 +# 2360| ValueCategory = prvalue +# 2361| getStmt(781): [DoStmt] do (...) ... +# 2363| getCondition(): [Literal] 0 +# 2363| Type = [IntType] int +# 2363| Value = [Literal] 0 +# 2363| ValueCategory = prvalue +# 2361| getStmt(): [BlockStmt] { ... } +# 2362| getStmt(0): [DeclStmt] declaration +# 2362| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x781 +# 2362| Type = [Struct] String +# 2362| getVariable().getInitializer(): [Initializer] initializer for x781 +# 2362| getExpr(): [ConstructorCall] call to String +# 2362| Type = [VoidType] void +# 2362| ValueCategory = prvalue +# 2363| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2363| Type = [VoidType] void +# 2363| ValueCategory = prvalue +# 2363| getQualifier(): [VariableAccess] x781 +# 2363| Type = [Struct] String +# 2363| ValueCategory = lvalue +# 2363| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2363| Conversion = [BoolConversion] conversion to bool +# 2363| Type = [BoolType] bool +# 2363| Value = [CStyleCast] 0 +# 2363| ValueCategory = prvalue +# 2364| getStmt(782): [DoStmt] do (...) ... +# 2366| getCondition(): [Literal] 0 +# 2366| Type = [IntType] int +# 2366| Value = [Literal] 0 +# 2366| ValueCategory = prvalue +# 2364| getStmt(): [BlockStmt] { ... } +# 2365| getStmt(0): [DeclStmt] declaration +# 2365| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x782 +# 2365| Type = [Struct] String +# 2365| getVariable().getInitializer(): [Initializer] initializer for x782 +# 2365| getExpr(): [ConstructorCall] call to String +# 2365| Type = [VoidType] void +# 2365| ValueCategory = prvalue +# 2366| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2366| Type = [VoidType] void +# 2366| ValueCategory = prvalue +# 2366| getQualifier(): [VariableAccess] x782 +# 2366| Type = [Struct] String +# 2366| ValueCategory = lvalue +# 2366| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2366| Conversion = [BoolConversion] conversion to bool +# 2366| Type = [BoolType] bool +# 2366| Value = [CStyleCast] 0 +# 2366| ValueCategory = prvalue +# 2367| getStmt(783): [DoStmt] do (...) ... +# 2369| getCondition(): [Literal] 0 +# 2369| Type = [IntType] int +# 2369| Value = [Literal] 0 +# 2369| ValueCategory = prvalue +# 2367| getStmt(): [BlockStmt] { ... } +# 2368| getStmt(0): [DeclStmt] declaration +# 2368| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x783 +# 2368| Type = [Struct] String +# 2368| getVariable().getInitializer(): [Initializer] initializer for x783 +# 2368| getExpr(): [ConstructorCall] call to String +# 2368| Type = [VoidType] void +# 2368| ValueCategory = prvalue +# 2369| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2369| Type = [VoidType] void +# 2369| ValueCategory = prvalue +# 2369| getQualifier(): [VariableAccess] x783 +# 2369| Type = [Struct] String +# 2369| ValueCategory = lvalue +# 2369| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2369| Conversion = [BoolConversion] conversion to bool +# 2369| Type = [BoolType] bool +# 2369| Value = [CStyleCast] 0 +# 2369| ValueCategory = prvalue +# 2370| getStmt(784): [DoStmt] do (...) ... +# 2372| getCondition(): [Literal] 0 +# 2372| Type = [IntType] int +# 2372| Value = [Literal] 0 +# 2372| ValueCategory = prvalue +# 2370| getStmt(): [BlockStmt] { ... } +# 2371| getStmt(0): [DeclStmt] declaration +# 2371| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x784 +# 2371| Type = [Struct] String +# 2371| getVariable().getInitializer(): [Initializer] initializer for x784 +# 2371| getExpr(): [ConstructorCall] call to String +# 2371| Type = [VoidType] void +# 2371| ValueCategory = prvalue +# 2372| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2372| Type = [VoidType] void +# 2372| ValueCategory = prvalue +# 2372| getQualifier(): [VariableAccess] x784 +# 2372| Type = [Struct] String +# 2372| ValueCategory = lvalue +# 2372| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2372| Conversion = [BoolConversion] conversion to bool +# 2372| Type = [BoolType] bool +# 2372| Value = [CStyleCast] 0 +# 2372| ValueCategory = prvalue +# 2373| getStmt(785): [DoStmt] do (...) ... +# 2375| getCondition(): [Literal] 0 +# 2375| Type = [IntType] int +# 2375| Value = [Literal] 0 +# 2375| ValueCategory = prvalue +# 2373| getStmt(): [BlockStmt] { ... } +# 2374| getStmt(0): [DeclStmt] declaration +# 2374| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x785 +# 2374| Type = [Struct] String +# 2374| getVariable().getInitializer(): [Initializer] initializer for x785 +# 2374| getExpr(): [ConstructorCall] call to String +# 2374| Type = [VoidType] void +# 2374| ValueCategory = prvalue +# 2375| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2375| Type = [VoidType] void +# 2375| ValueCategory = prvalue +# 2375| getQualifier(): [VariableAccess] x785 +# 2375| Type = [Struct] String +# 2375| ValueCategory = lvalue +# 2375| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2375| Conversion = [BoolConversion] conversion to bool +# 2375| Type = [BoolType] bool +# 2375| Value = [CStyleCast] 0 +# 2375| ValueCategory = prvalue +# 2376| getStmt(786): [DoStmt] do (...) ... +# 2378| getCondition(): [Literal] 0 +# 2378| Type = [IntType] int +# 2378| Value = [Literal] 0 +# 2378| ValueCategory = prvalue +# 2376| getStmt(): [BlockStmt] { ... } +# 2377| getStmt(0): [DeclStmt] declaration +# 2377| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x786 +# 2377| Type = [Struct] String +# 2377| getVariable().getInitializer(): [Initializer] initializer for x786 +# 2377| getExpr(): [ConstructorCall] call to String +# 2377| Type = [VoidType] void +# 2377| ValueCategory = prvalue +# 2378| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2378| Type = [VoidType] void +# 2378| ValueCategory = prvalue +# 2378| getQualifier(): [VariableAccess] x786 +# 2378| Type = [Struct] String +# 2378| ValueCategory = lvalue +# 2378| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2378| Conversion = [BoolConversion] conversion to bool +# 2378| Type = [BoolType] bool +# 2378| Value = [CStyleCast] 0 +# 2378| ValueCategory = prvalue +# 2379| getStmt(787): [DoStmt] do (...) ... +# 2381| getCondition(): [Literal] 0 +# 2381| Type = [IntType] int +# 2381| Value = [Literal] 0 +# 2381| ValueCategory = prvalue +# 2379| getStmt(): [BlockStmt] { ... } +# 2380| getStmt(0): [DeclStmt] declaration +# 2380| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x787 +# 2380| Type = [Struct] String +# 2380| getVariable().getInitializer(): [Initializer] initializer for x787 +# 2380| getExpr(): [ConstructorCall] call to String +# 2380| Type = [VoidType] void +# 2380| ValueCategory = prvalue +# 2381| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2381| Type = [VoidType] void +# 2381| ValueCategory = prvalue +# 2381| getQualifier(): [VariableAccess] x787 +# 2381| Type = [Struct] String +# 2381| ValueCategory = lvalue +# 2381| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2381| Conversion = [BoolConversion] conversion to bool +# 2381| Type = [BoolType] bool +# 2381| Value = [CStyleCast] 0 +# 2381| ValueCategory = prvalue +# 2382| getStmt(788): [DoStmt] do (...) ... +# 2384| getCondition(): [Literal] 0 +# 2384| Type = [IntType] int +# 2384| Value = [Literal] 0 +# 2384| ValueCategory = prvalue +# 2382| getStmt(): [BlockStmt] { ... } +# 2383| getStmt(0): [DeclStmt] declaration +# 2383| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x788 +# 2383| Type = [Struct] String +# 2383| getVariable().getInitializer(): [Initializer] initializer for x788 +# 2383| getExpr(): [ConstructorCall] call to String +# 2383| Type = [VoidType] void +# 2383| ValueCategory = prvalue +# 2384| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2384| Type = [VoidType] void +# 2384| ValueCategory = prvalue +# 2384| getQualifier(): [VariableAccess] x788 +# 2384| Type = [Struct] String +# 2384| ValueCategory = lvalue +# 2384| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2384| Conversion = [BoolConversion] conversion to bool +# 2384| Type = [BoolType] bool +# 2384| Value = [CStyleCast] 0 +# 2384| ValueCategory = prvalue +# 2385| getStmt(789): [DoStmt] do (...) ... +# 2387| getCondition(): [Literal] 0 +# 2387| Type = [IntType] int +# 2387| Value = [Literal] 0 +# 2387| ValueCategory = prvalue +# 2385| getStmt(): [BlockStmt] { ... } +# 2386| getStmt(0): [DeclStmt] declaration +# 2386| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x789 +# 2386| Type = [Struct] String +# 2386| getVariable().getInitializer(): [Initializer] initializer for x789 +# 2386| getExpr(): [ConstructorCall] call to String +# 2386| Type = [VoidType] void +# 2386| ValueCategory = prvalue +# 2387| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2387| Type = [VoidType] void +# 2387| ValueCategory = prvalue +# 2387| getQualifier(): [VariableAccess] x789 +# 2387| Type = [Struct] String +# 2387| ValueCategory = lvalue +# 2387| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2387| Conversion = [BoolConversion] conversion to bool +# 2387| Type = [BoolType] bool +# 2387| Value = [CStyleCast] 0 +# 2387| ValueCategory = prvalue +# 2388| getStmt(790): [DoStmt] do (...) ... +# 2390| getCondition(): [Literal] 0 +# 2390| Type = [IntType] int +# 2390| Value = [Literal] 0 +# 2390| ValueCategory = prvalue +# 2388| getStmt(): [BlockStmt] { ... } +# 2389| getStmt(0): [DeclStmt] declaration +# 2389| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x790 +# 2389| Type = [Struct] String +# 2389| getVariable().getInitializer(): [Initializer] initializer for x790 +# 2389| getExpr(): [ConstructorCall] call to String +# 2389| Type = [VoidType] void +# 2389| ValueCategory = prvalue +# 2390| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2390| Type = [VoidType] void +# 2390| ValueCategory = prvalue +# 2390| getQualifier(): [VariableAccess] x790 +# 2390| Type = [Struct] String +# 2390| ValueCategory = lvalue +# 2390| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2390| Conversion = [BoolConversion] conversion to bool +# 2390| Type = [BoolType] bool +# 2390| Value = [CStyleCast] 0 +# 2390| ValueCategory = prvalue +# 2391| getStmt(791): [DoStmt] do (...) ... +# 2393| getCondition(): [Literal] 0 +# 2393| Type = [IntType] int +# 2393| Value = [Literal] 0 +# 2393| ValueCategory = prvalue +# 2391| getStmt(): [BlockStmt] { ... } +# 2392| getStmt(0): [DeclStmt] declaration +# 2392| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x791 +# 2392| Type = [Struct] String +# 2392| getVariable().getInitializer(): [Initializer] initializer for x791 +# 2392| getExpr(): [ConstructorCall] call to String +# 2392| Type = [VoidType] void +# 2392| ValueCategory = prvalue +# 2393| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2393| Type = [VoidType] void +# 2393| ValueCategory = prvalue +# 2393| getQualifier(): [VariableAccess] x791 +# 2393| Type = [Struct] String +# 2393| ValueCategory = lvalue +# 2393| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2393| Conversion = [BoolConversion] conversion to bool +# 2393| Type = [BoolType] bool +# 2393| Value = [CStyleCast] 0 +# 2393| ValueCategory = prvalue +# 2394| getStmt(792): [DoStmt] do (...) ... +# 2396| getCondition(): [Literal] 0 +# 2396| Type = [IntType] int +# 2396| Value = [Literal] 0 +# 2396| ValueCategory = prvalue +# 2394| getStmt(): [BlockStmt] { ... } +# 2395| getStmt(0): [DeclStmt] declaration +# 2395| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x792 +# 2395| Type = [Struct] String +# 2395| getVariable().getInitializer(): [Initializer] initializer for x792 +# 2395| getExpr(): [ConstructorCall] call to String +# 2395| Type = [VoidType] void +# 2395| ValueCategory = prvalue +# 2396| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2396| Type = [VoidType] void +# 2396| ValueCategory = prvalue +# 2396| getQualifier(): [VariableAccess] x792 +# 2396| Type = [Struct] String +# 2396| ValueCategory = lvalue +# 2396| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2396| Conversion = [BoolConversion] conversion to bool +# 2396| Type = [BoolType] bool +# 2396| Value = [CStyleCast] 0 +# 2396| ValueCategory = prvalue +# 2397| getStmt(793): [DoStmt] do (...) ... +# 2399| getCondition(): [Literal] 0 +# 2399| Type = [IntType] int +# 2399| Value = [Literal] 0 +# 2399| ValueCategory = prvalue +# 2397| getStmt(): [BlockStmt] { ... } +# 2398| getStmt(0): [DeclStmt] declaration +# 2398| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x793 +# 2398| Type = [Struct] String +# 2398| getVariable().getInitializer(): [Initializer] initializer for x793 +# 2398| getExpr(): [ConstructorCall] call to String +# 2398| Type = [VoidType] void +# 2398| ValueCategory = prvalue +# 2399| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2399| Type = [VoidType] void +# 2399| ValueCategory = prvalue +# 2399| getQualifier(): [VariableAccess] x793 +# 2399| Type = [Struct] String +# 2399| ValueCategory = lvalue +# 2399| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2399| Conversion = [BoolConversion] conversion to bool +# 2399| Type = [BoolType] bool +# 2399| Value = [CStyleCast] 0 +# 2399| ValueCategory = prvalue +# 2400| getStmt(794): [DoStmt] do (...) ... +# 2402| getCondition(): [Literal] 0 +# 2402| Type = [IntType] int +# 2402| Value = [Literal] 0 +# 2402| ValueCategory = prvalue +# 2400| getStmt(): [BlockStmt] { ... } +# 2401| getStmt(0): [DeclStmt] declaration +# 2401| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x794 +# 2401| Type = [Struct] String +# 2401| getVariable().getInitializer(): [Initializer] initializer for x794 +# 2401| getExpr(): [ConstructorCall] call to String +# 2401| Type = [VoidType] void +# 2401| ValueCategory = prvalue +# 2402| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2402| Type = [VoidType] void +# 2402| ValueCategory = prvalue +# 2402| getQualifier(): [VariableAccess] x794 +# 2402| Type = [Struct] String +# 2402| ValueCategory = lvalue +# 2402| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2402| Conversion = [BoolConversion] conversion to bool +# 2402| Type = [BoolType] bool +# 2402| Value = [CStyleCast] 0 +# 2402| ValueCategory = prvalue +# 2403| getStmt(795): [DoStmt] do (...) ... +# 2405| getCondition(): [Literal] 0 +# 2405| Type = [IntType] int +# 2405| Value = [Literal] 0 +# 2405| ValueCategory = prvalue +# 2403| getStmt(): [BlockStmt] { ... } +# 2404| getStmt(0): [DeclStmt] declaration +# 2404| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x795 +# 2404| Type = [Struct] String +# 2404| getVariable().getInitializer(): [Initializer] initializer for x795 +# 2404| getExpr(): [ConstructorCall] call to String +# 2404| Type = [VoidType] void +# 2404| ValueCategory = prvalue +# 2405| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2405| Type = [VoidType] void +# 2405| ValueCategory = prvalue +# 2405| getQualifier(): [VariableAccess] x795 +# 2405| Type = [Struct] String +# 2405| ValueCategory = lvalue +# 2405| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2405| Conversion = [BoolConversion] conversion to bool +# 2405| Type = [BoolType] bool +# 2405| Value = [CStyleCast] 0 +# 2405| ValueCategory = prvalue +# 2406| getStmt(796): [DoStmt] do (...) ... +# 2408| getCondition(): [Literal] 0 +# 2408| Type = [IntType] int +# 2408| Value = [Literal] 0 +# 2408| ValueCategory = prvalue +# 2406| getStmt(): [BlockStmt] { ... } +# 2407| getStmt(0): [DeclStmt] declaration +# 2407| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x796 +# 2407| Type = [Struct] String +# 2407| getVariable().getInitializer(): [Initializer] initializer for x796 +# 2407| getExpr(): [ConstructorCall] call to String +# 2407| Type = [VoidType] void +# 2407| ValueCategory = prvalue +# 2408| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2408| Type = [VoidType] void +# 2408| ValueCategory = prvalue +# 2408| getQualifier(): [VariableAccess] x796 +# 2408| Type = [Struct] String +# 2408| ValueCategory = lvalue +# 2408| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2408| Conversion = [BoolConversion] conversion to bool +# 2408| Type = [BoolType] bool +# 2408| Value = [CStyleCast] 0 +# 2408| ValueCategory = prvalue +# 2409| getStmt(797): [DoStmt] do (...) ... +# 2411| getCondition(): [Literal] 0 +# 2411| Type = [IntType] int +# 2411| Value = [Literal] 0 +# 2411| ValueCategory = prvalue +# 2409| getStmt(): [BlockStmt] { ... } +# 2410| getStmt(0): [DeclStmt] declaration +# 2410| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x797 +# 2410| Type = [Struct] String +# 2410| getVariable().getInitializer(): [Initializer] initializer for x797 +# 2410| getExpr(): [ConstructorCall] call to String +# 2410| Type = [VoidType] void +# 2410| ValueCategory = prvalue +# 2411| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2411| Type = [VoidType] void +# 2411| ValueCategory = prvalue +# 2411| getQualifier(): [VariableAccess] x797 +# 2411| Type = [Struct] String +# 2411| ValueCategory = lvalue +# 2411| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2411| Conversion = [BoolConversion] conversion to bool +# 2411| Type = [BoolType] bool +# 2411| Value = [CStyleCast] 0 +# 2411| ValueCategory = prvalue +# 2412| getStmt(798): [DoStmt] do (...) ... +# 2414| getCondition(): [Literal] 0 +# 2414| Type = [IntType] int +# 2414| Value = [Literal] 0 +# 2414| ValueCategory = prvalue +# 2412| getStmt(): [BlockStmt] { ... } +# 2413| getStmt(0): [DeclStmt] declaration +# 2413| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x798 +# 2413| Type = [Struct] String +# 2413| getVariable().getInitializer(): [Initializer] initializer for x798 +# 2413| getExpr(): [ConstructorCall] call to String +# 2413| Type = [VoidType] void +# 2413| ValueCategory = prvalue +# 2414| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2414| Type = [VoidType] void +# 2414| ValueCategory = prvalue +# 2414| getQualifier(): [VariableAccess] x798 +# 2414| Type = [Struct] String +# 2414| ValueCategory = lvalue +# 2414| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2414| Conversion = [BoolConversion] conversion to bool +# 2414| Type = [BoolType] bool +# 2414| Value = [CStyleCast] 0 +# 2414| ValueCategory = prvalue +# 2415| getStmt(799): [DoStmt] do (...) ... +# 2417| getCondition(): [Literal] 0 +# 2417| Type = [IntType] int +# 2417| Value = [Literal] 0 +# 2417| ValueCategory = prvalue +# 2415| getStmt(): [BlockStmt] { ... } +# 2416| getStmt(0): [DeclStmt] declaration +# 2416| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x799 +# 2416| Type = [Struct] String +# 2416| getVariable().getInitializer(): [Initializer] initializer for x799 +# 2416| getExpr(): [ConstructorCall] call to String +# 2416| Type = [VoidType] void +# 2416| ValueCategory = prvalue +# 2417| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2417| Type = [VoidType] void +# 2417| ValueCategory = prvalue +# 2417| getQualifier(): [VariableAccess] x799 +# 2417| Type = [Struct] String +# 2417| ValueCategory = lvalue +# 2417| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2417| Conversion = [BoolConversion] conversion to bool +# 2417| Type = [BoolType] bool +# 2417| Value = [CStyleCast] 0 +# 2417| ValueCategory = prvalue +# 2418| getStmt(800): [DoStmt] do (...) ... +# 2420| getCondition(): [Literal] 0 +# 2420| Type = [IntType] int +# 2420| Value = [Literal] 0 +# 2420| ValueCategory = prvalue +# 2418| getStmt(): [BlockStmt] { ... } +# 2419| getStmt(0): [DeclStmt] declaration +# 2419| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x800 +# 2419| Type = [Struct] String +# 2419| getVariable().getInitializer(): [Initializer] initializer for x800 +# 2419| getExpr(): [ConstructorCall] call to String +# 2419| Type = [VoidType] void +# 2419| ValueCategory = prvalue +# 2420| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2420| Type = [VoidType] void +# 2420| ValueCategory = prvalue +# 2420| getQualifier(): [VariableAccess] x800 +# 2420| Type = [Struct] String +# 2420| ValueCategory = lvalue +# 2420| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2420| Conversion = [BoolConversion] conversion to bool +# 2420| Type = [BoolType] bool +# 2420| Value = [CStyleCast] 0 +# 2420| ValueCategory = prvalue +# 2421| getStmt(801): [DoStmt] do (...) ... +# 2423| getCondition(): [Literal] 0 +# 2423| Type = [IntType] int +# 2423| Value = [Literal] 0 +# 2423| ValueCategory = prvalue +# 2421| getStmt(): [BlockStmt] { ... } +# 2422| getStmt(0): [DeclStmt] declaration +# 2422| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x801 +# 2422| Type = [Struct] String +# 2422| getVariable().getInitializer(): [Initializer] initializer for x801 +# 2422| getExpr(): [ConstructorCall] call to String +# 2422| Type = [VoidType] void +# 2422| ValueCategory = prvalue +# 2423| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2423| Type = [VoidType] void +# 2423| ValueCategory = prvalue +# 2423| getQualifier(): [VariableAccess] x801 +# 2423| Type = [Struct] String +# 2423| ValueCategory = lvalue +# 2423| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2423| Conversion = [BoolConversion] conversion to bool +# 2423| Type = [BoolType] bool +# 2423| Value = [CStyleCast] 0 +# 2423| ValueCategory = prvalue +# 2424| getStmt(802): [DoStmt] do (...) ... +# 2426| getCondition(): [Literal] 0 +# 2426| Type = [IntType] int +# 2426| Value = [Literal] 0 +# 2426| ValueCategory = prvalue +# 2424| getStmt(): [BlockStmt] { ... } +# 2425| getStmt(0): [DeclStmt] declaration +# 2425| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x802 +# 2425| Type = [Struct] String +# 2425| getVariable().getInitializer(): [Initializer] initializer for x802 +# 2425| getExpr(): [ConstructorCall] call to String +# 2425| Type = [VoidType] void +# 2425| ValueCategory = prvalue +# 2426| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2426| Type = [VoidType] void +# 2426| ValueCategory = prvalue +# 2426| getQualifier(): [VariableAccess] x802 +# 2426| Type = [Struct] String +# 2426| ValueCategory = lvalue +# 2426| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2426| Conversion = [BoolConversion] conversion to bool +# 2426| Type = [BoolType] bool +# 2426| Value = [CStyleCast] 0 +# 2426| ValueCategory = prvalue +# 2427| getStmt(803): [DoStmt] do (...) ... +# 2429| getCondition(): [Literal] 0 +# 2429| Type = [IntType] int +# 2429| Value = [Literal] 0 +# 2429| ValueCategory = prvalue +# 2427| getStmt(): [BlockStmt] { ... } +# 2428| getStmt(0): [DeclStmt] declaration +# 2428| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x803 +# 2428| Type = [Struct] String +# 2428| getVariable().getInitializer(): [Initializer] initializer for x803 +# 2428| getExpr(): [ConstructorCall] call to String +# 2428| Type = [VoidType] void +# 2428| ValueCategory = prvalue +# 2429| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2429| Type = [VoidType] void +# 2429| ValueCategory = prvalue +# 2429| getQualifier(): [VariableAccess] x803 +# 2429| Type = [Struct] String +# 2429| ValueCategory = lvalue +# 2429| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2429| Conversion = [BoolConversion] conversion to bool +# 2429| Type = [BoolType] bool +# 2429| Value = [CStyleCast] 0 +# 2429| ValueCategory = prvalue +# 2430| getStmt(804): [DoStmt] do (...) ... +# 2432| getCondition(): [Literal] 0 +# 2432| Type = [IntType] int +# 2432| Value = [Literal] 0 +# 2432| ValueCategory = prvalue +# 2430| getStmt(): [BlockStmt] { ... } +# 2431| getStmt(0): [DeclStmt] declaration +# 2431| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x804 +# 2431| Type = [Struct] String +# 2431| getVariable().getInitializer(): [Initializer] initializer for x804 +# 2431| getExpr(): [ConstructorCall] call to String +# 2431| Type = [VoidType] void +# 2431| ValueCategory = prvalue +# 2432| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2432| Type = [VoidType] void +# 2432| ValueCategory = prvalue +# 2432| getQualifier(): [VariableAccess] x804 +# 2432| Type = [Struct] String +# 2432| ValueCategory = lvalue +# 2432| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2432| Conversion = [BoolConversion] conversion to bool +# 2432| Type = [BoolType] bool +# 2432| Value = [CStyleCast] 0 +# 2432| ValueCategory = prvalue +# 2433| getStmt(805): [DoStmt] do (...) ... +# 2435| getCondition(): [Literal] 0 +# 2435| Type = [IntType] int +# 2435| Value = [Literal] 0 +# 2435| ValueCategory = prvalue +# 2433| getStmt(): [BlockStmt] { ... } +# 2434| getStmt(0): [DeclStmt] declaration +# 2434| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x805 +# 2434| Type = [Struct] String +# 2434| getVariable().getInitializer(): [Initializer] initializer for x805 +# 2434| getExpr(): [ConstructorCall] call to String +# 2434| Type = [VoidType] void +# 2434| ValueCategory = prvalue +# 2435| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2435| Type = [VoidType] void +# 2435| ValueCategory = prvalue +# 2435| getQualifier(): [VariableAccess] x805 +# 2435| Type = [Struct] String +# 2435| ValueCategory = lvalue +# 2435| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2435| Conversion = [BoolConversion] conversion to bool +# 2435| Type = [BoolType] bool +# 2435| Value = [CStyleCast] 0 +# 2435| ValueCategory = prvalue +# 2436| getStmt(806): [DoStmt] do (...) ... +# 2438| getCondition(): [Literal] 0 +# 2438| Type = [IntType] int +# 2438| Value = [Literal] 0 +# 2438| ValueCategory = prvalue +# 2436| getStmt(): [BlockStmt] { ... } +# 2437| getStmt(0): [DeclStmt] declaration +# 2437| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x806 +# 2437| Type = [Struct] String +# 2437| getVariable().getInitializer(): [Initializer] initializer for x806 +# 2437| getExpr(): [ConstructorCall] call to String +# 2437| Type = [VoidType] void +# 2437| ValueCategory = prvalue +# 2438| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2438| Type = [VoidType] void +# 2438| ValueCategory = prvalue +# 2438| getQualifier(): [VariableAccess] x806 +# 2438| Type = [Struct] String +# 2438| ValueCategory = lvalue +# 2438| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2438| Conversion = [BoolConversion] conversion to bool +# 2438| Type = [BoolType] bool +# 2438| Value = [CStyleCast] 0 +# 2438| ValueCategory = prvalue +# 2439| getStmt(807): [DoStmt] do (...) ... +# 2441| getCondition(): [Literal] 0 +# 2441| Type = [IntType] int +# 2441| Value = [Literal] 0 +# 2441| ValueCategory = prvalue +# 2439| getStmt(): [BlockStmt] { ... } +# 2440| getStmt(0): [DeclStmt] declaration +# 2440| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x807 +# 2440| Type = [Struct] String +# 2440| getVariable().getInitializer(): [Initializer] initializer for x807 +# 2440| getExpr(): [ConstructorCall] call to String +# 2440| Type = [VoidType] void +# 2440| ValueCategory = prvalue +# 2441| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2441| Type = [VoidType] void +# 2441| ValueCategory = prvalue +# 2441| getQualifier(): [VariableAccess] x807 +# 2441| Type = [Struct] String +# 2441| ValueCategory = lvalue +# 2441| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2441| Conversion = [BoolConversion] conversion to bool +# 2441| Type = [BoolType] bool +# 2441| Value = [CStyleCast] 0 +# 2441| ValueCategory = prvalue +# 2442| getStmt(808): [DoStmt] do (...) ... +# 2444| getCondition(): [Literal] 0 +# 2444| Type = [IntType] int +# 2444| Value = [Literal] 0 +# 2444| ValueCategory = prvalue +# 2442| getStmt(): [BlockStmt] { ... } +# 2443| getStmt(0): [DeclStmt] declaration +# 2443| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x808 +# 2443| Type = [Struct] String +# 2443| getVariable().getInitializer(): [Initializer] initializer for x808 +# 2443| getExpr(): [ConstructorCall] call to String +# 2443| Type = [VoidType] void +# 2443| ValueCategory = prvalue +# 2444| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2444| Type = [VoidType] void +# 2444| ValueCategory = prvalue +# 2444| getQualifier(): [VariableAccess] x808 +# 2444| Type = [Struct] String +# 2444| ValueCategory = lvalue +# 2444| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2444| Conversion = [BoolConversion] conversion to bool +# 2444| Type = [BoolType] bool +# 2444| Value = [CStyleCast] 0 +# 2444| ValueCategory = prvalue +# 2445| getStmt(809): [DoStmt] do (...) ... +# 2447| getCondition(): [Literal] 0 +# 2447| Type = [IntType] int +# 2447| Value = [Literal] 0 +# 2447| ValueCategory = prvalue +# 2445| getStmt(): [BlockStmt] { ... } +# 2446| getStmt(0): [DeclStmt] declaration +# 2446| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x809 +# 2446| Type = [Struct] String +# 2446| getVariable().getInitializer(): [Initializer] initializer for x809 +# 2446| getExpr(): [ConstructorCall] call to String +# 2446| Type = [VoidType] void +# 2446| ValueCategory = prvalue +# 2447| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2447| Type = [VoidType] void +# 2447| ValueCategory = prvalue +# 2447| getQualifier(): [VariableAccess] x809 +# 2447| Type = [Struct] String +# 2447| ValueCategory = lvalue +# 2447| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2447| Conversion = [BoolConversion] conversion to bool +# 2447| Type = [BoolType] bool +# 2447| Value = [CStyleCast] 0 +# 2447| ValueCategory = prvalue +# 2448| getStmt(810): [DoStmt] do (...) ... +# 2450| getCondition(): [Literal] 0 +# 2450| Type = [IntType] int +# 2450| Value = [Literal] 0 +# 2450| ValueCategory = prvalue +# 2448| getStmt(): [BlockStmt] { ... } +# 2449| getStmt(0): [DeclStmt] declaration +# 2449| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x810 +# 2449| Type = [Struct] String +# 2449| getVariable().getInitializer(): [Initializer] initializer for x810 +# 2449| getExpr(): [ConstructorCall] call to String +# 2449| Type = [VoidType] void +# 2449| ValueCategory = prvalue +# 2450| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2450| Type = [VoidType] void +# 2450| ValueCategory = prvalue +# 2450| getQualifier(): [VariableAccess] x810 +# 2450| Type = [Struct] String +# 2450| ValueCategory = lvalue +# 2450| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2450| Conversion = [BoolConversion] conversion to bool +# 2450| Type = [BoolType] bool +# 2450| Value = [CStyleCast] 0 +# 2450| ValueCategory = prvalue +# 2451| getStmt(811): [DoStmt] do (...) ... +# 2453| getCondition(): [Literal] 0 +# 2453| Type = [IntType] int +# 2453| Value = [Literal] 0 +# 2453| ValueCategory = prvalue +# 2451| getStmt(): [BlockStmt] { ... } +# 2452| getStmt(0): [DeclStmt] declaration +# 2452| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x811 +# 2452| Type = [Struct] String +# 2452| getVariable().getInitializer(): [Initializer] initializer for x811 +# 2452| getExpr(): [ConstructorCall] call to String +# 2452| Type = [VoidType] void +# 2452| ValueCategory = prvalue +# 2453| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2453| Type = [VoidType] void +# 2453| ValueCategory = prvalue +# 2453| getQualifier(): [VariableAccess] x811 +# 2453| Type = [Struct] String +# 2453| ValueCategory = lvalue +# 2453| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2453| Conversion = [BoolConversion] conversion to bool +# 2453| Type = [BoolType] bool +# 2453| Value = [CStyleCast] 0 +# 2453| ValueCategory = prvalue +# 2454| getStmt(812): [DoStmt] do (...) ... +# 2456| getCondition(): [Literal] 0 +# 2456| Type = [IntType] int +# 2456| Value = [Literal] 0 +# 2456| ValueCategory = prvalue +# 2454| getStmt(): [BlockStmt] { ... } +# 2455| getStmt(0): [DeclStmt] declaration +# 2455| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x812 +# 2455| Type = [Struct] String +# 2455| getVariable().getInitializer(): [Initializer] initializer for x812 +# 2455| getExpr(): [ConstructorCall] call to String +# 2455| Type = [VoidType] void +# 2455| ValueCategory = prvalue +# 2456| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2456| Type = [VoidType] void +# 2456| ValueCategory = prvalue +# 2456| getQualifier(): [VariableAccess] x812 +# 2456| Type = [Struct] String +# 2456| ValueCategory = lvalue +# 2456| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2456| Conversion = [BoolConversion] conversion to bool +# 2456| Type = [BoolType] bool +# 2456| Value = [CStyleCast] 0 +# 2456| ValueCategory = prvalue +# 2457| getStmt(813): [DoStmt] do (...) ... +# 2459| getCondition(): [Literal] 0 +# 2459| Type = [IntType] int +# 2459| Value = [Literal] 0 +# 2459| ValueCategory = prvalue +# 2457| getStmt(): [BlockStmt] { ... } +# 2458| getStmt(0): [DeclStmt] declaration +# 2458| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x813 +# 2458| Type = [Struct] String +# 2458| getVariable().getInitializer(): [Initializer] initializer for x813 +# 2458| getExpr(): [ConstructorCall] call to String +# 2458| Type = [VoidType] void +# 2458| ValueCategory = prvalue +# 2459| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2459| Type = [VoidType] void +# 2459| ValueCategory = prvalue +# 2459| getQualifier(): [VariableAccess] x813 +# 2459| Type = [Struct] String +# 2459| ValueCategory = lvalue +# 2459| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2459| Conversion = [BoolConversion] conversion to bool +# 2459| Type = [BoolType] bool +# 2459| Value = [CStyleCast] 0 +# 2459| ValueCategory = prvalue +# 2460| getStmt(814): [DoStmt] do (...) ... +# 2462| getCondition(): [Literal] 0 +# 2462| Type = [IntType] int +# 2462| Value = [Literal] 0 +# 2462| ValueCategory = prvalue +# 2460| getStmt(): [BlockStmt] { ... } +# 2461| getStmt(0): [DeclStmt] declaration +# 2461| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x814 +# 2461| Type = [Struct] String +# 2461| getVariable().getInitializer(): [Initializer] initializer for x814 +# 2461| getExpr(): [ConstructorCall] call to String +# 2461| Type = [VoidType] void +# 2461| ValueCategory = prvalue +# 2462| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2462| Type = [VoidType] void +# 2462| ValueCategory = prvalue +# 2462| getQualifier(): [VariableAccess] x814 +# 2462| Type = [Struct] String +# 2462| ValueCategory = lvalue +# 2462| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2462| Conversion = [BoolConversion] conversion to bool +# 2462| Type = [BoolType] bool +# 2462| Value = [CStyleCast] 0 +# 2462| ValueCategory = prvalue +# 2463| getStmt(815): [DoStmt] do (...) ... +# 2465| getCondition(): [Literal] 0 +# 2465| Type = [IntType] int +# 2465| Value = [Literal] 0 +# 2465| ValueCategory = prvalue +# 2463| getStmt(): [BlockStmt] { ... } +# 2464| getStmt(0): [DeclStmt] declaration +# 2464| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x815 +# 2464| Type = [Struct] String +# 2464| getVariable().getInitializer(): [Initializer] initializer for x815 +# 2464| getExpr(): [ConstructorCall] call to String +# 2464| Type = [VoidType] void +# 2464| ValueCategory = prvalue +# 2465| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2465| Type = [VoidType] void +# 2465| ValueCategory = prvalue +# 2465| getQualifier(): [VariableAccess] x815 +# 2465| Type = [Struct] String +# 2465| ValueCategory = lvalue +# 2465| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2465| Conversion = [BoolConversion] conversion to bool +# 2465| Type = [BoolType] bool +# 2465| Value = [CStyleCast] 0 +# 2465| ValueCategory = prvalue +# 2466| getStmt(816): [DoStmt] do (...) ... +# 2468| getCondition(): [Literal] 0 +# 2468| Type = [IntType] int +# 2468| Value = [Literal] 0 +# 2468| ValueCategory = prvalue +# 2466| getStmt(): [BlockStmt] { ... } +# 2467| getStmt(0): [DeclStmt] declaration +# 2467| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x816 +# 2467| Type = [Struct] String +# 2467| getVariable().getInitializer(): [Initializer] initializer for x816 +# 2467| getExpr(): [ConstructorCall] call to String +# 2467| Type = [VoidType] void +# 2467| ValueCategory = prvalue +# 2468| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2468| Type = [VoidType] void +# 2468| ValueCategory = prvalue +# 2468| getQualifier(): [VariableAccess] x816 +# 2468| Type = [Struct] String +# 2468| ValueCategory = lvalue +# 2468| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2468| Conversion = [BoolConversion] conversion to bool +# 2468| Type = [BoolType] bool +# 2468| Value = [CStyleCast] 0 +# 2468| ValueCategory = prvalue +# 2469| getStmt(817): [DoStmt] do (...) ... +# 2471| getCondition(): [Literal] 0 +# 2471| Type = [IntType] int +# 2471| Value = [Literal] 0 +# 2471| ValueCategory = prvalue +# 2469| getStmt(): [BlockStmt] { ... } +# 2470| getStmt(0): [DeclStmt] declaration +# 2470| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x817 +# 2470| Type = [Struct] String +# 2470| getVariable().getInitializer(): [Initializer] initializer for x817 +# 2470| getExpr(): [ConstructorCall] call to String +# 2470| Type = [VoidType] void +# 2470| ValueCategory = prvalue +# 2471| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2471| Type = [VoidType] void +# 2471| ValueCategory = prvalue +# 2471| getQualifier(): [VariableAccess] x817 +# 2471| Type = [Struct] String +# 2471| ValueCategory = lvalue +# 2471| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2471| Conversion = [BoolConversion] conversion to bool +# 2471| Type = [BoolType] bool +# 2471| Value = [CStyleCast] 0 +# 2471| ValueCategory = prvalue +# 2472| getStmt(818): [DoStmt] do (...) ... +# 2474| getCondition(): [Literal] 0 +# 2474| Type = [IntType] int +# 2474| Value = [Literal] 0 +# 2474| ValueCategory = prvalue +# 2472| getStmt(): [BlockStmt] { ... } +# 2473| getStmt(0): [DeclStmt] declaration +# 2473| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x818 +# 2473| Type = [Struct] String +# 2473| getVariable().getInitializer(): [Initializer] initializer for x818 +# 2473| getExpr(): [ConstructorCall] call to String +# 2473| Type = [VoidType] void +# 2473| ValueCategory = prvalue +# 2474| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2474| Type = [VoidType] void +# 2474| ValueCategory = prvalue +# 2474| getQualifier(): [VariableAccess] x818 +# 2474| Type = [Struct] String +# 2474| ValueCategory = lvalue +# 2474| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2474| Conversion = [BoolConversion] conversion to bool +# 2474| Type = [BoolType] bool +# 2474| Value = [CStyleCast] 0 +# 2474| ValueCategory = prvalue +# 2475| getStmt(819): [DoStmt] do (...) ... +# 2477| getCondition(): [Literal] 0 +# 2477| Type = [IntType] int +# 2477| Value = [Literal] 0 +# 2477| ValueCategory = prvalue +# 2475| getStmt(): [BlockStmt] { ... } +# 2476| getStmt(0): [DeclStmt] declaration +# 2476| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x819 +# 2476| Type = [Struct] String +# 2476| getVariable().getInitializer(): [Initializer] initializer for x819 +# 2476| getExpr(): [ConstructorCall] call to String +# 2476| Type = [VoidType] void +# 2476| ValueCategory = prvalue +# 2477| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2477| Type = [VoidType] void +# 2477| ValueCategory = prvalue +# 2477| getQualifier(): [VariableAccess] x819 +# 2477| Type = [Struct] String +# 2477| ValueCategory = lvalue +# 2477| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2477| Conversion = [BoolConversion] conversion to bool +# 2477| Type = [BoolType] bool +# 2477| Value = [CStyleCast] 0 +# 2477| ValueCategory = prvalue +# 2478| getStmt(820): [DoStmt] do (...) ... +# 2480| getCondition(): [Literal] 0 +# 2480| Type = [IntType] int +# 2480| Value = [Literal] 0 +# 2480| ValueCategory = prvalue +# 2478| getStmt(): [BlockStmt] { ... } +# 2479| getStmt(0): [DeclStmt] declaration +# 2479| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x820 +# 2479| Type = [Struct] String +# 2479| getVariable().getInitializer(): [Initializer] initializer for x820 +# 2479| getExpr(): [ConstructorCall] call to String +# 2479| Type = [VoidType] void +# 2479| ValueCategory = prvalue +# 2480| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2480| Type = [VoidType] void +# 2480| ValueCategory = prvalue +# 2480| getQualifier(): [VariableAccess] x820 +# 2480| Type = [Struct] String +# 2480| ValueCategory = lvalue +# 2480| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2480| Conversion = [BoolConversion] conversion to bool +# 2480| Type = [BoolType] bool +# 2480| Value = [CStyleCast] 0 +# 2480| ValueCategory = prvalue +# 2481| getStmt(821): [DoStmt] do (...) ... +# 2483| getCondition(): [Literal] 0 +# 2483| Type = [IntType] int +# 2483| Value = [Literal] 0 +# 2483| ValueCategory = prvalue +# 2481| getStmt(): [BlockStmt] { ... } +# 2482| getStmt(0): [DeclStmt] declaration +# 2482| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x821 +# 2482| Type = [Struct] String +# 2482| getVariable().getInitializer(): [Initializer] initializer for x821 +# 2482| getExpr(): [ConstructorCall] call to String +# 2482| Type = [VoidType] void +# 2482| ValueCategory = prvalue +# 2483| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2483| Type = [VoidType] void +# 2483| ValueCategory = prvalue +# 2483| getQualifier(): [VariableAccess] x821 +# 2483| Type = [Struct] String +# 2483| ValueCategory = lvalue +# 2483| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2483| Conversion = [BoolConversion] conversion to bool +# 2483| Type = [BoolType] bool +# 2483| Value = [CStyleCast] 0 +# 2483| ValueCategory = prvalue +# 2484| getStmt(822): [DoStmt] do (...) ... +# 2486| getCondition(): [Literal] 0 +# 2486| Type = [IntType] int +# 2486| Value = [Literal] 0 +# 2486| ValueCategory = prvalue +# 2484| getStmt(): [BlockStmt] { ... } +# 2485| getStmt(0): [DeclStmt] declaration +# 2485| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x822 +# 2485| Type = [Struct] String +# 2485| getVariable().getInitializer(): [Initializer] initializer for x822 +# 2485| getExpr(): [ConstructorCall] call to String +# 2485| Type = [VoidType] void +# 2485| ValueCategory = prvalue +# 2486| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2486| Type = [VoidType] void +# 2486| ValueCategory = prvalue +# 2486| getQualifier(): [VariableAccess] x822 +# 2486| Type = [Struct] String +# 2486| ValueCategory = lvalue +# 2486| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2486| Conversion = [BoolConversion] conversion to bool +# 2486| Type = [BoolType] bool +# 2486| Value = [CStyleCast] 0 +# 2486| ValueCategory = prvalue +# 2487| getStmt(823): [DoStmt] do (...) ... +# 2489| getCondition(): [Literal] 0 +# 2489| Type = [IntType] int +# 2489| Value = [Literal] 0 +# 2489| ValueCategory = prvalue +# 2487| getStmt(): [BlockStmt] { ... } +# 2488| getStmt(0): [DeclStmt] declaration +# 2488| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x823 +# 2488| Type = [Struct] String +# 2488| getVariable().getInitializer(): [Initializer] initializer for x823 +# 2488| getExpr(): [ConstructorCall] call to String +# 2488| Type = [VoidType] void +# 2488| ValueCategory = prvalue +# 2489| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2489| Type = [VoidType] void +# 2489| ValueCategory = prvalue +# 2489| getQualifier(): [VariableAccess] x823 +# 2489| Type = [Struct] String +# 2489| ValueCategory = lvalue +# 2489| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2489| Conversion = [BoolConversion] conversion to bool +# 2489| Type = [BoolType] bool +# 2489| Value = [CStyleCast] 0 +# 2489| ValueCategory = prvalue +# 2490| getStmt(824): [DoStmt] do (...) ... +# 2492| getCondition(): [Literal] 0 +# 2492| Type = [IntType] int +# 2492| Value = [Literal] 0 +# 2492| ValueCategory = prvalue +# 2490| getStmt(): [BlockStmt] { ... } +# 2491| getStmt(0): [DeclStmt] declaration +# 2491| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x824 +# 2491| Type = [Struct] String +# 2491| getVariable().getInitializer(): [Initializer] initializer for x824 +# 2491| getExpr(): [ConstructorCall] call to String +# 2491| Type = [VoidType] void +# 2491| ValueCategory = prvalue +# 2492| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2492| Type = [VoidType] void +# 2492| ValueCategory = prvalue +# 2492| getQualifier(): [VariableAccess] x824 +# 2492| Type = [Struct] String +# 2492| ValueCategory = lvalue +# 2492| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2492| Conversion = [BoolConversion] conversion to bool +# 2492| Type = [BoolType] bool +# 2492| Value = [CStyleCast] 0 +# 2492| ValueCategory = prvalue +# 2493| getStmt(825): [DoStmt] do (...) ... +# 2495| getCondition(): [Literal] 0 +# 2495| Type = [IntType] int +# 2495| Value = [Literal] 0 +# 2495| ValueCategory = prvalue +# 2493| getStmt(): [BlockStmt] { ... } +# 2494| getStmt(0): [DeclStmt] declaration +# 2494| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x825 +# 2494| Type = [Struct] String +# 2494| getVariable().getInitializer(): [Initializer] initializer for x825 +# 2494| getExpr(): [ConstructorCall] call to String +# 2494| Type = [VoidType] void +# 2494| ValueCategory = prvalue +# 2495| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2495| Type = [VoidType] void +# 2495| ValueCategory = prvalue +# 2495| getQualifier(): [VariableAccess] x825 +# 2495| Type = [Struct] String +# 2495| ValueCategory = lvalue +# 2495| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2495| Conversion = [BoolConversion] conversion to bool +# 2495| Type = [BoolType] bool +# 2495| Value = [CStyleCast] 0 +# 2495| ValueCategory = prvalue +# 2496| getStmt(826): [DoStmt] do (...) ... +# 2498| getCondition(): [Literal] 0 +# 2498| Type = [IntType] int +# 2498| Value = [Literal] 0 +# 2498| ValueCategory = prvalue +# 2496| getStmt(): [BlockStmt] { ... } +# 2497| getStmt(0): [DeclStmt] declaration +# 2497| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x826 +# 2497| Type = [Struct] String +# 2497| getVariable().getInitializer(): [Initializer] initializer for x826 +# 2497| getExpr(): [ConstructorCall] call to String +# 2497| Type = [VoidType] void +# 2497| ValueCategory = prvalue +# 2498| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2498| Type = [VoidType] void +# 2498| ValueCategory = prvalue +# 2498| getQualifier(): [VariableAccess] x826 +# 2498| Type = [Struct] String +# 2498| ValueCategory = lvalue +# 2498| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2498| Conversion = [BoolConversion] conversion to bool +# 2498| Type = [BoolType] bool +# 2498| Value = [CStyleCast] 0 +# 2498| ValueCategory = prvalue +# 2499| getStmt(827): [DoStmt] do (...) ... +# 2501| getCondition(): [Literal] 0 +# 2501| Type = [IntType] int +# 2501| Value = [Literal] 0 +# 2501| ValueCategory = prvalue +# 2499| getStmt(): [BlockStmt] { ... } +# 2500| getStmt(0): [DeclStmt] declaration +# 2500| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x827 +# 2500| Type = [Struct] String +# 2500| getVariable().getInitializer(): [Initializer] initializer for x827 +# 2500| getExpr(): [ConstructorCall] call to String +# 2500| Type = [VoidType] void +# 2500| ValueCategory = prvalue +# 2501| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2501| Type = [VoidType] void +# 2501| ValueCategory = prvalue +# 2501| getQualifier(): [VariableAccess] x827 +# 2501| Type = [Struct] String +# 2501| ValueCategory = lvalue +# 2501| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2501| Conversion = [BoolConversion] conversion to bool +# 2501| Type = [BoolType] bool +# 2501| Value = [CStyleCast] 0 +# 2501| ValueCategory = prvalue +# 2502| getStmt(828): [DoStmt] do (...) ... +# 2504| getCondition(): [Literal] 0 +# 2504| Type = [IntType] int +# 2504| Value = [Literal] 0 +# 2504| ValueCategory = prvalue +# 2502| getStmt(): [BlockStmt] { ... } +# 2503| getStmt(0): [DeclStmt] declaration +# 2503| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x828 +# 2503| Type = [Struct] String +# 2503| getVariable().getInitializer(): [Initializer] initializer for x828 +# 2503| getExpr(): [ConstructorCall] call to String +# 2503| Type = [VoidType] void +# 2503| ValueCategory = prvalue +# 2504| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2504| Type = [VoidType] void +# 2504| ValueCategory = prvalue +# 2504| getQualifier(): [VariableAccess] x828 +# 2504| Type = [Struct] String +# 2504| ValueCategory = lvalue +# 2504| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2504| Conversion = [BoolConversion] conversion to bool +# 2504| Type = [BoolType] bool +# 2504| Value = [CStyleCast] 0 +# 2504| ValueCategory = prvalue +# 2505| getStmt(829): [DoStmt] do (...) ... +# 2507| getCondition(): [Literal] 0 +# 2507| Type = [IntType] int +# 2507| Value = [Literal] 0 +# 2507| ValueCategory = prvalue +# 2505| getStmt(): [BlockStmt] { ... } +# 2506| getStmt(0): [DeclStmt] declaration +# 2506| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x829 +# 2506| Type = [Struct] String +# 2506| getVariable().getInitializer(): [Initializer] initializer for x829 +# 2506| getExpr(): [ConstructorCall] call to String +# 2506| Type = [VoidType] void +# 2506| ValueCategory = prvalue +# 2507| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2507| Type = [VoidType] void +# 2507| ValueCategory = prvalue +# 2507| getQualifier(): [VariableAccess] x829 +# 2507| Type = [Struct] String +# 2507| ValueCategory = lvalue +# 2507| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2507| Conversion = [BoolConversion] conversion to bool +# 2507| Type = [BoolType] bool +# 2507| Value = [CStyleCast] 0 +# 2507| ValueCategory = prvalue +# 2508| getStmt(830): [DoStmt] do (...) ... +# 2510| getCondition(): [Literal] 0 +# 2510| Type = [IntType] int +# 2510| Value = [Literal] 0 +# 2510| ValueCategory = prvalue +# 2508| getStmt(): [BlockStmt] { ... } +# 2509| getStmt(0): [DeclStmt] declaration +# 2509| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x830 +# 2509| Type = [Struct] String +# 2509| getVariable().getInitializer(): [Initializer] initializer for x830 +# 2509| getExpr(): [ConstructorCall] call to String +# 2509| Type = [VoidType] void +# 2509| ValueCategory = prvalue +# 2510| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2510| Type = [VoidType] void +# 2510| ValueCategory = prvalue +# 2510| getQualifier(): [VariableAccess] x830 +# 2510| Type = [Struct] String +# 2510| ValueCategory = lvalue +# 2510| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2510| Conversion = [BoolConversion] conversion to bool +# 2510| Type = [BoolType] bool +# 2510| Value = [CStyleCast] 0 +# 2510| ValueCategory = prvalue +# 2511| getStmt(831): [DoStmt] do (...) ... +# 2513| getCondition(): [Literal] 0 +# 2513| Type = [IntType] int +# 2513| Value = [Literal] 0 +# 2513| ValueCategory = prvalue +# 2511| getStmt(): [BlockStmt] { ... } +# 2512| getStmt(0): [DeclStmt] declaration +# 2512| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x831 +# 2512| Type = [Struct] String +# 2512| getVariable().getInitializer(): [Initializer] initializer for x831 +# 2512| getExpr(): [ConstructorCall] call to String +# 2512| Type = [VoidType] void +# 2512| ValueCategory = prvalue +# 2513| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2513| Type = [VoidType] void +# 2513| ValueCategory = prvalue +# 2513| getQualifier(): [VariableAccess] x831 +# 2513| Type = [Struct] String +# 2513| ValueCategory = lvalue +# 2513| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2513| Conversion = [BoolConversion] conversion to bool +# 2513| Type = [BoolType] bool +# 2513| Value = [CStyleCast] 0 +# 2513| ValueCategory = prvalue +# 2514| getStmt(832): [DoStmt] do (...) ... +# 2516| getCondition(): [Literal] 0 +# 2516| Type = [IntType] int +# 2516| Value = [Literal] 0 +# 2516| ValueCategory = prvalue +# 2514| getStmt(): [BlockStmt] { ... } +# 2515| getStmt(0): [DeclStmt] declaration +# 2515| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x832 +# 2515| Type = [Struct] String +# 2515| getVariable().getInitializer(): [Initializer] initializer for x832 +# 2515| getExpr(): [ConstructorCall] call to String +# 2515| Type = [VoidType] void +# 2515| ValueCategory = prvalue +# 2516| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2516| Type = [VoidType] void +# 2516| ValueCategory = prvalue +# 2516| getQualifier(): [VariableAccess] x832 +# 2516| Type = [Struct] String +# 2516| ValueCategory = lvalue +# 2516| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2516| Conversion = [BoolConversion] conversion to bool +# 2516| Type = [BoolType] bool +# 2516| Value = [CStyleCast] 0 +# 2516| ValueCategory = prvalue +# 2517| getStmt(833): [DoStmt] do (...) ... +# 2519| getCondition(): [Literal] 0 +# 2519| Type = [IntType] int +# 2519| Value = [Literal] 0 +# 2519| ValueCategory = prvalue +# 2517| getStmt(): [BlockStmt] { ... } +# 2518| getStmt(0): [DeclStmt] declaration +# 2518| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x833 +# 2518| Type = [Struct] String +# 2518| getVariable().getInitializer(): [Initializer] initializer for x833 +# 2518| getExpr(): [ConstructorCall] call to String +# 2518| Type = [VoidType] void +# 2518| ValueCategory = prvalue +# 2519| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2519| Type = [VoidType] void +# 2519| ValueCategory = prvalue +# 2519| getQualifier(): [VariableAccess] x833 +# 2519| Type = [Struct] String +# 2519| ValueCategory = lvalue +# 2519| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2519| Conversion = [BoolConversion] conversion to bool +# 2519| Type = [BoolType] bool +# 2519| Value = [CStyleCast] 0 +# 2519| ValueCategory = prvalue +# 2520| getStmt(834): [DoStmt] do (...) ... +# 2522| getCondition(): [Literal] 0 +# 2522| Type = [IntType] int +# 2522| Value = [Literal] 0 +# 2522| ValueCategory = prvalue +# 2520| getStmt(): [BlockStmt] { ... } +# 2521| getStmt(0): [DeclStmt] declaration +# 2521| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x834 +# 2521| Type = [Struct] String +# 2521| getVariable().getInitializer(): [Initializer] initializer for x834 +# 2521| getExpr(): [ConstructorCall] call to String +# 2521| Type = [VoidType] void +# 2521| ValueCategory = prvalue +# 2522| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2522| Type = [VoidType] void +# 2522| ValueCategory = prvalue +# 2522| getQualifier(): [VariableAccess] x834 +# 2522| Type = [Struct] String +# 2522| ValueCategory = lvalue +# 2522| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2522| Conversion = [BoolConversion] conversion to bool +# 2522| Type = [BoolType] bool +# 2522| Value = [CStyleCast] 0 +# 2522| ValueCategory = prvalue +# 2523| getStmt(835): [DoStmt] do (...) ... +# 2525| getCondition(): [Literal] 0 +# 2525| Type = [IntType] int +# 2525| Value = [Literal] 0 +# 2525| ValueCategory = prvalue +# 2523| getStmt(): [BlockStmt] { ... } +# 2524| getStmt(0): [DeclStmt] declaration +# 2524| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x835 +# 2524| Type = [Struct] String +# 2524| getVariable().getInitializer(): [Initializer] initializer for x835 +# 2524| getExpr(): [ConstructorCall] call to String +# 2524| Type = [VoidType] void +# 2524| ValueCategory = prvalue +# 2525| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2525| Type = [VoidType] void +# 2525| ValueCategory = prvalue +# 2525| getQualifier(): [VariableAccess] x835 +# 2525| Type = [Struct] String +# 2525| ValueCategory = lvalue +# 2525| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2525| Conversion = [BoolConversion] conversion to bool +# 2525| Type = [BoolType] bool +# 2525| Value = [CStyleCast] 0 +# 2525| ValueCategory = prvalue +# 2526| getStmt(836): [DoStmt] do (...) ... +# 2528| getCondition(): [Literal] 0 +# 2528| Type = [IntType] int +# 2528| Value = [Literal] 0 +# 2528| ValueCategory = prvalue +# 2526| getStmt(): [BlockStmt] { ... } +# 2527| getStmt(0): [DeclStmt] declaration +# 2527| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x836 +# 2527| Type = [Struct] String +# 2527| getVariable().getInitializer(): [Initializer] initializer for x836 +# 2527| getExpr(): [ConstructorCall] call to String +# 2527| Type = [VoidType] void +# 2527| ValueCategory = prvalue +# 2528| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2528| Type = [VoidType] void +# 2528| ValueCategory = prvalue +# 2528| getQualifier(): [VariableAccess] x836 +# 2528| Type = [Struct] String +# 2528| ValueCategory = lvalue +# 2528| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2528| Conversion = [BoolConversion] conversion to bool +# 2528| Type = [BoolType] bool +# 2528| Value = [CStyleCast] 0 +# 2528| ValueCategory = prvalue +# 2529| getStmt(837): [DoStmt] do (...) ... +# 2531| getCondition(): [Literal] 0 +# 2531| Type = [IntType] int +# 2531| Value = [Literal] 0 +# 2531| ValueCategory = prvalue +# 2529| getStmt(): [BlockStmt] { ... } +# 2530| getStmt(0): [DeclStmt] declaration +# 2530| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x837 +# 2530| Type = [Struct] String +# 2530| getVariable().getInitializer(): [Initializer] initializer for x837 +# 2530| getExpr(): [ConstructorCall] call to String +# 2530| Type = [VoidType] void +# 2530| ValueCategory = prvalue +# 2531| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2531| Type = [VoidType] void +# 2531| ValueCategory = prvalue +# 2531| getQualifier(): [VariableAccess] x837 +# 2531| Type = [Struct] String +# 2531| ValueCategory = lvalue +# 2531| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2531| Conversion = [BoolConversion] conversion to bool +# 2531| Type = [BoolType] bool +# 2531| Value = [CStyleCast] 0 +# 2531| ValueCategory = prvalue +# 2532| getStmt(838): [DoStmt] do (...) ... +# 2534| getCondition(): [Literal] 0 +# 2534| Type = [IntType] int +# 2534| Value = [Literal] 0 +# 2534| ValueCategory = prvalue +# 2532| getStmt(): [BlockStmt] { ... } +# 2533| getStmt(0): [DeclStmt] declaration +# 2533| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x838 +# 2533| Type = [Struct] String +# 2533| getVariable().getInitializer(): [Initializer] initializer for x838 +# 2533| getExpr(): [ConstructorCall] call to String +# 2533| Type = [VoidType] void +# 2533| ValueCategory = prvalue +# 2534| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2534| Type = [VoidType] void +# 2534| ValueCategory = prvalue +# 2534| getQualifier(): [VariableAccess] x838 +# 2534| Type = [Struct] String +# 2534| ValueCategory = lvalue +# 2534| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2534| Conversion = [BoolConversion] conversion to bool +# 2534| Type = [BoolType] bool +# 2534| Value = [CStyleCast] 0 +# 2534| ValueCategory = prvalue +# 2535| getStmt(839): [DoStmt] do (...) ... +# 2537| getCondition(): [Literal] 0 +# 2537| Type = [IntType] int +# 2537| Value = [Literal] 0 +# 2537| ValueCategory = prvalue +# 2535| getStmt(): [BlockStmt] { ... } +# 2536| getStmt(0): [DeclStmt] declaration +# 2536| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x839 +# 2536| Type = [Struct] String +# 2536| getVariable().getInitializer(): [Initializer] initializer for x839 +# 2536| getExpr(): [ConstructorCall] call to String +# 2536| Type = [VoidType] void +# 2536| ValueCategory = prvalue +# 2537| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2537| Type = [VoidType] void +# 2537| ValueCategory = prvalue +# 2537| getQualifier(): [VariableAccess] x839 +# 2537| Type = [Struct] String +# 2537| ValueCategory = lvalue +# 2537| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2537| Conversion = [BoolConversion] conversion to bool +# 2537| Type = [BoolType] bool +# 2537| Value = [CStyleCast] 0 +# 2537| ValueCategory = prvalue +# 2538| getStmt(840): [DoStmt] do (...) ... +# 2540| getCondition(): [Literal] 0 +# 2540| Type = [IntType] int +# 2540| Value = [Literal] 0 +# 2540| ValueCategory = prvalue +# 2538| getStmt(): [BlockStmt] { ... } +# 2539| getStmt(0): [DeclStmt] declaration +# 2539| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x840 +# 2539| Type = [Struct] String +# 2539| getVariable().getInitializer(): [Initializer] initializer for x840 +# 2539| getExpr(): [ConstructorCall] call to String +# 2539| Type = [VoidType] void +# 2539| ValueCategory = prvalue +# 2540| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2540| Type = [VoidType] void +# 2540| ValueCategory = prvalue +# 2540| getQualifier(): [VariableAccess] x840 +# 2540| Type = [Struct] String +# 2540| ValueCategory = lvalue +# 2540| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2540| Conversion = [BoolConversion] conversion to bool +# 2540| Type = [BoolType] bool +# 2540| Value = [CStyleCast] 0 +# 2540| ValueCategory = prvalue +# 2541| getStmt(841): [DoStmt] do (...) ... +# 2543| getCondition(): [Literal] 0 +# 2543| Type = [IntType] int +# 2543| Value = [Literal] 0 +# 2543| ValueCategory = prvalue +# 2541| getStmt(): [BlockStmt] { ... } +# 2542| getStmt(0): [DeclStmt] declaration +# 2542| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x841 +# 2542| Type = [Struct] String +# 2542| getVariable().getInitializer(): [Initializer] initializer for x841 +# 2542| getExpr(): [ConstructorCall] call to String +# 2542| Type = [VoidType] void +# 2542| ValueCategory = prvalue +# 2543| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2543| Type = [VoidType] void +# 2543| ValueCategory = prvalue +# 2543| getQualifier(): [VariableAccess] x841 +# 2543| Type = [Struct] String +# 2543| ValueCategory = lvalue +# 2543| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2543| Conversion = [BoolConversion] conversion to bool +# 2543| Type = [BoolType] bool +# 2543| Value = [CStyleCast] 0 +# 2543| ValueCategory = prvalue +# 2544| getStmt(842): [DoStmt] do (...) ... +# 2546| getCondition(): [Literal] 0 +# 2546| Type = [IntType] int +# 2546| Value = [Literal] 0 +# 2546| ValueCategory = prvalue +# 2544| getStmt(): [BlockStmt] { ... } +# 2545| getStmt(0): [DeclStmt] declaration +# 2545| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x842 +# 2545| Type = [Struct] String +# 2545| getVariable().getInitializer(): [Initializer] initializer for x842 +# 2545| getExpr(): [ConstructorCall] call to String +# 2545| Type = [VoidType] void +# 2545| ValueCategory = prvalue +# 2546| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2546| Type = [VoidType] void +# 2546| ValueCategory = prvalue +# 2546| getQualifier(): [VariableAccess] x842 +# 2546| Type = [Struct] String +# 2546| ValueCategory = lvalue +# 2546| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2546| Conversion = [BoolConversion] conversion to bool +# 2546| Type = [BoolType] bool +# 2546| Value = [CStyleCast] 0 +# 2546| ValueCategory = prvalue +# 2547| getStmt(843): [DoStmt] do (...) ... +# 2549| getCondition(): [Literal] 0 +# 2549| Type = [IntType] int +# 2549| Value = [Literal] 0 +# 2549| ValueCategory = prvalue +# 2547| getStmt(): [BlockStmt] { ... } +# 2548| getStmt(0): [DeclStmt] declaration +# 2548| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x843 +# 2548| Type = [Struct] String +# 2548| getVariable().getInitializer(): [Initializer] initializer for x843 +# 2548| getExpr(): [ConstructorCall] call to String +# 2548| Type = [VoidType] void +# 2548| ValueCategory = prvalue +# 2549| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2549| Type = [VoidType] void +# 2549| ValueCategory = prvalue +# 2549| getQualifier(): [VariableAccess] x843 +# 2549| Type = [Struct] String +# 2549| ValueCategory = lvalue +# 2549| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2549| Conversion = [BoolConversion] conversion to bool +# 2549| Type = [BoolType] bool +# 2549| Value = [CStyleCast] 0 +# 2549| ValueCategory = prvalue +# 2550| getStmt(844): [DoStmt] do (...) ... +# 2552| getCondition(): [Literal] 0 +# 2552| Type = [IntType] int +# 2552| Value = [Literal] 0 +# 2552| ValueCategory = prvalue +# 2550| getStmt(): [BlockStmt] { ... } +# 2551| getStmt(0): [DeclStmt] declaration +# 2551| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x844 +# 2551| Type = [Struct] String +# 2551| getVariable().getInitializer(): [Initializer] initializer for x844 +# 2551| getExpr(): [ConstructorCall] call to String +# 2551| Type = [VoidType] void +# 2551| ValueCategory = prvalue +# 2552| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2552| Type = [VoidType] void +# 2552| ValueCategory = prvalue +# 2552| getQualifier(): [VariableAccess] x844 +# 2552| Type = [Struct] String +# 2552| ValueCategory = lvalue +# 2552| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2552| Conversion = [BoolConversion] conversion to bool +# 2552| Type = [BoolType] bool +# 2552| Value = [CStyleCast] 0 +# 2552| ValueCategory = prvalue +# 2553| getStmt(845): [DoStmt] do (...) ... +# 2555| getCondition(): [Literal] 0 +# 2555| Type = [IntType] int +# 2555| Value = [Literal] 0 +# 2555| ValueCategory = prvalue +# 2553| getStmt(): [BlockStmt] { ... } +# 2554| getStmt(0): [DeclStmt] declaration +# 2554| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x845 +# 2554| Type = [Struct] String +# 2554| getVariable().getInitializer(): [Initializer] initializer for x845 +# 2554| getExpr(): [ConstructorCall] call to String +# 2554| Type = [VoidType] void +# 2554| ValueCategory = prvalue +# 2555| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2555| Type = [VoidType] void +# 2555| ValueCategory = prvalue +# 2555| getQualifier(): [VariableAccess] x845 +# 2555| Type = [Struct] String +# 2555| ValueCategory = lvalue +# 2555| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2555| Conversion = [BoolConversion] conversion to bool +# 2555| Type = [BoolType] bool +# 2555| Value = [CStyleCast] 0 +# 2555| ValueCategory = prvalue +# 2556| getStmt(846): [DoStmt] do (...) ... +# 2558| getCondition(): [Literal] 0 +# 2558| Type = [IntType] int +# 2558| Value = [Literal] 0 +# 2558| ValueCategory = prvalue +# 2556| getStmt(): [BlockStmt] { ... } +# 2557| getStmt(0): [DeclStmt] declaration +# 2557| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x846 +# 2557| Type = [Struct] String +# 2557| getVariable().getInitializer(): [Initializer] initializer for x846 +# 2557| getExpr(): [ConstructorCall] call to String +# 2557| Type = [VoidType] void +# 2557| ValueCategory = prvalue +# 2558| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2558| Type = [VoidType] void +# 2558| ValueCategory = prvalue +# 2558| getQualifier(): [VariableAccess] x846 +# 2558| Type = [Struct] String +# 2558| ValueCategory = lvalue +# 2558| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2558| Conversion = [BoolConversion] conversion to bool +# 2558| Type = [BoolType] bool +# 2558| Value = [CStyleCast] 0 +# 2558| ValueCategory = prvalue +# 2559| getStmt(847): [DoStmt] do (...) ... +# 2561| getCondition(): [Literal] 0 +# 2561| Type = [IntType] int +# 2561| Value = [Literal] 0 +# 2561| ValueCategory = prvalue +# 2559| getStmt(): [BlockStmt] { ... } +# 2560| getStmt(0): [DeclStmt] declaration +# 2560| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x847 +# 2560| Type = [Struct] String +# 2560| getVariable().getInitializer(): [Initializer] initializer for x847 +# 2560| getExpr(): [ConstructorCall] call to String +# 2560| Type = [VoidType] void +# 2560| ValueCategory = prvalue +# 2561| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2561| Type = [VoidType] void +# 2561| ValueCategory = prvalue +# 2561| getQualifier(): [VariableAccess] x847 +# 2561| Type = [Struct] String +# 2561| ValueCategory = lvalue +# 2561| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2561| Conversion = [BoolConversion] conversion to bool +# 2561| Type = [BoolType] bool +# 2561| Value = [CStyleCast] 0 +# 2561| ValueCategory = prvalue +# 2562| getStmt(848): [DoStmt] do (...) ... +# 2564| getCondition(): [Literal] 0 +# 2564| Type = [IntType] int +# 2564| Value = [Literal] 0 +# 2564| ValueCategory = prvalue +# 2562| getStmt(): [BlockStmt] { ... } +# 2563| getStmt(0): [DeclStmt] declaration +# 2563| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x848 +# 2563| Type = [Struct] String +# 2563| getVariable().getInitializer(): [Initializer] initializer for x848 +# 2563| getExpr(): [ConstructorCall] call to String +# 2563| Type = [VoidType] void +# 2563| ValueCategory = prvalue +# 2564| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2564| Type = [VoidType] void +# 2564| ValueCategory = prvalue +# 2564| getQualifier(): [VariableAccess] x848 +# 2564| Type = [Struct] String +# 2564| ValueCategory = lvalue +# 2564| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2564| Conversion = [BoolConversion] conversion to bool +# 2564| Type = [BoolType] bool +# 2564| Value = [CStyleCast] 0 +# 2564| ValueCategory = prvalue +# 2565| getStmt(849): [DoStmt] do (...) ... +# 2567| getCondition(): [Literal] 0 +# 2567| Type = [IntType] int +# 2567| Value = [Literal] 0 +# 2567| ValueCategory = prvalue +# 2565| getStmt(): [BlockStmt] { ... } +# 2566| getStmt(0): [DeclStmt] declaration +# 2566| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x849 +# 2566| Type = [Struct] String +# 2566| getVariable().getInitializer(): [Initializer] initializer for x849 +# 2566| getExpr(): [ConstructorCall] call to String +# 2566| Type = [VoidType] void +# 2566| ValueCategory = prvalue +# 2567| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2567| Type = [VoidType] void +# 2567| ValueCategory = prvalue +# 2567| getQualifier(): [VariableAccess] x849 +# 2567| Type = [Struct] String +# 2567| ValueCategory = lvalue +# 2567| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2567| Conversion = [BoolConversion] conversion to bool +# 2567| Type = [BoolType] bool +# 2567| Value = [CStyleCast] 0 +# 2567| ValueCategory = prvalue +# 2568| getStmt(850): [DoStmt] do (...) ... +# 2570| getCondition(): [Literal] 0 +# 2570| Type = [IntType] int +# 2570| Value = [Literal] 0 +# 2570| ValueCategory = prvalue +# 2568| getStmt(): [BlockStmt] { ... } +# 2569| getStmt(0): [DeclStmt] declaration +# 2569| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x850 +# 2569| Type = [Struct] String +# 2569| getVariable().getInitializer(): [Initializer] initializer for x850 +# 2569| getExpr(): [ConstructorCall] call to String +# 2569| Type = [VoidType] void +# 2569| ValueCategory = prvalue +# 2570| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2570| Type = [VoidType] void +# 2570| ValueCategory = prvalue +# 2570| getQualifier(): [VariableAccess] x850 +# 2570| Type = [Struct] String +# 2570| ValueCategory = lvalue +# 2570| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2570| Conversion = [BoolConversion] conversion to bool +# 2570| Type = [BoolType] bool +# 2570| Value = [CStyleCast] 0 +# 2570| ValueCategory = prvalue +# 2571| getStmt(851): [DoStmt] do (...) ... +# 2573| getCondition(): [Literal] 0 +# 2573| Type = [IntType] int +# 2573| Value = [Literal] 0 +# 2573| ValueCategory = prvalue +# 2571| getStmt(): [BlockStmt] { ... } +# 2572| getStmt(0): [DeclStmt] declaration +# 2572| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x851 +# 2572| Type = [Struct] String +# 2572| getVariable().getInitializer(): [Initializer] initializer for x851 +# 2572| getExpr(): [ConstructorCall] call to String +# 2572| Type = [VoidType] void +# 2572| ValueCategory = prvalue +# 2573| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2573| Type = [VoidType] void +# 2573| ValueCategory = prvalue +# 2573| getQualifier(): [VariableAccess] x851 +# 2573| Type = [Struct] String +# 2573| ValueCategory = lvalue +# 2573| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2573| Conversion = [BoolConversion] conversion to bool +# 2573| Type = [BoolType] bool +# 2573| Value = [CStyleCast] 0 +# 2573| ValueCategory = prvalue +# 2574| getStmt(852): [DoStmt] do (...) ... +# 2576| getCondition(): [Literal] 0 +# 2576| Type = [IntType] int +# 2576| Value = [Literal] 0 +# 2576| ValueCategory = prvalue +# 2574| getStmt(): [BlockStmt] { ... } +# 2575| getStmt(0): [DeclStmt] declaration +# 2575| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x852 +# 2575| Type = [Struct] String +# 2575| getVariable().getInitializer(): [Initializer] initializer for x852 +# 2575| getExpr(): [ConstructorCall] call to String +# 2575| Type = [VoidType] void +# 2575| ValueCategory = prvalue +# 2576| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2576| Type = [VoidType] void +# 2576| ValueCategory = prvalue +# 2576| getQualifier(): [VariableAccess] x852 +# 2576| Type = [Struct] String +# 2576| ValueCategory = lvalue +# 2576| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2576| Conversion = [BoolConversion] conversion to bool +# 2576| Type = [BoolType] bool +# 2576| Value = [CStyleCast] 0 +# 2576| ValueCategory = prvalue +# 2577| getStmt(853): [DoStmt] do (...) ... +# 2579| getCondition(): [Literal] 0 +# 2579| Type = [IntType] int +# 2579| Value = [Literal] 0 +# 2579| ValueCategory = prvalue +# 2577| getStmt(): [BlockStmt] { ... } +# 2578| getStmt(0): [DeclStmt] declaration +# 2578| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x853 +# 2578| Type = [Struct] String +# 2578| getVariable().getInitializer(): [Initializer] initializer for x853 +# 2578| getExpr(): [ConstructorCall] call to String +# 2578| Type = [VoidType] void +# 2578| ValueCategory = prvalue +# 2579| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2579| Type = [VoidType] void +# 2579| ValueCategory = prvalue +# 2579| getQualifier(): [VariableAccess] x853 +# 2579| Type = [Struct] String +# 2579| ValueCategory = lvalue +# 2579| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2579| Conversion = [BoolConversion] conversion to bool +# 2579| Type = [BoolType] bool +# 2579| Value = [CStyleCast] 0 +# 2579| ValueCategory = prvalue +# 2580| getStmt(854): [DoStmt] do (...) ... +# 2582| getCondition(): [Literal] 0 +# 2582| Type = [IntType] int +# 2582| Value = [Literal] 0 +# 2582| ValueCategory = prvalue +# 2580| getStmt(): [BlockStmt] { ... } +# 2581| getStmt(0): [DeclStmt] declaration +# 2581| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x854 +# 2581| Type = [Struct] String +# 2581| getVariable().getInitializer(): [Initializer] initializer for x854 +# 2581| getExpr(): [ConstructorCall] call to String +# 2581| Type = [VoidType] void +# 2581| ValueCategory = prvalue +# 2582| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2582| Type = [VoidType] void +# 2582| ValueCategory = prvalue +# 2582| getQualifier(): [VariableAccess] x854 +# 2582| Type = [Struct] String +# 2582| ValueCategory = lvalue +# 2582| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2582| Conversion = [BoolConversion] conversion to bool +# 2582| Type = [BoolType] bool +# 2582| Value = [CStyleCast] 0 +# 2582| ValueCategory = prvalue +# 2583| getStmt(855): [DoStmt] do (...) ... +# 2585| getCondition(): [Literal] 0 +# 2585| Type = [IntType] int +# 2585| Value = [Literal] 0 +# 2585| ValueCategory = prvalue +# 2583| getStmt(): [BlockStmt] { ... } +# 2584| getStmt(0): [DeclStmt] declaration +# 2584| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x855 +# 2584| Type = [Struct] String +# 2584| getVariable().getInitializer(): [Initializer] initializer for x855 +# 2584| getExpr(): [ConstructorCall] call to String +# 2584| Type = [VoidType] void +# 2584| ValueCategory = prvalue +# 2585| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2585| Type = [VoidType] void +# 2585| ValueCategory = prvalue +# 2585| getQualifier(): [VariableAccess] x855 +# 2585| Type = [Struct] String +# 2585| ValueCategory = lvalue +# 2585| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2585| Conversion = [BoolConversion] conversion to bool +# 2585| Type = [BoolType] bool +# 2585| Value = [CStyleCast] 0 +# 2585| ValueCategory = prvalue +# 2586| getStmt(856): [DoStmt] do (...) ... +# 2588| getCondition(): [Literal] 0 +# 2588| Type = [IntType] int +# 2588| Value = [Literal] 0 +# 2588| ValueCategory = prvalue +# 2586| getStmt(): [BlockStmt] { ... } +# 2587| getStmt(0): [DeclStmt] declaration +# 2587| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x856 +# 2587| Type = [Struct] String +# 2587| getVariable().getInitializer(): [Initializer] initializer for x856 +# 2587| getExpr(): [ConstructorCall] call to String +# 2587| Type = [VoidType] void +# 2587| ValueCategory = prvalue +# 2588| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2588| Type = [VoidType] void +# 2588| ValueCategory = prvalue +# 2588| getQualifier(): [VariableAccess] x856 +# 2588| Type = [Struct] String +# 2588| ValueCategory = lvalue +# 2588| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2588| Conversion = [BoolConversion] conversion to bool +# 2588| Type = [BoolType] bool +# 2588| Value = [CStyleCast] 0 +# 2588| ValueCategory = prvalue +# 2589| getStmt(857): [DoStmt] do (...) ... +# 2591| getCondition(): [Literal] 0 +# 2591| Type = [IntType] int +# 2591| Value = [Literal] 0 +# 2591| ValueCategory = prvalue +# 2589| getStmt(): [BlockStmt] { ... } +# 2590| getStmt(0): [DeclStmt] declaration +# 2590| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x857 +# 2590| Type = [Struct] String +# 2590| getVariable().getInitializer(): [Initializer] initializer for x857 +# 2590| getExpr(): [ConstructorCall] call to String +# 2590| Type = [VoidType] void +# 2590| ValueCategory = prvalue +# 2591| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2591| Type = [VoidType] void +# 2591| ValueCategory = prvalue +# 2591| getQualifier(): [VariableAccess] x857 +# 2591| Type = [Struct] String +# 2591| ValueCategory = lvalue +# 2591| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2591| Conversion = [BoolConversion] conversion to bool +# 2591| Type = [BoolType] bool +# 2591| Value = [CStyleCast] 0 +# 2591| ValueCategory = prvalue +# 2592| getStmt(858): [DoStmt] do (...) ... +# 2594| getCondition(): [Literal] 0 +# 2594| Type = [IntType] int +# 2594| Value = [Literal] 0 +# 2594| ValueCategory = prvalue +# 2592| getStmt(): [BlockStmt] { ... } +# 2593| getStmt(0): [DeclStmt] declaration +# 2593| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x858 +# 2593| Type = [Struct] String +# 2593| getVariable().getInitializer(): [Initializer] initializer for x858 +# 2593| getExpr(): [ConstructorCall] call to String +# 2593| Type = [VoidType] void +# 2593| ValueCategory = prvalue +# 2594| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2594| Type = [VoidType] void +# 2594| ValueCategory = prvalue +# 2594| getQualifier(): [VariableAccess] x858 +# 2594| Type = [Struct] String +# 2594| ValueCategory = lvalue +# 2594| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2594| Conversion = [BoolConversion] conversion to bool +# 2594| Type = [BoolType] bool +# 2594| Value = [CStyleCast] 0 +# 2594| ValueCategory = prvalue +# 2595| getStmt(859): [DoStmt] do (...) ... +# 2597| getCondition(): [Literal] 0 +# 2597| Type = [IntType] int +# 2597| Value = [Literal] 0 +# 2597| ValueCategory = prvalue +# 2595| getStmt(): [BlockStmt] { ... } +# 2596| getStmt(0): [DeclStmt] declaration +# 2596| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x859 +# 2596| Type = [Struct] String +# 2596| getVariable().getInitializer(): [Initializer] initializer for x859 +# 2596| getExpr(): [ConstructorCall] call to String +# 2596| Type = [VoidType] void +# 2596| ValueCategory = prvalue +# 2597| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2597| Type = [VoidType] void +# 2597| ValueCategory = prvalue +# 2597| getQualifier(): [VariableAccess] x859 +# 2597| Type = [Struct] String +# 2597| ValueCategory = lvalue +# 2597| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2597| Conversion = [BoolConversion] conversion to bool +# 2597| Type = [BoolType] bool +# 2597| Value = [CStyleCast] 0 +# 2597| ValueCategory = prvalue +# 2598| getStmt(860): [DoStmt] do (...) ... +# 2600| getCondition(): [Literal] 0 +# 2600| Type = [IntType] int +# 2600| Value = [Literal] 0 +# 2600| ValueCategory = prvalue +# 2598| getStmt(): [BlockStmt] { ... } +# 2599| getStmt(0): [DeclStmt] declaration +# 2599| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x860 +# 2599| Type = [Struct] String +# 2599| getVariable().getInitializer(): [Initializer] initializer for x860 +# 2599| getExpr(): [ConstructorCall] call to String +# 2599| Type = [VoidType] void +# 2599| ValueCategory = prvalue +# 2600| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2600| Type = [VoidType] void +# 2600| ValueCategory = prvalue +# 2600| getQualifier(): [VariableAccess] x860 +# 2600| Type = [Struct] String +# 2600| ValueCategory = lvalue +# 2600| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2600| Conversion = [BoolConversion] conversion to bool +# 2600| Type = [BoolType] bool +# 2600| Value = [CStyleCast] 0 +# 2600| ValueCategory = prvalue +# 2601| getStmt(861): [DoStmt] do (...) ... +# 2603| getCondition(): [Literal] 0 +# 2603| Type = [IntType] int +# 2603| Value = [Literal] 0 +# 2603| ValueCategory = prvalue +# 2601| getStmt(): [BlockStmt] { ... } +# 2602| getStmt(0): [DeclStmt] declaration +# 2602| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x861 +# 2602| Type = [Struct] String +# 2602| getVariable().getInitializer(): [Initializer] initializer for x861 +# 2602| getExpr(): [ConstructorCall] call to String +# 2602| Type = [VoidType] void +# 2602| ValueCategory = prvalue +# 2603| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2603| Type = [VoidType] void +# 2603| ValueCategory = prvalue +# 2603| getQualifier(): [VariableAccess] x861 +# 2603| Type = [Struct] String +# 2603| ValueCategory = lvalue +# 2603| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2603| Conversion = [BoolConversion] conversion to bool +# 2603| Type = [BoolType] bool +# 2603| Value = [CStyleCast] 0 +# 2603| ValueCategory = prvalue +# 2604| getStmt(862): [DoStmt] do (...) ... +# 2606| getCondition(): [Literal] 0 +# 2606| Type = [IntType] int +# 2606| Value = [Literal] 0 +# 2606| ValueCategory = prvalue +# 2604| getStmt(): [BlockStmt] { ... } +# 2605| getStmt(0): [DeclStmt] declaration +# 2605| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x862 +# 2605| Type = [Struct] String +# 2605| getVariable().getInitializer(): [Initializer] initializer for x862 +# 2605| getExpr(): [ConstructorCall] call to String +# 2605| Type = [VoidType] void +# 2605| ValueCategory = prvalue +# 2606| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2606| Type = [VoidType] void +# 2606| ValueCategory = prvalue +# 2606| getQualifier(): [VariableAccess] x862 +# 2606| Type = [Struct] String +# 2606| ValueCategory = lvalue +# 2606| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2606| Conversion = [BoolConversion] conversion to bool +# 2606| Type = [BoolType] bool +# 2606| Value = [CStyleCast] 0 +# 2606| ValueCategory = prvalue +# 2607| getStmt(863): [DoStmt] do (...) ... +# 2609| getCondition(): [Literal] 0 +# 2609| Type = [IntType] int +# 2609| Value = [Literal] 0 +# 2609| ValueCategory = prvalue +# 2607| getStmt(): [BlockStmt] { ... } +# 2608| getStmt(0): [DeclStmt] declaration +# 2608| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x863 +# 2608| Type = [Struct] String +# 2608| getVariable().getInitializer(): [Initializer] initializer for x863 +# 2608| getExpr(): [ConstructorCall] call to String +# 2608| Type = [VoidType] void +# 2608| ValueCategory = prvalue +# 2609| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2609| Type = [VoidType] void +# 2609| ValueCategory = prvalue +# 2609| getQualifier(): [VariableAccess] x863 +# 2609| Type = [Struct] String +# 2609| ValueCategory = lvalue +# 2609| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2609| Conversion = [BoolConversion] conversion to bool +# 2609| Type = [BoolType] bool +# 2609| Value = [CStyleCast] 0 +# 2609| ValueCategory = prvalue +# 2610| getStmt(864): [DoStmt] do (...) ... +# 2612| getCondition(): [Literal] 0 +# 2612| Type = [IntType] int +# 2612| Value = [Literal] 0 +# 2612| ValueCategory = prvalue +# 2610| getStmt(): [BlockStmt] { ... } +# 2611| getStmt(0): [DeclStmt] declaration +# 2611| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x864 +# 2611| Type = [Struct] String +# 2611| getVariable().getInitializer(): [Initializer] initializer for x864 +# 2611| getExpr(): [ConstructorCall] call to String +# 2611| Type = [VoidType] void +# 2611| ValueCategory = prvalue +# 2612| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2612| Type = [VoidType] void +# 2612| ValueCategory = prvalue +# 2612| getQualifier(): [VariableAccess] x864 +# 2612| Type = [Struct] String +# 2612| ValueCategory = lvalue +# 2612| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2612| Conversion = [BoolConversion] conversion to bool +# 2612| Type = [BoolType] bool +# 2612| Value = [CStyleCast] 0 +# 2612| ValueCategory = prvalue +# 2613| getStmt(865): [DoStmt] do (...) ... +# 2615| getCondition(): [Literal] 0 +# 2615| Type = [IntType] int +# 2615| Value = [Literal] 0 +# 2615| ValueCategory = prvalue +# 2613| getStmt(): [BlockStmt] { ... } +# 2614| getStmt(0): [DeclStmt] declaration +# 2614| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x865 +# 2614| Type = [Struct] String +# 2614| getVariable().getInitializer(): [Initializer] initializer for x865 +# 2614| getExpr(): [ConstructorCall] call to String +# 2614| Type = [VoidType] void +# 2614| ValueCategory = prvalue +# 2615| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2615| Type = [VoidType] void +# 2615| ValueCategory = prvalue +# 2615| getQualifier(): [VariableAccess] x865 +# 2615| Type = [Struct] String +# 2615| ValueCategory = lvalue +# 2615| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2615| Conversion = [BoolConversion] conversion to bool +# 2615| Type = [BoolType] bool +# 2615| Value = [CStyleCast] 0 +# 2615| ValueCategory = prvalue +# 2616| getStmt(866): [DoStmt] do (...) ... +# 2618| getCondition(): [Literal] 0 +# 2618| Type = [IntType] int +# 2618| Value = [Literal] 0 +# 2618| ValueCategory = prvalue +# 2616| getStmt(): [BlockStmt] { ... } +# 2617| getStmt(0): [DeclStmt] declaration +# 2617| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x866 +# 2617| Type = [Struct] String +# 2617| getVariable().getInitializer(): [Initializer] initializer for x866 +# 2617| getExpr(): [ConstructorCall] call to String +# 2617| Type = [VoidType] void +# 2617| ValueCategory = prvalue +# 2618| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2618| Type = [VoidType] void +# 2618| ValueCategory = prvalue +# 2618| getQualifier(): [VariableAccess] x866 +# 2618| Type = [Struct] String +# 2618| ValueCategory = lvalue +# 2618| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2618| Conversion = [BoolConversion] conversion to bool +# 2618| Type = [BoolType] bool +# 2618| Value = [CStyleCast] 0 +# 2618| ValueCategory = prvalue +# 2619| getStmt(867): [DoStmt] do (...) ... +# 2621| getCondition(): [Literal] 0 +# 2621| Type = [IntType] int +# 2621| Value = [Literal] 0 +# 2621| ValueCategory = prvalue +# 2619| getStmt(): [BlockStmt] { ... } +# 2620| getStmt(0): [DeclStmt] declaration +# 2620| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x867 +# 2620| Type = [Struct] String +# 2620| getVariable().getInitializer(): [Initializer] initializer for x867 +# 2620| getExpr(): [ConstructorCall] call to String +# 2620| Type = [VoidType] void +# 2620| ValueCategory = prvalue +# 2621| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2621| Type = [VoidType] void +# 2621| ValueCategory = prvalue +# 2621| getQualifier(): [VariableAccess] x867 +# 2621| Type = [Struct] String +# 2621| ValueCategory = lvalue +# 2621| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2621| Conversion = [BoolConversion] conversion to bool +# 2621| Type = [BoolType] bool +# 2621| Value = [CStyleCast] 0 +# 2621| ValueCategory = prvalue +# 2622| getStmt(868): [DoStmt] do (...) ... +# 2624| getCondition(): [Literal] 0 +# 2624| Type = [IntType] int +# 2624| Value = [Literal] 0 +# 2624| ValueCategory = prvalue +# 2622| getStmt(): [BlockStmt] { ... } +# 2623| getStmt(0): [DeclStmt] declaration +# 2623| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x868 +# 2623| Type = [Struct] String +# 2623| getVariable().getInitializer(): [Initializer] initializer for x868 +# 2623| getExpr(): [ConstructorCall] call to String +# 2623| Type = [VoidType] void +# 2623| ValueCategory = prvalue +# 2624| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2624| Type = [VoidType] void +# 2624| ValueCategory = prvalue +# 2624| getQualifier(): [VariableAccess] x868 +# 2624| Type = [Struct] String +# 2624| ValueCategory = lvalue +# 2624| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2624| Conversion = [BoolConversion] conversion to bool +# 2624| Type = [BoolType] bool +# 2624| Value = [CStyleCast] 0 +# 2624| ValueCategory = prvalue +# 2625| getStmt(869): [DoStmt] do (...) ... +# 2627| getCondition(): [Literal] 0 +# 2627| Type = [IntType] int +# 2627| Value = [Literal] 0 +# 2627| ValueCategory = prvalue +# 2625| getStmt(): [BlockStmt] { ... } +# 2626| getStmt(0): [DeclStmt] declaration +# 2626| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x869 +# 2626| Type = [Struct] String +# 2626| getVariable().getInitializer(): [Initializer] initializer for x869 +# 2626| getExpr(): [ConstructorCall] call to String +# 2626| Type = [VoidType] void +# 2626| ValueCategory = prvalue +# 2627| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2627| Type = [VoidType] void +# 2627| ValueCategory = prvalue +# 2627| getQualifier(): [VariableAccess] x869 +# 2627| Type = [Struct] String +# 2627| ValueCategory = lvalue +# 2627| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2627| Conversion = [BoolConversion] conversion to bool +# 2627| Type = [BoolType] bool +# 2627| Value = [CStyleCast] 0 +# 2627| ValueCategory = prvalue +# 2628| getStmt(870): [DoStmt] do (...) ... +# 2630| getCondition(): [Literal] 0 +# 2630| Type = [IntType] int +# 2630| Value = [Literal] 0 +# 2630| ValueCategory = prvalue +# 2628| getStmt(): [BlockStmt] { ... } +# 2629| getStmt(0): [DeclStmt] declaration +# 2629| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x870 +# 2629| Type = [Struct] String +# 2629| getVariable().getInitializer(): [Initializer] initializer for x870 +# 2629| getExpr(): [ConstructorCall] call to String +# 2629| Type = [VoidType] void +# 2629| ValueCategory = prvalue +# 2630| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2630| Type = [VoidType] void +# 2630| ValueCategory = prvalue +# 2630| getQualifier(): [VariableAccess] x870 +# 2630| Type = [Struct] String +# 2630| ValueCategory = lvalue +# 2630| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2630| Conversion = [BoolConversion] conversion to bool +# 2630| Type = [BoolType] bool +# 2630| Value = [CStyleCast] 0 +# 2630| ValueCategory = prvalue +# 2631| getStmt(871): [DoStmt] do (...) ... +# 2633| getCondition(): [Literal] 0 +# 2633| Type = [IntType] int +# 2633| Value = [Literal] 0 +# 2633| ValueCategory = prvalue +# 2631| getStmt(): [BlockStmt] { ... } +# 2632| getStmt(0): [DeclStmt] declaration +# 2632| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x871 +# 2632| Type = [Struct] String +# 2632| getVariable().getInitializer(): [Initializer] initializer for x871 +# 2632| getExpr(): [ConstructorCall] call to String +# 2632| Type = [VoidType] void +# 2632| ValueCategory = prvalue +# 2633| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2633| Type = [VoidType] void +# 2633| ValueCategory = prvalue +# 2633| getQualifier(): [VariableAccess] x871 +# 2633| Type = [Struct] String +# 2633| ValueCategory = lvalue +# 2633| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2633| Conversion = [BoolConversion] conversion to bool +# 2633| Type = [BoolType] bool +# 2633| Value = [CStyleCast] 0 +# 2633| ValueCategory = prvalue +# 2634| getStmt(872): [DoStmt] do (...) ... +# 2636| getCondition(): [Literal] 0 +# 2636| Type = [IntType] int +# 2636| Value = [Literal] 0 +# 2636| ValueCategory = prvalue +# 2634| getStmt(): [BlockStmt] { ... } +# 2635| getStmt(0): [DeclStmt] declaration +# 2635| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x872 +# 2635| Type = [Struct] String +# 2635| getVariable().getInitializer(): [Initializer] initializer for x872 +# 2635| getExpr(): [ConstructorCall] call to String +# 2635| Type = [VoidType] void +# 2635| ValueCategory = prvalue +# 2636| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2636| Type = [VoidType] void +# 2636| ValueCategory = prvalue +# 2636| getQualifier(): [VariableAccess] x872 +# 2636| Type = [Struct] String +# 2636| ValueCategory = lvalue +# 2636| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2636| Conversion = [BoolConversion] conversion to bool +# 2636| Type = [BoolType] bool +# 2636| Value = [CStyleCast] 0 +# 2636| ValueCategory = prvalue +# 2637| getStmt(873): [DoStmt] do (...) ... +# 2639| getCondition(): [Literal] 0 +# 2639| Type = [IntType] int +# 2639| Value = [Literal] 0 +# 2639| ValueCategory = prvalue +# 2637| getStmt(): [BlockStmt] { ... } +# 2638| getStmt(0): [DeclStmt] declaration +# 2638| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x873 +# 2638| Type = [Struct] String +# 2638| getVariable().getInitializer(): [Initializer] initializer for x873 +# 2638| getExpr(): [ConstructorCall] call to String +# 2638| Type = [VoidType] void +# 2638| ValueCategory = prvalue +# 2639| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2639| Type = [VoidType] void +# 2639| ValueCategory = prvalue +# 2639| getQualifier(): [VariableAccess] x873 +# 2639| Type = [Struct] String +# 2639| ValueCategory = lvalue +# 2639| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2639| Conversion = [BoolConversion] conversion to bool +# 2639| Type = [BoolType] bool +# 2639| Value = [CStyleCast] 0 +# 2639| ValueCategory = prvalue +# 2640| getStmt(874): [DoStmt] do (...) ... +# 2642| getCondition(): [Literal] 0 +# 2642| Type = [IntType] int +# 2642| Value = [Literal] 0 +# 2642| ValueCategory = prvalue +# 2640| getStmt(): [BlockStmt] { ... } +# 2641| getStmt(0): [DeclStmt] declaration +# 2641| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x874 +# 2641| Type = [Struct] String +# 2641| getVariable().getInitializer(): [Initializer] initializer for x874 +# 2641| getExpr(): [ConstructorCall] call to String +# 2641| Type = [VoidType] void +# 2641| ValueCategory = prvalue +# 2642| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2642| Type = [VoidType] void +# 2642| ValueCategory = prvalue +# 2642| getQualifier(): [VariableAccess] x874 +# 2642| Type = [Struct] String +# 2642| ValueCategory = lvalue +# 2642| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2642| Conversion = [BoolConversion] conversion to bool +# 2642| Type = [BoolType] bool +# 2642| Value = [CStyleCast] 0 +# 2642| ValueCategory = prvalue +# 2643| getStmt(875): [DoStmt] do (...) ... +# 2645| getCondition(): [Literal] 0 +# 2645| Type = [IntType] int +# 2645| Value = [Literal] 0 +# 2645| ValueCategory = prvalue +# 2643| getStmt(): [BlockStmt] { ... } +# 2644| getStmt(0): [DeclStmt] declaration +# 2644| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x875 +# 2644| Type = [Struct] String +# 2644| getVariable().getInitializer(): [Initializer] initializer for x875 +# 2644| getExpr(): [ConstructorCall] call to String +# 2644| Type = [VoidType] void +# 2644| ValueCategory = prvalue +# 2645| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2645| Type = [VoidType] void +# 2645| ValueCategory = prvalue +# 2645| getQualifier(): [VariableAccess] x875 +# 2645| Type = [Struct] String +# 2645| ValueCategory = lvalue +# 2645| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2645| Conversion = [BoolConversion] conversion to bool +# 2645| Type = [BoolType] bool +# 2645| Value = [CStyleCast] 0 +# 2645| ValueCategory = prvalue +# 2646| getStmt(876): [DoStmt] do (...) ... +# 2648| getCondition(): [Literal] 0 +# 2648| Type = [IntType] int +# 2648| Value = [Literal] 0 +# 2648| ValueCategory = prvalue +# 2646| getStmt(): [BlockStmt] { ... } +# 2647| getStmt(0): [DeclStmt] declaration +# 2647| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x876 +# 2647| Type = [Struct] String +# 2647| getVariable().getInitializer(): [Initializer] initializer for x876 +# 2647| getExpr(): [ConstructorCall] call to String +# 2647| Type = [VoidType] void +# 2647| ValueCategory = prvalue +# 2648| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2648| Type = [VoidType] void +# 2648| ValueCategory = prvalue +# 2648| getQualifier(): [VariableAccess] x876 +# 2648| Type = [Struct] String +# 2648| ValueCategory = lvalue +# 2648| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2648| Conversion = [BoolConversion] conversion to bool +# 2648| Type = [BoolType] bool +# 2648| Value = [CStyleCast] 0 +# 2648| ValueCategory = prvalue +# 2649| getStmt(877): [DoStmt] do (...) ... +# 2651| getCondition(): [Literal] 0 +# 2651| Type = [IntType] int +# 2651| Value = [Literal] 0 +# 2651| ValueCategory = prvalue +# 2649| getStmt(): [BlockStmt] { ... } +# 2650| getStmt(0): [DeclStmt] declaration +# 2650| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x877 +# 2650| Type = [Struct] String +# 2650| getVariable().getInitializer(): [Initializer] initializer for x877 +# 2650| getExpr(): [ConstructorCall] call to String +# 2650| Type = [VoidType] void +# 2650| ValueCategory = prvalue +# 2651| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2651| Type = [VoidType] void +# 2651| ValueCategory = prvalue +# 2651| getQualifier(): [VariableAccess] x877 +# 2651| Type = [Struct] String +# 2651| ValueCategory = lvalue +# 2651| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2651| Conversion = [BoolConversion] conversion to bool +# 2651| Type = [BoolType] bool +# 2651| Value = [CStyleCast] 0 +# 2651| ValueCategory = prvalue +# 2652| getStmt(878): [DoStmt] do (...) ... +# 2654| getCondition(): [Literal] 0 +# 2654| Type = [IntType] int +# 2654| Value = [Literal] 0 +# 2654| ValueCategory = prvalue +# 2652| getStmt(): [BlockStmt] { ... } +# 2653| getStmt(0): [DeclStmt] declaration +# 2653| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x878 +# 2653| Type = [Struct] String +# 2653| getVariable().getInitializer(): [Initializer] initializer for x878 +# 2653| getExpr(): [ConstructorCall] call to String +# 2653| Type = [VoidType] void +# 2653| ValueCategory = prvalue +# 2654| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2654| Type = [VoidType] void +# 2654| ValueCategory = prvalue +# 2654| getQualifier(): [VariableAccess] x878 +# 2654| Type = [Struct] String +# 2654| ValueCategory = lvalue +# 2654| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2654| Conversion = [BoolConversion] conversion to bool +# 2654| Type = [BoolType] bool +# 2654| Value = [CStyleCast] 0 +# 2654| ValueCategory = prvalue +# 2655| getStmt(879): [DoStmt] do (...) ... +# 2657| getCondition(): [Literal] 0 +# 2657| Type = [IntType] int +# 2657| Value = [Literal] 0 +# 2657| ValueCategory = prvalue +# 2655| getStmt(): [BlockStmt] { ... } +# 2656| getStmt(0): [DeclStmt] declaration +# 2656| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x879 +# 2656| Type = [Struct] String +# 2656| getVariable().getInitializer(): [Initializer] initializer for x879 +# 2656| getExpr(): [ConstructorCall] call to String +# 2656| Type = [VoidType] void +# 2656| ValueCategory = prvalue +# 2657| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2657| Type = [VoidType] void +# 2657| ValueCategory = prvalue +# 2657| getQualifier(): [VariableAccess] x879 +# 2657| Type = [Struct] String +# 2657| ValueCategory = lvalue +# 2657| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2657| Conversion = [BoolConversion] conversion to bool +# 2657| Type = [BoolType] bool +# 2657| Value = [CStyleCast] 0 +# 2657| ValueCategory = prvalue +# 2658| getStmt(880): [DoStmt] do (...) ... +# 2660| getCondition(): [Literal] 0 +# 2660| Type = [IntType] int +# 2660| Value = [Literal] 0 +# 2660| ValueCategory = prvalue +# 2658| getStmt(): [BlockStmt] { ... } +# 2659| getStmt(0): [DeclStmt] declaration +# 2659| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x880 +# 2659| Type = [Struct] String +# 2659| getVariable().getInitializer(): [Initializer] initializer for x880 +# 2659| getExpr(): [ConstructorCall] call to String +# 2659| Type = [VoidType] void +# 2659| ValueCategory = prvalue +# 2660| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2660| Type = [VoidType] void +# 2660| ValueCategory = prvalue +# 2660| getQualifier(): [VariableAccess] x880 +# 2660| Type = [Struct] String +# 2660| ValueCategory = lvalue +# 2660| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2660| Conversion = [BoolConversion] conversion to bool +# 2660| Type = [BoolType] bool +# 2660| Value = [CStyleCast] 0 +# 2660| ValueCategory = prvalue +# 2661| getStmt(881): [DoStmt] do (...) ... +# 2663| getCondition(): [Literal] 0 +# 2663| Type = [IntType] int +# 2663| Value = [Literal] 0 +# 2663| ValueCategory = prvalue +# 2661| getStmt(): [BlockStmt] { ... } +# 2662| getStmt(0): [DeclStmt] declaration +# 2662| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x881 +# 2662| Type = [Struct] String +# 2662| getVariable().getInitializer(): [Initializer] initializer for x881 +# 2662| getExpr(): [ConstructorCall] call to String +# 2662| Type = [VoidType] void +# 2662| ValueCategory = prvalue +# 2663| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2663| Type = [VoidType] void +# 2663| ValueCategory = prvalue +# 2663| getQualifier(): [VariableAccess] x881 +# 2663| Type = [Struct] String +# 2663| ValueCategory = lvalue +# 2663| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2663| Conversion = [BoolConversion] conversion to bool +# 2663| Type = [BoolType] bool +# 2663| Value = [CStyleCast] 0 +# 2663| ValueCategory = prvalue +# 2664| getStmt(882): [DoStmt] do (...) ... +# 2666| getCondition(): [Literal] 0 +# 2666| Type = [IntType] int +# 2666| Value = [Literal] 0 +# 2666| ValueCategory = prvalue +# 2664| getStmt(): [BlockStmt] { ... } +# 2665| getStmt(0): [DeclStmt] declaration +# 2665| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x882 +# 2665| Type = [Struct] String +# 2665| getVariable().getInitializer(): [Initializer] initializer for x882 +# 2665| getExpr(): [ConstructorCall] call to String +# 2665| Type = [VoidType] void +# 2665| ValueCategory = prvalue +# 2666| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2666| Type = [VoidType] void +# 2666| ValueCategory = prvalue +# 2666| getQualifier(): [VariableAccess] x882 +# 2666| Type = [Struct] String +# 2666| ValueCategory = lvalue +# 2666| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2666| Conversion = [BoolConversion] conversion to bool +# 2666| Type = [BoolType] bool +# 2666| Value = [CStyleCast] 0 +# 2666| ValueCategory = prvalue +# 2667| getStmt(883): [DoStmt] do (...) ... +# 2669| getCondition(): [Literal] 0 +# 2669| Type = [IntType] int +# 2669| Value = [Literal] 0 +# 2669| ValueCategory = prvalue +# 2667| getStmt(): [BlockStmt] { ... } +# 2668| getStmt(0): [DeclStmt] declaration +# 2668| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x883 +# 2668| Type = [Struct] String +# 2668| getVariable().getInitializer(): [Initializer] initializer for x883 +# 2668| getExpr(): [ConstructorCall] call to String +# 2668| Type = [VoidType] void +# 2668| ValueCategory = prvalue +# 2669| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2669| Type = [VoidType] void +# 2669| ValueCategory = prvalue +# 2669| getQualifier(): [VariableAccess] x883 +# 2669| Type = [Struct] String +# 2669| ValueCategory = lvalue +# 2669| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2669| Conversion = [BoolConversion] conversion to bool +# 2669| Type = [BoolType] bool +# 2669| Value = [CStyleCast] 0 +# 2669| ValueCategory = prvalue +# 2670| getStmt(884): [DoStmt] do (...) ... +# 2672| getCondition(): [Literal] 0 +# 2672| Type = [IntType] int +# 2672| Value = [Literal] 0 +# 2672| ValueCategory = prvalue +# 2670| getStmt(): [BlockStmt] { ... } +# 2671| getStmt(0): [DeclStmt] declaration +# 2671| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x884 +# 2671| Type = [Struct] String +# 2671| getVariable().getInitializer(): [Initializer] initializer for x884 +# 2671| getExpr(): [ConstructorCall] call to String +# 2671| Type = [VoidType] void +# 2671| ValueCategory = prvalue +# 2672| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2672| Type = [VoidType] void +# 2672| ValueCategory = prvalue +# 2672| getQualifier(): [VariableAccess] x884 +# 2672| Type = [Struct] String +# 2672| ValueCategory = lvalue +# 2672| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2672| Conversion = [BoolConversion] conversion to bool +# 2672| Type = [BoolType] bool +# 2672| Value = [CStyleCast] 0 +# 2672| ValueCategory = prvalue +# 2673| getStmt(885): [DoStmt] do (...) ... +# 2675| getCondition(): [Literal] 0 +# 2675| Type = [IntType] int +# 2675| Value = [Literal] 0 +# 2675| ValueCategory = prvalue +# 2673| getStmt(): [BlockStmt] { ... } +# 2674| getStmt(0): [DeclStmt] declaration +# 2674| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x885 +# 2674| Type = [Struct] String +# 2674| getVariable().getInitializer(): [Initializer] initializer for x885 +# 2674| getExpr(): [ConstructorCall] call to String +# 2674| Type = [VoidType] void +# 2674| ValueCategory = prvalue +# 2675| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2675| Type = [VoidType] void +# 2675| ValueCategory = prvalue +# 2675| getQualifier(): [VariableAccess] x885 +# 2675| Type = [Struct] String +# 2675| ValueCategory = lvalue +# 2675| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2675| Conversion = [BoolConversion] conversion to bool +# 2675| Type = [BoolType] bool +# 2675| Value = [CStyleCast] 0 +# 2675| ValueCategory = prvalue +# 2676| getStmt(886): [DoStmt] do (...) ... +# 2678| getCondition(): [Literal] 0 +# 2678| Type = [IntType] int +# 2678| Value = [Literal] 0 +# 2678| ValueCategory = prvalue +# 2676| getStmt(): [BlockStmt] { ... } +# 2677| getStmt(0): [DeclStmt] declaration +# 2677| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x886 +# 2677| Type = [Struct] String +# 2677| getVariable().getInitializer(): [Initializer] initializer for x886 +# 2677| getExpr(): [ConstructorCall] call to String +# 2677| Type = [VoidType] void +# 2677| ValueCategory = prvalue +# 2678| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2678| Type = [VoidType] void +# 2678| ValueCategory = prvalue +# 2678| getQualifier(): [VariableAccess] x886 +# 2678| Type = [Struct] String +# 2678| ValueCategory = lvalue +# 2678| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2678| Conversion = [BoolConversion] conversion to bool +# 2678| Type = [BoolType] bool +# 2678| Value = [CStyleCast] 0 +# 2678| ValueCategory = prvalue +# 2679| getStmt(887): [DoStmt] do (...) ... +# 2681| getCondition(): [Literal] 0 +# 2681| Type = [IntType] int +# 2681| Value = [Literal] 0 +# 2681| ValueCategory = prvalue +# 2679| getStmt(): [BlockStmt] { ... } +# 2680| getStmt(0): [DeclStmt] declaration +# 2680| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x887 +# 2680| Type = [Struct] String +# 2680| getVariable().getInitializer(): [Initializer] initializer for x887 +# 2680| getExpr(): [ConstructorCall] call to String +# 2680| Type = [VoidType] void +# 2680| ValueCategory = prvalue +# 2681| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2681| Type = [VoidType] void +# 2681| ValueCategory = prvalue +# 2681| getQualifier(): [VariableAccess] x887 +# 2681| Type = [Struct] String +# 2681| ValueCategory = lvalue +# 2681| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2681| Conversion = [BoolConversion] conversion to bool +# 2681| Type = [BoolType] bool +# 2681| Value = [CStyleCast] 0 +# 2681| ValueCategory = prvalue +# 2682| getStmt(888): [DoStmt] do (...) ... +# 2684| getCondition(): [Literal] 0 +# 2684| Type = [IntType] int +# 2684| Value = [Literal] 0 +# 2684| ValueCategory = prvalue +# 2682| getStmt(): [BlockStmt] { ... } +# 2683| getStmt(0): [DeclStmt] declaration +# 2683| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x888 +# 2683| Type = [Struct] String +# 2683| getVariable().getInitializer(): [Initializer] initializer for x888 +# 2683| getExpr(): [ConstructorCall] call to String +# 2683| Type = [VoidType] void +# 2683| ValueCategory = prvalue +# 2684| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2684| Type = [VoidType] void +# 2684| ValueCategory = prvalue +# 2684| getQualifier(): [VariableAccess] x888 +# 2684| Type = [Struct] String +# 2684| ValueCategory = lvalue +# 2684| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2684| Conversion = [BoolConversion] conversion to bool +# 2684| Type = [BoolType] bool +# 2684| Value = [CStyleCast] 0 +# 2684| ValueCategory = prvalue +# 2685| getStmt(889): [DoStmt] do (...) ... +# 2687| getCondition(): [Literal] 0 +# 2687| Type = [IntType] int +# 2687| Value = [Literal] 0 +# 2687| ValueCategory = prvalue +# 2685| getStmt(): [BlockStmt] { ... } +# 2686| getStmt(0): [DeclStmt] declaration +# 2686| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x889 +# 2686| Type = [Struct] String +# 2686| getVariable().getInitializer(): [Initializer] initializer for x889 +# 2686| getExpr(): [ConstructorCall] call to String +# 2686| Type = [VoidType] void +# 2686| ValueCategory = prvalue +# 2687| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2687| Type = [VoidType] void +# 2687| ValueCategory = prvalue +# 2687| getQualifier(): [VariableAccess] x889 +# 2687| Type = [Struct] String +# 2687| ValueCategory = lvalue +# 2687| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2687| Conversion = [BoolConversion] conversion to bool +# 2687| Type = [BoolType] bool +# 2687| Value = [CStyleCast] 0 +# 2687| ValueCategory = prvalue +# 2688| getStmt(890): [DoStmt] do (...) ... +# 2690| getCondition(): [Literal] 0 +# 2690| Type = [IntType] int +# 2690| Value = [Literal] 0 +# 2690| ValueCategory = prvalue +# 2688| getStmt(): [BlockStmt] { ... } +# 2689| getStmt(0): [DeclStmt] declaration +# 2689| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x890 +# 2689| Type = [Struct] String +# 2689| getVariable().getInitializer(): [Initializer] initializer for x890 +# 2689| getExpr(): [ConstructorCall] call to String +# 2689| Type = [VoidType] void +# 2689| ValueCategory = prvalue +# 2690| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2690| Type = [VoidType] void +# 2690| ValueCategory = prvalue +# 2690| getQualifier(): [VariableAccess] x890 +# 2690| Type = [Struct] String +# 2690| ValueCategory = lvalue +# 2690| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2690| Conversion = [BoolConversion] conversion to bool +# 2690| Type = [BoolType] bool +# 2690| Value = [CStyleCast] 0 +# 2690| ValueCategory = prvalue +# 2691| getStmt(891): [DoStmt] do (...) ... +# 2693| getCondition(): [Literal] 0 +# 2693| Type = [IntType] int +# 2693| Value = [Literal] 0 +# 2693| ValueCategory = prvalue +# 2691| getStmt(): [BlockStmt] { ... } +# 2692| getStmt(0): [DeclStmt] declaration +# 2692| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x891 +# 2692| Type = [Struct] String +# 2692| getVariable().getInitializer(): [Initializer] initializer for x891 +# 2692| getExpr(): [ConstructorCall] call to String +# 2692| Type = [VoidType] void +# 2692| ValueCategory = prvalue +# 2693| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2693| Type = [VoidType] void +# 2693| ValueCategory = prvalue +# 2693| getQualifier(): [VariableAccess] x891 +# 2693| Type = [Struct] String +# 2693| ValueCategory = lvalue +# 2693| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2693| Conversion = [BoolConversion] conversion to bool +# 2693| Type = [BoolType] bool +# 2693| Value = [CStyleCast] 0 +# 2693| ValueCategory = prvalue +# 2694| getStmt(892): [DoStmt] do (...) ... +# 2696| getCondition(): [Literal] 0 +# 2696| Type = [IntType] int +# 2696| Value = [Literal] 0 +# 2696| ValueCategory = prvalue +# 2694| getStmt(): [BlockStmt] { ... } +# 2695| getStmt(0): [DeclStmt] declaration +# 2695| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x892 +# 2695| Type = [Struct] String +# 2695| getVariable().getInitializer(): [Initializer] initializer for x892 +# 2695| getExpr(): [ConstructorCall] call to String +# 2695| Type = [VoidType] void +# 2695| ValueCategory = prvalue +# 2696| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2696| Type = [VoidType] void +# 2696| ValueCategory = prvalue +# 2696| getQualifier(): [VariableAccess] x892 +# 2696| Type = [Struct] String +# 2696| ValueCategory = lvalue +# 2696| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2696| Conversion = [BoolConversion] conversion to bool +# 2696| Type = [BoolType] bool +# 2696| Value = [CStyleCast] 0 +# 2696| ValueCategory = prvalue +# 2697| getStmt(893): [DoStmt] do (...) ... +# 2699| getCondition(): [Literal] 0 +# 2699| Type = [IntType] int +# 2699| Value = [Literal] 0 +# 2699| ValueCategory = prvalue +# 2697| getStmt(): [BlockStmt] { ... } +# 2698| getStmt(0): [DeclStmt] declaration +# 2698| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x893 +# 2698| Type = [Struct] String +# 2698| getVariable().getInitializer(): [Initializer] initializer for x893 +# 2698| getExpr(): [ConstructorCall] call to String +# 2698| Type = [VoidType] void +# 2698| ValueCategory = prvalue +# 2699| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2699| Type = [VoidType] void +# 2699| ValueCategory = prvalue +# 2699| getQualifier(): [VariableAccess] x893 +# 2699| Type = [Struct] String +# 2699| ValueCategory = lvalue +# 2699| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2699| Conversion = [BoolConversion] conversion to bool +# 2699| Type = [BoolType] bool +# 2699| Value = [CStyleCast] 0 +# 2699| ValueCategory = prvalue +# 2700| getStmt(894): [DoStmt] do (...) ... +# 2702| getCondition(): [Literal] 0 +# 2702| Type = [IntType] int +# 2702| Value = [Literal] 0 +# 2702| ValueCategory = prvalue +# 2700| getStmt(): [BlockStmt] { ... } +# 2701| getStmt(0): [DeclStmt] declaration +# 2701| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x894 +# 2701| Type = [Struct] String +# 2701| getVariable().getInitializer(): [Initializer] initializer for x894 +# 2701| getExpr(): [ConstructorCall] call to String +# 2701| Type = [VoidType] void +# 2701| ValueCategory = prvalue +# 2702| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2702| Type = [VoidType] void +# 2702| ValueCategory = prvalue +# 2702| getQualifier(): [VariableAccess] x894 +# 2702| Type = [Struct] String +# 2702| ValueCategory = lvalue +# 2702| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2702| Conversion = [BoolConversion] conversion to bool +# 2702| Type = [BoolType] bool +# 2702| Value = [CStyleCast] 0 +# 2702| ValueCategory = prvalue +# 2703| getStmt(895): [DoStmt] do (...) ... +# 2705| getCondition(): [Literal] 0 +# 2705| Type = [IntType] int +# 2705| Value = [Literal] 0 +# 2705| ValueCategory = prvalue +# 2703| getStmt(): [BlockStmt] { ... } +# 2704| getStmt(0): [DeclStmt] declaration +# 2704| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x895 +# 2704| Type = [Struct] String +# 2704| getVariable().getInitializer(): [Initializer] initializer for x895 +# 2704| getExpr(): [ConstructorCall] call to String +# 2704| Type = [VoidType] void +# 2704| ValueCategory = prvalue +# 2705| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2705| Type = [VoidType] void +# 2705| ValueCategory = prvalue +# 2705| getQualifier(): [VariableAccess] x895 +# 2705| Type = [Struct] String +# 2705| ValueCategory = lvalue +# 2705| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2705| Conversion = [BoolConversion] conversion to bool +# 2705| Type = [BoolType] bool +# 2705| Value = [CStyleCast] 0 +# 2705| ValueCategory = prvalue +# 2706| getStmt(896): [DoStmt] do (...) ... +# 2708| getCondition(): [Literal] 0 +# 2708| Type = [IntType] int +# 2708| Value = [Literal] 0 +# 2708| ValueCategory = prvalue +# 2706| getStmt(): [BlockStmt] { ... } +# 2707| getStmt(0): [DeclStmt] declaration +# 2707| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x896 +# 2707| Type = [Struct] String +# 2707| getVariable().getInitializer(): [Initializer] initializer for x896 +# 2707| getExpr(): [ConstructorCall] call to String +# 2707| Type = [VoidType] void +# 2707| ValueCategory = prvalue +# 2708| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2708| Type = [VoidType] void +# 2708| ValueCategory = prvalue +# 2708| getQualifier(): [VariableAccess] x896 +# 2708| Type = [Struct] String +# 2708| ValueCategory = lvalue +# 2708| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2708| Conversion = [BoolConversion] conversion to bool +# 2708| Type = [BoolType] bool +# 2708| Value = [CStyleCast] 0 +# 2708| ValueCategory = prvalue +# 2709| getStmt(897): [DoStmt] do (...) ... +# 2711| getCondition(): [Literal] 0 +# 2711| Type = [IntType] int +# 2711| Value = [Literal] 0 +# 2711| ValueCategory = prvalue +# 2709| getStmt(): [BlockStmt] { ... } +# 2710| getStmt(0): [DeclStmt] declaration +# 2710| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x897 +# 2710| Type = [Struct] String +# 2710| getVariable().getInitializer(): [Initializer] initializer for x897 +# 2710| getExpr(): [ConstructorCall] call to String +# 2710| Type = [VoidType] void +# 2710| ValueCategory = prvalue +# 2711| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2711| Type = [VoidType] void +# 2711| ValueCategory = prvalue +# 2711| getQualifier(): [VariableAccess] x897 +# 2711| Type = [Struct] String +# 2711| ValueCategory = lvalue +# 2711| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2711| Conversion = [BoolConversion] conversion to bool +# 2711| Type = [BoolType] bool +# 2711| Value = [CStyleCast] 0 +# 2711| ValueCategory = prvalue +# 2712| getStmt(898): [DoStmt] do (...) ... +# 2714| getCondition(): [Literal] 0 +# 2714| Type = [IntType] int +# 2714| Value = [Literal] 0 +# 2714| ValueCategory = prvalue +# 2712| getStmt(): [BlockStmt] { ... } +# 2713| getStmt(0): [DeclStmt] declaration +# 2713| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x898 +# 2713| Type = [Struct] String +# 2713| getVariable().getInitializer(): [Initializer] initializer for x898 +# 2713| getExpr(): [ConstructorCall] call to String +# 2713| Type = [VoidType] void +# 2713| ValueCategory = prvalue +# 2714| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2714| Type = [VoidType] void +# 2714| ValueCategory = prvalue +# 2714| getQualifier(): [VariableAccess] x898 +# 2714| Type = [Struct] String +# 2714| ValueCategory = lvalue +# 2714| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2714| Conversion = [BoolConversion] conversion to bool +# 2714| Type = [BoolType] bool +# 2714| Value = [CStyleCast] 0 +# 2714| ValueCategory = prvalue +# 2715| getStmt(899): [DoStmt] do (...) ... +# 2717| getCondition(): [Literal] 0 +# 2717| Type = [IntType] int +# 2717| Value = [Literal] 0 +# 2717| ValueCategory = prvalue +# 2715| getStmt(): [BlockStmt] { ... } +# 2716| getStmt(0): [DeclStmt] declaration +# 2716| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x899 +# 2716| Type = [Struct] String +# 2716| getVariable().getInitializer(): [Initializer] initializer for x899 +# 2716| getExpr(): [ConstructorCall] call to String +# 2716| Type = [VoidType] void +# 2716| ValueCategory = prvalue +# 2717| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2717| Type = [VoidType] void +# 2717| ValueCategory = prvalue +# 2717| getQualifier(): [VariableAccess] x899 +# 2717| Type = [Struct] String +# 2717| ValueCategory = lvalue +# 2717| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2717| Conversion = [BoolConversion] conversion to bool +# 2717| Type = [BoolType] bool +# 2717| Value = [CStyleCast] 0 +# 2717| ValueCategory = prvalue +# 2718| getStmt(900): [DoStmt] do (...) ... +# 2720| getCondition(): [Literal] 0 +# 2720| Type = [IntType] int +# 2720| Value = [Literal] 0 +# 2720| ValueCategory = prvalue +# 2718| getStmt(): [BlockStmt] { ... } +# 2719| getStmt(0): [DeclStmt] declaration +# 2719| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x900 +# 2719| Type = [Struct] String +# 2719| getVariable().getInitializer(): [Initializer] initializer for x900 +# 2719| getExpr(): [ConstructorCall] call to String +# 2719| Type = [VoidType] void +# 2719| ValueCategory = prvalue +# 2720| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2720| Type = [VoidType] void +# 2720| ValueCategory = prvalue +# 2720| getQualifier(): [VariableAccess] x900 +# 2720| Type = [Struct] String +# 2720| ValueCategory = lvalue +# 2720| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2720| Conversion = [BoolConversion] conversion to bool +# 2720| Type = [BoolType] bool +# 2720| Value = [CStyleCast] 0 +# 2720| ValueCategory = prvalue +# 2721| getStmt(901): [DoStmt] do (...) ... +# 2723| getCondition(): [Literal] 0 +# 2723| Type = [IntType] int +# 2723| Value = [Literal] 0 +# 2723| ValueCategory = prvalue +# 2721| getStmt(): [BlockStmt] { ... } +# 2722| getStmt(0): [DeclStmt] declaration +# 2722| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x901 +# 2722| Type = [Struct] String +# 2722| getVariable().getInitializer(): [Initializer] initializer for x901 +# 2722| getExpr(): [ConstructorCall] call to String +# 2722| Type = [VoidType] void +# 2722| ValueCategory = prvalue +# 2723| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2723| Type = [VoidType] void +# 2723| ValueCategory = prvalue +# 2723| getQualifier(): [VariableAccess] x901 +# 2723| Type = [Struct] String +# 2723| ValueCategory = lvalue +# 2723| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2723| Conversion = [BoolConversion] conversion to bool +# 2723| Type = [BoolType] bool +# 2723| Value = [CStyleCast] 0 +# 2723| ValueCategory = prvalue +# 2724| getStmt(902): [DoStmt] do (...) ... +# 2726| getCondition(): [Literal] 0 +# 2726| Type = [IntType] int +# 2726| Value = [Literal] 0 +# 2726| ValueCategory = prvalue +# 2724| getStmt(): [BlockStmt] { ... } +# 2725| getStmt(0): [DeclStmt] declaration +# 2725| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x902 +# 2725| Type = [Struct] String +# 2725| getVariable().getInitializer(): [Initializer] initializer for x902 +# 2725| getExpr(): [ConstructorCall] call to String +# 2725| Type = [VoidType] void +# 2725| ValueCategory = prvalue +# 2726| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2726| Type = [VoidType] void +# 2726| ValueCategory = prvalue +# 2726| getQualifier(): [VariableAccess] x902 +# 2726| Type = [Struct] String +# 2726| ValueCategory = lvalue +# 2726| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2726| Conversion = [BoolConversion] conversion to bool +# 2726| Type = [BoolType] bool +# 2726| Value = [CStyleCast] 0 +# 2726| ValueCategory = prvalue +# 2727| getStmt(903): [DoStmt] do (...) ... +# 2729| getCondition(): [Literal] 0 +# 2729| Type = [IntType] int +# 2729| Value = [Literal] 0 +# 2729| ValueCategory = prvalue +# 2727| getStmt(): [BlockStmt] { ... } +# 2728| getStmt(0): [DeclStmt] declaration +# 2728| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x903 +# 2728| Type = [Struct] String +# 2728| getVariable().getInitializer(): [Initializer] initializer for x903 +# 2728| getExpr(): [ConstructorCall] call to String +# 2728| Type = [VoidType] void +# 2728| ValueCategory = prvalue +# 2729| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2729| Type = [VoidType] void +# 2729| ValueCategory = prvalue +# 2729| getQualifier(): [VariableAccess] x903 +# 2729| Type = [Struct] String +# 2729| ValueCategory = lvalue +# 2729| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2729| Conversion = [BoolConversion] conversion to bool +# 2729| Type = [BoolType] bool +# 2729| Value = [CStyleCast] 0 +# 2729| ValueCategory = prvalue +# 2730| getStmt(904): [DoStmt] do (...) ... +# 2732| getCondition(): [Literal] 0 +# 2732| Type = [IntType] int +# 2732| Value = [Literal] 0 +# 2732| ValueCategory = prvalue +# 2730| getStmt(): [BlockStmt] { ... } +# 2731| getStmt(0): [DeclStmt] declaration +# 2731| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x904 +# 2731| Type = [Struct] String +# 2731| getVariable().getInitializer(): [Initializer] initializer for x904 +# 2731| getExpr(): [ConstructorCall] call to String +# 2731| Type = [VoidType] void +# 2731| ValueCategory = prvalue +# 2732| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2732| Type = [VoidType] void +# 2732| ValueCategory = prvalue +# 2732| getQualifier(): [VariableAccess] x904 +# 2732| Type = [Struct] String +# 2732| ValueCategory = lvalue +# 2732| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2732| Conversion = [BoolConversion] conversion to bool +# 2732| Type = [BoolType] bool +# 2732| Value = [CStyleCast] 0 +# 2732| ValueCategory = prvalue +# 2733| getStmt(905): [DoStmt] do (...) ... +# 2735| getCondition(): [Literal] 0 +# 2735| Type = [IntType] int +# 2735| Value = [Literal] 0 +# 2735| ValueCategory = prvalue +# 2733| getStmt(): [BlockStmt] { ... } +# 2734| getStmt(0): [DeclStmt] declaration +# 2734| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x905 +# 2734| Type = [Struct] String +# 2734| getVariable().getInitializer(): [Initializer] initializer for x905 +# 2734| getExpr(): [ConstructorCall] call to String +# 2734| Type = [VoidType] void +# 2734| ValueCategory = prvalue +# 2735| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2735| Type = [VoidType] void +# 2735| ValueCategory = prvalue +# 2735| getQualifier(): [VariableAccess] x905 +# 2735| Type = [Struct] String +# 2735| ValueCategory = lvalue +# 2735| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2735| Conversion = [BoolConversion] conversion to bool +# 2735| Type = [BoolType] bool +# 2735| Value = [CStyleCast] 0 +# 2735| ValueCategory = prvalue +# 2736| getStmt(906): [DoStmt] do (...) ... +# 2738| getCondition(): [Literal] 0 +# 2738| Type = [IntType] int +# 2738| Value = [Literal] 0 +# 2738| ValueCategory = prvalue +# 2736| getStmt(): [BlockStmt] { ... } +# 2737| getStmt(0): [DeclStmt] declaration +# 2737| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x906 +# 2737| Type = [Struct] String +# 2737| getVariable().getInitializer(): [Initializer] initializer for x906 +# 2737| getExpr(): [ConstructorCall] call to String +# 2737| Type = [VoidType] void +# 2737| ValueCategory = prvalue +# 2738| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2738| Type = [VoidType] void +# 2738| ValueCategory = prvalue +# 2738| getQualifier(): [VariableAccess] x906 +# 2738| Type = [Struct] String +# 2738| ValueCategory = lvalue +# 2738| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2738| Conversion = [BoolConversion] conversion to bool +# 2738| Type = [BoolType] bool +# 2738| Value = [CStyleCast] 0 +# 2738| ValueCategory = prvalue +# 2739| getStmt(907): [DoStmt] do (...) ... +# 2741| getCondition(): [Literal] 0 +# 2741| Type = [IntType] int +# 2741| Value = [Literal] 0 +# 2741| ValueCategory = prvalue +# 2739| getStmt(): [BlockStmt] { ... } +# 2740| getStmt(0): [DeclStmt] declaration +# 2740| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x907 +# 2740| Type = [Struct] String +# 2740| getVariable().getInitializer(): [Initializer] initializer for x907 +# 2740| getExpr(): [ConstructorCall] call to String +# 2740| Type = [VoidType] void +# 2740| ValueCategory = prvalue +# 2741| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2741| Type = [VoidType] void +# 2741| ValueCategory = prvalue +# 2741| getQualifier(): [VariableAccess] x907 +# 2741| Type = [Struct] String +# 2741| ValueCategory = lvalue +# 2741| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2741| Conversion = [BoolConversion] conversion to bool +# 2741| Type = [BoolType] bool +# 2741| Value = [CStyleCast] 0 +# 2741| ValueCategory = prvalue +# 2742| getStmt(908): [DoStmt] do (...) ... +# 2744| getCondition(): [Literal] 0 +# 2744| Type = [IntType] int +# 2744| Value = [Literal] 0 +# 2744| ValueCategory = prvalue +# 2742| getStmt(): [BlockStmt] { ... } +# 2743| getStmt(0): [DeclStmt] declaration +# 2743| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x908 +# 2743| Type = [Struct] String +# 2743| getVariable().getInitializer(): [Initializer] initializer for x908 +# 2743| getExpr(): [ConstructorCall] call to String +# 2743| Type = [VoidType] void +# 2743| ValueCategory = prvalue +# 2744| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2744| Type = [VoidType] void +# 2744| ValueCategory = prvalue +# 2744| getQualifier(): [VariableAccess] x908 +# 2744| Type = [Struct] String +# 2744| ValueCategory = lvalue +# 2744| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2744| Conversion = [BoolConversion] conversion to bool +# 2744| Type = [BoolType] bool +# 2744| Value = [CStyleCast] 0 +# 2744| ValueCategory = prvalue +# 2745| getStmt(909): [DoStmt] do (...) ... +# 2747| getCondition(): [Literal] 0 +# 2747| Type = [IntType] int +# 2747| Value = [Literal] 0 +# 2747| ValueCategory = prvalue +# 2745| getStmt(): [BlockStmt] { ... } +# 2746| getStmt(0): [DeclStmt] declaration +# 2746| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x909 +# 2746| Type = [Struct] String +# 2746| getVariable().getInitializer(): [Initializer] initializer for x909 +# 2746| getExpr(): [ConstructorCall] call to String +# 2746| Type = [VoidType] void +# 2746| ValueCategory = prvalue +# 2747| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2747| Type = [VoidType] void +# 2747| ValueCategory = prvalue +# 2747| getQualifier(): [VariableAccess] x909 +# 2747| Type = [Struct] String +# 2747| ValueCategory = lvalue +# 2747| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2747| Conversion = [BoolConversion] conversion to bool +# 2747| Type = [BoolType] bool +# 2747| Value = [CStyleCast] 0 +# 2747| ValueCategory = prvalue +# 2748| getStmt(910): [DoStmt] do (...) ... +# 2750| getCondition(): [Literal] 0 +# 2750| Type = [IntType] int +# 2750| Value = [Literal] 0 +# 2750| ValueCategory = prvalue +# 2748| getStmt(): [BlockStmt] { ... } +# 2749| getStmt(0): [DeclStmt] declaration +# 2749| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x910 +# 2749| Type = [Struct] String +# 2749| getVariable().getInitializer(): [Initializer] initializer for x910 +# 2749| getExpr(): [ConstructorCall] call to String +# 2749| Type = [VoidType] void +# 2749| ValueCategory = prvalue +# 2750| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2750| Type = [VoidType] void +# 2750| ValueCategory = prvalue +# 2750| getQualifier(): [VariableAccess] x910 +# 2750| Type = [Struct] String +# 2750| ValueCategory = lvalue +# 2750| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2750| Conversion = [BoolConversion] conversion to bool +# 2750| Type = [BoolType] bool +# 2750| Value = [CStyleCast] 0 +# 2750| ValueCategory = prvalue +# 2751| getStmt(911): [DoStmt] do (...) ... +# 2753| getCondition(): [Literal] 0 +# 2753| Type = [IntType] int +# 2753| Value = [Literal] 0 +# 2753| ValueCategory = prvalue +# 2751| getStmt(): [BlockStmt] { ... } +# 2752| getStmt(0): [DeclStmt] declaration +# 2752| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x911 +# 2752| Type = [Struct] String +# 2752| getVariable().getInitializer(): [Initializer] initializer for x911 +# 2752| getExpr(): [ConstructorCall] call to String +# 2752| Type = [VoidType] void +# 2752| ValueCategory = prvalue +# 2753| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2753| Type = [VoidType] void +# 2753| ValueCategory = prvalue +# 2753| getQualifier(): [VariableAccess] x911 +# 2753| Type = [Struct] String +# 2753| ValueCategory = lvalue +# 2753| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2753| Conversion = [BoolConversion] conversion to bool +# 2753| Type = [BoolType] bool +# 2753| Value = [CStyleCast] 0 +# 2753| ValueCategory = prvalue +# 2754| getStmt(912): [DoStmt] do (...) ... +# 2756| getCondition(): [Literal] 0 +# 2756| Type = [IntType] int +# 2756| Value = [Literal] 0 +# 2756| ValueCategory = prvalue +# 2754| getStmt(): [BlockStmt] { ... } +# 2755| getStmt(0): [DeclStmt] declaration +# 2755| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x912 +# 2755| Type = [Struct] String +# 2755| getVariable().getInitializer(): [Initializer] initializer for x912 +# 2755| getExpr(): [ConstructorCall] call to String +# 2755| Type = [VoidType] void +# 2755| ValueCategory = prvalue +# 2756| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2756| Type = [VoidType] void +# 2756| ValueCategory = prvalue +# 2756| getQualifier(): [VariableAccess] x912 +# 2756| Type = [Struct] String +# 2756| ValueCategory = lvalue +# 2756| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2756| Conversion = [BoolConversion] conversion to bool +# 2756| Type = [BoolType] bool +# 2756| Value = [CStyleCast] 0 +# 2756| ValueCategory = prvalue +# 2757| getStmt(913): [DoStmt] do (...) ... +# 2759| getCondition(): [Literal] 0 +# 2759| Type = [IntType] int +# 2759| Value = [Literal] 0 +# 2759| ValueCategory = prvalue +# 2757| getStmt(): [BlockStmt] { ... } +# 2758| getStmt(0): [DeclStmt] declaration +# 2758| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x913 +# 2758| Type = [Struct] String +# 2758| getVariable().getInitializer(): [Initializer] initializer for x913 +# 2758| getExpr(): [ConstructorCall] call to String +# 2758| Type = [VoidType] void +# 2758| ValueCategory = prvalue +# 2759| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2759| Type = [VoidType] void +# 2759| ValueCategory = prvalue +# 2759| getQualifier(): [VariableAccess] x913 +# 2759| Type = [Struct] String +# 2759| ValueCategory = lvalue +# 2759| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2759| Conversion = [BoolConversion] conversion to bool +# 2759| Type = [BoolType] bool +# 2759| Value = [CStyleCast] 0 +# 2759| ValueCategory = prvalue +# 2760| getStmt(914): [DoStmt] do (...) ... +# 2762| getCondition(): [Literal] 0 +# 2762| Type = [IntType] int +# 2762| Value = [Literal] 0 +# 2762| ValueCategory = prvalue +# 2760| getStmt(): [BlockStmt] { ... } +# 2761| getStmt(0): [DeclStmt] declaration +# 2761| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x914 +# 2761| Type = [Struct] String +# 2761| getVariable().getInitializer(): [Initializer] initializer for x914 +# 2761| getExpr(): [ConstructorCall] call to String +# 2761| Type = [VoidType] void +# 2761| ValueCategory = prvalue +# 2762| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2762| Type = [VoidType] void +# 2762| ValueCategory = prvalue +# 2762| getQualifier(): [VariableAccess] x914 +# 2762| Type = [Struct] String +# 2762| ValueCategory = lvalue +# 2762| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2762| Conversion = [BoolConversion] conversion to bool +# 2762| Type = [BoolType] bool +# 2762| Value = [CStyleCast] 0 +# 2762| ValueCategory = prvalue +# 2763| getStmt(915): [DoStmt] do (...) ... +# 2765| getCondition(): [Literal] 0 +# 2765| Type = [IntType] int +# 2765| Value = [Literal] 0 +# 2765| ValueCategory = prvalue +# 2763| getStmt(): [BlockStmt] { ... } +# 2764| getStmt(0): [DeclStmt] declaration +# 2764| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x915 +# 2764| Type = [Struct] String +# 2764| getVariable().getInitializer(): [Initializer] initializer for x915 +# 2764| getExpr(): [ConstructorCall] call to String +# 2764| Type = [VoidType] void +# 2764| ValueCategory = prvalue +# 2765| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2765| Type = [VoidType] void +# 2765| ValueCategory = prvalue +# 2765| getQualifier(): [VariableAccess] x915 +# 2765| Type = [Struct] String +# 2765| ValueCategory = lvalue +# 2765| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2765| Conversion = [BoolConversion] conversion to bool +# 2765| Type = [BoolType] bool +# 2765| Value = [CStyleCast] 0 +# 2765| ValueCategory = prvalue +# 2766| getStmt(916): [DoStmt] do (...) ... +# 2768| getCondition(): [Literal] 0 +# 2768| Type = [IntType] int +# 2768| Value = [Literal] 0 +# 2768| ValueCategory = prvalue +# 2766| getStmt(): [BlockStmt] { ... } +# 2767| getStmt(0): [DeclStmt] declaration +# 2767| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x916 +# 2767| Type = [Struct] String +# 2767| getVariable().getInitializer(): [Initializer] initializer for x916 +# 2767| getExpr(): [ConstructorCall] call to String +# 2767| Type = [VoidType] void +# 2767| ValueCategory = prvalue +# 2768| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2768| Type = [VoidType] void +# 2768| ValueCategory = prvalue +# 2768| getQualifier(): [VariableAccess] x916 +# 2768| Type = [Struct] String +# 2768| ValueCategory = lvalue +# 2768| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2768| Conversion = [BoolConversion] conversion to bool +# 2768| Type = [BoolType] bool +# 2768| Value = [CStyleCast] 0 +# 2768| ValueCategory = prvalue +# 2769| getStmt(917): [DoStmt] do (...) ... +# 2771| getCondition(): [Literal] 0 +# 2771| Type = [IntType] int +# 2771| Value = [Literal] 0 +# 2771| ValueCategory = prvalue +# 2769| getStmt(): [BlockStmt] { ... } +# 2770| getStmt(0): [DeclStmt] declaration +# 2770| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x917 +# 2770| Type = [Struct] String +# 2770| getVariable().getInitializer(): [Initializer] initializer for x917 +# 2770| getExpr(): [ConstructorCall] call to String +# 2770| Type = [VoidType] void +# 2770| ValueCategory = prvalue +# 2771| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2771| Type = [VoidType] void +# 2771| ValueCategory = prvalue +# 2771| getQualifier(): [VariableAccess] x917 +# 2771| Type = [Struct] String +# 2771| ValueCategory = lvalue +# 2771| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2771| Conversion = [BoolConversion] conversion to bool +# 2771| Type = [BoolType] bool +# 2771| Value = [CStyleCast] 0 +# 2771| ValueCategory = prvalue +# 2772| getStmt(918): [DoStmt] do (...) ... +# 2774| getCondition(): [Literal] 0 +# 2774| Type = [IntType] int +# 2774| Value = [Literal] 0 +# 2774| ValueCategory = prvalue +# 2772| getStmt(): [BlockStmt] { ... } +# 2773| getStmt(0): [DeclStmt] declaration +# 2773| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x918 +# 2773| Type = [Struct] String +# 2773| getVariable().getInitializer(): [Initializer] initializer for x918 +# 2773| getExpr(): [ConstructorCall] call to String +# 2773| Type = [VoidType] void +# 2773| ValueCategory = prvalue +# 2774| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2774| Type = [VoidType] void +# 2774| ValueCategory = prvalue +# 2774| getQualifier(): [VariableAccess] x918 +# 2774| Type = [Struct] String +# 2774| ValueCategory = lvalue +# 2774| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2774| Conversion = [BoolConversion] conversion to bool +# 2774| Type = [BoolType] bool +# 2774| Value = [CStyleCast] 0 +# 2774| ValueCategory = prvalue +# 2775| getStmt(919): [DoStmt] do (...) ... +# 2777| getCondition(): [Literal] 0 +# 2777| Type = [IntType] int +# 2777| Value = [Literal] 0 +# 2777| ValueCategory = prvalue +# 2775| getStmt(): [BlockStmt] { ... } +# 2776| getStmt(0): [DeclStmt] declaration +# 2776| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x919 +# 2776| Type = [Struct] String +# 2776| getVariable().getInitializer(): [Initializer] initializer for x919 +# 2776| getExpr(): [ConstructorCall] call to String +# 2776| Type = [VoidType] void +# 2776| ValueCategory = prvalue +# 2777| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2777| Type = [VoidType] void +# 2777| ValueCategory = prvalue +# 2777| getQualifier(): [VariableAccess] x919 +# 2777| Type = [Struct] String +# 2777| ValueCategory = lvalue +# 2777| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2777| Conversion = [BoolConversion] conversion to bool +# 2777| Type = [BoolType] bool +# 2777| Value = [CStyleCast] 0 +# 2777| ValueCategory = prvalue +# 2778| getStmt(920): [DoStmt] do (...) ... +# 2780| getCondition(): [Literal] 0 +# 2780| Type = [IntType] int +# 2780| Value = [Literal] 0 +# 2780| ValueCategory = prvalue +# 2778| getStmt(): [BlockStmt] { ... } +# 2779| getStmt(0): [DeclStmt] declaration +# 2779| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x920 +# 2779| Type = [Struct] String +# 2779| getVariable().getInitializer(): [Initializer] initializer for x920 +# 2779| getExpr(): [ConstructorCall] call to String +# 2779| Type = [VoidType] void +# 2779| ValueCategory = prvalue +# 2780| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2780| Type = [VoidType] void +# 2780| ValueCategory = prvalue +# 2780| getQualifier(): [VariableAccess] x920 +# 2780| Type = [Struct] String +# 2780| ValueCategory = lvalue +# 2780| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2780| Conversion = [BoolConversion] conversion to bool +# 2780| Type = [BoolType] bool +# 2780| Value = [CStyleCast] 0 +# 2780| ValueCategory = prvalue +# 2781| getStmt(921): [DoStmt] do (...) ... +# 2783| getCondition(): [Literal] 0 +# 2783| Type = [IntType] int +# 2783| Value = [Literal] 0 +# 2783| ValueCategory = prvalue +# 2781| getStmt(): [BlockStmt] { ... } +# 2782| getStmt(0): [DeclStmt] declaration +# 2782| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x921 +# 2782| Type = [Struct] String +# 2782| getVariable().getInitializer(): [Initializer] initializer for x921 +# 2782| getExpr(): [ConstructorCall] call to String +# 2782| Type = [VoidType] void +# 2782| ValueCategory = prvalue +# 2783| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2783| Type = [VoidType] void +# 2783| ValueCategory = prvalue +# 2783| getQualifier(): [VariableAccess] x921 +# 2783| Type = [Struct] String +# 2783| ValueCategory = lvalue +# 2783| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2783| Conversion = [BoolConversion] conversion to bool +# 2783| Type = [BoolType] bool +# 2783| Value = [CStyleCast] 0 +# 2783| ValueCategory = prvalue +# 2784| getStmt(922): [DoStmt] do (...) ... +# 2786| getCondition(): [Literal] 0 +# 2786| Type = [IntType] int +# 2786| Value = [Literal] 0 +# 2786| ValueCategory = prvalue +# 2784| getStmt(): [BlockStmt] { ... } +# 2785| getStmt(0): [DeclStmt] declaration +# 2785| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x922 +# 2785| Type = [Struct] String +# 2785| getVariable().getInitializer(): [Initializer] initializer for x922 +# 2785| getExpr(): [ConstructorCall] call to String +# 2785| Type = [VoidType] void +# 2785| ValueCategory = prvalue +# 2786| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2786| Type = [VoidType] void +# 2786| ValueCategory = prvalue +# 2786| getQualifier(): [VariableAccess] x922 +# 2786| Type = [Struct] String +# 2786| ValueCategory = lvalue +# 2786| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2786| Conversion = [BoolConversion] conversion to bool +# 2786| Type = [BoolType] bool +# 2786| Value = [CStyleCast] 0 +# 2786| ValueCategory = prvalue +# 2787| getStmt(923): [DoStmt] do (...) ... +# 2789| getCondition(): [Literal] 0 +# 2789| Type = [IntType] int +# 2789| Value = [Literal] 0 +# 2789| ValueCategory = prvalue +# 2787| getStmt(): [BlockStmt] { ... } +# 2788| getStmt(0): [DeclStmt] declaration +# 2788| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x923 +# 2788| Type = [Struct] String +# 2788| getVariable().getInitializer(): [Initializer] initializer for x923 +# 2788| getExpr(): [ConstructorCall] call to String +# 2788| Type = [VoidType] void +# 2788| ValueCategory = prvalue +# 2789| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2789| Type = [VoidType] void +# 2789| ValueCategory = prvalue +# 2789| getQualifier(): [VariableAccess] x923 +# 2789| Type = [Struct] String +# 2789| ValueCategory = lvalue +# 2789| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2789| Conversion = [BoolConversion] conversion to bool +# 2789| Type = [BoolType] bool +# 2789| Value = [CStyleCast] 0 +# 2789| ValueCategory = prvalue +# 2790| getStmt(924): [DoStmt] do (...) ... +# 2792| getCondition(): [Literal] 0 +# 2792| Type = [IntType] int +# 2792| Value = [Literal] 0 +# 2792| ValueCategory = prvalue +# 2790| getStmt(): [BlockStmt] { ... } +# 2791| getStmt(0): [DeclStmt] declaration +# 2791| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x924 +# 2791| Type = [Struct] String +# 2791| getVariable().getInitializer(): [Initializer] initializer for x924 +# 2791| getExpr(): [ConstructorCall] call to String +# 2791| Type = [VoidType] void +# 2791| ValueCategory = prvalue +# 2792| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2792| Type = [VoidType] void +# 2792| ValueCategory = prvalue +# 2792| getQualifier(): [VariableAccess] x924 +# 2792| Type = [Struct] String +# 2792| ValueCategory = lvalue +# 2792| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2792| Conversion = [BoolConversion] conversion to bool +# 2792| Type = [BoolType] bool +# 2792| Value = [CStyleCast] 0 +# 2792| ValueCategory = prvalue +# 2793| getStmt(925): [DoStmt] do (...) ... +# 2795| getCondition(): [Literal] 0 +# 2795| Type = [IntType] int +# 2795| Value = [Literal] 0 +# 2795| ValueCategory = prvalue +# 2793| getStmt(): [BlockStmt] { ... } +# 2794| getStmt(0): [DeclStmt] declaration +# 2794| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x925 +# 2794| Type = [Struct] String +# 2794| getVariable().getInitializer(): [Initializer] initializer for x925 +# 2794| getExpr(): [ConstructorCall] call to String +# 2794| Type = [VoidType] void +# 2794| ValueCategory = prvalue +# 2795| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2795| Type = [VoidType] void +# 2795| ValueCategory = prvalue +# 2795| getQualifier(): [VariableAccess] x925 +# 2795| Type = [Struct] String +# 2795| ValueCategory = lvalue +# 2795| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2795| Conversion = [BoolConversion] conversion to bool +# 2795| Type = [BoolType] bool +# 2795| Value = [CStyleCast] 0 +# 2795| ValueCategory = prvalue +# 2796| getStmt(926): [DoStmt] do (...) ... +# 2798| getCondition(): [Literal] 0 +# 2798| Type = [IntType] int +# 2798| Value = [Literal] 0 +# 2798| ValueCategory = prvalue +# 2796| getStmt(): [BlockStmt] { ... } +# 2797| getStmt(0): [DeclStmt] declaration +# 2797| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x926 +# 2797| Type = [Struct] String +# 2797| getVariable().getInitializer(): [Initializer] initializer for x926 +# 2797| getExpr(): [ConstructorCall] call to String +# 2797| Type = [VoidType] void +# 2797| ValueCategory = prvalue +# 2798| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2798| Type = [VoidType] void +# 2798| ValueCategory = prvalue +# 2798| getQualifier(): [VariableAccess] x926 +# 2798| Type = [Struct] String +# 2798| ValueCategory = lvalue +# 2798| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2798| Conversion = [BoolConversion] conversion to bool +# 2798| Type = [BoolType] bool +# 2798| Value = [CStyleCast] 0 +# 2798| ValueCategory = prvalue +# 2799| getStmt(927): [DoStmt] do (...) ... +# 2801| getCondition(): [Literal] 0 +# 2801| Type = [IntType] int +# 2801| Value = [Literal] 0 +# 2801| ValueCategory = prvalue +# 2799| getStmt(): [BlockStmt] { ... } +# 2800| getStmt(0): [DeclStmt] declaration +# 2800| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x927 +# 2800| Type = [Struct] String +# 2800| getVariable().getInitializer(): [Initializer] initializer for x927 +# 2800| getExpr(): [ConstructorCall] call to String +# 2800| Type = [VoidType] void +# 2800| ValueCategory = prvalue +# 2801| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2801| Type = [VoidType] void +# 2801| ValueCategory = prvalue +# 2801| getQualifier(): [VariableAccess] x927 +# 2801| Type = [Struct] String +# 2801| ValueCategory = lvalue +# 2801| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2801| Conversion = [BoolConversion] conversion to bool +# 2801| Type = [BoolType] bool +# 2801| Value = [CStyleCast] 0 +# 2801| ValueCategory = prvalue +# 2802| getStmt(928): [DoStmt] do (...) ... +# 2804| getCondition(): [Literal] 0 +# 2804| Type = [IntType] int +# 2804| Value = [Literal] 0 +# 2804| ValueCategory = prvalue +# 2802| getStmt(): [BlockStmt] { ... } +# 2803| getStmt(0): [DeclStmt] declaration +# 2803| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x928 +# 2803| Type = [Struct] String +# 2803| getVariable().getInitializer(): [Initializer] initializer for x928 +# 2803| getExpr(): [ConstructorCall] call to String +# 2803| Type = [VoidType] void +# 2803| ValueCategory = prvalue +# 2804| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2804| Type = [VoidType] void +# 2804| ValueCategory = prvalue +# 2804| getQualifier(): [VariableAccess] x928 +# 2804| Type = [Struct] String +# 2804| ValueCategory = lvalue +# 2804| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2804| Conversion = [BoolConversion] conversion to bool +# 2804| Type = [BoolType] bool +# 2804| Value = [CStyleCast] 0 +# 2804| ValueCategory = prvalue +# 2805| getStmt(929): [DoStmt] do (...) ... +# 2807| getCondition(): [Literal] 0 +# 2807| Type = [IntType] int +# 2807| Value = [Literal] 0 +# 2807| ValueCategory = prvalue +# 2805| getStmt(): [BlockStmt] { ... } +# 2806| getStmt(0): [DeclStmt] declaration +# 2806| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x929 +# 2806| Type = [Struct] String +# 2806| getVariable().getInitializer(): [Initializer] initializer for x929 +# 2806| getExpr(): [ConstructorCall] call to String +# 2806| Type = [VoidType] void +# 2806| ValueCategory = prvalue +# 2807| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2807| Type = [VoidType] void +# 2807| ValueCategory = prvalue +# 2807| getQualifier(): [VariableAccess] x929 +# 2807| Type = [Struct] String +# 2807| ValueCategory = lvalue +# 2807| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2807| Conversion = [BoolConversion] conversion to bool +# 2807| Type = [BoolType] bool +# 2807| Value = [CStyleCast] 0 +# 2807| ValueCategory = prvalue +# 2808| getStmt(930): [DoStmt] do (...) ... +# 2810| getCondition(): [Literal] 0 +# 2810| Type = [IntType] int +# 2810| Value = [Literal] 0 +# 2810| ValueCategory = prvalue +# 2808| getStmt(): [BlockStmt] { ... } +# 2809| getStmt(0): [DeclStmt] declaration +# 2809| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x930 +# 2809| Type = [Struct] String +# 2809| getVariable().getInitializer(): [Initializer] initializer for x930 +# 2809| getExpr(): [ConstructorCall] call to String +# 2809| Type = [VoidType] void +# 2809| ValueCategory = prvalue +# 2810| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2810| Type = [VoidType] void +# 2810| ValueCategory = prvalue +# 2810| getQualifier(): [VariableAccess] x930 +# 2810| Type = [Struct] String +# 2810| ValueCategory = lvalue +# 2810| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2810| Conversion = [BoolConversion] conversion to bool +# 2810| Type = [BoolType] bool +# 2810| Value = [CStyleCast] 0 +# 2810| ValueCategory = prvalue +# 2811| getStmt(931): [DoStmt] do (...) ... +# 2813| getCondition(): [Literal] 0 +# 2813| Type = [IntType] int +# 2813| Value = [Literal] 0 +# 2813| ValueCategory = prvalue +# 2811| getStmt(): [BlockStmt] { ... } +# 2812| getStmt(0): [DeclStmt] declaration +# 2812| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x931 +# 2812| Type = [Struct] String +# 2812| getVariable().getInitializer(): [Initializer] initializer for x931 +# 2812| getExpr(): [ConstructorCall] call to String +# 2812| Type = [VoidType] void +# 2812| ValueCategory = prvalue +# 2813| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2813| Type = [VoidType] void +# 2813| ValueCategory = prvalue +# 2813| getQualifier(): [VariableAccess] x931 +# 2813| Type = [Struct] String +# 2813| ValueCategory = lvalue +# 2813| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2813| Conversion = [BoolConversion] conversion to bool +# 2813| Type = [BoolType] bool +# 2813| Value = [CStyleCast] 0 +# 2813| ValueCategory = prvalue +# 2814| getStmt(932): [DoStmt] do (...) ... +# 2816| getCondition(): [Literal] 0 +# 2816| Type = [IntType] int +# 2816| Value = [Literal] 0 +# 2816| ValueCategory = prvalue +# 2814| getStmt(): [BlockStmt] { ... } +# 2815| getStmt(0): [DeclStmt] declaration +# 2815| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x932 +# 2815| Type = [Struct] String +# 2815| getVariable().getInitializer(): [Initializer] initializer for x932 +# 2815| getExpr(): [ConstructorCall] call to String +# 2815| Type = [VoidType] void +# 2815| ValueCategory = prvalue +# 2816| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2816| Type = [VoidType] void +# 2816| ValueCategory = prvalue +# 2816| getQualifier(): [VariableAccess] x932 +# 2816| Type = [Struct] String +# 2816| ValueCategory = lvalue +# 2816| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2816| Conversion = [BoolConversion] conversion to bool +# 2816| Type = [BoolType] bool +# 2816| Value = [CStyleCast] 0 +# 2816| ValueCategory = prvalue +# 2817| getStmt(933): [DoStmt] do (...) ... +# 2819| getCondition(): [Literal] 0 +# 2819| Type = [IntType] int +# 2819| Value = [Literal] 0 +# 2819| ValueCategory = prvalue +# 2817| getStmt(): [BlockStmt] { ... } +# 2818| getStmt(0): [DeclStmt] declaration +# 2818| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x933 +# 2818| Type = [Struct] String +# 2818| getVariable().getInitializer(): [Initializer] initializer for x933 +# 2818| getExpr(): [ConstructorCall] call to String +# 2818| Type = [VoidType] void +# 2818| ValueCategory = prvalue +# 2819| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2819| Type = [VoidType] void +# 2819| ValueCategory = prvalue +# 2819| getQualifier(): [VariableAccess] x933 +# 2819| Type = [Struct] String +# 2819| ValueCategory = lvalue +# 2819| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2819| Conversion = [BoolConversion] conversion to bool +# 2819| Type = [BoolType] bool +# 2819| Value = [CStyleCast] 0 +# 2819| ValueCategory = prvalue +# 2820| getStmt(934): [DoStmt] do (...) ... +# 2822| getCondition(): [Literal] 0 +# 2822| Type = [IntType] int +# 2822| Value = [Literal] 0 +# 2822| ValueCategory = prvalue +# 2820| getStmt(): [BlockStmt] { ... } +# 2821| getStmt(0): [DeclStmt] declaration +# 2821| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x934 +# 2821| Type = [Struct] String +# 2821| getVariable().getInitializer(): [Initializer] initializer for x934 +# 2821| getExpr(): [ConstructorCall] call to String +# 2821| Type = [VoidType] void +# 2821| ValueCategory = prvalue +# 2822| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2822| Type = [VoidType] void +# 2822| ValueCategory = prvalue +# 2822| getQualifier(): [VariableAccess] x934 +# 2822| Type = [Struct] String +# 2822| ValueCategory = lvalue +# 2822| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2822| Conversion = [BoolConversion] conversion to bool +# 2822| Type = [BoolType] bool +# 2822| Value = [CStyleCast] 0 +# 2822| ValueCategory = prvalue +# 2823| getStmt(935): [DoStmt] do (...) ... +# 2825| getCondition(): [Literal] 0 +# 2825| Type = [IntType] int +# 2825| Value = [Literal] 0 +# 2825| ValueCategory = prvalue +# 2823| getStmt(): [BlockStmt] { ... } +# 2824| getStmt(0): [DeclStmt] declaration +# 2824| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x935 +# 2824| Type = [Struct] String +# 2824| getVariable().getInitializer(): [Initializer] initializer for x935 +# 2824| getExpr(): [ConstructorCall] call to String +# 2824| Type = [VoidType] void +# 2824| ValueCategory = prvalue +# 2825| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2825| Type = [VoidType] void +# 2825| ValueCategory = prvalue +# 2825| getQualifier(): [VariableAccess] x935 +# 2825| Type = [Struct] String +# 2825| ValueCategory = lvalue +# 2825| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2825| Conversion = [BoolConversion] conversion to bool +# 2825| Type = [BoolType] bool +# 2825| Value = [CStyleCast] 0 +# 2825| ValueCategory = prvalue +# 2826| getStmt(936): [DoStmt] do (...) ... +# 2828| getCondition(): [Literal] 0 +# 2828| Type = [IntType] int +# 2828| Value = [Literal] 0 +# 2828| ValueCategory = prvalue +# 2826| getStmt(): [BlockStmt] { ... } +# 2827| getStmt(0): [DeclStmt] declaration +# 2827| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x936 +# 2827| Type = [Struct] String +# 2827| getVariable().getInitializer(): [Initializer] initializer for x936 +# 2827| getExpr(): [ConstructorCall] call to String +# 2827| Type = [VoidType] void +# 2827| ValueCategory = prvalue +# 2828| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2828| Type = [VoidType] void +# 2828| ValueCategory = prvalue +# 2828| getQualifier(): [VariableAccess] x936 +# 2828| Type = [Struct] String +# 2828| ValueCategory = lvalue +# 2828| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2828| Conversion = [BoolConversion] conversion to bool +# 2828| Type = [BoolType] bool +# 2828| Value = [CStyleCast] 0 +# 2828| ValueCategory = prvalue +# 2829| getStmt(937): [DoStmt] do (...) ... +# 2831| getCondition(): [Literal] 0 +# 2831| Type = [IntType] int +# 2831| Value = [Literal] 0 +# 2831| ValueCategory = prvalue +# 2829| getStmt(): [BlockStmt] { ... } +# 2830| getStmt(0): [DeclStmt] declaration +# 2830| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x937 +# 2830| Type = [Struct] String +# 2830| getVariable().getInitializer(): [Initializer] initializer for x937 +# 2830| getExpr(): [ConstructorCall] call to String +# 2830| Type = [VoidType] void +# 2830| ValueCategory = prvalue +# 2831| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2831| Type = [VoidType] void +# 2831| ValueCategory = prvalue +# 2831| getQualifier(): [VariableAccess] x937 +# 2831| Type = [Struct] String +# 2831| ValueCategory = lvalue +# 2831| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2831| Conversion = [BoolConversion] conversion to bool +# 2831| Type = [BoolType] bool +# 2831| Value = [CStyleCast] 0 +# 2831| ValueCategory = prvalue +# 2832| getStmt(938): [DoStmt] do (...) ... +# 2834| getCondition(): [Literal] 0 +# 2834| Type = [IntType] int +# 2834| Value = [Literal] 0 +# 2834| ValueCategory = prvalue +# 2832| getStmt(): [BlockStmt] { ... } +# 2833| getStmt(0): [DeclStmt] declaration +# 2833| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x938 +# 2833| Type = [Struct] String +# 2833| getVariable().getInitializer(): [Initializer] initializer for x938 +# 2833| getExpr(): [ConstructorCall] call to String +# 2833| Type = [VoidType] void +# 2833| ValueCategory = prvalue +# 2834| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2834| Type = [VoidType] void +# 2834| ValueCategory = prvalue +# 2834| getQualifier(): [VariableAccess] x938 +# 2834| Type = [Struct] String +# 2834| ValueCategory = lvalue +# 2834| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2834| Conversion = [BoolConversion] conversion to bool +# 2834| Type = [BoolType] bool +# 2834| Value = [CStyleCast] 0 +# 2834| ValueCategory = prvalue +# 2835| getStmt(939): [DoStmt] do (...) ... +# 2837| getCondition(): [Literal] 0 +# 2837| Type = [IntType] int +# 2837| Value = [Literal] 0 +# 2837| ValueCategory = prvalue +# 2835| getStmt(): [BlockStmt] { ... } +# 2836| getStmt(0): [DeclStmt] declaration +# 2836| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x939 +# 2836| Type = [Struct] String +# 2836| getVariable().getInitializer(): [Initializer] initializer for x939 +# 2836| getExpr(): [ConstructorCall] call to String +# 2836| Type = [VoidType] void +# 2836| ValueCategory = prvalue +# 2837| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2837| Type = [VoidType] void +# 2837| ValueCategory = prvalue +# 2837| getQualifier(): [VariableAccess] x939 +# 2837| Type = [Struct] String +# 2837| ValueCategory = lvalue +# 2837| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2837| Conversion = [BoolConversion] conversion to bool +# 2837| Type = [BoolType] bool +# 2837| Value = [CStyleCast] 0 +# 2837| ValueCategory = prvalue +# 2838| getStmt(940): [DoStmt] do (...) ... +# 2840| getCondition(): [Literal] 0 +# 2840| Type = [IntType] int +# 2840| Value = [Literal] 0 +# 2840| ValueCategory = prvalue +# 2838| getStmt(): [BlockStmt] { ... } +# 2839| getStmt(0): [DeclStmt] declaration +# 2839| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x940 +# 2839| Type = [Struct] String +# 2839| getVariable().getInitializer(): [Initializer] initializer for x940 +# 2839| getExpr(): [ConstructorCall] call to String +# 2839| Type = [VoidType] void +# 2839| ValueCategory = prvalue +# 2840| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2840| Type = [VoidType] void +# 2840| ValueCategory = prvalue +# 2840| getQualifier(): [VariableAccess] x940 +# 2840| Type = [Struct] String +# 2840| ValueCategory = lvalue +# 2840| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2840| Conversion = [BoolConversion] conversion to bool +# 2840| Type = [BoolType] bool +# 2840| Value = [CStyleCast] 0 +# 2840| ValueCategory = prvalue +# 2841| getStmt(941): [DoStmt] do (...) ... +# 2843| getCondition(): [Literal] 0 +# 2843| Type = [IntType] int +# 2843| Value = [Literal] 0 +# 2843| ValueCategory = prvalue +# 2841| getStmt(): [BlockStmt] { ... } +# 2842| getStmt(0): [DeclStmt] declaration +# 2842| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x941 +# 2842| Type = [Struct] String +# 2842| getVariable().getInitializer(): [Initializer] initializer for x941 +# 2842| getExpr(): [ConstructorCall] call to String +# 2842| Type = [VoidType] void +# 2842| ValueCategory = prvalue +# 2843| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2843| Type = [VoidType] void +# 2843| ValueCategory = prvalue +# 2843| getQualifier(): [VariableAccess] x941 +# 2843| Type = [Struct] String +# 2843| ValueCategory = lvalue +# 2843| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2843| Conversion = [BoolConversion] conversion to bool +# 2843| Type = [BoolType] bool +# 2843| Value = [CStyleCast] 0 +# 2843| ValueCategory = prvalue +# 2844| getStmt(942): [DoStmt] do (...) ... +# 2846| getCondition(): [Literal] 0 +# 2846| Type = [IntType] int +# 2846| Value = [Literal] 0 +# 2846| ValueCategory = prvalue +# 2844| getStmt(): [BlockStmt] { ... } +# 2845| getStmt(0): [DeclStmt] declaration +# 2845| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x942 +# 2845| Type = [Struct] String +# 2845| getVariable().getInitializer(): [Initializer] initializer for x942 +# 2845| getExpr(): [ConstructorCall] call to String +# 2845| Type = [VoidType] void +# 2845| ValueCategory = prvalue +# 2846| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2846| Type = [VoidType] void +# 2846| ValueCategory = prvalue +# 2846| getQualifier(): [VariableAccess] x942 +# 2846| Type = [Struct] String +# 2846| ValueCategory = lvalue +# 2846| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2846| Conversion = [BoolConversion] conversion to bool +# 2846| Type = [BoolType] bool +# 2846| Value = [CStyleCast] 0 +# 2846| ValueCategory = prvalue +# 2847| getStmt(943): [DoStmt] do (...) ... +# 2849| getCondition(): [Literal] 0 +# 2849| Type = [IntType] int +# 2849| Value = [Literal] 0 +# 2849| ValueCategory = prvalue +# 2847| getStmt(): [BlockStmt] { ... } +# 2848| getStmt(0): [DeclStmt] declaration +# 2848| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x943 +# 2848| Type = [Struct] String +# 2848| getVariable().getInitializer(): [Initializer] initializer for x943 +# 2848| getExpr(): [ConstructorCall] call to String +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2849| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2849| getQualifier(): [VariableAccess] x943 +# 2849| Type = [Struct] String +# 2849| ValueCategory = lvalue +# 2849| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2849| Conversion = [BoolConversion] conversion to bool +# 2849| Type = [BoolType] bool +# 2849| Value = [CStyleCast] 0 +# 2849| ValueCategory = prvalue +# 2850| getStmt(944): [DoStmt] do (...) ... +# 2852| getCondition(): [Literal] 0 +# 2852| Type = [IntType] int +# 2852| Value = [Literal] 0 +# 2852| ValueCategory = prvalue +# 2850| getStmt(): [BlockStmt] { ... } +# 2851| getStmt(0): [DeclStmt] declaration +# 2851| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x944 +# 2851| Type = [Struct] String +# 2851| getVariable().getInitializer(): [Initializer] initializer for x944 +# 2851| getExpr(): [ConstructorCall] call to String +# 2851| Type = [VoidType] void +# 2851| ValueCategory = prvalue +# 2852| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2852| Type = [VoidType] void +# 2852| ValueCategory = prvalue +# 2852| getQualifier(): [VariableAccess] x944 +# 2852| Type = [Struct] String +# 2852| ValueCategory = lvalue +# 2852| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2852| Conversion = [BoolConversion] conversion to bool +# 2852| Type = [BoolType] bool +# 2852| Value = [CStyleCast] 0 +# 2852| ValueCategory = prvalue +# 2853| getStmt(945): [DoStmt] do (...) ... +# 2855| getCondition(): [Literal] 0 +# 2855| Type = [IntType] int +# 2855| Value = [Literal] 0 +# 2855| ValueCategory = prvalue +# 2853| getStmt(): [BlockStmt] { ... } +# 2854| getStmt(0): [DeclStmt] declaration +# 2854| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x945 +# 2854| Type = [Struct] String +# 2854| getVariable().getInitializer(): [Initializer] initializer for x945 +# 2854| getExpr(): [ConstructorCall] call to String +# 2854| Type = [VoidType] void +# 2854| ValueCategory = prvalue +# 2855| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2855| Type = [VoidType] void +# 2855| ValueCategory = prvalue +# 2855| getQualifier(): [VariableAccess] x945 +# 2855| Type = [Struct] String +# 2855| ValueCategory = lvalue +# 2855| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2855| Conversion = [BoolConversion] conversion to bool +# 2855| Type = [BoolType] bool +# 2855| Value = [CStyleCast] 0 +# 2855| ValueCategory = prvalue +# 2856| getStmt(946): [DoStmt] do (...) ... +# 2858| getCondition(): [Literal] 0 +# 2858| Type = [IntType] int +# 2858| Value = [Literal] 0 +# 2858| ValueCategory = prvalue +# 2856| getStmt(): [BlockStmt] { ... } +# 2857| getStmt(0): [DeclStmt] declaration +# 2857| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x946 +# 2857| Type = [Struct] String +# 2857| getVariable().getInitializer(): [Initializer] initializer for x946 +# 2857| getExpr(): [ConstructorCall] call to String +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2858| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2858| Type = [VoidType] void +# 2858| ValueCategory = prvalue +# 2858| getQualifier(): [VariableAccess] x946 +# 2858| Type = [Struct] String +# 2858| ValueCategory = lvalue +# 2858| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2858| Conversion = [BoolConversion] conversion to bool +# 2858| Type = [BoolType] bool +# 2858| Value = [CStyleCast] 0 +# 2858| ValueCategory = prvalue +# 2859| getStmt(947): [DoStmt] do (...) ... +# 2861| getCondition(): [Literal] 0 +# 2861| Type = [IntType] int +# 2861| Value = [Literal] 0 +# 2861| ValueCategory = prvalue +# 2859| getStmt(): [BlockStmt] { ... } +# 2860| getStmt(0): [DeclStmt] declaration +# 2860| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x947 +# 2860| Type = [Struct] String +# 2860| getVariable().getInitializer(): [Initializer] initializer for x947 +# 2860| getExpr(): [ConstructorCall] call to String +# 2860| Type = [VoidType] void +# 2860| ValueCategory = prvalue +# 2861| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2861| Type = [VoidType] void +# 2861| ValueCategory = prvalue +# 2861| getQualifier(): [VariableAccess] x947 +# 2861| Type = [Struct] String +# 2861| ValueCategory = lvalue +# 2861| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2861| Conversion = [BoolConversion] conversion to bool +# 2861| Type = [BoolType] bool +# 2861| Value = [CStyleCast] 0 +# 2861| ValueCategory = prvalue +# 2862| getStmt(948): [DoStmt] do (...) ... +# 2864| getCondition(): [Literal] 0 +# 2864| Type = [IntType] int +# 2864| Value = [Literal] 0 +# 2864| ValueCategory = prvalue +# 2862| getStmt(): [BlockStmt] { ... } +# 2863| getStmt(0): [DeclStmt] declaration +# 2863| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x948 +# 2863| Type = [Struct] String +# 2863| getVariable().getInitializer(): [Initializer] initializer for x948 +# 2863| getExpr(): [ConstructorCall] call to String +# 2863| Type = [VoidType] void +# 2863| ValueCategory = prvalue +# 2864| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2864| Type = [VoidType] void +# 2864| ValueCategory = prvalue +# 2864| getQualifier(): [VariableAccess] x948 +# 2864| Type = [Struct] String +# 2864| ValueCategory = lvalue +# 2864| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2864| Conversion = [BoolConversion] conversion to bool +# 2864| Type = [BoolType] bool +# 2864| Value = [CStyleCast] 0 +# 2864| ValueCategory = prvalue +# 2865| getStmt(949): [DoStmt] do (...) ... +# 2867| getCondition(): [Literal] 0 +# 2867| Type = [IntType] int +# 2867| Value = [Literal] 0 +# 2867| ValueCategory = prvalue +# 2865| getStmt(): [BlockStmt] { ... } +# 2866| getStmt(0): [DeclStmt] declaration +# 2866| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x949 +# 2866| Type = [Struct] String +# 2866| getVariable().getInitializer(): [Initializer] initializer for x949 +# 2866| getExpr(): [ConstructorCall] call to String +# 2866| Type = [VoidType] void +# 2866| ValueCategory = prvalue +# 2867| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2867| Type = [VoidType] void +# 2867| ValueCategory = prvalue +# 2867| getQualifier(): [VariableAccess] x949 +# 2867| Type = [Struct] String +# 2867| ValueCategory = lvalue +# 2867| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2867| Conversion = [BoolConversion] conversion to bool +# 2867| Type = [BoolType] bool +# 2867| Value = [CStyleCast] 0 +# 2867| ValueCategory = prvalue +# 2868| getStmt(950): [DoStmt] do (...) ... +# 2870| getCondition(): [Literal] 0 +# 2870| Type = [IntType] int +# 2870| Value = [Literal] 0 +# 2870| ValueCategory = prvalue +# 2868| getStmt(): [BlockStmt] { ... } +# 2869| getStmt(0): [DeclStmt] declaration +# 2869| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x950 +# 2869| Type = [Struct] String +# 2869| getVariable().getInitializer(): [Initializer] initializer for x950 +# 2869| getExpr(): [ConstructorCall] call to String +# 2869| Type = [VoidType] void +# 2869| ValueCategory = prvalue +# 2870| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2870| Type = [VoidType] void +# 2870| ValueCategory = prvalue +# 2870| getQualifier(): [VariableAccess] x950 +# 2870| Type = [Struct] String +# 2870| ValueCategory = lvalue +# 2870| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2870| Conversion = [BoolConversion] conversion to bool +# 2870| Type = [BoolType] bool +# 2870| Value = [CStyleCast] 0 +# 2870| ValueCategory = prvalue +# 2871| getStmt(951): [DoStmt] do (...) ... +# 2873| getCondition(): [Literal] 0 +# 2873| Type = [IntType] int +# 2873| Value = [Literal] 0 +# 2873| ValueCategory = prvalue +# 2871| getStmt(): [BlockStmt] { ... } +# 2872| getStmt(0): [DeclStmt] declaration +# 2872| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x951 +# 2872| Type = [Struct] String +# 2872| getVariable().getInitializer(): [Initializer] initializer for x951 +# 2872| getExpr(): [ConstructorCall] call to String +# 2872| Type = [VoidType] void +# 2872| ValueCategory = prvalue +# 2873| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2873| Type = [VoidType] void +# 2873| ValueCategory = prvalue +# 2873| getQualifier(): [VariableAccess] x951 +# 2873| Type = [Struct] String +# 2873| ValueCategory = lvalue +# 2873| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2873| Conversion = [BoolConversion] conversion to bool +# 2873| Type = [BoolType] bool +# 2873| Value = [CStyleCast] 0 +# 2873| ValueCategory = prvalue +# 2874| getStmt(952): [DoStmt] do (...) ... +# 2876| getCondition(): [Literal] 0 +# 2876| Type = [IntType] int +# 2876| Value = [Literal] 0 +# 2876| ValueCategory = prvalue +# 2874| getStmt(): [BlockStmt] { ... } +# 2875| getStmt(0): [DeclStmt] declaration +# 2875| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x952 +# 2875| Type = [Struct] String +# 2875| getVariable().getInitializer(): [Initializer] initializer for x952 +# 2875| getExpr(): [ConstructorCall] call to String +# 2875| Type = [VoidType] void +# 2875| ValueCategory = prvalue +# 2876| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2876| Type = [VoidType] void +# 2876| ValueCategory = prvalue +# 2876| getQualifier(): [VariableAccess] x952 +# 2876| Type = [Struct] String +# 2876| ValueCategory = lvalue +# 2876| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2876| Conversion = [BoolConversion] conversion to bool +# 2876| Type = [BoolType] bool +# 2876| Value = [CStyleCast] 0 +# 2876| ValueCategory = prvalue +# 2877| getStmt(953): [DoStmt] do (...) ... +# 2879| getCondition(): [Literal] 0 +# 2879| Type = [IntType] int +# 2879| Value = [Literal] 0 +# 2879| ValueCategory = prvalue +# 2877| getStmt(): [BlockStmt] { ... } +# 2878| getStmt(0): [DeclStmt] declaration +# 2878| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x953 +# 2878| Type = [Struct] String +# 2878| getVariable().getInitializer(): [Initializer] initializer for x953 +# 2878| getExpr(): [ConstructorCall] call to String +# 2878| Type = [VoidType] void +# 2878| ValueCategory = prvalue +# 2879| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2879| Type = [VoidType] void +# 2879| ValueCategory = prvalue +# 2879| getQualifier(): [VariableAccess] x953 +# 2879| Type = [Struct] String +# 2879| ValueCategory = lvalue +# 2879| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2879| Conversion = [BoolConversion] conversion to bool +# 2879| Type = [BoolType] bool +# 2879| Value = [CStyleCast] 0 +# 2879| ValueCategory = prvalue +# 2880| getStmt(954): [DoStmt] do (...) ... +# 2882| getCondition(): [Literal] 0 +# 2882| Type = [IntType] int +# 2882| Value = [Literal] 0 +# 2882| ValueCategory = prvalue +# 2880| getStmt(): [BlockStmt] { ... } +# 2881| getStmt(0): [DeclStmt] declaration +# 2881| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x954 +# 2881| Type = [Struct] String +# 2881| getVariable().getInitializer(): [Initializer] initializer for x954 +# 2881| getExpr(): [ConstructorCall] call to String +# 2881| Type = [VoidType] void +# 2881| ValueCategory = prvalue +# 2882| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2882| Type = [VoidType] void +# 2882| ValueCategory = prvalue +# 2882| getQualifier(): [VariableAccess] x954 +# 2882| Type = [Struct] String +# 2882| ValueCategory = lvalue +# 2882| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2882| Conversion = [BoolConversion] conversion to bool +# 2882| Type = [BoolType] bool +# 2882| Value = [CStyleCast] 0 +# 2882| ValueCategory = prvalue +# 2883| getStmt(955): [DoStmt] do (...) ... +# 2885| getCondition(): [Literal] 0 +# 2885| Type = [IntType] int +# 2885| Value = [Literal] 0 +# 2885| ValueCategory = prvalue +# 2883| getStmt(): [BlockStmt] { ... } +# 2884| getStmt(0): [DeclStmt] declaration +# 2884| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x955 +# 2884| Type = [Struct] String +# 2884| getVariable().getInitializer(): [Initializer] initializer for x955 +# 2884| getExpr(): [ConstructorCall] call to String +# 2884| Type = [VoidType] void +# 2884| ValueCategory = prvalue +# 2885| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2885| Type = [VoidType] void +# 2885| ValueCategory = prvalue +# 2885| getQualifier(): [VariableAccess] x955 +# 2885| Type = [Struct] String +# 2885| ValueCategory = lvalue +# 2885| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2885| Conversion = [BoolConversion] conversion to bool +# 2885| Type = [BoolType] bool +# 2885| Value = [CStyleCast] 0 +# 2885| ValueCategory = prvalue +# 2886| getStmt(956): [DoStmt] do (...) ... +# 2888| getCondition(): [Literal] 0 +# 2888| Type = [IntType] int +# 2888| Value = [Literal] 0 +# 2888| ValueCategory = prvalue +# 2886| getStmt(): [BlockStmt] { ... } +# 2887| getStmt(0): [DeclStmt] declaration +# 2887| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x956 +# 2887| Type = [Struct] String +# 2887| getVariable().getInitializer(): [Initializer] initializer for x956 +# 2887| getExpr(): [ConstructorCall] call to String +# 2887| Type = [VoidType] void +# 2887| ValueCategory = prvalue +# 2888| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2888| Type = [VoidType] void +# 2888| ValueCategory = prvalue +# 2888| getQualifier(): [VariableAccess] x956 +# 2888| Type = [Struct] String +# 2888| ValueCategory = lvalue +# 2888| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2888| Conversion = [BoolConversion] conversion to bool +# 2888| Type = [BoolType] bool +# 2888| Value = [CStyleCast] 0 +# 2888| ValueCategory = prvalue +# 2889| getStmt(957): [DoStmt] do (...) ... +# 2891| getCondition(): [Literal] 0 +# 2891| Type = [IntType] int +# 2891| Value = [Literal] 0 +# 2891| ValueCategory = prvalue +# 2889| getStmt(): [BlockStmt] { ... } +# 2890| getStmt(0): [DeclStmt] declaration +# 2890| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x957 +# 2890| Type = [Struct] String +# 2890| getVariable().getInitializer(): [Initializer] initializer for x957 +# 2890| getExpr(): [ConstructorCall] call to String +# 2890| Type = [VoidType] void +# 2890| ValueCategory = prvalue +# 2891| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2891| Type = [VoidType] void +# 2891| ValueCategory = prvalue +# 2891| getQualifier(): [VariableAccess] x957 +# 2891| Type = [Struct] String +# 2891| ValueCategory = lvalue +# 2891| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2891| Conversion = [BoolConversion] conversion to bool +# 2891| Type = [BoolType] bool +# 2891| Value = [CStyleCast] 0 +# 2891| ValueCategory = prvalue +# 2892| getStmt(958): [DoStmt] do (...) ... +# 2894| getCondition(): [Literal] 0 +# 2894| Type = [IntType] int +# 2894| Value = [Literal] 0 +# 2894| ValueCategory = prvalue +# 2892| getStmt(): [BlockStmt] { ... } +# 2893| getStmt(0): [DeclStmt] declaration +# 2893| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x958 +# 2893| Type = [Struct] String +# 2893| getVariable().getInitializer(): [Initializer] initializer for x958 +# 2893| getExpr(): [ConstructorCall] call to String +# 2893| Type = [VoidType] void +# 2893| ValueCategory = prvalue +# 2894| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2894| Type = [VoidType] void +# 2894| ValueCategory = prvalue +# 2894| getQualifier(): [VariableAccess] x958 +# 2894| Type = [Struct] String +# 2894| ValueCategory = lvalue +# 2894| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2894| Conversion = [BoolConversion] conversion to bool +# 2894| Type = [BoolType] bool +# 2894| Value = [CStyleCast] 0 +# 2894| ValueCategory = prvalue +# 2895| getStmt(959): [DoStmt] do (...) ... +# 2897| getCondition(): [Literal] 0 +# 2897| Type = [IntType] int +# 2897| Value = [Literal] 0 +# 2897| ValueCategory = prvalue +# 2895| getStmt(): [BlockStmt] { ... } +# 2896| getStmt(0): [DeclStmt] declaration +# 2896| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x959 +# 2896| Type = [Struct] String +# 2896| getVariable().getInitializer(): [Initializer] initializer for x959 +# 2896| getExpr(): [ConstructorCall] call to String +# 2896| Type = [VoidType] void +# 2896| ValueCategory = prvalue +# 2897| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2897| Type = [VoidType] void +# 2897| ValueCategory = prvalue +# 2897| getQualifier(): [VariableAccess] x959 +# 2897| Type = [Struct] String +# 2897| ValueCategory = lvalue +# 2897| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2897| Conversion = [BoolConversion] conversion to bool +# 2897| Type = [BoolType] bool +# 2897| Value = [CStyleCast] 0 +# 2897| ValueCategory = prvalue +# 2898| getStmt(960): [DoStmt] do (...) ... +# 2900| getCondition(): [Literal] 0 +# 2900| Type = [IntType] int +# 2900| Value = [Literal] 0 +# 2900| ValueCategory = prvalue +# 2898| getStmt(): [BlockStmt] { ... } +# 2899| getStmt(0): [DeclStmt] declaration +# 2899| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x960 +# 2899| Type = [Struct] String +# 2899| getVariable().getInitializer(): [Initializer] initializer for x960 +# 2899| getExpr(): [ConstructorCall] call to String +# 2899| Type = [VoidType] void +# 2899| ValueCategory = prvalue +# 2900| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2900| Type = [VoidType] void +# 2900| ValueCategory = prvalue +# 2900| getQualifier(): [VariableAccess] x960 +# 2900| Type = [Struct] String +# 2900| ValueCategory = lvalue +# 2900| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2900| Conversion = [BoolConversion] conversion to bool +# 2900| Type = [BoolType] bool +# 2900| Value = [CStyleCast] 0 +# 2900| ValueCategory = prvalue +# 2901| getStmt(961): [DoStmt] do (...) ... +# 2903| getCondition(): [Literal] 0 +# 2903| Type = [IntType] int +# 2903| Value = [Literal] 0 +# 2903| ValueCategory = prvalue +# 2901| getStmt(): [BlockStmt] { ... } +# 2902| getStmt(0): [DeclStmt] declaration +# 2902| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x961 +# 2902| Type = [Struct] String +# 2902| getVariable().getInitializer(): [Initializer] initializer for x961 +# 2902| getExpr(): [ConstructorCall] call to String +# 2902| Type = [VoidType] void +# 2902| ValueCategory = prvalue +# 2903| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2903| Type = [VoidType] void +# 2903| ValueCategory = prvalue +# 2903| getQualifier(): [VariableAccess] x961 +# 2903| Type = [Struct] String +# 2903| ValueCategory = lvalue +# 2903| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2903| Conversion = [BoolConversion] conversion to bool +# 2903| Type = [BoolType] bool +# 2903| Value = [CStyleCast] 0 +# 2903| ValueCategory = prvalue +# 2904| getStmt(962): [DoStmt] do (...) ... +# 2906| getCondition(): [Literal] 0 +# 2906| Type = [IntType] int +# 2906| Value = [Literal] 0 +# 2906| ValueCategory = prvalue +# 2904| getStmt(): [BlockStmt] { ... } +# 2905| getStmt(0): [DeclStmt] declaration +# 2905| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x962 +# 2905| Type = [Struct] String +# 2905| getVariable().getInitializer(): [Initializer] initializer for x962 +# 2905| getExpr(): [ConstructorCall] call to String +# 2905| Type = [VoidType] void +# 2905| ValueCategory = prvalue +# 2906| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2906| Type = [VoidType] void +# 2906| ValueCategory = prvalue +# 2906| getQualifier(): [VariableAccess] x962 +# 2906| Type = [Struct] String +# 2906| ValueCategory = lvalue +# 2906| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2906| Conversion = [BoolConversion] conversion to bool +# 2906| Type = [BoolType] bool +# 2906| Value = [CStyleCast] 0 +# 2906| ValueCategory = prvalue +# 2907| getStmt(963): [DoStmt] do (...) ... +# 2909| getCondition(): [Literal] 0 +# 2909| Type = [IntType] int +# 2909| Value = [Literal] 0 +# 2909| ValueCategory = prvalue +# 2907| getStmt(): [BlockStmt] { ... } +# 2908| getStmt(0): [DeclStmt] declaration +# 2908| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x963 +# 2908| Type = [Struct] String +# 2908| getVariable().getInitializer(): [Initializer] initializer for x963 +# 2908| getExpr(): [ConstructorCall] call to String +# 2908| Type = [VoidType] void +# 2908| ValueCategory = prvalue +# 2909| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2909| Type = [VoidType] void +# 2909| ValueCategory = prvalue +# 2909| getQualifier(): [VariableAccess] x963 +# 2909| Type = [Struct] String +# 2909| ValueCategory = lvalue +# 2909| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2909| Conversion = [BoolConversion] conversion to bool +# 2909| Type = [BoolType] bool +# 2909| Value = [CStyleCast] 0 +# 2909| ValueCategory = prvalue +# 2910| getStmt(964): [DoStmt] do (...) ... +# 2912| getCondition(): [Literal] 0 +# 2912| Type = [IntType] int +# 2912| Value = [Literal] 0 +# 2912| ValueCategory = prvalue +# 2910| getStmt(): [BlockStmt] { ... } +# 2911| getStmt(0): [DeclStmt] declaration +# 2911| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x964 +# 2911| Type = [Struct] String +# 2911| getVariable().getInitializer(): [Initializer] initializer for x964 +# 2911| getExpr(): [ConstructorCall] call to String +# 2911| Type = [VoidType] void +# 2911| ValueCategory = prvalue +# 2912| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2912| Type = [VoidType] void +# 2912| ValueCategory = prvalue +# 2912| getQualifier(): [VariableAccess] x964 +# 2912| Type = [Struct] String +# 2912| ValueCategory = lvalue +# 2912| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2912| Conversion = [BoolConversion] conversion to bool +# 2912| Type = [BoolType] bool +# 2912| Value = [CStyleCast] 0 +# 2912| ValueCategory = prvalue +# 2913| getStmt(965): [DoStmt] do (...) ... +# 2915| getCondition(): [Literal] 0 +# 2915| Type = [IntType] int +# 2915| Value = [Literal] 0 +# 2915| ValueCategory = prvalue +# 2913| getStmt(): [BlockStmt] { ... } +# 2914| getStmt(0): [DeclStmt] declaration +# 2914| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x965 +# 2914| Type = [Struct] String +# 2914| getVariable().getInitializer(): [Initializer] initializer for x965 +# 2914| getExpr(): [ConstructorCall] call to String +# 2914| Type = [VoidType] void +# 2914| ValueCategory = prvalue +# 2915| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2915| Type = [VoidType] void +# 2915| ValueCategory = prvalue +# 2915| getQualifier(): [VariableAccess] x965 +# 2915| Type = [Struct] String +# 2915| ValueCategory = lvalue +# 2915| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2915| Conversion = [BoolConversion] conversion to bool +# 2915| Type = [BoolType] bool +# 2915| Value = [CStyleCast] 0 +# 2915| ValueCategory = prvalue +# 2916| getStmt(966): [DoStmt] do (...) ... +# 2918| getCondition(): [Literal] 0 +# 2918| Type = [IntType] int +# 2918| Value = [Literal] 0 +# 2918| ValueCategory = prvalue +# 2916| getStmt(): [BlockStmt] { ... } +# 2917| getStmt(0): [DeclStmt] declaration +# 2917| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x966 +# 2917| Type = [Struct] String +# 2917| getVariable().getInitializer(): [Initializer] initializer for x966 +# 2917| getExpr(): [ConstructorCall] call to String +# 2917| Type = [VoidType] void +# 2917| ValueCategory = prvalue +# 2918| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2918| Type = [VoidType] void +# 2918| ValueCategory = prvalue +# 2918| getQualifier(): [VariableAccess] x966 +# 2918| Type = [Struct] String +# 2918| ValueCategory = lvalue +# 2918| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2918| Conversion = [BoolConversion] conversion to bool +# 2918| Type = [BoolType] bool +# 2918| Value = [CStyleCast] 0 +# 2918| ValueCategory = prvalue +# 2919| getStmt(967): [DoStmt] do (...) ... +# 2921| getCondition(): [Literal] 0 +# 2921| Type = [IntType] int +# 2921| Value = [Literal] 0 +# 2921| ValueCategory = prvalue +# 2919| getStmt(): [BlockStmt] { ... } +# 2920| getStmt(0): [DeclStmt] declaration +# 2920| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x967 +# 2920| Type = [Struct] String +# 2920| getVariable().getInitializer(): [Initializer] initializer for x967 +# 2920| getExpr(): [ConstructorCall] call to String +# 2920| Type = [VoidType] void +# 2920| ValueCategory = prvalue +# 2921| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2921| Type = [VoidType] void +# 2921| ValueCategory = prvalue +# 2921| getQualifier(): [VariableAccess] x967 +# 2921| Type = [Struct] String +# 2921| ValueCategory = lvalue +# 2921| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2921| Conversion = [BoolConversion] conversion to bool +# 2921| Type = [BoolType] bool +# 2921| Value = [CStyleCast] 0 +# 2921| ValueCategory = prvalue +# 2922| getStmt(968): [DoStmt] do (...) ... +# 2924| getCondition(): [Literal] 0 +# 2924| Type = [IntType] int +# 2924| Value = [Literal] 0 +# 2924| ValueCategory = prvalue +# 2922| getStmt(): [BlockStmt] { ... } +# 2923| getStmt(0): [DeclStmt] declaration +# 2923| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x968 +# 2923| Type = [Struct] String +# 2923| getVariable().getInitializer(): [Initializer] initializer for x968 +# 2923| getExpr(): [ConstructorCall] call to String +# 2923| Type = [VoidType] void +# 2923| ValueCategory = prvalue +# 2924| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2924| Type = [VoidType] void +# 2924| ValueCategory = prvalue +# 2924| getQualifier(): [VariableAccess] x968 +# 2924| Type = [Struct] String +# 2924| ValueCategory = lvalue +# 2924| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2924| Conversion = [BoolConversion] conversion to bool +# 2924| Type = [BoolType] bool +# 2924| Value = [CStyleCast] 0 +# 2924| ValueCategory = prvalue +# 2925| getStmt(969): [DoStmt] do (...) ... +# 2927| getCondition(): [Literal] 0 +# 2927| Type = [IntType] int +# 2927| Value = [Literal] 0 +# 2927| ValueCategory = prvalue +# 2925| getStmt(): [BlockStmt] { ... } +# 2926| getStmt(0): [DeclStmt] declaration +# 2926| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x969 +# 2926| Type = [Struct] String +# 2926| getVariable().getInitializer(): [Initializer] initializer for x969 +# 2926| getExpr(): [ConstructorCall] call to String +# 2926| Type = [VoidType] void +# 2926| ValueCategory = prvalue +# 2927| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2927| Type = [VoidType] void +# 2927| ValueCategory = prvalue +# 2927| getQualifier(): [VariableAccess] x969 +# 2927| Type = [Struct] String +# 2927| ValueCategory = lvalue +# 2927| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2927| Conversion = [BoolConversion] conversion to bool +# 2927| Type = [BoolType] bool +# 2927| Value = [CStyleCast] 0 +# 2927| ValueCategory = prvalue +# 2928| getStmt(970): [DoStmt] do (...) ... +# 2930| getCondition(): [Literal] 0 +# 2930| Type = [IntType] int +# 2930| Value = [Literal] 0 +# 2930| ValueCategory = prvalue +# 2928| getStmt(): [BlockStmt] { ... } +# 2929| getStmt(0): [DeclStmt] declaration +# 2929| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x970 +# 2929| Type = [Struct] String +# 2929| getVariable().getInitializer(): [Initializer] initializer for x970 +# 2929| getExpr(): [ConstructorCall] call to String +# 2929| Type = [VoidType] void +# 2929| ValueCategory = prvalue +# 2930| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2930| Type = [VoidType] void +# 2930| ValueCategory = prvalue +# 2930| getQualifier(): [VariableAccess] x970 +# 2930| Type = [Struct] String +# 2930| ValueCategory = lvalue +# 2930| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2930| Conversion = [BoolConversion] conversion to bool +# 2930| Type = [BoolType] bool +# 2930| Value = [CStyleCast] 0 +# 2930| ValueCategory = prvalue +# 2931| getStmt(971): [DoStmt] do (...) ... +# 2933| getCondition(): [Literal] 0 +# 2933| Type = [IntType] int +# 2933| Value = [Literal] 0 +# 2933| ValueCategory = prvalue +# 2931| getStmt(): [BlockStmt] { ... } +# 2932| getStmt(0): [DeclStmt] declaration +# 2932| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x971 +# 2932| Type = [Struct] String +# 2932| getVariable().getInitializer(): [Initializer] initializer for x971 +# 2932| getExpr(): [ConstructorCall] call to String +# 2932| Type = [VoidType] void +# 2932| ValueCategory = prvalue +# 2933| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2933| Type = [VoidType] void +# 2933| ValueCategory = prvalue +# 2933| getQualifier(): [VariableAccess] x971 +# 2933| Type = [Struct] String +# 2933| ValueCategory = lvalue +# 2933| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2933| Conversion = [BoolConversion] conversion to bool +# 2933| Type = [BoolType] bool +# 2933| Value = [CStyleCast] 0 +# 2933| ValueCategory = prvalue +# 2934| getStmt(972): [DoStmt] do (...) ... +# 2936| getCondition(): [Literal] 0 +# 2936| Type = [IntType] int +# 2936| Value = [Literal] 0 +# 2936| ValueCategory = prvalue +# 2934| getStmt(): [BlockStmt] { ... } +# 2935| getStmt(0): [DeclStmt] declaration +# 2935| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x972 +# 2935| Type = [Struct] String +# 2935| getVariable().getInitializer(): [Initializer] initializer for x972 +# 2935| getExpr(): [ConstructorCall] call to String +# 2935| Type = [VoidType] void +# 2935| ValueCategory = prvalue +# 2936| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2936| Type = [VoidType] void +# 2936| ValueCategory = prvalue +# 2936| getQualifier(): [VariableAccess] x972 +# 2936| Type = [Struct] String +# 2936| ValueCategory = lvalue +# 2936| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2936| Conversion = [BoolConversion] conversion to bool +# 2936| Type = [BoolType] bool +# 2936| Value = [CStyleCast] 0 +# 2936| ValueCategory = prvalue +# 2937| getStmt(973): [DoStmt] do (...) ... +# 2939| getCondition(): [Literal] 0 +# 2939| Type = [IntType] int +# 2939| Value = [Literal] 0 +# 2939| ValueCategory = prvalue +# 2937| getStmt(): [BlockStmt] { ... } +# 2938| getStmt(0): [DeclStmt] declaration +# 2938| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x973 +# 2938| Type = [Struct] String +# 2938| getVariable().getInitializer(): [Initializer] initializer for x973 +# 2938| getExpr(): [ConstructorCall] call to String +# 2938| Type = [VoidType] void +# 2938| ValueCategory = prvalue +# 2939| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2939| Type = [VoidType] void +# 2939| ValueCategory = prvalue +# 2939| getQualifier(): [VariableAccess] x973 +# 2939| Type = [Struct] String +# 2939| ValueCategory = lvalue +# 2939| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2939| Conversion = [BoolConversion] conversion to bool +# 2939| Type = [BoolType] bool +# 2939| Value = [CStyleCast] 0 +# 2939| ValueCategory = prvalue +# 2940| getStmt(974): [DoStmt] do (...) ... +# 2942| getCondition(): [Literal] 0 +# 2942| Type = [IntType] int +# 2942| Value = [Literal] 0 +# 2942| ValueCategory = prvalue +# 2940| getStmt(): [BlockStmt] { ... } +# 2941| getStmt(0): [DeclStmt] declaration +# 2941| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x974 +# 2941| Type = [Struct] String +# 2941| getVariable().getInitializer(): [Initializer] initializer for x974 +# 2941| getExpr(): [ConstructorCall] call to String +# 2941| Type = [VoidType] void +# 2941| ValueCategory = prvalue +# 2942| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2942| Type = [VoidType] void +# 2942| ValueCategory = prvalue +# 2942| getQualifier(): [VariableAccess] x974 +# 2942| Type = [Struct] String +# 2942| ValueCategory = lvalue +# 2942| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2942| Conversion = [BoolConversion] conversion to bool +# 2942| Type = [BoolType] bool +# 2942| Value = [CStyleCast] 0 +# 2942| ValueCategory = prvalue +# 2943| getStmt(975): [DoStmt] do (...) ... +# 2945| getCondition(): [Literal] 0 +# 2945| Type = [IntType] int +# 2945| Value = [Literal] 0 +# 2945| ValueCategory = prvalue +# 2943| getStmt(): [BlockStmt] { ... } +# 2944| getStmt(0): [DeclStmt] declaration +# 2944| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x975 +# 2944| Type = [Struct] String +# 2944| getVariable().getInitializer(): [Initializer] initializer for x975 +# 2944| getExpr(): [ConstructorCall] call to String +# 2944| Type = [VoidType] void +# 2944| ValueCategory = prvalue +# 2945| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2945| Type = [VoidType] void +# 2945| ValueCategory = prvalue +# 2945| getQualifier(): [VariableAccess] x975 +# 2945| Type = [Struct] String +# 2945| ValueCategory = lvalue +# 2945| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2945| Conversion = [BoolConversion] conversion to bool +# 2945| Type = [BoolType] bool +# 2945| Value = [CStyleCast] 0 +# 2945| ValueCategory = prvalue +# 2946| getStmt(976): [DoStmt] do (...) ... +# 2948| getCondition(): [Literal] 0 +# 2948| Type = [IntType] int +# 2948| Value = [Literal] 0 +# 2948| ValueCategory = prvalue +# 2946| getStmt(): [BlockStmt] { ... } +# 2947| getStmt(0): [DeclStmt] declaration +# 2947| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x976 +# 2947| Type = [Struct] String +# 2947| getVariable().getInitializer(): [Initializer] initializer for x976 +# 2947| getExpr(): [ConstructorCall] call to String +# 2947| Type = [VoidType] void +# 2947| ValueCategory = prvalue +# 2948| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2948| Type = [VoidType] void +# 2948| ValueCategory = prvalue +# 2948| getQualifier(): [VariableAccess] x976 +# 2948| Type = [Struct] String +# 2948| ValueCategory = lvalue +# 2948| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2948| Conversion = [BoolConversion] conversion to bool +# 2948| Type = [BoolType] bool +# 2948| Value = [CStyleCast] 0 +# 2948| ValueCategory = prvalue +# 2949| getStmt(977): [DoStmt] do (...) ... +# 2951| getCondition(): [Literal] 0 +# 2951| Type = [IntType] int +# 2951| Value = [Literal] 0 +# 2951| ValueCategory = prvalue +# 2949| getStmt(): [BlockStmt] { ... } +# 2950| getStmt(0): [DeclStmt] declaration +# 2950| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x977 +# 2950| Type = [Struct] String +# 2950| getVariable().getInitializer(): [Initializer] initializer for x977 +# 2950| getExpr(): [ConstructorCall] call to String +# 2950| Type = [VoidType] void +# 2950| ValueCategory = prvalue +# 2951| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2951| Type = [VoidType] void +# 2951| ValueCategory = prvalue +# 2951| getQualifier(): [VariableAccess] x977 +# 2951| Type = [Struct] String +# 2951| ValueCategory = lvalue +# 2951| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2951| Conversion = [BoolConversion] conversion to bool +# 2951| Type = [BoolType] bool +# 2951| Value = [CStyleCast] 0 +# 2951| ValueCategory = prvalue +# 2952| getStmt(978): [DoStmt] do (...) ... +# 2954| getCondition(): [Literal] 0 +# 2954| Type = [IntType] int +# 2954| Value = [Literal] 0 +# 2954| ValueCategory = prvalue +# 2952| getStmt(): [BlockStmt] { ... } +# 2953| getStmt(0): [DeclStmt] declaration +# 2953| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x978 +# 2953| Type = [Struct] String +# 2953| getVariable().getInitializer(): [Initializer] initializer for x978 +# 2953| getExpr(): [ConstructorCall] call to String +# 2953| Type = [VoidType] void +# 2953| ValueCategory = prvalue +# 2954| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2954| Type = [VoidType] void +# 2954| ValueCategory = prvalue +# 2954| getQualifier(): [VariableAccess] x978 +# 2954| Type = [Struct] String +# 2954| ValueCategory = lvalue +# 2954| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2954| Conversion = [BoolConversion] conversion to bool +# 2954| Type = [BoolType] bool +# 2954| Value = [CStyleCast] 0 +# 2954| ValueCategory = prvalue +# 2955| getStmt(979): [DoStmt] do (...) ... +# 2957| getCondition(): [Literal] 0 +# 2957| Type = [IntType] int +# 2957| Value = [Literal] 0 +# 2957| ValueCategory = prvalue +# 2955| getStmt(): [BlockStmt] { ... } +# 2956| getStmt(0): [DeclStmt] declaration +# 2956| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x979 +# 2956| Type = [Struct] String +# 2956| getVariable().getInitializer(): [Initializer] initializer for x979 +# 2956| getExpr(): [ConstructorCall] call to String +# 2956| Type = [VoidType] void +# 2956| ValueCategory = prvalue +# 2957| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2957| Type = [VoidType] void +# 2957| ValueCategory = prvalue +# 2957| getQualifier(): [VariableAccess] x979 +# 2957| Type = [Struct] String +# 2957| ValueCategory = lvalue +# 2957| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2957| Conversion = [BoolConversion] conversion to bool +# 2957| Type = [BoolType] bool +# 2957| Value = [CStyleCast] 0 +# 2957| ValueCategory = prvalue +# 2958| getStmt(980): [DoStmt] do (...) ... +# 2960| getCondition(): [Literal] 0 +# 2960| Type = [IntType] int +# 2960| Value = [Literal] 0 +# 2960| ValueCategory = prvalue +# 2958| getStmt(): [BlockStmt] { ... } +# 2959| getStmt(0): [DeclStmt] declaration +# 2959| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x980 +# 2959| Type = [Struct] String +# 2959| getVariable().getInitializer(): [Initializer] initializer for x980 +# 2959| getExpr(): [ConstructorCall] call to String +# 2959| Type = [VoidType] void +# 2959| ValueCategory = prvalue +# 2960| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2960| Type = [VoidType] void +# 2960| ValueCategory = prvalue +# 2960| getQualifier(): [VariableAccess] x980 +# 2960| Type = [Struct] String +# 2960| ValueCategory = lvalue +# 2960| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2960| Conversion = [BoolConversion] conversion to bool +# 2960| Type = [BoolType] bool +# 2960| Value = [CStyleCast] 0 +# 2960| ValueCategory = prvalue +# 2961| getStmt(981): [DoStmt] do (...) ... +# 2963| getCondition(): [Literal] 0 +# 2963| Type = [IntType] int +# 2963| Value = [Literal] 0 +# 2963| ValueCategory = prvalue +# 2961| getStmt(): [BlockStmt] { ... } +# 2962| getStmt(0): [DeclStmt] declaration +# 2962| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x981 +# 2962| Type = [Struct] String +# 2962| getVariable().getInitializer(): [Initializer] initializer for x981 +# 2962| getExpr(): [ConstructorCall] call to String +# 2962| Type = [VoidType] void +# 2962| ValueCategory = prvalue +# 2963| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2963| Type = [VoidType] void +# 2963| ValueCategory = prvalue +# 2963| getQualifier(): [VariableAccess] x981 +# 2963| Type = [Struct] String +# 2963| ValueCategory = lvalue +# 2963| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2963| Conversion = [BoolConversion] conversion to bool +# 2963| Type = [BoolType] bool +# 2963| Value = [CStyleCast] 0 +# 2963| ValueCategory = prvalue +# 2964| getStmt(982): [DoStmt] do (...) ... +# 2966| getCondition(): [Literal] 0 +# 2966| Type = [IntType] int +# 2966| Value = [Literal] 0 +# 2966| ValueCategory = prvalue +# 2964| getStmt(): [BlockStmt] { ... } +# 2965| getStmt(0): [DeclStmt] declaration +# 2965| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x982 +# 2965| Type = [Struct] String +# 2965| getVariable().getInitializer(): [Initializer] initializer for x982 +# 2965| getExpr(): [ConstructorCall] call to String +# 2965| Type = [VoidType] void +# 2965| ValueCategory = prvalue +# 2966| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2966| Type = [VoidType] void +# 2966| ValueCategory = prvalue +# 2966| getQualifier(): [VariableAccess] x982 +# 2966| Type = [Struct] String +# 2966| ValueCategory = lvalue +# 2966| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2966| Conversion = [BoolConversion] conversion to bool +# 2966| Type = [BoolType] bool +# 2966| Value = [CStyleCast] 0 +# 2966| ValueCategory = prvalue +# 2967| getStmt(983): [DoStmt] do (...) ... +# 2969| getCondition(): [Literal] 0 +# 2969| Type = [IntType] int +# 2969| Value = [Literal] 0 +# 2969| ValueCategory = prvalue +# 2967| getStmt(): [BlockStmt] { ... } +# 2968| getStmt(0): [DeclStmt] declaration +# 2968| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x983 +# 2968| Type = [Struct] String +# 2968| getVariable().getInitializer(): [Initializer] initializer for x983 +# 2968| getExpr(): [ConstructorCall] call to String +# 2968| Type = [VoidType] void +# 2968| ValueCategory = prvalue +# 2969| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2969| Type = [VoidType] void +# 2969| ValueCategory = prvalue +# 2969| getQualifier(): [VariableAccess] x983 +# 2969| Type = [Struct] String +# 2969| ValueCategory = lvalue +# 2969| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2969| Conversion = [BoolConversion] conversion to bool +# 2969| Type = [BoolType] bool +# 2969| Value = [CStyleCast] 0 +# 2969| ValueCategory = prvalue +# 2970| getStmt(984): [DoStmt] do (...) ... +# 2972| getCondition(): [Literal] 0 +# 2972| Type = [IntType] int +# 2972| Value = [Literal] 0 +# 2972| ValueCategory = prvalue +# 2970| getStmt(): [BlockStmt] { ... } +# 2971| getStmt(0): [DeclStmt] declaration +# 2971| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x984 +# 2971| Type = [Struct] String +# 2971| getVariable().getInitializer(): [Initializer] initializer for x984 +# 2971| getExpr(): [ConstructorCall] call to String +# 2971| Type = [VoidType] void +# 2971| ValueCategory = prvalue +# 2972| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2972| Type = [VoidType] void +# 2972| ValueCategory = prvalue +# 2972| getQualifier(): [VariableAccess] x984 +# 2972| Type = [Struct] String +# 2972| ValueCategory = lvalue +# 2972| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2972| Conversion = [BoolConversion] conversion to bool +# 2972| Type = [BoolType] bool +# 2972| Value = [CStyleCast] 0 +# 2972| ValueCategory = prvalue +# 2973| getStmt(985): [DoStmt] do (...) ... +# 2975| getCondition(): [Literal] 0 +# 2975| Type = [IntType] int +# 2975| Value = [Literal] 0 +# 2975| ValueCategory = prvalue +# 2973| getStmt(): [BlockStmt] { ... } +# 2974| getStmt(0): [DeclStmt] declaration +# 2974| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x985 +# 2974| Type = [Struct] String +# 2974| getVariable().getInitializer(): [Initializer] initializer for x985 +# 2974| getExpr(): [ConstructorCall] call to String +# 2974| Type = [VoidType] void +# 2974| ValueCategory = prvalue +# 2975| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2975| Type = [VoidType] void +# 2975| ValueCategory = prvalue +# 2975| getQualifier(): [VariableAccess] x985 +# 2975| Type = [Struct] String +# 2975| ValueCategory = lvalue +# 2975| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2975| Conversion = [BoolConversion] conversion to bool +# 2975| Type = [BoolType] bool +# 2975| Value = [CStyleCast] 0 +# 2975| ValueCategory = prvalue +# 2976| getStmt(986): [DoStmt] do (...) ... +# 2978| getCondition(): [Literal] 0 +# 2978| Type = [IntType] int +# 2978| Value = [Literal] 0 +# 2978| ValueCategory = prvalue +# 2976| getStmt(): [BlockStmt] { ... } +# 2977| getStmt(0): [DeclStmt] declaration +# 2977| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x986 +# 2977| Type = [Struct] String +# 2977| getVariable().getInitializer(): [Initializer] initializer for x986 +# 2977| getExpr(): [ConstructorCall] call to String +# 2977| Type = [VoidType] void +# 2977| ValueCategory = prvalue +# 2978| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2978| Type = [VoidType] void +# 2978| ValueCategory = prvalue +# 2978| getQualifier(): [VariableAccess] x986 +# 2978| Type = [Struct] String +# 2978| ValueCategory = lvalue +# 2978| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2978| Conversion = [BoolConversion] conversion to bool +# 2978| Type = [BoolType] bool +# 2978| Value = [CStyleCast] 0 +# 2978| ValueCategory = prvalue +# 2979| getStmt(987): [DoStmt] do (...) ... +# 2981| getCondition(): [Literal] 0 +# 2981| Type = [IntType] int +# 2981| Value = [Literal] 0 +# 2981| ValueCategory = prvalue +# 2979| getStmt(): [BlockStmt] { ... } +# 2980| getStmt(0): [DeclStmt] declaration +# 2980| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x987 +# 2980| Type = [Struct] String +# 2980| getVariable().getInitializer(): [Initializer] initializer for x987 +# 2980| getExpr(): [ConstructorCall] call to String +# 2980| Type = [VoidType] void +# 2980| ValueCategory = prvalue +# 2981| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2981| Type = [VoidType] void +# 2981| ValueCategory = prvalue +# 2981| getQualifier(): [VariableAccess] x987 +# 2981| Type = [Struct] String +# 2981| ValueCategory = lvalue +# 2981| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2981| Conversion = [BoolConversion] conversion to bool +# 2981| Type = [BoolType] bool +# 2981| Value = [CStyleCast] 0 +# 2981| ValueCategory = prvalue +# 2982| getStmt(988): [DoStmt] do (...) ... +# 2984| getCondition(): [Literal] 0 +# 2984| Type = [IntType] int +# 2984| Value = [Literal] 0 +# 2984| ValueCategory = prvalue +# 2982| getStmt(): [BlockStmt] { ... } +# 2983| getStmt(0): [DeclStmt] declaration +# 2983| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x988 +# 2983| Type = [Struct] String +# 2983| getVariable().getInitializer(): [Initializer] initializer for x988 +# 2983| getExpr(): [ConstructorCall] call to String +# 2983| Type = [VoidType] void +# 2983| ValueCategory = prvalue +# 2984| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2984| Type = [VoidType] void +# 2984| ValueCategory = prvalue +# 2984| getQualifier(): [VariableAccess] x988 +# 2984| Type = [Struct] String +# 2984| ValueCategory = lvalue +# 2984| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2984| Conversion = [BoolConversion] conversion to bool +# 2984| Type = [BoolType] bool +# 2984| Value = [CStyleCast] 0 +# 2984| ValueCategory = prvalue +# 2985| getStmt(989): [DoStmt] do (...) ... +# 2987| getCondition(): [Literal] 0 +# 2987| Type = [IntType] int +# 2987| Value = [Literal] 0 +# 2987| ValueCategory = prvalue +# 2985| getStmt(): [BlockStmt] { ... } +# 2986| getStmt(0): [DeclStmt] declaration +# 2986| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x989 +# 2986| Type = [Struct] String +# 2986| getVariable().getInitializer(): [Initializer] initializer for x989 +# 2986| getExpr(): [ConstructorCall] call to String +# 2986| Type = [VoidType] void +# 2986| ValueCategory = prvalue +# 2987| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2987| Type = [VoidType] void +# 2987| ValueCategory = prvalue +# 2987| getQualifier(): [VariableAccess] x989 +# 2987| Type = [Struct] String +# 2987| ValueCategory = lvalue +# 2987| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2987| Conversion = [BoolConversion] conversion to bool +# 2987| Type = [BoolType] bool +# 2987| Value = [CStyleCast] 0 +# 2987| ValueCategory = prvalue +# 2988| getStmt(990): [DoStmt] do (...) ... +# 2990| getCondition(): [Literal] 0 +# 2990| Type = [IntType] int +# 2990| Value = [Literal] 0 +# 2990| ValueCategory = prvalue +# 2988| getStmt(): [BlockStmt] { ... } +# 2989| getStmt(0): [DeclStmt] declaration +# 2989| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x990 +# 2989| Type = [Struct] String +# 2989| getVariable().getInitializer(): [Initializer] initializer for x990 +# 2989| getExpr(): [ConstructorCall] call to String +# 2989| Type = [VoidType] void +# 2989| ValueCategory = prvalue +# 2990| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2990| Type = [VoidType] void +# 2990| ValueCategory = prvalue +# 2990| getQualifier(): [VariableAccess] x990 +# 2990| Type = [Struct] String +# 2990| ValueCategory = lvalue +# 2990| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2990| Conversion = [BoolConversion] conversion to bool +# 2990| Type = [BoolType] bool +# 2990| Value = [CStyleCast] 0 +# 2990| ValueCategory = prvalue +# 2991| getStmt(991): [DoStmt] do (...) ... +# 2993| getCondition(): [Literal] 0 +# 2993| Type = [IntType] int +# 2993| Value = [Literal] 0 +# 2993| ValueCategory = prvalue +# 2991| getStmt(): [BlockStmt] { ... } +# 2992| getStmt(0): [DeclStmt] declaration +# 2992| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x991 +# 2992| Type = [Struct] String +# 2992| getVariable().getInitializer(): [Initializer] initializer for x991 +# 2992| getExpr(): [ConstructorCall] call to String +# 2992| Type = [VoidType] void +# 2992| ValueCategory = prvalue +# 2993| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2993| Type = [VoidType] void +# 2993| ValueCategory = prvalue +# 2993| getQualifier(): [VariableAccess] x991 +# 2993| Type = [Struct] String +# 2993| ValueCategory = lvalue +# 2993| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2993| Conversion = [BoolConversion] conversion to bool +# 2993| Type = [BoolType] bool +# 2993| Value = [CStyleCast] 0 +# 2993| ValueCategory = prvalue +# 2994| getStmt(992): [DoStmt] do (...) ... +# 2996| getCondition(): [Literal] 0 +# 2996| Type = [IntType] int +# 2996| Value = [Literal] 0 +# 2996| ValueCategory = prvalue +# 2994| getStmt(): [BlockStmt] { ... } +# 2995| getStmt(0): [DeclStmt] declaration +# 2995| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x992 +# 2995| Type = [Struct] String +# 2995| getVariable().getInitializer(): [Initializer] initializer for x992 +# 2995| getExpr(): [ConstructorCall] call to String +# 2995| Type = [VoidType] void +# 2995| ValueCategory = prvalue +# 2996| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2996| Type = [VoidType] void +# 2996| ValueCategory = prvalue +# 2996| getQualifier(): [VariableAccess] x992 +# 2996| Type = [Struct] String +# 2996| ValueCategory = lvalue +# 2996| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2996| Conversion = [BoolConversion] conversion to bool +# 2996| Type = [BoolType] bool +# 2996| Value = [CStyleCast] 0 +# 2996| ValueCategory = prvalue +# 2997| getStmt(993): [DoStmt] do (...) ... +# 2999| getCondition(): [Literal] 0 +# 2999| Type = [IntType] int +# 2999| Value = [Literal] 0 +# 2999| ValueCategory = prvalue +# 2997| getStmt(): [BlockStmt] { ... } +# 2998| getStmt(0): [DeclStmt] declaration +# 2998| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x993 +# 2998| Type = [Struct] String +# 2998| getVariable().getInitializer(): [Initializer] initializer for x993 +# 2998| getExpr(): [ConstructorCall] call to String +# 2998| Type = [VoidType] void +# 2998| ValueCategory = prvalue +# 2999| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 2999| Type = [VoidType] void +# 2999| ValueCategory = prvalue +# 2999| getQualifier(): [VariableAccess] x993 +# 2999| Type = [Struct] String +# 2999| ValueCategory = lvalue +# 2999| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 2999| Conversion = [BoolConversion] conversion to bool +# 2999| Type = [BoolType] bool +# 2999| Value = [CStyleCast] 0 +# 2999| ValueCategory = prvalue +# 3000| getStmt(994): [DoStmt] do (...) ... +# 3002| getCondition(): [Literal] 0 +# 3002| Type = [IntType] int +# 3002| Value = [Literal] 0 +# 3002| ValueCategory = prvalue +# 3000| getStmt(): [BlockStmt] { ... } +# 3001| getStmt(0): [DeclStmt] declaration +# 3001| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x994 +# 3001| Type = [Struct] String +# 3001| getVariable().getInitializer(): [Initializer] initializer for x994 +# 3001| getExpr(): [ConstructorCall] call to String +# 3001| Type = [VoidType] void +# 3001| ValueCategory = prvalue +# 3002| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3002| Type = [VoidType] void +# 3002| ValueCategory = prvalue +# 3002| getQualifier(): [VariableAccess] x994 +# 3002| Type = [Struct] String +# 3002| ValueCategory = lvalue +# 3002| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3002| Conversion = [BoolConversion] conversion to bool +# 3002| Type = [BoolType] bool +# 3002| Value = [CStyleCast] 0 +# 3002| ValueCategory = prvalue +# 3003| getStmt(995): [DoStmt] do (...) ... +# 3005| getCondition(): [Literal] 0 +# 3005| Type = [IntType] int +# 3005| Value = [Literal] 0 +# 3005| ValueCategory = prvalue +# 3003| getStmt(): [BlockStmt] { ... } +# 3004| getStmt(0): [DeclStmt] declaration +# 3004| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x995 +# 3004| Type = [Struct] String +# 3004| getVariable().getInitializer(): [Initializer] initializer for x995 +# 3004| getExpr(): [ConstructorCall] call to String +# 3004| Type = [VoidType] void +# 3004| ValueCategory = prvalue +# 3005| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3005| Type = [VoidType] void +# 3005| ValueCategory = prvalue +# 3005| getQualifier(): [VariableAccess] x995 +# 3005| Type = [Struct] String +# 3005| ValueCategory = lvalue +# 3005| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3005| Conversion = [BoolConversion] conversion to bool +# 3005| Type = [BoolType] bool +# 3005| Value = [CStyleCast] 0 +# 3005| ValueCategory = prvalue +# 3006| getStmt(996): [DoStmt] do (...) ... +# 3008| getCondition(): [Literal] 0 +# 3008| Type = [IntType] int +# 3008| Value = [Literal] 0 +# 3008| ValueCategory = prvalue +# 3006| getStmt(): [BlockStmt] { ... } +# 3007| getStmt(0): [DeclStmt] declaration +# 3007| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x996 +# 3007| Type = [Struct] String +# 3007| getVariable().getInitializer(): [Initializer] initializer for x996 +# 3007| getExpr(): [ConstructorCall] call to String +# 3007| Type = [VoidType] void +# 3007| ValueCategory = prvalue +# 3008| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3008| Type = [VoidType] void +# 3008| ValueCategory = prvalue +# 3008| getQualifier(): [VariableAccess] x996 +# 3008| Type = [Struct] String +# 3008| ValueCategory = lvalue +# 3008| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3008| Conversion = [BoolConversion] conversion to bool +# 3008| Type = [BoolType] bool +# 3008| Value = [CStyleCast] 0 +# 3008| ValueCategory = prvalue +# 3009| getStmt(997): [DoStmt] do (...) ... +# 3011| getCondition(): [Literal] 0 +# 3011| Type = [IntType] int +# 3011| Value = [Literal] 0 +# 3011| ValueCategory = prvalue +# 3009| getStmt(): [BlockStmt] { ... } +# 3010| getStmt(0): [DeclStmt] declaration +# 3010| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x997 +# 3010| Type = [Struct] String +# 3010| getVariable().getInitializer(): [Initializer] initializer for x997 +# 3010| getExpr(): [ConstructorCall] call to String +# 3010| Type = [VoidType] void +# 3010| ValueCategory = prvalue +# 3011| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3011| Type = [VoidType] void +# 3011| ValueCategory = prvalue +# 3011| getQualifier(): [VariableAccess] x997 +# 3011| Type = [Struct] String +# 3011| ValueCategory = lvalue +# 3011| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3011| Conversion = [BoolConversion] conversion to bool +# 3011| Type = [BoolType] bool +# 3011| Value = [CStyleCast] 0 +# 3011| ValueCategory = prvalue +# 3012| getStmt(998): [DoStmt] do (...) ... +# 3014| getCondition(): [Literal] 0 +# 3014| Type = [IntType] int +# 3014| Value = [Literal] 0 +# 3014| ValueCategory = prvalue +# 3012| getStmt(): [BlockStmt] { ... } +# 3013| getStmt(0): [DeclStmt] declaration +# 3013| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x998 +# 3013| Type = [Struct] String +# 3013| getVariable().getInitializer(): [Initializer] initializer for x998 +# 3013| getExpr(): [ConstructorCall] call to String +# 3013| Type = [VoidType] void +# 3013| ValueCategory = prvalue +# 3014| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3014| Type = [VoidType] void +# 3014| ValueCategory = prvalue +# 3014| getQualifier(): [VariableAccess] x998 +# 3014| Type = [Struct] String +# 3014| ValueCategory = lvalue +# 3014| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3014| Conversion = [BoolConversion] conversion to bool +# 3014| Type = [BoolType] bool +# 3014| Value = [CStyleCast] 0 +# 3014| ValueCategory = prvalue +# 3015| getStmt(999): [DoStmt] do (...) ... +# 3017| getCondition(): [Literal] 0 +# 3017| Type = [IntType] int +# 3017| Value = [Literal] 0 +# 3017| ValueCategory = prvalue +# 3015| getStmt(): [BlockStmt] { ... } +# 3016| getStmt(0): [DeclStmt] declaration +# 3016| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x999 +# 3016| Type = [Struct] String +# 3016| getVariable().getInitializer(): [Initializer] initializer for x999 +# 3016| getExpr(): [ConstructorCall] call to String +# 3016| Type = [VoidType] void +# 3016| ValueCategory = prvalue +# 3017| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3017| Type = [VoidType] void +# 3017| ValueCategory = prvalue +# 3017| getQualifier(): [VariableAccess] x999 +# 3017| Type = [Struct] String +# 3017| ValueCategory = lvalue +# 3017| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3017| Conversion = [BoolConversion] conversion to bool +# 3017| Type = [BoolType] bool +# 3017| Value = [CStyleCast] 0 +# 3017| ValueCategory = prvalue +# 3018| getStmt(1000): [DoStmt] do (...) ... +# 3020| getCondition(): [Literal] 0 +# 3020| Type = [IntType] int +# 3020| Value = [Literal] 0 +# 3020| ValueCategory = prvalue +# 3018| getStmt(): [BlockStmt] { ... } +# 3019| getStmt(0): [DeclStmt] declaration +# 3019| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1000 +# 3019| Type = [Struct] String +# 3019| getVariable().getInitializer(): [Initializer] initializer for x1000 +# 3019| getExpr(): [ConstructorCall] call to String +# 3019| Type = [VoidType] void +# 3019| ValueCategory = prvalue +# 3020| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3020| Type = [VoidType] void +# 3020| ValueCategory = prvalue +# 3020| getQualifier(): [VariableAccess] x1000 +# 3020| Type = [Struct] String +# 3020| ValueCategory = lvalue +# 3020| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3020| Conversion = [BoolConversion] conversion to bool +# 3020| Type = [BoolType] bool +# 3020| Value = [CStyleCast] 0 +# 3020| ValueCategory = prvalue +# 3021| getStmt(1001): [DoStmt] do (...) ... +# 3023| getCondition(): [Literal] 0 +# 3023| Type = [IntType] int +# 3023| Value = [Literal] 0 +# 3023| ValueCategory = prvalue +# 3021| getStmt(): [BlockStmt] { ... } +# 3022| getStmt(0): [DeclStmt] declaration +# 3022| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1001 +# 3022| Type = [Struct] String +# 3022| getVariable().getInitializer(): [Initializer] initializer for x1001 +# 3022| getExpr(): [ConstructorCall] call to String +# 3022| Type = [VoidType] void +# 3022| ValueCategory = prvalue +# 3023| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3023| Type = [VoidType] void +# 3023| ValueCategory = prvalue +# 3023| getQualifier(): [VariableAccess] x1001 +# 3023| Type = [Struct] String +# 3023| ValueCategory = lvalue +# 3023| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3023| Conversion = [BoolConversion] conversion to bool +# 3023| Type = [BoolType] bool +# 3023| Value = [CStyleCast] 0 +# 3023| ValueCategory = prvalue +# 3024| getStmt(1002): [DoStmt] do (...) ... +# 3026| getCondition(): [Literal] 0 +# 3026| Type = [IntType] int +# 3026| Value = [Literal] 0 +# 3026| ValueCategory = prvalue +# 3024| getStmt(): [BlockStmt] { ... } +# 3025| getStmt(0): [DeclStmt] declaration +# 3025| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1002 +# 3025| Type = [Struct] String +# 3025| getVariable().getInitializer(): [Initializer] initializer for x1002 +# 3025| getExpr(): [ConstructorCall] call to String +# 3025| Type = [VoidType] void +# 3025| ValueCategory = prvalue +# 3026| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3026| Type = [VoidType] void +# 3026| ValueCategory = prvalue +# 3026| getQualifier(): [VariableAccess] x1002 +# 3026| Type = [Struct] String +# 3026| ValueCategory = lvalue +# 3026| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3026| Conversion = [BoolConversion] conversion to bool +# 3026| Type = [BoolType] bool +# 3026| Value = [CStyleCast] 0 +# 3026| ValueCategory = prvalue +# 3027| getStmt(1003): [DoStmt] do (...) ... +# 3029| getCondition(): [Literal] 0 +# 3029| Type = [IntType] int +# 3029| Value = [Literal] 0 +# 3029| ValueCategory = prvalue +# 3027| getStmt(): [BlockStmt] { ... } +# 3028| getStmt(0): [DeclStmt] declaration +# 3028| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1003 +# 3028| Type = [Struct] String +# 3028| getVariable().getInitializer(): [Initializer] initializer for x1003 +# 3028| getExpr(): [ConstructorCall] call to String +# 3028| Type = [VoidType] void +# 3028| ValueCategory = prvalue +# 3029| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3029| Type = [VoidType] void +# 3029| ValueCategory = prvalue +# 3029| getQualifier(): [VariableAccess] x1003 +# 3029| Type = [Struct] String +# 3029| ValueCategory = lvalue +# 3029| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3029| Conversion = [BoolConversion] conversion to bool +# 3029| Type = [BoolType] bool +# 3029| Value = [CStyleCast] 0 +# 3029| ValueCategory = prvalue +# 3030| getStmt(1004): [DoStmt] do (...) ... +# 3032| getCondition(): [Literal] 0 +# 3032| Type = [IntType] int +# 3032| Value = [Literal] 0 +# 3032| ValueCategory = prvalue +# 3030| getStmt(): [BlockStmt] { ... } +# 3031| getStmt(0): [DeclStmt] declaration +# 3031| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1004 +# 3031| Type = [Struct] String +# 3031| getVariable().getInitializer(): [Initializer] initializer for x1004 +# 3031| getExpr(): [ConstructorCall] call to String +# 3031| Type = [VoidType] void +# 3031| ValueCategory = prvalue +# 3032| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3032| Type = [VoidType] void +# 3032| ValueCategory = prvalue +# 3032| getQualifier(): [VariableAccess] x1004 +# 3032| Type = [Struct] String +# 3032| ValueCategory = lvalue +# 3032| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3032| Conversion = [BoolConversion] conversion to bool +# 3032| Type = [BoolType] bool +# 3032| Value = [CStyleCast] 0 +# 3032| ValueCategory = prvalue +# 3033| getStmt(1005): [DoStmt] do (...) ... +# 3035| getCondition(): [Literal] 0 +# 3035| Type = [IntType] int +# 3035| Value = [Literal] 0 +# 3035| ValueCategory = prvalue +# 3033| getStmt(): [BlockStmt] { ... } +# 3034| getStmt(0): [DeclStmt] declaration +# 3034| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1005 +# 3034| Type = [Struct] String +# 3034| getVariable().getInitializer(): [Initializer] initializer for x1005 +# 3034| getExpr(): [ConstructorCall] call to String +# 3034| Type = [VoidType] void +# 3034| ValueCategory = prvalue +# 3035| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3035| Type = [VoidType] void +# 3035| ValueCategory = prvalue +# 3035| getQualifier(): [VariableAccess] x1005 +# 3035| Type = [Struct] String +# 3035| ValueCategory = lvalue +# 3035| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3035| Conversion = [BoolConversion] conversion to bool +# 3035| Type = [BoolType] bool +# 3035| Value = [CStyleCast] 0 +# 3035| ValueCategory = prvalue +# 3036| getStmt(1006): [DoStmt] do (...) ... +# 3038| getCondition(): [Literal] 0 +# 3038| Type = [IntType] int +# 3038| Value = [Literal] 0 +# 3038| ValueCategory = prvalue +# 3036| getStmt(): [BlockStmt] { ... } +# 3037| getStmt(0): [DeclStmt] declaration +# 3037| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1006 +# 3037| Type = [Struct] String +# 3037| getVariable().getInitializer(): [Initializer] initializer for x1006 +# 3037| getExpr(): [ConstructorCall] call to String +# 3037| Type = [VoidType] void +# 3037| ValueCategory = prvalue +# 3038| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3038| Type = [VoidType] void +# 3038| ValueCategory = prvalue +# 3038| getQualifier(): [VariableAccess] x1006 +# 3038| Type = [Struct] String +# 3038| ValueCategory = lvalue +# 3038| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3038| Conversion = [BoolConversion] conversion to bool +# 3038| Type = [BoolType] bool +# 3038| Value = [CStyleCast] 0 +# 3038| ValueCategory = prvalue +# 3039| getStmt(1007): [DoStmt] do (...) ... +# 3041| getCondition(): [Literal] 0 +# 3041| Type = [IntType] int +# 3041| Value = [Literal] 0 +# 3041| ValueCategory = prvalue +# 3039| getStmt(): [BlockStmt] { ... } +# 3040| getStmt(0): [DeclStmt] declaration +# 3040| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1007 +# 3040| Type = [Struct] String +# 3040| getVariable().getInitializer(): [Initializer] initializer for x1007 +# 3040| getExpr(): [ConstructorCall] call to String +# 3040| Type = [VoidType] void +# 3040| ValueCategory = prvalue +# 3041| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3041| Type = [VoidType] void +# 3041| ValueCategory = prvalue +# 3041| getQualifier(): [VariableAccess] x1007 +# 3041| Type = [Struct] String +# 3041| ValueCategory = lvalue +# 3041| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3041| Conversion = [BoolConversion] conversion to bool +# 3041| Type = [BoolType] bool +# 3041| Value = [CStyleCast] 0 +# 3041| ValueCategory = prvalue +# 3042| getStmt(1008): [DoStmt] do (...) ... +# 3044| getCondition(): [Literal] 0 +# 3044| Type = [IntType] int +# 3044| Value = [Literal] 0 +# 3044| ValueCategory = prvalue +# 3042| getStmt(): [BlockStmt] { ... } +# 3043| getStmt(0): [DeclStmt] declaration +# 3043| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1008 +# 3043| Type = [Struct] String +# 3043| getVariable().getInitializer(): [Initializer] initializer for x1008 +# 3043| getExpr(): [ConstructorCall] call to String +# 3043| Type = [VoidType] void +# 3043| ValueCategory = prvalue +# 3044| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3044| Type = [VoidType] void +# 3044| ValueCategory = prvalue +# 3044| getQualifier(): [VariableAccess] x1008 +# 3044| Type = [Struct] String +# 3044| ValueCategory = lvalue +# 3044| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3044| Conversion = [BoolConversion] conversion to bool +# 3044| Type = [BoolType] bool +# 3044| Value = [CStyleCast] 0 +# 3044| ValueCategory = prvalue +# 3045| getStmt(1009): [DoStmt] do (...) ... +# 3047| getCondition(): [Literal] 0 +# 3047| Type = [IntType] int +# 3047| Value = [Literal] 0 +# 3047| ValueCategory = prvalue +# 3045| getStmt(): [BlockStmt] { ... } +# 3046| getStmt(0): [DeclStmt] declaration +# 3046| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1009 +# 3046| Type = [Struct] String +# 3046| getVariable().getInitializer(): [Initializer] initializer for x1009 +# 3046| getExpr(): [ConstructorCall] call to String +# 3046| Type = [VoidType] void +# 3046| ValueCategory = prvalue +# 3047| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3047| Type = [VoidType] void +# 3047| ValueCategory = prvalue +# 3047| getQualifier(): [VariableAccess] x1009 +# 3047| Type = [Struct] String +# 3047| ValueCategory = lvalue +# 3047| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3047| Conversion = [BoolConversion] conversion to bool +# 3047| Type = [BoolType] bool +# 3047| Value = [CStyleCast] 0 +# 3047| ValueCategory = prvalue +# 3048| getStmt(1010): [DoStmt] do (...) ... +# 3050| getCondition(): [Literal] 0 +# 3050| Type = [IntType] int +# 3050| Value = [Literal] 0 +# 3050| ValueCategory = prvalue +# 3048| getStmt(): [BlockStmt] { ... } +# 3049| getStmt(0): [DeclStmt] declaration +# 3049| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1010 +# 3049| Type = [Struct] String +# 3049| getVariable().getInitializer(): [Initializer] initializer for x1010 +# 3049| getExpr(): [ConstructorCall] call to String +# 3049| Type = [VoidType] void +# 3049| ValueCategory = prvalue +# 3050| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3050| Type = [VoidType] void +# 3050| ValueCategory = prvalue +# 3050| getQualifier(): [VariableAccess] x1010 +# 3050| Type = [Struct] String +# 3050| ValueCategory = lvalue +# 3050| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3050| Conversion = [BoolConversion] conversion to bool +# 3050| Type = [BoolType] bool +# 3050| Value = [CStyleCast] 0 +# 3050| ValueCategory = prvalue +# 3051| getStmt(1011): [DoStmt] do (...) ... +# 3053| getCondition(): [Literal] 0 +# 3053| Type = [IntType] int +# 3053| Value = [Literal] 0 +# 3053| ValueCategory = prvalue +# 3051| getStmt(): [BlockStmt] { ... } +# 3052| getStmt(0): [DeclStmt] declaration +# 3052| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1011 +# 3052| Type = [Struct] String +# 3052| getVariable().getInitializer(): [Initializer] initializer for x1011 +# 3052| getExpr(): [ConstructorCall] call to String +# 3052| Type = [VoidType] void +# 3052| ValueCategory = prvalue +# 3053| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3053| Type = [VoidType] void +# 3053| ValueCategory = prvalue +# 3053| getQualifier(): [VariableAccess] x1011 +# 3053| Type = [Struct] String +# 3053| ValueCategory = lvalue +# 3053| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3053| Conversion = [BoolConversion] conversion to bool +# 3053| Type = [BoolType] bool +# 3053| Value = [CStyleCast] 0 +# 3053| ValueCategory = prvalue +# 3054| getStmt(1012): [DoStmt] do (...) ... +# 3056| getCondition(): [Literal] 0 +# 3056| Type = [IntType] int +# 3056| Value = [Literal] 0 +# 3056| ValueCategory = prvalue +# 3054| getStmt(): [BlockStmt] { ... } +# 3055| getStmt(0): [DeclStmt] declaration +# 3055| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1012 +# 3055| Type = [Struct] String +# 3055| getVariable().getInitializer(): [Initializer] initializer for x1012 +# 3055| getExpr(): [ConstructorCall] call to String +# 3055| Type = [VoidType] void +# 3055| ValueCategory = prvalue +# 3056| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3056| Type = [VoidType] void +# 3056| ValueCategory = prvalue +# 3056| getQualifier(): [VariableAccess] x1012 +# 3056| Type = [Struct] String +# 3056| ValueCategory = lvalue +# 3056| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3056| Conversion = [BoolConversion] conversion to bool +# 3056| Type = [BoolType] bool +# 3056| Value = [CStyleCast] 0 +# 3056| ValueCategory = prvalue +# 3057| getStmt(1013): [DoStmt] do (...) ... +# 3059| getCondition(): [Literal] 0 +# 3059| Type = [IntType] int +# 3059| Value = [Literal] 0 +# 3059| ValueCategory = prvalue +# 3057| getStmt(): [BlockStmt] { ... } +# 3058| getStmt(0): [DeclStmt] declaration +# 3058| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1013 +# 3058| Type = [Struct] String +# 3058| getVariable().getInitializer(): [Initializer] initializer for x1013 +# 3058| getExpr(): [ConstructorCall] call to String +# 3058| Type = [VoidType] void +# 3058| ValueCategory = prvalue +# 3059| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3059| Type = [VoidType] void +# 3059| ValueCategory = prvalue +# 3059| getQualifier(): [VariableAccess] x1013 +# 3059| Type = [Struct] String +# 3059| ValueCategory = lvalue +# 3059| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3059| Conversion = [BoolConversion] conversion to bool +# 3059| Type = [BoolType] bool +# 3059| Value = [CStyleCast] 0 +# 3059| ValueCategory = prvalue +# 3060| getStmt(1014): [DoStmt] do (...) ... +# 3062| getCondition(): [Literal] 0 +# 3062| Type = [IntType] int +# 3062| Value = [Literal] 0 +# 3062| ValueCategory = prvalue +# 3060| getStmt(): [BlockStmt] { ... } +# 3061| getStmt(0): [DeclStmt] declaration +# 3061| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1014 +# 3061| Type = [Struct] String +# 3061| getVariable().getInitializer(): [Initializer] initializer for x1014 +# 3061| getExpr(): [ConstructorCall] call to String +# 3061| Type = [VoidType] void +# 3061| ValueCategory = prvalue +# 3062| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3062| Type = [VoidType] void +# 3062| ValueCategory = prvalue +# 3062| getQualifier(): [VariableAccess] x1014 +# 3062| Type = [Struct] String +# 3062| ValueCategory = lvalue +# 3062| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3062| Conversion = [BoolConversion] conversion to bool +# 3062| Type = [BoolType] bool +# 3062| Value = [CStyleCast] 0 +# 3062| ValueCategory = prvalue +# 3063| getStmt(1015): [DoStmt] do (...) ... +# 3065| getCondition(): [Literal] 0 +# 3065| Type = [IntType] int +# 3065| Value = [Literal] 0 +# 3065| ValueCategory = prvalue +# 3063| getStmt(): [BlockStmt] { ... } +# 3064| getStmt(0): [DeclStmt] declaration +# 3064| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1015 +# 3064| Type = [Struct] String +# 3064| getVariable().getInitializer(): [Initializer] initializer for x1015 +# 3064| getExpr(): [ConstructorCall] call to String +# 3064| Type = [VoidType] void +# 3064| ValueCategory = prvalue +# 3065| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3065| Type = [VoidType] void +# 3065| ValueCategory = prvalue +# 3065| getQualifier(): [VariableAccess] x1015 +# 3065| Type = [Struct] String +# 3065| ValueCategory = lvalue +# 3065| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3065| Conversion = [BoolConversion] conversion to bool +# 3065| Type = [BoolType] bool +# 3065| Value = [CStyleCast] 0 +# 3065| ValueCategory = prvalue +# 3066| getStmt(1016): [DoStmt] do (...) ... +# 3068| getCondition(): [Literal] 0 +# 3068| Type = [IntType] int +# 3068| Value = [Literal] 0 +# 3068| ValueCategory = prvalue +# 3066| getStmt(): [BlockStmt] { ... } +# 3067| getStmt(0): [DeclStmt] declaration +# 3067| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1016 +# 3067| Type = [Struct] String +# 3067| getVariable().getInitializer(): [Initializer] initializer for x1016 +# 3067| getExpr(): [ConstructorCall] call to String +# 3067| Type = [VoidType] void +# 3067| ValueCategory = prvalue +# 3068| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3068| Type = [VoidType] void +# 3068| ValueCategory = prvalue +# 3068| getQualifier(): [VariableAccess] x1016 +# 3068| Type = [Struct] String +# 3068| ValueCategory = lvalue +# 3068| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3068| Conversion = [BoolConversion] conversion to bool +# 3068| Type = [BoolType] bool +# 3068| Value = [CStyleCast] 0 +# 3068| ValueCategory = prvalue +# 3069| getStmt(1017): [DoStmt] do (...) ... +# 3071| getCondition(): [Literal] 0 +# 3071| Type = [IntType] int +# 3071| Value = [Literal] 0 +# 3071| ValueCategory = prvalue +# 3069| getStmt(): [BlockStmt] { ... } +# 3070| getStmt(0): [DeclStmt] declaration +# 3070| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1017 +# 3070| Type = [Struct] String +# 3070| getVariable().getInitializer(): [Initializer] initializer for x1017 +# 3070| getExpr(): [ConstructorCall] call to String +# 3070| Type = [VoidType] void +# 3070| ValueCategory = prvalue +# 3071| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3071| Type = [VoidType] void +# 3071| ValueCategory = prvalue +# 3071| getQualifier(): [VariableAccess] x1017 +# 3071| Type = [Struct] String +# 3071| ValueCategory = lvalue +# 3071| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3071| Conversion = [BoolConversion] conversion to bool +# 3071| Type = [BoolType] bool +# 3071| Value = [CStyleCast] 0 +# 3071| ValueCategory = prvalue +# 3072| getStmt(1018): [DoStmt] do (...) ... +# 3074| getCondition(): [Literal] 0 +# 3074| Type = [IntType] int +# 3074| Value = [Literal] 0 +# 3074| ValueCategory = prvalue +# 3072| getStmt(): [BlockStmt] { ... } +# 3073| getStmt(0): [DeclStmt] declaration +# 3073| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1018 +# 3073| Type = [Struct] String +# 3073| getVariable().getInitializer(): [Initializer] initializer for x1018 +# 3073| getExpr(): [ConstructorCall] call to String +# 3073| Type = [VoidType] void +# 3073| ValueCategory = prvalue +# 3074| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3074| Type = [VoidType] void +# 3074| ValueCategory = prvalue +# 3074| getQualifier(): [VariableAccess] x1018 +# 3074| Type = [Struct] String +# 3074| ValueCategory = lvalue +# 3074| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3074| Conversion = [BoolConversion] conversion to bool +# 3074| Type = [BoolType] bool +# 3074| Value = [CStyleCast] 0 +# 3074| ValueCategory = prvalue +# 3075| getStmt(1019): [DoStmt] do (...) ... +# 3077| getCondition(): [Literal] 0 +# 3077| Type = [IntType] int +# 3077| Value = [Literal] 0 +# 3077| ValueCategory = prvalue +# 3075| getStmt(): [BlockStmt] { ... } +# 3076| getStmt(0): [DeclStmt] declaration +# 3076| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1019 +# 3076| Type = [Struct] String +# 3076| getVariable().getInitializer(): [Initializer] initializer for x1019 +# 3076| getExpr(): [ConstructorCall] call to String +# 3076| Type = [VoidType] void +# 3076| ValueCategory = prvalue +# 3077| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3077| Type = [VoidType] void +# 3077| ValueCategory = prvalue +# 3077| getQualifier(): [VariableAccess] x1019 +# 3077| Type = [Struct] String +# 3077| ValueCategory = lvalue +# 3077| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3077| Conversion = [BoolConversion] conversion to bool +# 3077| Type = [BoolType] bool +# 3077| Value = [CStyleCast] 0 +# 3077| ValueCategory = prvalue +# 3078| getStmt(1020): [DoStmt] do (...) ... +# 3080| getCondition(): [Literal] 0 +# 3080| Type = [IntType] int +# 3080| Value = [Literal] 0 +# 3080| ValueCategory = prvalue +# 3078| getStmt(): [BlockStmt] { ... } +# 3079| getStmt(0): [DeclStmt] declaration +# 3079| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1020 +# 3079| Type = [Struct] String +# 3079| getVariable().getInitializer(): [Initializer] initializer for x1020 +# 3079| getExpr(): [ConstructorCall] call to String +# 3079| Type = [VoidType] void +# 3079| ValueCategory = prvalue +# 3080| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3080| Type = [VoidType] void +# 3080| ValueCategory = prvalue +# 3080| getQualifier(): [VariableAccess] x1020 +# 3080| Type = [Struct] String +# 3080| ValueCategory = lvalue +# 3080| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3080| Conversion = [BoolConversion] conversion to bool +# 3080| Type = [BoolType] bool +# 3080| Value = [CStyleCast] 0 +# 3080| ValueCategory = prvalue +# 3081| getStmt(1021): [DoStmt] do (...) ... +# 3083| getCondition(): [Literal] 0 +# 3083| Type = [IntType] int +# 3083| Value = [Literal] 0 +# 3083| ValueCategory = prvalue +# 3081| getStmt(): [BlockStmt] { ... } +# 3082| getStmt(0): [DeclStmt] declaration +# 3082| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1021 +# 3082| Type = [Struct] String +# 3082| getVariable().getInitializer(): [Initializer] initializer for x1021 +# 3082| getExpr(): [ConstructorCall] call to String +# 3082| Type = [VoidType] void +# 3082| ValueCategory = prvalue +# 3083| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3083| Type = [VoidType] void +# 3083| ValueCategory = prvalue +# 3083| getQualifier(): [VariableAccess] x1021 +# 3083| Type = [Struct] String +# 3083| ValueCategory = lvalue +# 3083| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3083| Conversion = [BoolConversion] conversion to bool +# 3083| Type = [BoolType] bool +# 3083| Value = [CStyleCast] 0 +# 3083| ValueCategory = prvalue +# 3084| getStmt(1022): [DoStmt] do (...) ... +# 3086| getCondition(): [Literal] 0 +# 3086| Type = [IntType] int +# 3086| Value = [Literal] 0 +# 3086| ValueCategory = prvalue +# 3084| getStmt(): [BlockStmt] { ... } +# 3085| getStmt(0): [DeclStmt] declaration +# 3085| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1022 +# 3085| Type = [Struct] String +# 3085| getVariable().getInitializer(): [Initializer] initializer for x1022 +# 3085| getExpr(): [ConstructorCall] call to String +# 3085| Type = [VoidType] void +# 3085| ValueCategory = prvalue +# 3086| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3086| Type = [VoidType] void +# 3086| ValueCategory = prvalue +# 3086| getQualifier(): [VariableAccess] x1022 +# 3086| Type = [Struct] String +# 3086| ValueCategory = lvalue +# 3086| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3086| Conversion = [BoolConversion] conversion to bool +# 3086| Type = [BoolType] bool +# 3086| Value = [CStyleCast] 0 +# 3086| ValueCategory = prvalue +# 3087| getStmt(1023): [DoStmt] do (...) ... +# 3089| getCondition(): [Literal] 0 +# 3089| Type = [IntType] int +# 3089| Value = [Literal] 0 +# 3089| ValueCategory = prvalue +# 3087| getStmt(): [BlockStmt] { ... } +# 3088| getStmt(0): [DeclStmt] declaration +# 3088| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1023 +# 3088| Type = [Struct] String +# 3088| getVariable().getInitializer(): [Initializer] initializer for x1023 +# 3088| getExpr(): [ConstructorCall] call to String +# 3088| Type = [VoidType] void +# 3088| ValueCategory = prvalue +# 3089| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3089| Type = [VoidType] void +# 3089| ValueCategory = prvalue +# 3089| getQualifier(): [VariableAccess] x1023 +# 3089| Type = [Struct] String +# 3089| ValueCategory = lvalue +# 3089| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3089| Conversion = [BoolConversion] conversion to bool +# 3089| Type = [BoolType] bool +# 3089| Value = [CStyleCast] 0 +# 3089| ValueCategory = prvalue +# 3090| getStmt(1024): [DoStmt] do (...) ... +# 3092| getCondition(): [Literal] 0 +# 3092| Type = [IntType] int +# 3092| Value = [Literal] 0 +# 3092| ValueCategory = prvalue +# 3090| getStmt(): [BlockStmt] { ... } +# 3091| getStmt(0): [DeclStmt] declaration +# 3091| getDeclarationEntry(0): [VariableDeclarationEntry] definition of x1024 +# 3091| Type = [Struct] String +# 3091| getVariable().getInitializer(): [Initializer] initializer for x1024 +# 3091| getExpr(): [ConstructorCall] call to String +# 3091| Type = [VoidType] void +# 3091| ValueCategory = prvalue +# 3092| getImplicitDestructorCall(0): [DestructorCall] call to ~String +# 3092| Type = [VoidType] void +# 3092| ValueCategory = prvalue +# 3092| getQualifier(): [VariableAccess] x1024 +# 3092| Type = [Struct] String +# 3092| ValueCategory = lvalue +# 3092| getCondition().getFullyConverted(): [CStyleCast] (bool)... +# 3092| Conversion = [BoolConversion] conversion to bool +# 3092| Type = [BoolType] bool +# 3092| Value = [CStyleCast] 0 +# 3092| ValueCategory = prvalue +# 3093| getStmt(1025): [ReturnStmt] return ... perf-regression.cpp: # 4| [CopyAssignmentOperator] Big& Big::operator=(Big const&) # 4| : diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index ea445b599fa49..1dc8dbe70145f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -15538,230 +15538,219 @@ ir.cpp: # 2215| m2215_8(ClassWithDestructor) = Chi : total:m2215_2, partial:m2215_7 # 2216| r2216_1(glval>) = VariableAddress[ys] : # 2216| m2216_2(vector) = Uninitialized[ys] : &:r2216_1 -# 2216| m2216_3(unknown) = Chi : total:m2215_6, partial:m2216_2 -# 2216| r2216_4(glval) = FunctionAddress[vector] : -# 2216| r2216_5(glval) = VariableAddress[#temp2216:45] : -# 2216| r2216_6(glval) = VariableAddress[x] : -# 2216| r2216_7(ClassWithDestructor) = Load[x] : &:r2216_6, m2215_8 -# 2216| m2216_8(ClassWithDestructor) = Store[#temp2216:45] : &:r2216_5, r2216_7 -# 2216| r2216_9(ClassWithDestructor) = Load[#temp2216:45] : &:r2216_5, m2216_8 -# 2216| v2216_10(void) = Call[vector] : func:r2216_4, this:r2216_1, 0:r2216_9 -# 2216| m2216_11(unknown) = ^CallSideEffect : ~m2216_3 -# 2216| m2216_12(unknown) = Chi : total:m2216_3, partial:m2216_11 -# 2216| m2216_13(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 -# 2216| m2216_14(unknown) = Chi : total:m2216_12, partial:m2216_13 -# 2216| r2216_15(glval) = CopyValue : r2216_5 -# 2216| r2216_16(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_17(void) = Call[~ClassWithDestructor] : func:r2216_16, this:r2216_15 -# 2216| m2216_18(unknown) = ^CallSideEffect : ~m2216_14 -# 2216| m2216_19(unknown) = Chi : total:m2216_14, partial:m2216_18 -# 2216| v2216_20(void) = ^IndirectReadSideEffect[-1] : &:r2216_15, m2216_8 -# 2216| m2216_21(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_15 -# 2216| m2216_22(ClassWithDestructor) = Chi : total:m2216_8, partial:m2216_21 -# 2216| r2216_23(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_24(glval>) = VariableAddress[ys] : -# 2216| r2216_25(vector &) = CopyValue : r2216_24 -# 2216| m2216_26(vector &) = Store[(__range)] : &:r2216_23, r2216_25 -# 2216| r2216_27(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_28(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_29(vector &) = Load[(__range)] : &:r2216_28, m2216_26 -#-----| r0_1(glval>) = CopyValue : r2216_29 +# 2216| r2216_3(glval) = FunctionAddress[vector] : +# 2216| r2216_4(glval) = VariableAddress[#temp2216:45] : +# 2216| r2216_5(glval) = VariableAddress[x] : +# 2216| r2216_6(ClassWithDestructor) = Load[x] : &:r2216_5, m2215_8 +# 2216| m2216_7(ClassWithDestructor) = Store[#temp2216:45] : &:r2216_4, r2216_6 +# 2216| r2216_8(ClassWithDestructor) = Load[#temp2216:45] : &:r2216_4, m2216_7 +# 2216| v2216_9(void) = Call[vector] : func:r2216_3, this:r2216_1, 0:r2216_8 +# 2216| m2216_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_1 +# 2216| r2216_11(glval) = CopyValue : r2216_4 +# 2216| r2216_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2216| v2216_13(void) = Call[~ClassWithDestructor] : func:r2216_12, this:r2216_11 +# 2216| m2216_14(unknown) = ^CallSideEffect : ~m2215_6 +# 2216| m2216_15(unknown) = Chi : total:m2215_6, partial:m2216_14 +# 2216| v2216_16(void) = ^IndirectReadSideEffect[-1] : &:r2216_11, m2216_7 +# 2216| m2216_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_11 +# 2216| m2216_18(ClassWithDestructor) = Chi : total:m2216_7, partial:m2216_17 +# 2216| r2216_19(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_20(glval>) = VariableAddress[ys] : +# 2216| r2216_21(vector &) = CopyValue : r2216_20 +# 2216| m2216_22(vector &) = Store[(__range)] : &:r2216_19, r2216_21 +# 2216| r2216_23(glval>) = VariableAddress[(__begin)] : +# 2216| r2216_24(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_25(vector &) = Load[(__range)] : &:r2216_24, m2216_22 +#-----| r0_1(glval>) = CopyValue : r2216_25 #-----| r0_2(glval>) = Convert : r0_1 -# 2216| r2216_30(glval) = FunctionAddress[begin] : -# 2216| r2216_31(iterator) = Call[begin] : func:r2216_30, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m2216_19 -# 2216| m2216_32(iterator) = Store[(__begin)] : &:r2216_27, r2216_31 -# 2216| r2216_33(glval>) = VariableAddress[(__end)] : -# 2216| r2216_34(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_35(vector &) = Load[(__range)] : &:r2216_34, m2216_26 -#-----| r0_4(glval>) = CopyValue : r2216_35 +# 2216| r2216_26(glval) = FunctionAddress[begin] : +# 2216| r2216_27(iterator) = Call[begin] : func:r2216_26, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2216_10 +# 2216| m2216_28(iterator) = Store[(__begin)] : &:r2216_23, r2216_27 +# 2216| r2216_29(glval>) = VariableAddress[(__end)] : +# 2216| r2216_30(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_31(vector &) = Load[(__range)] : &:r2216_30, m2216_22 +#-----| r0_4(glval>) = CopyValue : r2216_31 #-----| r0_5(glval>) = Convert : r0_4 -# 2216| r2216_36(glval) = FunctionAddress[end] : -# 2216| r2216_37(iterator) = Call[end] : func:r2216_36, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m2216_19 -# 2216| m2216_38(iterator) = Store[(__end)] : &:r2216_33, r2216_37 -# 2216| m2216_39(unknown) = Chi : total:m2216_19, partial:m2216_38 +# 2216| r2216_32(glval) = FunctionAddress[end] : +# 2216| r2216_33(iterator) = Call[end] : func:r2216_32, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2216_10 +# 2216| m2216_34(iterator) = Store[(__end)] : &:r2216_29, r2216_33 +# 2216| m2216_35(unknown) = Chi : total:m2216_15, partial:m2216_34 #-----| Goto -> Block 8 # 2216| Block 8 -# 2216| m2216_40(iterator) = Phi : from 7:m2216_32, from 9:m2216_64 -# 2216| m2216_41(unknown) = Phi : from 7:~m2216_39, from 9:~m2216_69 -# 2216| r2216_42(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2216_42 -# 2216| r2216_43(glval) = FunctionAddress[operator!=] : +# 2216| m2216_36(iterator) = Phi : from 7:m2216_28, from 9:m2216_60 +# 2216| m2216_37(unknown) = Phi : from 7:~m2216_35, from 9:~m2216_65 +# 2216| r2216_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2216_38 +# 2216| r2216_39(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2216_41, partial:m0_9 -# 2216| r2216_44(glval) = FunctionAddress[iterator] : -# 2216| r2216_45(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2216_45 +#-----| m0_10(unknown) = Chi : total:m2216_37, partial:m0_9 +# 2216| r2216_40(glval) = FunctionAddress[iterator] : +# 2216| r2216_41(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2216_41 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2216| v2216_46(void) = Call[iterator] : func:r2216_44, this:r0_8, 0:r0_12 -# 2216| m2216_47(unknown) = ^CallSideEffect : ~m0_10 -# 2216| m2216_48(unknown) = Chi : total:m0_10, partial:m2216_47 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2216_48 -# 2216| m2216_49(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2216| m2216_50(unknown) = Chi : total:m2216_48, partial:m2216_49 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2216_50 -# 2216| r2216_51(bool) = Call[operator!=] : func:r2216_43, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2216_40 -# 2216| v2216_52(void) = ConditionalBranch : r2216_51 +# 2216| v2216_42(void) = Call[iterator] : func:r2216_40, this:r0_8, 0:r0_12 +# 2216| m2216_43(unknown) = ^CallSideEffect : ~m0_10 +# 2216| m2216_44(unknown) = Chi : total:m0_10, partial:m2216_43 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2216_44 +# 2216| m2216_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2216| m2216_46(unknown) = Chi : total:m2216_44, partial:m2216_45 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2216_46 +# 2216| r2216_47(bool) = Call[operator!=] : func:r2216_39, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2216_36 +# 2216| v2216_48(void) = ConditionalBranch : r2216_47 #-----| False -> Block 10 #-----| True -> Block 9 # 2216| Block 9 -# 2216| r2216_53(glval) = VariableAddress[y] : -# 2216| r2216_54(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2216_54 -# 2216| r2216_55(glval) = FunctionAddress[operator*] : -# 2216| r2216_56(ClassWithDestructor &) = Call[operator*] : func:r2216_55, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2216_40 -# 2216| r2216_57(ClassWithDestructor) = Load[?] : &:r2216_56, ~m2216_50 -# 2216| m2216_58(ClassWithDestructor) = Store[y] : &:r2216_53, r2216_57 +# 2216| r2216_49(glval) = VariableAddress[y] : +# 2216| r2216_50(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2216_50 +# 2216| r2216_51(glval) = FunctionAddress[operator*] : +# 2216| r2216_52(ClassWithDestructor &) = Call[operator*] : func:r2216_51, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2216_36 +# 2216| r2216_53(ClassWithDestructor) = Load[?] : &:r2216_52, ~m2216_46 +# 2216| m2216_54(ClassWithDestructor) = Store[y] : &:r2216_49, r2216_53 # 2217| r2217_1(glval) = VariableAddress[y] : # 2217| r2217_2(glval) = FunctionAddress[set_x] : # 2217| r2217_3(char) = Constant[97] : # 2217| v2217_4(void) = Call[set_x] : func:r2217_2, this:r2217_1, 0:r2217_3 -# 2217| m2217_5(unknown) = ^CallSideEffect : ~m2216_50 -# 2217| m2217_6(unknown) = Chi : total:m2216_50, partial:m2217_5 -# 2217| v2217_7(void) = ^IndirectReadSideEffect[-1] : &:r2217_1, m2216_58 +# 2217| m2217_5(unknown) = ^CallSideEffect : ~m2216_46 +# 2217| m2217_6(unknown) = Chi : total:m2216_46, partial:m2217_5 +# 2217| v2217_7(void) = ^IndirectReadSideEffect[-1] : &:r2217_1, m2216_54 # 2217| m2217_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 -# 2217| m2217_9(ClassWithDestructor) = Chi : total:m2216_58, partial:m2217_8 -# 2216| r2216_59(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_60(glval) = FunctionAddress[operator++] : -# 2216| r2216_61(iterator &) = Call[operator++] : func:r2216_60, this:r2216_59 -# 2216| v2216_62(void) = ^IndirectReadSideEffect[-1] : &:r2216_59, m2216_40 -# 2216| m2216_63(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_59 -# 2216| m2216_64(iterator) = Chi : total:m2216_40, partial:m2216_63 -# 2216| r2216_65(glval) = VariableAddress[y] : -# 2216| r2216_66(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_67(void) = Call[~ClassWithDestructor] : func:r2216_66, this:r2216_65 -# 2216| m2216_68(unknown) = ^CallSideEffect : ~m2217_6 -# 2216| m2216_69(unknown) = Chi : total:m2217_6, partial:m2216_68 -# 2216| v2216_70(void) = ^IndirectReadSideEffect[-1] : &:r2216_65, m2217_9 -# 2216| m2216_71(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_65 -# 2216| m2216_72(ClassWithDestructor) = Chi : total:m2217_9, partial:m2216_71 -# 2216| r2216_73(glval>) = CopyValue : r2216_61 +# 2217| m2217_9(ClassWithDestructor) = Chi : total:m2216_54, partial:m2217_8 +# 2216| r2216_55(glval>) = VariableAddress[(__begin)] : +# 2216| r2216_56(glval) = FunctionAddress[operator++] : +# 2216| r2216_57(iterator &) = Call[operator++] : func:r2216_56, this:r2216_55 +# 2216| v2216_58(void) = ^IndirectReadSideEffect[-1] : &:r2216_55, m2216_36 +# 2216| m2216_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_55 +# 2216| m2216_60(iterator) = Chi : total:m2216_36, partial:m2216_59 +# 2216| r2216_61(glval) = VariableAddress[y] : +# 2216| r2216_62(glval) = FunctionAddress[~ClassWithDestructor] : +# 2216| v2216_63(void) = Call[~ClassWithDestructor] : func:r2216_62, this:r2216_61 +# 2216| m2216_64(unknown) = ^CallSideEffect : ~m2217_6 +# 2216| m2216_65(unknown) = Chi : total:m2217_6, partial:m2216_64 +# 2216| v2216_66(void) = ^IndirectReadSideEffect[-1] : &:r2216_61, m2217_9 +# 2216| m2216_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_61 +# 2216| m2216_68(ClassWithDestructor) = Chi : total:m2217_9, partial:m2216_67 +# 2216| r2216_69(glval>) = CopyValue : r2216_57 #-----| Goto (back edge) -> Block 8 # 2216| Block 10 -# 2216| r2216_74(glval>) = VariableAddress[ys] : -# 2216| r2216_75(glval) = FunctionAddress[~vector] : -# 2216| v2216_76(void) = Call[~vector] : func:r2216_75, this:r2216_74 -# 2216| m2216_77(unknown) = ^CallSideEffect : ~m2216_50 -# 2216| m2216_78(unknown) = Chi : total:m2216_50, partial:m2216_77 -# 2216| v2216_79(void) = ^IndirectReadSideEffect[-1] : &:r2216_74, ~m2216_78 -# 2216| m2216_80(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2216_74 -# 2216| m2216_81(unknown) = Chi : total:m2216_78, partial:m2216_80 +# 2216| r2216_70(glval>) = VariableAddress[ys] : +# 2216| r2216_71(glval) = FunctionAddress[~vector] : +# 2216| v2216_72(void) = Call[~vector] : func:r2216_71, this:r2216_70 +# 2216| v2216_73(void) = ^IndirectReadSideEffect[-1] : &:r2216_70, m2216_10 +# 2216| m2216_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_70 # 2219| r2219_1(glval>) = VariableAddress[ys] : # 2219| m2219_2(vector) = Uninitialized[ys] : &:r2219_1 -# 2219| m2219_3(unknown) = Chi : total:m2216_81, partial:m2219_2 -# 2219| r2219_4(glval) = FunctionAddress[vector] : -# 2219| r2219_5(glval) = VariableAddress[#temp2219:45] : -# 2219| r2219_6(glval) = VariableAddress[x] : -# 2219| r2219_7(ClassWithDestructor) = Load[x] : &:r2219_6, m2215_8 -# 2219| m2219_8(ClassWithDestructor) = Store[#temp2219:45] : &:r2219_5, r2219_7 -# 2219| r2219_9(ClassWithDestructor) = Load[#temp2219:45] : &:r2219_5, m2219_8 -# 2219| v2219_10(void) = Call[vector] : func:r2219_4, this:r2219_1, 0:r2219_9 -# 2219| m2219_11(unknown) = ^CallSideEffect : ~m2219_3 -# 2219| m2219_12(unknown) = Chi : total:m2219_3, partial:m2219_11 -# 2219| m2219_13(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 -# 2219| m2219_14(unknown) = Chi : total:m2219_12, partial:m2219_13 -# 2219| r2219_15(glval) = CopyValue : r2219_5 -# 2219| r2219_16(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_17(void) = Call[~ClassWithDestructor] : func:r2219_16, this:r2219_15 -# 2219| m2219_18(unknown) = ^CallSideEffect : ~m2219_14 -# 2219| m2219_19(unknown) = Chi : total:m2219_14, partial:m2219_18 -# 2219| v2219_20(void) = ^IndirectReadSideEffect[-1] : &:r2219_15, m2219_8 -# 2219| m2219_21(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_15 -# 2219| m2219_22(ClassWithDestructor) = Chi : total:m2219_8, partial:m2219_21 -# 2219| r2219_23(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_24(glval>) = VariableAddress[ys] : -# 2219| r2219_25(vector &) = CopyValue : r2219_24 -# 2219| m2219_26(vector &) = Store[(__range)] : &:r2219_23, r2219_25 -# 2219| r2219_27(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_28(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_29(vector &) = Load[(__range)] : &:r2219_28, m2219_26 -#-----| r0_18(glval>) = CopyValue : r2219_29 +# 2219| r2219_3(glval) = FunctionAddress[vector] : +# 2219| r2219_4(glval) = VariableAddress[#temp2219:45] : +# 2219| r2219_5(glval) = VariableAddress[x] : +# 2219| r2219_6(ClassWithDestructor) = Load[x] : &:r2219_5, m2215_8 +# 2219| m2219_7(ClassWithDestructor) = Store[#temp2219:45] : &:r2219_4, r2219_6 +# 2219| r2219_8(ClassWithDestructor) = Load[#temp2219:45] : &:r2219_4, m2219_7 +# 2219| v2219_9(void) = Call[vector] : func:r2219_3, this:r2219_1, 0:r2219_8 +# 2219| m2219_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_1 +# 2219| r2219_11(glval) = CopyValue : r2219_4 +# 2219| r2219_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_13(void) = Call[~ClassWithDestructor] : func:r2219_12, this:r2219_11 +# 2219| m2219_14(unknown) = ^CallSideEffect : ~m2216_46 +# 2219| m2219_15(unknown) = Chi : total:m2216_46, partial:m2219_14 +# 2219| v2219_16(void) = ^IndirectReadSideEffect[-1] : &:r2219_11, m2219_7 +# 2219| m2219_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_11 +# 2219| m2219_18(ClassWithDestructor) = Chi : total:m2219_7, partial:m2219_17 +# 2219| r2219_19(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_20(glval>) = VariableAddress[ys] : +# 2219| r2219_21(vector &) = CopyValue : r2219_20 +# 2219| m2219_22(vector &) = Store[(__range)] : &:r2219_19, r2219_21 +# 2219| r2219_23(glval>) = VariableAddress[(__begin)] : +# 2219| r2219_24(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_25(vector &) = Load[(__range)] : &:r2219_24, m2219_22 +#-----| r0_18(glval>) = CopyValue : r2219_25 #-----| r0_19(glval>) = Convert : r0_18 -# 2219| r2219_30(glval) = FunctionAddress[begin] : -# 2219| r2219_31(iterator) = Call[begin] : func:r2219_30, this:r0_19 -#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, ~m2219_19 -# 2219| m2219_32(iterator) = Store[(__begin)] : &:r2219_27, r2219_31 -# 2219| r2219_33(glval>) = VariableAddress[(__end)] : -# 2219| r2219_34(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_35(vector &) = Load[(__range)] : &:r2219_34, m2219_26 -#-----| r0_21(glval>) = CopyValue : r2219_35 +# 2219| r2219_26(glval) = FunctionAddress[begin] : +# 2219| r2219_27(iterator) = Call[begin] : func:r2219_26, this:r0_19 +#-----| v0_20(void) = ^IndirectReadSideEffect[-1] : &:r0_19, m2219_10 +# 2219| m2219_28(iterator) = Store[(__begin)] : &:r2219_23, r2219_27 +# 2219| r2219_29(glval>) = VariableAddress[(__end)] : +# 2219| r2219_30(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_31(vector &) = Load[(__range)] : &:r2219_30, m2219_22 +#-----| r0_21(glval>) = CopyValue : r2219_31 #-----| r0_22(glval>) = Convert : r0_21 -# 2219| r2219_36(glval) = FunctionAddress[end] : -# 2219| r2219_37(iterator) = Call[end] : func:r2219_36, this:r0_22 -#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, ~m2219_19 -# 2219| m2219_38(iterator) = Store[(__end)] : &:r2219_33, r2219_37 -# 2219| m2219_39(unknown) = Chi : total:m2219_19, partial:m2219_38 +# 2219| r2219_32(glval) = FunctionAddress[end] : +# 2219| r2219_33(iterator) = Call[end] : func:r2219_32, this:r0_22 +#-----| v0_23(void) = ^IndirectReadSideEffect[-1] : &:r0_22, m2219_10 +# 2219| m2219_34(iterator) = Store[(__end)] : &:r2219_29, r2219_33 +# 2219| m2219_35(unknown) = Chi : total:m2219_15, partial:m2219_34 #-----| Goto -> Block 11 # 2219| Block 11 -# 2219| m2219_40(iterator) = Phi : from 10:m2219_32, from 12:m2219_58 -# 2219| m2219_41(unknown) = Phi : from 10:~m2219_39, from 12:~m2219_63 -# 2219| r2219_42(glval>) = VariableAddress[(__begin)] : -#-----| r0_24(glval>) = Convert : r2219_42 -# 2219| r2219_43(glval) = FunctionAddress[operator!=] : +# 2219| m2219_36(iterator) = Phi : from 10:m2219_28, from 12:m2219_54 +# 2219| m2219_37(unknown) = Phi : from 10:~m2219_35, from 12:~m2219_59 +# 2219| r2219_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_24(glval>) = Convert : r2219_38 +# 2219| r2219_39(glval) = FunctionAddress[operator!=] : #-----| r0_25(glval>) = VariableAddress[#temp0:0] : #-----| m0_26(iterator) = Uninitialized[#temp0:0] : &:r0_25 -#-----| m0_27(unknown) = Chi : total:m2219_41, partial:m0_26 -# 2219| r2219_44(glval) = FunctionAddress[iterator] : -# 2219| r2219_45(glval>) = VariableAddress[(__end)] : -#-----| r0_28(glval>) = Convert : r2219_45 +#-----| m0_27(unknown) = Chi : total:m2219_37, partial:m0_26 +# 2219| r2219_40(glval) = FunctionAddress[iterator] : +# 2219| r2219_41(glval>) = VariableAddress[(__end)] : +#-----| r0_28(glval>) = Convert : r2219_41 #-----| r0_29(iterator &) = CopyValue : r0_28 -# 2219| v2219_46(void) = Call[iterator] : func:r2219_44, this:r0_25, 0:r0_29 -# 2219| m2219_47(unknown) = ^CallSideEffect : ~m0_27 -# 2219| m2219_48(unknown) = Chi : total:m0_27, partial:m2219_47 -#-----| v0_30(void) = ^BufferReadSideEffect[0] : &:r0_29, ~m2219_48 -# 2219| m2219_49(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 -# 2219| m2219_50(unknown) = Chi : total:m2219_48, partial:m2219_49 -#-----| r0_31(iterator) = Load[#temp0:0] : &:r0_25, ~m2219_50 -# 2219| r2219_51(bool) = Call[operator!=] : func:r2219_43, this:r0_24, 0:r0_31 -#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_24, m2219_40 -# 2219| v2219_52(void) = ConditionalBranch : r2219_51 +# 2219| v2219_42(void) = Call[iterator] : func:r2219_40, this:r0_25, 0:r0_29 +# 2219| m2219_43(unknown) = ^CallSideEffect : ~m0_27 +# 2219| m2219_44(unknown) = Chi : total:m0_27, partial:m2219_43 +#-----| v0_30(void) = ^BufferReadSideEffect[0] : &:r0_29, ~m2219_44 +# 2219| m2219_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_25 +# 2219| m2219_46(unknown) = Chi : total:m2219_44, partial:m2219_45 +#-----| r0_31(iterator) = Load[#temp0:0] : &:r0_25, ~m2219_46 +# 2219| r2219_47(bool) = Call[operator!=] : func:r2219_39, this:r0_24, 0:r0_31 +#-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_24, m2219_36 +# 2219| v2219_48(void) = ConditionalBranch : r2219_47 #-----| False -> Block 15 #-----| True -> Block 13 # 2219| Block 12 -# 2219| r2219_53(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_54(glval) = FunctionAddress[operator++] : -# 2219| r2219_55(iterator &) = Call[operator++] : func:r2219_54, this:r2219_53 -# 2219| v2219_56(void) = ^IndirectReadSideEffect[-1] : &:r2219_53, m2219_40 -# 2219| m2219_57(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_53 -# 2219| m2219_58(iterator) = Chi : total:m2219_40, partial:m2219_57 -# 2219| r2219_59(glval) = VariableAddress[y] : -# 2219| r2219_60(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_61(void) = Call[~ClassWithDestructor] : func:r2219_60, this:r2219_59 -# 2219| m2219_62(unknown) = ^CallSideEffect : ~m2221_5 -# 2219| m2219_63(unknown) = Chi : total:m2221_5, partial:m2219_62 -# 2219| v2219_64(void) = ^IndirectReadSideEffect[-1] : &:r2219_59, m2221_8 -# 2219| m2219_65(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_59 -# 2219| m2219_66(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_65 -# 2219| r2219_67(glval>) = CopyValue : r2219_55 +# 2219| r2219_49(glval>) = VariableAddress[(__begin)] : +# 2219| r2219_50(glval) = FunctionAddress[operator++] : +# 2219| r2219_51(iterator &) = Call[operator++] : func:r2219_50, this:r2219_49 +# 2219| v2219_52(void) = ^IndirectReadSideEffect[-1] : &:r2219_49, m2219_36 +# 2219| m2219_53(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_49 +# 2219| m2219_54(iterator) = Chi : total:m2219_36, partial:m2219_53 +# 2219| r2219_55(glval) = VariableAddress[y] : +# 2219| r2219_56(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_57(void) = Call[~ClassWithDestructor] : func:r2219_56, this:r2219_55 +# 2219| m2219_58(unknown) = ^CallSideEffect : ~m2221_5 +# 2219| m2219_59(unknown) = Chi : total:m2221_5, partial:m2219_58 +# 2219| v2219_60(void) = ^IndirectReadSideEffect[-1] : &:r2219_55, m2221_8 +# 2219| m2219_61(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_55 +# 2219| m2219_62(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_61 +# 2219| r2219_63(glval>) = CopyValue : r2219_51 #-----| Goto (back edge) -> Block 11 # 2219| Block 13 -# 2219| r2219_68(glval) = VariableAddress[y] : -# 2219| r2219_69(glval>) = VariableAddress[(__begin)] : -#-----| r0_33(glval>) = Convert : r2219_69 -# 2219| r2219_70(glval) = FunctionAddress[operator*] : -# 2219| r2219_71(ClassWithDestructor &) = Call[operator*] : func:r2219_70, this:r0_33 -#-----| v0_34(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2219_40 -# 2219| r2219_72(ClassWithDestructor) = Load[?] : &:r2219_71, ~m2219_50 -# 2219| m2219_73(ClassWithDestructor) = Store[y] : &:r2219_68, r2219_72 +# 2219| r2219_64(glval) = VariableAddress[y] : +# 2219| r2219_65(glval>) = VariableAddress[(__begin)] : +#-----| r0_33(glval>) = Convert : r2219_65 +# 2219| r2219_66(glval) = FunctionAddress[operator*] : +# 2219| r2219_67(ClassWithDestructor &) = Call[operator*] : func:r2219_66, this:r0_33 +#-----| v0_34(void) = ^IndirectReadSideEffect[-1] : &:r0_33, m2219_36 +# 2219| r2219_68(ClassWithDestructor) = Load[?] : &:r2219_67, ~m2219_46 +# 2219| m2219_69(ClassWithDestructor) = Store[y] : &:r2219_64, r2219_68 # 2220| r2220_1(glval) = VariableAddress[y] : # 2220| r2220_2(glval) = FunctionAddress[set_x] : # 2220| r2220_3(char) = Constant[97] : # 2220| v2220_4(void) = Call[set_x] : func:r2220_2, this:r2220_1, 0:r2220_3 -# 2220| m2220_5(unknown) = ^CallSideEffect : ~m2219_50 -# 2220| m2220_6(unknown) = Chi : total:m2219_50, partial:m2220_5 -# 2220| v2220_7(void) = ^IndirectReadSideEffect[-1] : &:r2220_1, m2219_73 +# 2220| m2220_5(unknown) = ^CallSideEffect : ~m2219_46 +# 2220| m2220_6(unknown) = Chi : total:m2219_46, partial:m2220_5 +# 2220| v2220_7(void) = ^IndirectReadSideEffect[-1] : &:r2220_1, m2219_69 # 2220| m2220_8(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2220_1 -# 2220| m2220_9(ClassWithDestructor) = Chi : total:m2219_73, partial:m2220_8 +# 2220| m2220_9(ClassWithDestructor) = Chi : total:m2219_69, partial:m2220_8 # 2221| r2221_1(glval) = VariableAddress[y] : # 2221| r2221_2(glval) = FunctionAddress[get_x] : # 2221| r2221_3(char) = Call[get_x] : func:r2221_2, this:r2221_1 @@ -15779,123 +15768,113 @@ ir.cpp: # 2222| Block 14 # 2222| v2222_1(void) = NoOp : -# 2219| r2219_74(glval) = VariableAddress[y] : -# 2219| r2219_75(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_76(void) = Call[~ClassWithDestructor] : func:r2219_75, this:r2219_74 -# 2219| m2219_77(unknown) = ^CallSideEffect : ~m2221_5 -# 2219| m2219_78(unknown) = Chi : total:m2221_5, partial:m2219_77 -# 2219| v2219_79(void) = ^IndirectReadSideEffect[-1] : &:r2219_74, m2221_8 -# 2219| m2219_80(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_74 -# 2219| m2219_81(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_80 -# 2219| r2219_82(glval>) = VariableAddress[ys] : -# 2219| r2219_83(glval) = FunctionAddress[~vector] : -# 2219| v2219_84(void) = Call[~vector] : func:r2219_83, this:r2219_82 -# 2219| m2219_85(unknown) = ^CallSideEffect : ~m2219_78 -# 2219| m2219_86(unknown) = Chi : total:m2219_78, partial:m2219_85 -# 2219| v2219_87(void) = ^IndirectReadSideEffect[-1] : &:r2219_82, ~m2219_86 -# 2219| m2219_88(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_82 -# 2219| m2219_89(unknown) = Chi : total:m2219_86, partial:m2219_88 +# 2219| r2219_70(glval) = VariableAddress[y] : +# 2219| r2219_71(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_72(void) = Call[~ClassWithDestructor] : func:r2219_71, this:r2219_70 +# 2219| m2219_73(unknown) = ^CallSideEffect : ~m2221_5 +# 2219| m2219_74(unknown) = Chi : total:m2221_5, partial:m2219_73 +# 2219| v2219_75(void) = ^IndirectReadSideEffect[-1] : &:r2219_70, m2221_8 +# 2219| m2219_76(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_70 +# 2219| m2219_77(ClassWithDestructor) = Chi : total:m2221_8, partial:m2219_76 +# 2219| r2219_78(glval>) = VariableAddress[ys] : +# 2219| r2219_79(glval) = FunctionAddress[~vector] : +# 2219| v2219_80(void) = Call[~vector] : func:r2219_79, this:r2219_78 +# 2219| v2219_81(void) = ^IndirectReadSideEffect[-1] : &:r2219_78, m2219_10 +# 2219| m2219_82(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_78 # 2234| r2234_1(glval) = VariableAddress[x] : # 2234| r2234_2(glval) = FunctionAddress[~ClassWithDestructor] : # 2234| v2234_3(void) = Call[~ClassWithDestructor] : func:r2234_2, this:r2234_1 -# 2234| m2234_4(unknown) = ^CallSideEffect : ~m2219_89 -# 2234| m2234_5(unknown) = Chi : total:m2219_89, partial:m2234_4 +# 2234| m2234_4(unknown) = ^CallSideEffect : ~m2219_74 +# 2234| m2234_5(unknown) = Chi : total:m2219_74, partial:m2234_4 # 2234| v2234_6(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, m2215_8 # 2234| m2234_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 # 2234| m2234_8(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_7 #-----| Goto -> Block 1 # 2219| Block 15 -# 2219| r2219_90(glval>) = VariableAddress[ys] : -# 2219| r2219_91(glval) = FunctionAddress[~vector] : -# 2219| v2219_92(void) = Call[~vector] : func:r2219_91, this:r2219_90 -# 2219| m2219_93(unknown) = ^CallSideEffect : ~m2219_50 -# 2219| m2219_94(unknown) = Chi : total:m2219_50, partial:m2219_93 -# 2219| v2219_95(void) = ^IndirectReadSideEffect[-1] : &:r2219_90, ~m2219_94 -# 2219| m2219_96(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_90 -# 2219| m2219_97(unknown) = Chi : total:m2219_94, partial:m2219_96 -# 2225| r2225_1(glval>) = VariableAddress[ys] : -# 2225| m2225_2(vector) = Uninitialized[ys] : &:r2225_1 -# 2225| m2225_3(unknown) = Chi : total:m2219_97, partial:m2225_2 -# 2225| r2225_4(glval) = FunctionAddress[vector] : -# 2225| r2225_5(int) = Constant[1] : -# 2225| v2225_6(void) = Call[vector] : func:r2225_4, this:r2225_1, 0:r2225_5 -# 2225| m2225_7(unknown) = ^CallSideEffect : ~m2225_3 -# 2225| m2225_8(unknown) = Chi : total:m2225_3, partial:m2225_7 -# 2225| m2225_9(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_1 -# 2225| m2225_10(unknown) = Chi : total:m2225_8, partial:m2225_9 -# 2225| r2225_11(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_12(glval>) = VariableAddress[ys] : -# 2225| r2225_13(vector &) = CopyValue : r2225_12 -# 2225| m2225_14(vector &) = Store[(__range)] : &:r2225_11, r2225_13 -# 2225| r2225_15(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_16(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_17(vector &) = Load[(__range)] : &:r2225_16, m2225_14 -#-----| r0_35(glval>) = CopyValue : r2225_17 -#-----| r0_36(glval>) = Convert : r0_35 -# 2225| r2225_18(glval) = FunctionAddress[begin] : -# 2225| r2225_19(iterator) = Call[begin] : func:r2225_18, this:r0_36 -#-----| v0_37(void) = ^IndirectReadSideEffect[-1] : &:r0_36, ~m2225_10 -# 2225| m2225_20(iterator) = Store[(__begin)] : &:r2225_15, r2225_19 -# 2225| r2225_21(glval>) = VariableAddress[(__end)] : -# 2225| r2225_22(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_23(vector &) = Load[(__range)] : &:r2225_22, m2225_14 -#-----| r0_38(glval>) = CopyValue : r2225_23 -#-----| r0_39(glval>) = Convert : r0_38 -# 2225| r2225_24(glval) = FunctionAddress[end] : -# 2225| r2225_25(iterator) = Call[end] : func:r2225_24, this:r0_39 -#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m2225_10 -# 2225| m2225_26(iterator) = Store[(__end)] : &:r2225_21, r2225_25 -# 2225| m2225_27(unknown) = Chi : total:m2225_10, partial:m2225_26 +# 2219| r2219_83(glval>) = VariableAddress[ys] : +# 2219| r2219_84(glval) = FunctionAddress[~vector] : +# 2219| v2219_85(void) = Call[~vector] : func:r2219_84, this:r2219_83 +# 2219| v2219_86(void) = ^IndirectReadSideEffect[-1] : &:r2219_83, m2219_10 +# 2219| m2219_87(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_83 +# 2225| r2225_1(glval>) = VariableAddress[ys] : +# 2225| m2225_2(vector) = Uninitialized[ys] : &:r2225_1 +# 2225| r2225_3(glval) = FunctionAddress[vector] : +# 2225| r2225_4(int) = Constant[1] : +# 2225| v2225_5(void) = Call[vector] : func:r2225_3, this:r2225_1, 0:r2225_4 +# 2225| m2225_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_1 +# 2225| r2225_7(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_8(glval>) = VariableAddress[ys] : +# 2225| r2225_9(vector &) = CopyValue : r2225_8 +# 2225| m2225_10(vector &) = Store[(__range)] : &:r2225_7, r2225_9 +# 2225| r2225_11(glval>) = VariableAddress[(__begin)] : +# 2225| r2225_12(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_13(vector &) = Load[(__range)] : &:r2225_12, m2225_10 +#-----| r0_35(glval>) = CopyValue : r2225_13 +#-----| r0_36(glval>) = Convert : r0_35 +# 2225| r2225_14(glval) = FunctionAddress[begin] : +# 2225| r2225_15(iterator) = Call[begin] : func:r2225_14, this:r0_36 +#-----| v0_37(void) = ^IndirectReadSideEffect[-1] : &:r0_36, m2225_6 +# 2225| m2225_16(iterator) = Store[(__begin)] : &:r2225_11, r2225_15 +# 2225| r2225_17(glval>) = VariableAddress[(__end)] : +# 2225| r2225_18(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_19(vector &) = Load[(__range)] : &:r2225_18, m2225_10 +#-----| r0_38(glval>) = CopyValue : r2225_19 +#-----| r0_39(glval>) = Convert : r0_38 +# 2225| r2225_20(glval) = FunctionAddress[end] : +# 2225| r2225_21(iterator) = Call[end] : func:r2225_20, this:r0_39 +#-----| v0_40(void) = ^IndirectReadSideEffect[-1] : &:r0_39, m2225_6 +# 2225| m2225_22(iterator) = Store[(__end)] : &:r2225_17, r2225_21 +# 2225| m2225_23(unknown) = Chi : total:m2219_46, partial:m2225_22 #-----| Goto -> Block 16 # 2225| Block 16 -# 2225| m2225_28(iterator) = Phi : from 15:m2225_20, from 17:m2225_46 -# 2225| m2225_29(unknown) = Phi : from 15:~m2225_27, from 17:~m2225_38 -# 2225| r2225_30(glval>) = VariableAddress[(__begin)] : -#-----| r0_41(glval>) = Convert : r2225_30 -# 2225| r2225_31(glval) = FunctionAddress[operator!=] : +# 2225| m2225_24(iterator) = Phi : from 15:m2225_16, from 17:m2225_42 +# 2225| m2225_25(unknown) = Phi : from 15:~m2225_23, from 17:~m2225_34 +# 2225| r2225_26(glval>) = VariableAddress[(__begin)] : +#-----| r0_41(glval>) = Convert : r2225_26 +# 2225| r2225_27(glval) = FunctionAddress[operator!=] : #-----| r0_42(glval>) = VariableAddress[#temp0:0] : #-----| m0_43(iterator) = Uninitialized[#temp0:0] : &:r0_42 -#-----| m0_44(unknown) = Chi : total:m2225_29, partial:m0_43 -# 2225| r2225_32(glval) = FunctionAddress[iterator] : -# 2225| r2225_33(glval>) = VariableAddress[(__end)] : -#-----| r0_45(glval>) = Convert : r2225_33 +#-----| m0_44(unknown) = Chi : total:m2225_25, partial:m0_43 +# 2225| r2225_28(glval) = FunctionAddress[iterator] : +# 2225| r2225_29(glval>) = VariableAddress[(__end)] : +#-----| r0_45(glval>) = Convert : r2225_29 #-----| r0_46(iterator &) = CopyValue : r0_45 -# 2225| v2225_34(void) = Call[iterator] : func:r2225_32, this:r0_42, 0:r0_46 -# 2225| m2225_35(unknown) = ^CallSideEffect : ~m0_44 -# 2225| m2225_36(unknown) = Chi : total:m0_44, partial:m2225_35 -#-----| v0_47(void) = ^BufferReadSideEffect[0] : &:r0_46, ~m2225_36 -# 2225| m2225_37(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_42 -# 2225| m2225_38(unknown) = Chi : total:m2225_36, partial:m2225_37 -#-----| r0_48(iterator) = Load[#temp0:0] : &:r0_42, ~m2225_38 -# 2225| r2225_39(bool) = Call[operator!=] : func:r2225_31, this:r0_41, 0:r0_48 -#-----| v0_49(void) = ^IndirectReadSideEffect[-1] : &:r0_41, m2225_28 -# 2225| v2225_40(void) = ConditionalBranch : r2225_39 +# 2225| v2225_30(void) = Call[iterator] : func:r2225_28, this:r0_42, 0:r0_46 +# 2225| m2225_31(unknown) = ^CallSideEffect : ~m0_44 +# 2225| m2225_32(unknown) = Chi : total:m0_44, partial:m2225_31 +#-----| v0_47(void) = ^BufferReadSideEffect[0] : &:r0_46, ~m2225_32 +# 2225| m2225_33(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_42 +# 2225| m2225_34(unknown) = Chi : total:m2225_32, partial:m2225_33 +#-----| r0_48(iterator) = Load[#temp0:0] : &:r0_42, ~m2225_34 +# 2225| r2225_35(bool) = Call[operator!=] : func:r2225_27, this:r0_41, 0:r0_48 +#-----| v0_49(void) = ^IndirectReadSideEffect[-1] : &:r0_41, m2225_24 +# 2225| v2225_36(void) = ConditionalBranch : r2225_35 #-----| False -> Block 20 #-----| True -> Block 18 # 2225| Block 17 -# 2225| r2225_41(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_42(glval) = FunctionAddress[operator++] : -# 2225| r2225_43(iterator &) = Call[operator++] : func:r2225_42, this:r2225_41 -# 2225| v2225_44(void) = ^IndirectReadSideEffect[-1] : &:r2225_41, m2225_28 -# 2225| m2225_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_41 -# 2225| m2225_46(iterator) = Chi : total:m2225_28, partial:m2225_45 -# 2225| r2225_47(glval>) = CopyValue : r2225_43 +# 2225| r2225_37(glval>) = VariableAddress[(__begin)] : +# 2225| r2225_38(glval) = FunctionAddress[operator++] : +# 2225| r2225_39(iterator &) = Call[operator++] : func:r2225_38, this:r2225_37 +# 2225| v2225_40(void) = ^IndirectReadSideEffect[-1] : &:r2225_37, m2225_24 +# 2225| m2225_41(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_37 +# 2225| m2225_42(iterator) = Chi : total:m2225_24, partial:m2225_41 +# 2225| r2225_43(glval>) = CopyValue : r2225_39 #-----| Goto (back edge) -> Block 16 # 2225| Block 18 -# 2225| r2225_48(glval) = VariableAddress[y] : -# 2225| r2225_49(glval>) = VariableAddress[(__begin)] : -#-----| r0_50(glval>) = Convert : r2225_49 -# 2225| r2225_50(glval) = FunctionAddress[operator*] : -# 2225| r2225_51(int &) = Call[operator*] : func:r2225_50, this:r0_50 -#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2225_28 -# 2225| r2225_52(int) = Load[?] : &:r2225_51, ~m2225_38 -# 2225| m2225_53(int) = Store[y] : &:r2225_48, r2225_52 +# 2225| r2225_44(glval) = VariableAddress[y] : +# 2225| r2225_45(glval>) = VariableAddress[(__begin)] : +#-----| r0_50(glval>) = Convert : r2225_45 +# 2225| r2225_46(glval) = FunctionAddress[operator*] : +# 2225| r2225_47(int &) = Call[operator*] : func:r2225_46, this:r0_50 +#-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, m2225_24 +# 2225| r2225_48(int) = Load[?] : &:r2225_47, ~m2225_34 +# 2225| m2225_49(int) = Store[y] : &:r2225_44, r2225_48 # 2226| r2226_1(glval) = VariableAddress[y] : -# 2226| r2226_2(int) = Load[y] : &:r2226_1, m2225_53 +# 2226| r2226_2(int) = Load[y] : &:r2226_1, m2225_49 # 2226| r2226_3(int) = Constant[1] : # 2226| r2226_4(bool) = CompareEQ : r2226_2, r2226_3 # 2226| v2226_5(void) = ConditionalBranch : r2226_4 @@ -15904,121 +15883,111 @@ ir.cpp: # 2227| Block 19 # 2227| v2227_1(void) = NoOp : -# 2225| r2225_54(glval>) = VariableAddress[ys] : -# 2225| r2225_55(glval) = FunctionAddress[~vector] : -# 2225| v2225_56(void) = Call[~vector] : func:r2225_55, this:r2225_54 -# 2225| m2225_57(unknown) = ^CallSideEffect : ~m2225_38 -# 2225| m2225_58(unknown) = Chi : total:m2225_38, partial:m2225_57 -# 2225| v2225_59(void) = ^IndirectReadSideEffect[-1] : &:r2225_54, ~m2225_58 -# 2225| m2225_60(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_54 -# 2225| m2225_61(unknown) = Chi : total:m2225_58, partial:m2225_60 +# 2225| r2225_50(glval>) = VariableAddress[ys] : +# 2225| r2225_51(glval) = FunctionAddress[~vector] : +# 2225| v2225_52(void) = Call[~vector] : func:r2225_51, this:r2225_50 +# 2225| v2225_53(void) = ^IndirectReadSideEffect[-1] : &:r2225_50, m2225_6 +# 2225| m2225_54(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_50 # 2234| r2234_9(glval) = VariableAddress[x] : # 2234| r2234_10(glval) = FunctionAddress[~ClassWithDestructor] : # 2234| v2234_11(void) = Call[~ClassWithDestructor] : func:r2234_10, this:r2234_9 -# 2234| m2234_12(unknown) = ^CallSideEffect : ~m2225_61 -# 2234| m2234_13(unknown) = Chi : total:m2225_61, partial:m2234_12 +# 2234| m2234_12(unknown) = ^CallSideEffect : ~m2225_34 +# 2234| m2234_13(unknown) = Chi : total:m2225_34, partial:m2234_12 # 2234| v2234_14(void) = ^IndirectReadSideEffect[-1] : &:r2234_9, m2215_8 # 2234| m2234_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_9 # 2234| m2234_16(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_15 #-----| Goto -> Block 1 # 2225| Block 20 -# 2225| r2225_62(glval>) = VariableAddress[ys] : -# 2225| r2225_63(glval) = FunctionAddress[~vector] : -# 2225| v2225_64(void) = Call[~vector] : func:r2225_63, this:r2225_62 -# 2225| m2225_65(unknown) = ^CallSideEffect : ~m2225_38 -# 2225| m2225_66(unknown) = Chi : total:m2225_38, partial:m2225_65 -# 2225| v2225_67(void) = ^IndirectReadSideEffect[-1] : &:r2225_62, ~m2225_66 -# 2225| m2225_68(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_62 -# 2225| m2225_69(unknown) = Chi : total:m2225_66, partial:m2225_68 +# 2225| r2225_55(glval>) = VariableAddress[ys] : +# 2225| r2225_56(glval) = FunctionAddress[~vector] : +# 2225| v2225_57(void) = Call[~vector] : func:r2225_56, this:r2225_55 +# 2225| v2225_58(void) = ^IndirectReadSideEffect[-1] : &:r2225_55, m2225_6 +# 2225| m2225_59(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_55 # 2230| r2230_1(glval>) = VariableAddress[ys] : # 2230| m2230_2(vector) = Uninitialized[ys] : &:r2230_1 -# 2230| m2230_3(unknown) = Chi : total:m2225_69, partial:m2230_2 -# 2230| r2230_4(glval) = FunctionAddress[vector] : -# 2230| r2230_5(glval) = VariableAddress[#temp2230:45] : -# 2230| r2230_6(glval) = VariableAddress[x] : -# 2230| r2230_7(ClassWithDestructor) = Load[x] : &:r2230_6, m2215_8 -# 2230| m2230_8(ClassWithDestructor) = Store[#temp2230:45] : &:r2230_5, r2230_7 -# 2230| r2230_9(ClassWithDestructor) = Load[#temp2230:45] : &:r2230_5, m2230_8 -# 2230| v2230_10(void) = Call[vector] : func:r2230_4, this:r2230_1, 0:r2230_9 -# 2230| m2230_11(unknown) = ^CallSideEffect : ~m2230_3 -# 2230| m2230_12(unknown) = Chi : total:m2230_3, partial:m2230_11 -# 2230| m2230_13(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2230_1 -# 2230| m2230_14(unknown) = Chi : total:m2230_12, partial:m2230_13 -# 2230| r2230_15(glval) = CopyValue : r2230_5 -# 2230| r2230_16(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_17(void) = Call[~ClassWithDestructor] : func:r2230_16, this:r2230_15 -# 2230| m2230_18(unknown) = ^CallSideEffect : ~m2230_14 -# 2230| m2230_19(unknown) = Chi : total:m2230_14, partial:m2230_18 -# 2230| v2230_20(void) = ^IndirectReadSideEffect[-1] : &:r2230_15, m2230_8 -# 2230| m2230_21(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_15 -# 2230| m2230_22(ClassWithDestructor) = Chi : total:m2230_8, partial:m2230_21 -# 2230| r2230_23(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_24(glval>) = VariableAddress[ys] : -# 2230| r2230_25(vector &) = CopyValue : r2230_24 -# 2230| m2230_26(vector &) = Store[(__range)] : &:r2230_23, r2230_25 -# 2230| r2230_27(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_28(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_29(vector &) = Load[(__range)] : &:r2230_28, m2230_26 -#-----| r0_52(glval>) = CopyValue : r2230_29 +# 2230| r2230_3(glval) = FunctionAddress[vector] : +# 2230| r2230_4(glval) = VariableAddress[#temp2230:45] : +# 2230| r2230_5(glval) = VariableAddress[x] : +# 2230| r2230_6(ClassWithDestructor) = Load[x] : &:r2230_5, m2215_8 +# 2230| m2230_7(ClassWithDestructor) = Store[#temp2230:45] : &:r2230_4, r2230_6 +# 2230| r2230_8(ClassWithDestructor) = Load[#temp2230:45] : &:r2230_4, m2230_7 +# 2230| v2230_9(void) = Call[vector] : func:r2230_3, this:r2230_1, 0:r2230_8 +# 2230| m2230_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_1 +# 2230| r2230_11(glval) = CopyValue : r2230_4 +# 2230| r2230_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2230| v2230_13(void) = Call[~ClassWithDestructor] : func:r2230_12, this:r2230_11 +# 2230| m2230_14(unknown) = ^CallSideEffect : ~m2225_34 +# 2230| m2230_15(unknown) = Chi : total:m2225_34, partial:m2230_14 +# 2230| v2230_16(void) = ^IndirectReadSideEffect[-1] : &:r2230_11, m2230_7 +# 2230| m2230_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_11 +# 2230| m2230_18(ClassWithDestructor) = Chi : total:m2230_7, partial:m2230_17 +# 2230| r2230_19(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_20(glval>) = VariableAddress[ys] : +# 2230| r2230_21(vector &) = CopyValue : r2230_20 +# 2230| m2230_22(vector &) = Store[(__range)] : &:r2230_19, r2230_21 +# 2230| r2230_23(glval>) = VariableAddress[(__begin)] : +# 2230| r2230_24(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_25(vector &) = Load[(__range)] : &:r2230_24, m2230_22 +#-----| r0_52(glval>) = CopyValue : r2230_25 #-----| r0_53(glval>) = Convert : r0_52 -# 2230| r2230_30(glval) = FunctionAddress[begin] : -# 2230| r2230_31(iterator) = Call[begin] : func:r2230_30, this:r0_53 -#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, ~m2230_19 -# 2230| m2230_32(iterator) = Store[(__begin)] : &:r2230_27, r2230_31 -# 2230| r2230_33(glval>) = VariableAddress[(__end)] : -# 2230| r2230_34(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_35(vector &) = Load[(__range)] : &:r2230_34, m2230_26 -#-----| r0_55(glval>) = CopyValue : r2230_35 +# 2230| r2230_26(glval) = FunctionAddress[begin] : +# 2230| r2230_27(iterator) = Call[begin] : func:r2230_26, this:r0_53 +#-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, m2230_10 +# 2230| m2230_28(iterator) = Store[(__begin)] : &:r2230_23, r2230_27 +# 2230| r2230_29(glval>) = VariableAddress[(__end)] : +# 2230| r2230_30(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_31(vector &) = Load[(__range)] : &:r2230_30, m2230_22 +#-----| r0_55(glval>) = CopyValue : r2230_31 #-----| r0_56(glval>) = Convert : r0_55 -# 2230| r2230_36(glval) = FunctionAddress[end] : -# 2230| r2230_37(iterator) = Call[end] : func:r2230_36, this:r0_56 -#-----| v0_57(void) = ^IndirectReadSideEffect[-1] : &:r0_56, ~m2230_19 -# 2230| m2230_38(iterator) = Store[(__end)] : &:r2230_33, r2230_37 -# 2230| m2230_39(unknown) = Chi : total:m2230_19, partial:m2230_38 +# 2230| r2230_32(glval) = FunctionAddress[end] : +# 2230| r2230_33(iterator) = Call[end] : func:r2230_32, this:r0_56 +#-----| v0_57(void) = ^IndirectReadSideEffect[-1] : &:r0_56, m2230_10 +# 2230| m2230_34(iterator) = Store[(__end)] : &:r2230_29, r2230_33 +# 2230| m2230_35(unknown) = Chi : total:m2230_15, partial:m2230_34 #-----| Goto -> Block 21 # 2230| Block 21 -# 2230| m2230_40(iterator) = Phi : from 20:m2230_32, from 22:m2230_64 -# 2230| m2230_41(unknown) = Phi : from 20:~m2230_39, from 22:~m2230_69 -# 2230| r2230_42(glval>) = VariableAddress[(__begin)] : -#-----| r0_58(glval>) = Convert : r2230_42 -# 2230| r2230_43(glval) = FunctionAddress[operator!=] : +# 2230| m2230_36(iterator) = Phi : from 20:m2230_28, from 22:m2230_60 +# 2230| m2230_37(unknown) = Phi : from 20:~m2230_35, from 22:~m2230_65 +# 2230| r2230_38(glval>) = VariableAddress[(__begin)] : +#-----| r0_58(glval>) = Convert : r2230_38 +# 2230| r2230_39(glval) = FunctionAddress[operator!=] : #-----| r0_59(glval>) = VariableAddress[#temp0:0] : #-----| m0_60(iterator) = Uninitialized[#temp0:0] : &:r0_59 -#-----| m0_61(unknown) = Chi : total:m2230_41, partial:m0_60 -# 2230| r2230_44(glval) = FunctionAddress[iterator] : -# 2230| r2230_45(glval>) = VariableAddress[(__end)] : -#-----| r0_62(glval>) = Convert : r2230_45 +#-----| m0_61(unknown) = Chi : total:m2230_37, partial:m0_60 +# 2230| r2230_40(glval) = FunctionAddress[iterator] : +# 2230| r2230_41(glval>) = VariableAddress[(__end)] : +#-----| r0_62(glval>) = Convert : r2230_41 #-----| r0_63(iterator &) = CopyValue : r0_62 -# 2230| v2230_46(void) = Call[iterator] : func:r2230_44, this:r0_59, 0:r0_63 -# 2230| m2230_47(unknown) = ^CallSideEffect : ~m0_61 -# 2230| m2230_48(unknown) = Chi : total:m0_61, partial:m2230_47 -#-----| v0_64(void) = ^BufferReadSideEffect[0] : &:r0_63, ~m2230_48 -# 2230| m2230_49(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_59 -# 2230| m2230_50(unknown) = Chi : total:m2230_48, partial:m2230_49 -#-----| r0_65(iterator) = Load[#temp0:0] : &:r0_59, ~m2230_50 -# 2230| r2230_51(bool) = Call[operator!=] : func:r2230_43, this:r0_58, 0:r0_65 -#-----| v0_66(void) = ^IndirectReadSideEffect[-1] : &:r0_58, m2230_40 -# 2230| v2230_52(void) = ConditionalBranch : r2230_51 +# 2230| v2230_42(void) = Call[iterator] : func:r2230_40, this:r0_59, 0:r0_63 +# 2230| m2230_43(unknown) = ^CallSideEffect : ~m0_61 +# 2230| m2230_44(unknown) = Chi : total:m0_61, partial:m2230_43 +#-----| v0_64(void) = ^BufferReadSideEffect[0] : &:r0_63, ~m2230_44 +# 2230| m2230_45(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_59 +# 2230| m2230_46(unknown) = Chi : total:m2230_44, partial:m2230_45 +#-----| r0_65(iterator) = Load[#temp0:0] : &:r0_59, ~m2230_46 +# 2230| r2230_47(bool) = Call[operator!=] : func:r2230_39, this:r0_58, 0:r0_65 +#-----| v0_66(void) = ^IndirectReadSideEffect[-1] : &:r0_58, m2230_36 +# 2230| v2230_48(void) = ConditionalBranch : r2230_47 #-----| False -> Block 23 #-----| True -> Block 22 # 2230| Block 22 -# 2230| r2230_53(glval) = VariableAddress[y] : -# 2230| r2230_54(glval>) = VariableAddress[(__begin)] : -#-----| r0_67(glval>) = Convert : r2230_54 -# 2230| r2230_55(glval) = FunctionAddress[operator*] : -# 2230| r2230_56(ClassWithDestructor &) = Call[operator*] : func:r2230_55, this:r0_67 -#-----| v0_68(void) = ^IndirectReadSideEffect[-1] : &:r0_67, m2230_40 -# 2230| r2230_57(ClassWithDestructor) = Load[?] : &:r2230_56, ~m2230_50 -# 2230| m2230_58(ClassWithDestructor) = Store[y] : &:r2230_53, r2230_57 +# 2230| r2230_49(glval) = VariableAddress[y] : +# 2230| r2230_50(glval>) = VariableAddress[(__begin)] : +#-----| r0_67(glval>) = Convert : r2230_50 +# 2230| r2230_51(glval) = FunctionAddress[operator*] : +# 2230| r2230_52(ClassWithDestructor &) = Call[operator*] : func:r2230_51, this:r0_67 +#-----| v0_68(void) = ^IndirectReadSideEffect[-1] : &:r0_67, m2230_36 +# 2230| r2230_53(ClassWithDestructor) = Load[?] : &:r2230_52, ~m2230_46 +# 2230| m2230_54(ClassWithDestructor) = Store[y] : &:r2230_49, r2230_53 # 2231| r2231_1(glval) = VariableAddress[z1] : # 2231| m2231_2(ClassWithDestructor) = Uninitialized[z1] : &:r2231_1 # 2231| r2231_3(glval) = FunctionAddress[ClassWithDestructor] : # 2231| v2231_4(void) = Call[ClassWithDestructor] : func:r2231_3, this:r2231_1 -# 2231| m2231_5(unknown) = ^CallSideEffect : ~m2230_50 -# 2231| m2231_6(unknown) = Chi : total:m2230_50, partial:m2231_5 +# 2231| m2231_5(unknown) = ^CallSideEffect : ~m2230_46 +# 2231| m2231_6(unknown) = Chi : total:m2230_46, partial:m2231_5 # 2231| m2231_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 # 2231| m2231_8(ClassWithDestructor) = Chi : total:m2231_2, partial:m2231_7 # 2232| r2232_1(glval) = VariableAddress[z2] : @@ -16045,38 +16014,35 @@ ir.cpp: # 2233| v2233_14(void) = ^IndirectReadSideEffect[-1] : &:r2233_9, m2231_8 # 2233| m2233_15(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_9 # 2233| m2233_16(ClassWithDestructor) = Chi : total:m2231_8, partial:m2233_15 -# 2230| r2230_59(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_60(glval) = FunctionAddress[operator++] : -# 2230| r2230_61(iterator &) = Call[operator++] : func:r2230_60, this:r2230_59 -# 2230| v2230_62(void) = ^IndirectReadSideEffect[-1] : &:r2230_59, m2230_40 -# 2230| m2230_63(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_59 -# 2230| m2230_64(iterator) = Chi : total:m2230_40, partial:m2230_63 -# 2230| r2230_65(glval) = VariableAddress[y] : -# 2230| r2230_66(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_67(void) = Call[~ClassWithDestructor] : func:r2230_66, this:r2230_65 -# 2230| m2230_68(unknown) = ^CallSideEffect : ~m2233_13 -# 2230| m2230_69(unknown) = Chi : total:m2233_13, partial:m2230_68 -# 2230| v2230_70(void) = ^IndirectReadSideEffect[-1] : &:r2230_65, m2230_58 -# 2230| m2230_71(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_65 -# 2230| m2230_72(ClassWithDestructor) = Chi : total:m2230_58, partial:m2230_71 -# 2230| r2230_73(glval>) = CopyValue : r2230_61 +# 2230| r2230_55(glval>) = VariableAddress[(__begin)] : +# 2230| r2230_56(glval) = FunctionAddress[operator++] : +# 2230| r2230_57(iterator &) = Call[operator++] : func:r2230_56, this:r2230_55 +# 2230| v2230_58(void) = ^IndirectReadSideEffect[-1] : &:r2230_55, m2230_36 +# 2230| m2230_59(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_55 +# 2230| m2230_60(iterator) = Chi : total:m2230_36, partial:m2230_59 +# 2230| r2230_61(glval) = VariableAddress[y] : +# 2230| r2230_62(glval) = FunctionAddress[~ClassWithDestructor] : +# 2230| v2230_63(void) = Call[~ClassWithDestructor] : func:r2230_62, this:r2230_61 +# 2230| m2230_64(unknown) = ^CallSideEffect : ~m2233_13 +# 2230| m2230_65(unknown) = Chi : total:m2233_13, partial:m2230_64 +# 2230| v2230_66(void) = ^IndirectReadSideEffect[-1] : &:r2230_61, m2230_54 +# 2230| m2230_67(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_61 +# 2230| m2230_68(ClassWithDestructor) = Chi : total:m2230_54, partial:m2230_67 +# 2230| r2230_69(glval>) = CopyValue : r2230_57 #-----| Goto (back edge) -> Block 21 # 2230| Block 23 -# 2230| r2230_74(glval>) = VariableAddress[ys] : -# 2230| r2230_75(glval) = FunctionAddress[~vector] : -# 2230| v2230_76(void) = Call[~vector] : func:r2230_75, this:r2230_74 -# 2230| m2230_77(unknown) = ^CallSideEffect : ~m2230_50 -# 2230| m2230_78(unknown) = Chi : total:m2230_50, partial:m2230_77 -# 2230| v2230_79(void) = ^IndirectReadSideEffect[-1] : &:r2230_74, ~m2230_78 -# 2230| m2230_80(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2230_74 -# 2230| m2230_81(unknown) = Chi : total:m2230_78, partial:m2230_80 +# 2230| r2230_70(glval>) = VariableAddress[ys] : +# 2230| r2230_71(glval) = FunctionAddress[~vector] : +# 2230| v2230_72(void) = Call[~vector] : func:r2230_71, this:r2230_70 +# 2230| v2230_73(void) = ^IndirectReadSideEffect[-1] : &:r2230_70, m2230_10 +# 2230| m2230_74(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_70 # 2234| v2234_17(void) = NoOp : # 2234| r2234_18(glval) = VariableAddress[x] : # 2234| r2234_19(glval) = FunctionAddress[~ClassWithDestructor] : # 2234| v2234_20(void) = Call[~ClassWithDestructor] : func:r2234_19, this:r2234_18 -# 2234| m2234_21(unknown) = ^CallSideEffect : ~m2230_81 -# 2234| m2234_22(unknown) = Chi : total:m2230_81, partial:m2234_21 +# 2234| m2234_21(unknown) = ^CallSideEffect : ~m2230_46 +# 2234| m2234_22(unknown) = Chi : total:m2230_46, partial:m2234_21 # 2234| v2234_23(void) = ^IndirectReadSideEffect[-1] : &:r2234_18, m2215_8 # 2234| m2234_24(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2234_18 # 2234| m2234_25(ClassWithDestructor) = Chi : total:m2215_8, partial:m2234_24 @@ -16713,116 +16679,112 @@ ir.cpp: #-----| Goto (back edge) -> Block 1 # 2304| Block 3 -# 2304| r2304_31(glval) = VariableAddress[s] : -# 2304| r2304_32(glval) = FunctionAddress[~String] : -# 2304| v2304_33(void) = Call[~String] : func:r2304_32, this:r2304_31 -# 2304| m2304_34(unknown) = ^CallSideEffect : ~m2304_13 -# 2304| m2304_35(unknown) = Chi : total:m2304_13, partial:m2304_34 -# 2304| v2304_36(void) = ^IndirectReadSideEffect[-1] : &:r2304_31, ~m2304_35 -# 2304| m2304_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_31 -# 2304| m2304_38(unknown) = Chi : total:m2304_35, partial:m2304_37 -# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : -# 2308| m2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 -# 2308| m2308_4(unknown) = Chi : total:m2304_38, partial:m2308_3 -# 2308| r2308_5(glval) = FunctionAddress[vector] : -# 2308| r2308_6(glval) = VariableAddress[#temp2308:40] : -# 2308| m2308_7(String) = Uninitialized[#temp2308:40] : &:r2308_6 -# 2308| m2308_8(unknown) = Chi : total:m2308_4, partial:m2308_7 -# 2308| r2308_9(glval) = FunctionAddress[String] : -# 2308| r2308_10(glval) = StringConstant["hello"] : -# 2308| r2308_11(char *) = Convert : r2308_10 -# 2308| v2308_12(void) = Call[String] : func:r2308_9, this:r2308_6, 0:r2308_11 -# 2308| m2308_13(unknown) = ^CallSideEffect : ~m2308_8 -# 2308| m2308_14(unknown) = Chi : total:m2308_8, partial:m2308_13 -# 2308| v2308_15(void) = ^BufferReadSideEffect[0] : &:r2308_11, ~m2302_3 -# 2308| m2308_16(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_6 -# 2308| m2308_17(unknown) = Chi : total:m2308_14, partial:m2308_16 -# 2308| r2308_18(String) = Load[#temp2308:40] : &:r2308_6, ~m2308_17 -# 2308| v2308_19(void) = Call[vector] : func:r2308_5, this:r2308_2, 0:r2308_18 -# 2308| m2308_20(unknown) = ^CallSideEffect : ~m2308_17 -# 2308| m2308_21(unknown) = Chi : total:m2308_17, partial:m2308_20 -# 2308| m2308_22(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2308_2 -# 2308| m2308_23(unknown) = Chi : total:m2308_21, partial:m2308_22 -# 2308| r2308_24(glval) = CopyValue : r2308_6 -# 2308| r2308_25(glval) = FunctionAddress[~String] : -# 2308| v2308_26(void) = Call[~String] : func:r2308_25, this:r2308_24 -# 2308| m2308_27(unknown) = ^CallSideEffect : ~m2308_23 -# 2308| m2308_28(unknown) = Chi : total:m2308_23, partial:m2308_27 -# 2308| v2308_29(void) = ^IndirectReadSideEffect[-1] : &:r2308_24, ~m2308_28 -# 2308| m2308_30(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_24 -# 2308| m2308_31(unknown) = Chi : total:m2308_28, partial:m2308_30 -# 2308| r2308_32(vector &) = CopyValue : r2308_2 -# 2308| m2308_33(vector &&) = Store[(__range)] : &:r2308_1, r2308_32 -# 2308| r2308_34(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_35(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_36(vector &&) = Load[(__range)] : &:r2308_35, m2308_33 -#-----| r0_1(glval>) = CopyValue : r2308_36 -#-----| r0_2(glval>) = Convert : r0_1 -# 2308| r2308_37(glval) = FunctionAddress[begin] : -# 2308| r2308_38(iterator) = Call[begin] : func:r2308_37, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m2308_28 -# 2308| m2308_39(iterator) = Store[(__begin)] : &:r2308_34, r2308_38 -# 2308| r2308_40(glval>) = VariableAddress[(__end)] : -# 2308| r2308_41(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_42(vector &&) = Load[(__range)] : &:r2308_41, m2308_33 -#-----| r0_4(glval>) = CopyValue : r2308_42 -#-----| r0_5(glval>) = Convert : r0_4 -# 2308| r2308_43(glval) = FunctionAddress[end] : -# 2308| r2308_44(iterator) = Call[end] : func:r2308_43, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m2308_28 -# 2308| m2308_45(iterator) = Store[(__end)] : &:r2308_40, r2308_44 -# 2308| m2308_46(unknown) = Chi : total:m2308_31, partial:m2308_45 +# 2304| r2304_31(glval) = VariableAddress[s] : +# 2304| r2304_32(glval) = FunctionAddress[~String] : +# 2304| v2304_33(void) = Call[~String] : func:r2304_32, this:r2304_31 +# 2304| m2304_34(unknown) = ^CallSideEffect : ~m2304_13 +# 2304| m2304_35(unknown) = Chi : total:m2304_13, partial:m2304_34 +# 2304| v2304_36(void) = ^IndirectReadSideEffect[-1] : &:r2304_31, ~m2304_35 +# 2304| m2304_37(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_31 +# 2304| m2304_38(unknown) = Chi : total:m2304_35, partial:m2304_37 +# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : +# 2308| m2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 +# 2308| r2308_4(glval) = FunctionAddress[vector] : +# 2308| r2308_5(glval) = VariableAddress[#temp2308:40] : +# 2308| m2308_6(String) = Uninitialized[#temp2308:40] : &:r2308_5 +# 2308| m2308_7(unknown) = Chi : total:m2304_38, partial:m2308_6 +# 2308| r2308_8(glval) = FunctionAddress[String] : +# 2308| r2308_9(glval) = StringConstant["hello"] : +# 2308| r2308_10(char *) = Convert : r2308_9 +# 2308| v2308_11(void) = Call[String] : func:r2308_8, this:r2308_5, 0:r2308_10 +# 2308| m2308_12(unknown) = ^CallSideEffect : ~m2308_7 +# 2308| m2308_13(unknown) = Chi : total:m2308_7, partial:m2308_12 +# 2308| v2308_14(void) = ^BufferReadSideEffect[0] : &:r2308_10, ~m2302_3 +# 2308| m2308_15(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_5 +# 2308| m2308_16(unknown) = Chi : total:m2308_13, partial:m2308_15 +# 2308| r2308_17(String) = Load[#temp2308:40] : &:r2308_5, ~m2308_16 +# 2308| v2308_18(void) = Call[vector] : func:r2308_4, this:r2308_2, 0:r2308_17 +# 2308| m2308_19(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_2 +# 2308| r2308_20(glval) = CopyValue : r2308_5 +# 2308| r2308_21(glval) = FunctionAddress[~String] : +# 2308| v2308_22(void) = Call[~String] : func:r2308_21, this:r2308_20 +# 2308| m2308_23(unknown) = ^CallSideEffect : ~m2308_16 +# 2308| m2308_24(unknown) = Chi : total:m2308_16, partial:m2308_23 +# 2308| v2308_25(void) = ^IndirectReadSideEffect[-1] : &:r2308_20, ~m2308_24 +# 2308| m2308_26(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_20 +# 2308| m2308_27(unknown) = Chi : total:m2308_24, partial:m2308_26 +# 2308| r2308_28(vector &) = CopyValue : r2308_2 +# 2308| m2308_29(vector &&) = Store[(__range)] : &:r2308_1, r2308_28 +# 2308| r2308_30(glval>) = VariableAddress[(__begin)] : +# 2308| r2308_31(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_32(vector &&) = Load[(__range)] : &:r2308_31, m2308_29 +#-----| r0_1(glval>) = CopyValue : r2308_32 +#-----| r0_2(glval>) = Convert : r0_1 +# 2308| r2308_33(glval) = FunctionAddress[begin] : +# 2308| r2308_34(iterator) = Call[begin] : func:r2308_33, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2308_19 +# 2308| m2308_35(iterator) = Store[(__begin)] : &:r2308_30, r2308_34 +# 2308| r2308_36(glval>) = VariableAddress[(__end)] : +# 2308| r2308_37(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_38(vector &&) = Load[(__range)] : &:r2308_37, m2308_29 +#-----| r0_4(glval>) = CopyValue : r2308_38 +#-----| r0_5(glval>) = Convert : r0_4 +# 2308| r2308_39(glval) = FunctionAddress[end] : +# 2308| r2308_40(iterator) = Call[end] : func:r2308_39, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2308_19 +# 2308| m2308_41(iterator) = Store[(__end)] : &:r2308_36, r2308_40 +# 2308| m2308_42(unknown) = Chi : total:m2308_27, partial:m2308_41 #-----| Goto -> Block 4 # 2308| Block 4 -# 2308| m2308_47(iterator) = Phi : from 3:m2308_39, from 5:m2308_81 -# 2308| m2308_48(unknown) = Phi : from 3:~m2308_46, from 5:~m2308_89 -# 2308| r2308_49(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2308_49 -# 2308| r2308_50(glval) = FunctionAddress[operator!=] : +# 2308| m2308_43(iterator) = Phi : from 3:m2308_35, from 5:m2308_77 +# 2308| m2308_44(unknown) = Phi : from 3:~m2308_42, from 5:~m2308_85 +# 2308| r2308_45(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2308_45 +# 2308| r2308_46(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2308_48, partial:m0_9 -# 2308| r2308_51(glval) = FunctionAddress[iterator] : -# 2308| r2308_52(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2308_52 +#-----| m0_10(unknown) = Chi : total:m2308_44, partial:m0_9 +# 2308| r2308_47(glval) = FunctionAddress[iterator] : +# 2308| r2308_48(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2308_48 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2308| v2308_53(void) = Call[iterator] : func:r2308_51, this:r0_8, 0:r0_12 -# 2308| m2308_54(unknown) = ^CallSideEffect : ~m0_10 -# 2308| m2308_55(unknown) = Chi : total:m0_10, partial:m2308_54 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2308_55 -# 2308| m2308_56(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2308| m2308_57(unknown) = Chi : total:m2308_55, partial:m2308_56 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2308_57 -# 2308| r2308_58(bool) = Call[operator!=] : func:r2308_50, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2308_47 -# 2308| v2308_59(void) = ConditionalBranch : r2308_58 +# 2308| v2308_49(void) = Call[iterator] : func:r2308_47, this:r0_8, 0:r0_12 +# 2308| m2308_50(unknown) = ^CallSideEffect : ~m0_10 +# 2308| m2308_51(unknown) = Chi : total:m0_10, partial:m2308_50 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2308_51 +# 2308| m2308_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2308| m2308_53(unknown) = Chi : total:m2308_51, partial:m2308_52 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2308_53 +# 2308| r2308_54(bool) = Call[operator!=] : func:r2308_46, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2308_43 +# 2308| v2308_55(void) = ConditionalBranch : r2308_54 #-----| False -> Block 6 #-----| True -> Block 5 # 2308| Block 5 -# 2308| r2308_60(glval) = VariableAddress[s] : -# 2308| m2308_61(String) = Uninitialized[s] : &:r2308_60 -# 2308| m2308_62(unknown) = Chi : total:m2308_57, partial:m2308_61 -# 2308| r2308_63(glval) = FunctionAddress[String] : -# 2308| r2308_64(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2308_64 -# 2308| r2308_65(glval) = FunctionAddress[operator*] : -# 2308| r2308_66(String &) = Call[operator*] : func:r2308_65, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2308_47 -# 2308| r2308_67(glval) = CopyValue : r2308_66 -# 2308| r2308_68(glval) = Convert : r2308_67 -# 2308| r2308_69(String &) = CopyValue : r2308_68 -# 2308| v2308_70(void) = Call[String] : func:r2308_63, this:r2308_60, 0:r2308_69 -# 2308| m2308_71(unknown) = ^CallSideEffect : ~m2308_62 -# 2308| m2308_72(unknown) = Chi : total:m2308_62, partial:m2308_71 -# 2308| v2308_73(void) = ^BufferReadSideEffect[0] : &:r2308_69, ~m2308_72 -# 2308| m2308_74(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_60 -# 2308| m2308_75(unknown) = Chi : total:m2308_72, partial:m2308_74 +# 2308| r2308_56(glval) = VariableAddress[s] : +# 2308| m2308_57(String) = Uninitialized[s] : &:r2308_56 +# 2308| m2308_58(unknown) = Chi : total:m2308_53, partial:m2308_57 +# 2308| r2308_59(glval) = FunctionAddress[String] : +# 2308| r2308_60(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2308_60 +# 2308| r2308_61(glval) = FunctionAddress[operator*] : +# 2308| r2308_62(String &) = Call[operator*] : func:r2308_61, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2308_43 +# 2308| r2308_63(glval) = CopyValue : r2308_62 +# 2308| r2308_64(glval) = Convert : r2308_63 +# 2308| r2308_65(String &) = CopyValue : r2308_64 +# 2308| v2308_66(void) = Call[String] : func:r2308_59, this:r2308_56, 0:r2308_65 +# 2308| m2308_67(unknown) = ^CallSideEffect : ~m2308_58 +# 2308| m2308_68(unknown) = Chi : total:m2308_58, partial:m2308_67 +# 2308| v2308_69(void) = ^BufferReadSideEffect[0] : &:r2308_65, ~m2308_68 +# 2308| m2308_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_56 +# 2308| m2308_71(unknown) = Chi : total:m2308_68, partial:m2308_70 # 2309| r2309_1(glval) = VariableAddress[s2] : # 2309| m2309_2(String) = Uninitialized[s2] : &:r2309_1 -# 2309| m2309_3(unknown) = Chi : total:m2308_75, partial:m2309_2 +# 2309| m2309_3(unknown) = Chi : total:m2308_71, partial:m2309_2 # 2309| r2309_4(glval) = FunctionAddress[String] : # 2309| v2309_5(void) = Call[String] : func:r2309_4, this:r2309_1 # 2309| m2309_6(unknown) = ^CallSideEffect : ~m2309_3 @@ -16837,56 +16799,53 @@ ir.cpp: # 2310| v2310_6(void) = ^IndirectReadSideEffect[-1] : &:r2310_1, ~m2310_5 # 2310| m2310_7(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_1 # 2310| m2310_8(unknown) = Chi : total:m2310_5, partial:m2310_7 -# 2308| r2308_76(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_77(glval) = FunctionAddress[operator++] : -# 2308| r2308_78(iterator &) = Call[operator++] : func:r2308_77, this:r2308_76 -# 2308| v2308_79(void) = ^IndirectReadSideEffect[-1] : &:r2308_76, m2308_47 -# 2308| m2308_80(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_76 -# 2308| m2308_81(iterator) = Chi : total:m2308_47, partial:m2308_80 -# 2308| r2308_82(glval) = VariableAddress[s] : -# 2308| r2308_83(glval) = FunctionAddress[~String] : -# 2308| v2308_84(void) = Call[~String] : func:r2308_83, this:r2308_82 -# 2308| m2308_85(unknown) = ^CallSideEffect : ~m2310_8 -# 2308| m2308_86(unknown) = Chi : total:m2310_8, partial:m2308_85 -# 2308| v2308_87(void) = ^IndirectReadSideEffect[-1] : &:r2308_82, ~m2308_86 -# 2308| m2308_88(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_82 -# 2308| m2308_89(unknown) = Chi : total:m2308_86, partial:m2308_88 -# 2308| r2308_90(glval>) = CopyValue : r2308_78 +# 2308| r2308_72(glval>) = VariableAddress[(__begin)] : +# 2308| r2308_73(glval) = FunctionAddress[operator++] : +# 2308| r2308_74(iterator &) = Call[operator++] : func:r2308_73, this:r2308_72 +# 2308| v2308_75(void) = ^IndirectReadSideEffect[-1] : &:r2308_72, m2308_43 +# 2308| m2308_76(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_72 +# 2308| m2308_77(iterator) = Chi : total:m2308_43, partial:m2308_76 +# 2308| r2308_78(glval) = VariableAddress[s] : +# 2308| r2308_79(glval) = FunctionAddress[~String] : +# 2308| v2308_80(void) = Call[~String] : func:r2308_79, this:r2308_78 +# 2308| m2308_81(unknown) = ^CallSideEffect : ~m2310_8 +# 2308| m2308_82(unknown) = Chi : total:m2310_8, partial:m2308_81 +# 2308| v2308_83(void) = ^IndirectReadSideEffect[-1] : &:r2308_78, ~m2308_82 +# 2308| m2308_84(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_78 +# 2308| m2308_85(unknown) = Chi : total:m2308_82, partial:m2308_84 +# 2308| r2308_86(glval>) = CopyValue : r2308_74 #-----| Goto (back edge) -> Block 4 # 2308| Block 6 -# 2308| r2308_91(glval>) = CopyValue : r2308_2 -# 2308| r2308_92(glval) = FunctionAddress[~vector] : -# 2308| v2308_93(void) = Call[~vector] : func:r2308_92, this:r2308_91 -# 2308| m2308_94(unknown) = ^CallSideEffect : ~m2308_57 -# 2308| m2308_95(unknown) = Chi : total:m2308_57, partial:m2308_94 -# 2308| v2308_96(void) = ^IndirectReadSideEffect[-1] : &:r2308_91, ~m2308_95 -# 2308| m2308_97(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2308_91 -# 2308| m2308_98(unknown) = Chi : total:m2308_95, partial:m2308_97 -# 2312| r2312_1(glval) = VariableAddress[s] : -# 2312| m2312_2(String) = Uninitialized[s] : &:r2312_1 -# 2312| m2312_3(unknown) = Chi : total:m2308_98, partial:m2312_2 -# 2312| r2312_4(glval) = FunctionAddress[String] : -# 2312| r2312_5(glval) = StringConstant["hello"] : -# 2312| r2312_6(char *) = Convert : r2312_5 -# 2312| v2312_7(void) = Call[String] : func:r2312_4, this:r2312_1, 0:r2312_6 -# 2312| m2312_8(unknown) = ^CallSideEffect : ~m2312_3 -# 2312| m2312_9(unknown) = Chi : total:m2312_3, partial:m2312_8 -# 2312| v2312_10(void) = ^BufferReadSideEffect[0] : &:r2312_6, ~m2302_3 -# 2312| m2312_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 -# 2312| m2312_12(unknown) = Chi : total:m2312_9, partial:m2312_11 -# 2312| r2312_13(glval) = VariableAddress[s2] : -# 2312| m2312_14(String) = Uninitialized[s2] : &:r2312_13 -# 2312| m2312_15(unknown) = Chi : total:m2312_12, partial:m2312_14 -# 2312| r2312_16(glval) = FunctionAddress[String] : -# 2312| r2312_17(glval) = StringConstant["world"] : -# 2312| r2312_18(char *) = Convert : r2312_17 -# 2312| v2312_19(void) = Call[String] : func:r2312_16, this:r2312_13, 0:r2312_18 -# 2312| m2312_20(unknown) = ^CallSideEffect : ~m2312_15 -# 2312| m2312_21(unknown) = Chi : total:m2312_15, partial:m2312_20 -# 2312| v2312_22(void) = ^BufferReadSideEffect[0] : &:r2312_18, ~m2302_3 -# 2312| m2312_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_13 -# 2312| m2312_24(unknown) = Chi : total:m2312_21, partial:m2312_23 +# 2308| r2308_87(glval>) = CopyValue : r2308_2 +# 2308| r2308_88(glval) = FunctionAddress[~vector] : +# 2308| v2308_89(void) = Call[~vector] : func:r2308_88, this:r2308_87 +# 2308| v2308_90(void) = ^IndirectReadSideEffect[-1] : &:r2308_87, m2308_19 +# 2308| m2308_91(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_87 +# 2312| r2312_1(glval) = VariableAddress[s] : +# 2312| m2312_2(String) = Uninitialized[s] : &:r2312_1 +# 2312| m2312_3(unknown) = Chi : total:m2308_53, partial:m2312_2 +# 2312| r2312_4(glval) = FunctionAddress[String] : +# 2312| r2312_5(glval) = StringConstant["hello"] : +# 2312| r2312_6(char *) = Convert : r2312_5 +# 2312| v2312_7(void) = Call[String] : func:r2312_4, this:r2312_1, 0:r2312_6 +# 2312| m2312_8(unknown) = ^CallSideEffect : ~m2312_3 +# 2312| m2312_9(unknown) = Chi : total:m2312_3, partial:m2312_8 +# 2312| v2312_10(void) = ^BufferReadSideEffect[0] : &:r2312_6, ~m2302_3 +# 2312| m2312_11(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2312| m2312_12(unknown) = Chi : total:m2312_9, partial:m2312_11 +# 2312| r2312_13(glval) = VariableAddress[s2] : +# 2312| m2312_14(String) = Uninitialized[s2] : &:r2312_13 +# 2312| m2312_15(unknown) = Chi : total:m2312_12, partial:m2312_14 +# 2312| r2312_16(glval) = FunctionAddress[String] : +# 2312| r2312_17(glval) = StringConstant["world"] : +# 2312| r2312_18(char *) = Convert : r2312_17 +# 2312| v2312_19(void) = Call[String] : func:r2312_16, this:r2312_13, 0:r2312_18 +# 2312| m2312_20(unknown) = ^CallSideEffect : ~m2312_15 +# 2312| m2312_21(unknown) = Chi : total:m2312_15, partial:m2312_20 +# 2312| v2312_22(void) = ^BufferReadSideEffect[0] : &:r2312_18, ~m2302_3 +# 2312| m2312_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_13 +# 2312| m2312_24(unknown) = Chi : total:m2312_21, partial:m2312_23 #-----| Goto -> Block 7 # 2312| Block 7 @@ -17640,104 +17599,97 @@ ir.cpp: # 2431| r2431_26(glval &&>) = VariableAddress[(__range)] : # 2431| r2431_27(glval>) = VariableAddress[#temp2431:58] : # 2431| m2431_28(vector) = Uninitialized[#temp2431:58] : &:r2431_27 -# 2431| m2431_29(unknown) = Chi : total:m2431_21, partial:m2431_28 -# 2431| r2431_30(glval) = FunctionAddress[vector] : -# 2431| r2431_31(glval) = VariableAddress[x] : -# 2431| r2431_32(char) = Load[x] : &:r2431_31, m2431_25 -# 2431| v2431_33(void) = Call[vector] : func:r2431_30, this:r2431_27, 0:r2431_32 -# 2431| m2431_34(unknown) = ^CallSideEffect : ~m2431_29 -# 2431| m2431_35(unknown) = Chi : total:m2431_29, partial:m2431_34 -# 2431| m2431_36(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2431_27 -# 2431| m2431_37(unknown) = Chi : total:m2431_35, partial:m2431_36 -# 2431| r2431_38(vector &) = CopyValue : r2431_27 -# 2431| m2431_39(vector &&) = Store[(__range)] : &:r2431_26, r2431_38 -# 2431| r2431_40(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_41(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_42(vector &&) = Load[(__range)] : &:r2431_41, m2431_39 -#-----| r0_1(glval>) = CopyValue : r2431_42 +# 2431| r2431_29(glval) = FunctionAddress[vector] : +# 2431| r2431_30(glval) = VariableAddress[x] : +# 2431| r2431_31(char) = Load[x] : &:r2431_30, m2431_25 +# 2431| v2431_32(void) = Call[vector] : func:r2431_29, this:r2431_27, 0:r2431_31 +# 2431| m2431_33(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_27 +# 2431| r2431_34(vector &) = CopyValue : r2431_27 +# 2431| m2431_35(vector &&) = Store[(__range)] : &:r2431_26, r2431_34 +# 2431| r2431_36(glval>) = VariableAddress[(__begin)] : +# 2431| r2431_37(glval &&>) = VariableAddress[(__range)] : +# 2431| r2431_38(vector &&) = Load[(__range)] : &:r2431_37, m2431_35 +#-----| r0_1(glval>) = CopyValue : r2431_38 #-----| r0_2(glval>) = Convert : r0_1 -# 2431| r2431_43(glval) = FunctionAddress[begin] : -# 2431| r2431_44(iterator) = Call[begin] : func:r2431_43, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m2431_37 -# 2431| m2431_45(iterator) = Store[(__begin)] : &:r2431_40, r2431_44 -# 2431| r2431_46(glval>) = VariableAddress[(__end)] : -# 2431| r2431_47(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_48(vector &&) = Load[(__range)] : &:r2431_47, m2431_39 -#-----| r0_4(glval>) = CopyValue : r2431_48 +# 2431| r2431_39(glval) = FunctionAddress[begin] : +# 2431| r2431_40(iterator) = Call[begin] : func:r2431_39, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, m2431_33 +# 2431| m2431_41(iterator) = Store[(__begin)] : &:r2431_36, r2431_40 +# 2431| r2431_42(glval>) = VariableAddress[(__end)] : +# 2431| r2431_43(glval &&>) = VariableAddress[(__range)] : +# 2431| r2431_44(vector &&) = Load[(__range)] : &:r2431_43, m2431_35 +#-----| r0_4(glval>) = CopyValue : r2431_44 #-----| r0_5(glval>) = Convert : r0_4 -# 2431| r2431_49(glval) = FunctionAddress[end] : -# 2431| r2431_50(iterator) = Call[end] : func:r2431_49, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m2431_37 -# 2431| m2431_51(iterator) = Store[(__end)] : &:r2431_46, r2431_50 -# 2431| m2431_52(unknown) = Chi : total:m2431_37, partial:m2431_51 +# 2431| r2431_45(glval) = FunctionAddress[end] : +# 2431| r2431_46(iterator) = Call[end] : func:r2431_45, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, m2431_33 +# 2431| m2431_47(iterator) = Store[(__end)] : &:r2431_42, r2431_46 +# 2431| m2431_48(unknown) = Chi : total:m2431_21, partial:m2431_47 #-----| Goto -> Block 10 # 2431| Block 10 -# 2431| m2431_53(iterator) = Phi : from 9:m2431_45, from 11:m2431_77 -# 2431| m2431_54(unknown) = Phi : from 9:~m2431_52, from 11:~m2431_63 -# 2431| r2431_55(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2431_55 -# 2431| r2431_56(glval) = FunctionAddress[operator!=] : +# 2431| m2431_49(iterator) = Phi : from 9:m2431_41, from 11:m2431_73 +# 2431| m2431_50(unknown) = Phi : from 9:~m2431_48, from 11:~m2431_59 +# 2431| r2431_51(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2431_51 +# 2431| r2431_52(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| m0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -#-----| m0_10(unknown) = Chi : total:m2431_54, partial:m0_9 -# 2431| r2431_57(glval) = FunctionAddress[iterator] : -# 2431| r2431_58(glval>) = VariableAddress[(__end)] : -#-----| r0_11(glval>) = Convert : r2431_58 +#-----| m0_10(unknown) = Chi : total:m2431_50, partial:m0_9 +# 2431| r2431_53(glval) = FunctionAddress[iterator] : +# 2431| r2431_54(glval>) = VariableAddress[(__end)] : +#-----| r0_11(glval>) = Convert : r2431_54 #-----| r0_12(iterator &) = CopyValue : r0_11 -# 2431| v2431_59(void) = Call[iterator] : func:r2431_57, this:r0_8, 0:r0_12 -# 2431| m2431_60(unknown) = ^CallSideEffect : ~m0_10 -# 2431| m2431_61(unknown) = Chi : total:m0_10, partial:m2431_60 -#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2431_61 -# 2431| m2431_62(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 -# 2431| m2431_63(unknown) = Chi : total:m2431_61, partial:m2431_62 -#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2431_63 -# 2431| r2431_64(bool) = Call[operator!=] : func:r2431_56, this:r0_7, 0:r0_14 -#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2431_53 -# 2431| v2431_65(void) = ConditionalBranch : r2431_64 +# 2431| v2431_55(void) = Call[iterator] : func:r2431_53, this:r0_8, 0:r0_12 +# 2431| m2431_56(unknown) = ^CallSideEffect : ~m0_10 +# 2431| m2431_57(unknown) = Chi : total:m0_10, partial:m2431_56 +#-----| v0_13(void) = ^BufferReadSideEffect[0] : &:r0_12, ~m2431_57 +# 2431| m2431_58(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2431| m2431_59(unknown) = Chi : total:m2431_57, partial:m2431_58 +#-----| r0_14(iterator) = Load[#temp0:0] : &:r0_8, ~m2431_59 +# 2431| r2431_60(bool) = Call[operator!=] : func:r2431_52, this:r0_7, 0:r0_14 +#-----| v0_15(void) = ^IndirectReadSideEffect[-1] : &:r0_7, m2431_49 +# 2431| v2431_61(void) = ConditionalBranch : r2431_60 #-----| False -> Block 12 #-----| True -> Block 11 # 2431| Block 11 -# 2431| r2431_66(glval) = VariableAddress[y] : -# 2431| r2431_67(glval>) = VariableAddress[(__begin)] : -#-----| r0_16(glval>) = Convert : r2431_67 -# 2431| r2431_68(glval) = FunctionAddress[operator*] : -# 2431| r2431_69(char &) = Call[operator*] : func:r2431_68, this:r0_16 -#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2431_53 -# 2431| r2431_70(char) = Load[?] : &:r2431_69, ~m2431_63 -# 2431| m2431_71(char) = Store[y] : &:r2431_66, r2431_70 +# 2431| r2431_62(glval) = VariableAddress[y] : +# 2431| r2431_63(glval>) = VariableAddress[(__begin)] : +#-----| r0_16(glval>) = Convert : r2431_63 +# 2431| r2431_64(glval) = FunctionAddress[operator*] : +# 2431| r2431_65(char &) = Call[operator*] : func:r2431_64, this:r0_16 +#-----| v0_17(void) = ^IndirectReadSideEffect[-1] : &:r0_16, m2431_49 +# 2431| r2431_66(char) = Load[?] : &:r2431_65, ~m2431_59 +# 2431| m2431_67(char) = Store[y] : &:r2431_62, r2431_66 # 2432| r2432_1(glval) = VariableAddress[x] : # 2432| r2432_2(char) = Load[x] : &:r2432_1, m2431_25 # 2432| r2432_3(int) = Convert : r2432_2 # 2432| r2432_4(glval) = VariableAddress[y] : -# 2432| r2432_5(char) = Load[y] : &:r2432_4, m2431_71 +# 2432| r2432_5(char) = Load[y] : &:r2432_4, m2431_67 # 2432| r2432_6(int) = Convert : r2432_5 # 2432| r2432_7(int) = Add : r2432_6, r2432_3 # 2432| r2432_8(char) = Convert : r2432_7 # 2432| m2432_9(char) = Store[y] : &:r2432_4, r2432_8 -# 2431| r2431_72(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_73(glval) = FunctionAddress[operator++] : -# 2431| r2431_74(iterator &) = Call[operator++] : func:r2431_73, this:r2431_72 -# 2431| v2431_75(void) = ^IndirectReadSideEffect[-1] : &:r2431_72, m2431_53 -# 2431| m2431_76(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_72 -# 2431| m2431_77(iterator) = Chi : total:m2431_53, partial:m2431_76 -# 2431| r2431_78(glval>) = CopyValue : r2431_74 +# 2431| r2431_68(glval>) = VariableAddress[(__begin)] : +# 2431| r2431_69(glval) = FunctionAddress[operator++] : +# 2431| r2431_70(iterator &) = Call[operator++] : func:r2431_69, this:r2431_68 +# 2431| v2431_71(void) = ^IndirectReadSideEffect[-1] : &:r2431_68, m2431_49 +# 2431| m2431_72(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_68 +# 2431| m2431_73(iterator) = Chi : total:m2431_49, partial:m2431_72 +# 2431| r2431_74(glval>) = CopyValue : r2431_70 #-----| Goto (back edge) -> Block 10 # 2431| Block 12 -# 2431| r2431_79(glval>) = CopyValue : r2431_27 -# 2431| r2431_80(glval) = FunctionAddress[~vector] : -# 2431| v2431_81(void) = Call[~vector] : func:r2431_80, this:r2431_79 -# 2431| m2431_82(unknown) = ^CallSideEffect : ~m2431_63 -# 2431| m2431_83(unknown) = Chi : total:m2431_63, partial:m2431_82 -# 2431| v2431_84(void) = ^IndirectReadSideEffect[-1] : &:r2431_79, ~m2431_83 -# 2431| m2431_85(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2431_79 -# 2431| m2431_86(unknown) = Chi : total:m2431_83, partial:m2431_85 -# 2433| v2433_1(void) = NoOp : -# 2411| v2411_5(void) = ReturnVoid : -# 2411| v2411_6(void) = AliasedUse : ~m2431_83 -# 2411| v2411_7(void) = ExitFunction : +# 2431| r2431_75(glval>) = CopyValue : r2431_27 +# 2431| r2431_76(glval) = FunctionAddress[~vector] : +# 2431| v2431_77(void) = Call[~vector] : func:r2431_76, this:r2431_75 +# 2431| v2431_78(void) = ^IndirectReadSideEffect[-1] : &:r2431_75, m2431_33 +# 2431| m2431_79(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_75 +# 2433| v2433_1(void) = NoOp : +# 2411| v2411_5(void) = ReturnVoid : +# 2411| v2411_6(void) = AliasedUse : ~m2431_57 +# 2411| v2411_7(void) = ExitFunction : # 2411| Block 13 # 2411| v2411_8(void) = Unreached : @@ -18827,6 +18779,7 @@ ir.cpp: # 2667| r2667_1(glval) = VariableAddress[intBuffer] : # 2667| r2667_2(int) = Constant[8] : # 2667| m2667_3(int) = Store[intBuffer] : &:r2667_1, r2667_2 +# 2667| m2667_4(unknown) = Chi : total:m2663_4, partial:m2667_3 # 2668| r2668_1(glval) = VariableAddress[intBuffer] : # 2668| r2668_2(int *) = CopyValue : r2668_1 # 2668| r2668_3(glval) = VariableAddress[data] : @@ -18834,15 +18787,15 @@ ir.cpp: #-----| Goto -> Block 2 # 2670| Block 2 -# 2670| m2670_1(int) = Phi : from 1:m2667_3 +# 2670| m2670_1(unknown) = Phi : from 0:~m2663_4, from 1:~m2667_4 # 2670| m2670_2(int *) = Phi : from 0:m2665_3, from 1:m2668_4 # 2670| r2670_3(glval) = FunctionAddress[use_int] : # 2670| r2670_4(glval) = VariableAddress[data] : # 2670| r2670_5(int *) = Load[data] : &:r2670_4, m2670_2 # 2670| r2670_6(int) = Load[?] : &:r2670_5, ~m2670_1 # 2670| v2670_7(void) = Call[use_int] : func:r2670_3, 0:r2670_6 -# 2670| m2670_8(unknown) = ^CallSideEffect : ~m2663_4 -# 2670| m2670_9(unknown) = Chi : total:m2663_4, partial:m2670_8 +# 2670| m2670_8(unknown) = ^CallSideEffect : ~m2670_1 +# 2670| m2670_9(unknown) = Chi : total:m2670_1, partial:m2670_8 # 2671| v2671_1(void) = NoOp : # 2663| v2663_7(void) = ReturnVoid : # 2663| v2663_8(void) = AliasedUse : ~m2670_9 @@ -18932,6 +18885,18470 @@ ir.cpp: # 2684| Block 8 # 2684| v2684_14(void) = Unreached : +many-defs-per-use.cpp: +# 17| void many_defs_per_use() +# 17| Block 0 +# 17| v17_1(void) = EnterFunction : +# 17| mu17_2(unknown) = AliasedDefinition : +# 17| mu17_3(unknown) = InitializeNonLocal : +# 19| r19_1(glval) = VariableAddress[x0] : +# 19| mu19_2(String) = Uninitialized[x0] : &:r19_1 +# 19| r19_3(glval) = FunctionAddress[String] : +# 19| v19_4(void) = Call[String] : func:r19_3, this:r19_1 +# 19| mu19_5(unknown) = ^CallSideEffect : ~m? +# 19| mu19_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r19_1 +# 20| r20_1(glval) = VariableAddress[x0] : +# 20| r20_2(glval) = FunctionAddress[~String] : +# 20| v20_3(void) = Call[~String] : func:r20_2, this:r20_1 +# 20| mu20_4(unknown) = ^CallSideEffect : ~m? +# 20| v20_5(void) = ^IndirectReadSideEffect[-1] : &:r20_1, ~m? +# 20| mu20_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r20_1 +# 20| r20_7(bool) = Constant[0] : +# 20| v20_8(void) = ConditionalBranch : r20_7 +#-----| False -> Block 1 +#-----| True -> Block 1026 + +# 22| Block 1 +# 22| r22_1(glval) = VariableAddress[x1] : +# 22| mu22_2(String) = Uninitialized[x1] : &:r22_1 +# 22| r22_3(glval) = FunctionAddress[String] : +# 22| v22_4(void) = Call[String] : func:r22_3, this:r22_1 +# 22| mu22_5(unknown) = ^CallSideEffect : ~m? +# 22| mu22_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r22_1 +# 23| r23_1(glval) = VariableAddress[x1] : +# 23| r23_2(glval) = FunctionAddress[~String] : +# 23| v23_3(void) = Call[~String] : func:r23_2, this:r23_1 +# 23| mu23_4(unknown) = ^CallSideEffect : ~m? +# 23| v23_5(void) = ^IndirectReadSideEffect[-1] : &:r23_1, ~m? +# 23| mu23_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r23_1 +# 23| r23_7(bool) = Constant[0] : +# 23| v23_8(void) = ConditionalBranch : r23_7 +#-----| False -> Block 2 +#-----| True -> Block 1026 + +# 25| Block 2 +# 25| r25_1(glval) = VariableAddress[x2] : +# 25| mu25_2(String) = Uninitialized[x2] : &:r25_1 +# 25| r25_3(glval) = FunctionAddress[String] : +# 25| v25_4(void) = Call[String] : func:r25_3, this:r25_1 +# 25| mu25_5(unknown) = ^CallSideEffect : ~m? +# 25| mu25_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r25_1 +# 26| r26_1(glval) = VariableAddress[x2] : +# 26| r26_2(glval) = FunctionAddress[~String] : +# 26| v26_3(void) = Call[~String] : func:r26_2, this:r26_1 +# 26| mu26_4(unknown) = ^CallSideEffect : ~m? +# 26| v26_5(void) = ^IndirectReadSideEffect[-1] : &:r26_1, ~m? +# 26| mu26_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r26_1 +# 26| r26_7(bool) = Constant[0] : +# 26| v26_8(void) = ConditionalBranch : r26_7 +#-----| False -> Block 3 +#-----| True -> Block 1026 + +# 28| Block 3 +# 28| r28_1(glval) = VariableAddress[x3] : +# 28| mu28_2(String) = Uninitialized[x3] : &:r28_1 +# 28| r28_3(glval) = FunctionAddress[String] : +# 28| v28_4(void) = Call[String] : func:r28_3, this:r28_1 +# 28| mu28_5(unknown) = ^CallSideEffect : ~m? +# 28| mu28_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r28_1 +# 29| r29_1(glval) = VariableAddress[x3] : +# 29| r29_2(glval) = FunctionAddress[~String] : +# 29| v29_3(void) = Call[~String] : func:r29_2, this:r29_1 +# 29| mu29_4(unknown) = ^CallSideEffect : ~m? +# 29| v29_5(void) = ^IndirectReadSideEffect[-1] : &:r29_1, ~m? +# 29| mu29_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r29_1 +# 29| r29_7(bool) = Constant[0] : +# 29| v29_8(void) = ConditionalBranch : r29_7 +#-----| False -> Block 4 +#-----| True -> Block 1026 + +# 31| Block 4 +# 31| r31_1(glval) = VariableAddress[x4] : +# 31| mu31_2(String) = Uninitialized[x4] : &:r31_1 +# 31| r31_3(glval) = FunctionAddress[String] : +# 31| v31_4(void) = Call[String] : func:r31_3, this:r31_1 +# 31| mu31_5(unknown) = ^CallSideEffect : ~m? +# 31| mu31_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r31_1 +# 32| r32_1(glval) = VariableAddress[x4] : +# 32| r32_2(glval) = FunctionAddress[~String] : +# 32| v32_3(void) = Call[~String] : func:r32_2, this:r32_1 +# 32| mu32_4(unknown) = ^CallSideEffect : ~m? +# 32| v32_5(void) = ^IndirectReadSideEffect[-1] : &:r32_1, ~m? +# 32| mu32_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r32_1 +# 32| r32_7(bool) = Constant[0] : +# 32| v32_8(void) = ConditionalBranch : r32_7 +#-----| False -> Block 5 +#-----| True -> Block 1026 + +# 34| Block 5 +# 34| r34_1(glval) = VariableAddress[x5] : +# 34| mu34_2(String) = Uninitialized[x5] : &:r34_1 +# 34| r34_3(glval) = FunctionAddress[String] : +# 34| v34_4(void) = Call[String] : func:r34_3, this:r34_1 +# 34| mu34_5(unknown) = ^CallSideEffect : ~m? +# 34| mu34_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r34_1 +# 35| r35_1(glval) = VariableAddress[x5] : +# 35| r35_2(glval) = FunctionAddress[~String] : +# 35| v35_3(void) = Call[~String] : func:r35_2, this:r35_1 +# 35| mu35_4(unknown) = ^CallSideEffect : ~m? +# 35| v35_5(void) = ^IndirectReadSideEffect[-1] : &:r35_1, ~m? +# 35| mu35_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r35_1 +# 35| r35_7(bool) = Constant[0] : +# 35| v35_8(void) = ConditionalBranch : r35_7 +#-----| False -> Block 6 +#-----| True -> Block 1026 + +# 37| Block 6 +# 37| r37_1(glval) = VariableAddress[x6] : +# 37| mu37_2(String) = Uninitialized[x6] : &:r37_1 +# 37| r37_3(glval) = FunctionAddress[String] : +# 37| v37_4(void) = Call[String] : func:r37_3, this:r37_1 +# 37| mu37_5(unknown) = ^CallSideEffect : ~m? +# 37| mu37_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r37_1 +# 38| r38_1(glval) = VariableAddress[x6] : +# 38| r38_2(glval) = FunctionAddress[~String] : +# 38| v38_3(void) = Call[~String] : func:r38_2, this:r38_1 +# 38| mu38_4(unknown) = ^CallSideEffect : ~m? +# 38| v38_5(void) = ^IndirectReadSideEffect[-1] : &:r38_1, ~m? +# 38| mu38_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r38_1 +# 38| r38_7(bool) = Constant[0] : +# 38| v38_8(void) = ConditionalBranch : r38_7 +#-----| False -> Block 7 +#-----| True -> Block 1026 + +# 40| Block 7 +# 40| r40_1(glval) = VariableAddress[x7] : +# 40| mu40_2(String) = Uninitialized[x7] : &:r40_1 +# 40| r40_3(glval) = FunctionAddress[String] : +# 40| v40_4(void) = Call[String] : func:r40_3, this:r40_1 +# 40| mu40_5(unknown) = ^CallSideEffect : ~m? +# 40| mu40_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r40_1 +# 41| r41_1(glval) = VariableAddress[x7] : +# 41| r41_2(glval) = FunctionAddress[~String] : +# 41| v41_3(void) = Call[~String] : func:r41_2, this:r41_1 +# 41| mu41_4(unknown) = ^CallSideEffect : ~m? +# 41| v41_5(void) = ^IndirectReadSideEffect[-1] : &:r41_1, ~m? +# 41| mu41_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r41_1 +# 41| r41_7(bool) = Constant[0] : +# 41| v41_8(void) = ConditionalBranch : r41_7 +#-----| False -> Block 8 +#-----| True -> Block 1026 + +# 43| Block 8 +# 43| r43_1(glval) = VariableAddress[x8] : +# 43| mu43_2(String) = Uninitialized[x8] : &:r43_1 +# 43| r43_3(glval) = FunctionAddress[String] : +# 43| v43_4(void) = Call[String] : func:r43_3, this:r43_1 +# 43| mu43_5(unknown) = ^CallSideEffect : ~m? +# 43| mu43_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r43_1 +# 44| r44_1(glval) = VariableAddress[x8] : +# 44| r44_2(glval) = FunctionAddress[~String] : +# 44| v44_3(void) = Call[~String] : func:r44_2, this:r44_1 +# 44| mu44_4(unknown) = ^CallSideEffect : ~m? +# 44| v44_5(void) = ^IndirectReadSideEffect[-1] : &:r44_1, ~m? +# 44| mu44_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r44_1 +# 44| r44_7(bool) = Constant[0] : +# 44| v44_8(void) = ConditionalBranch : r44_7 +#-----| False -> Block 9 +#-----| True -> Block 1026 + +# 46| Block 9 +# 46| r46_1(glval) = VariableAddress[x9] : +# 46| mu46_2(String) = Uninitialized[x9] : &:r46_1 +# 46| r46_3(glval) = FunctionAddress[String] : +# 46| v46_4(void) = Call[String] : func:r46_3, this:r46_1 +# 46| mu46_5(unknown) = ^CallSideEffect : ~m? +# 46| mu46_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r46_1 +# 47| r47_1(glval) = VariableAddress[x9] : +# 47| r47_2(glval) = FunctionAddress[~String] : +# 47| v47_3(void) = Call[~String] : func:r47_2, this:r47_1 +# 47| mu47_4(unknown) = ^CallSideEffect : ~m? +# 47| v47_5(void) = ^IndirectReadSideEffect[-1] : &:r47_1, ~m? +# 47| mu47_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r47_1 +# 47| r47_7(bool) = Constant[0] : +# 47| v47_8(void) = ConditionalBranch : r47_7 +#-----| False -> Block 10 +#-----| True -> Block 1026 + +# 49| Block 10 +# 49| r49_1(glval) = VariableAddress[x10] : +# 49| mu49_2(String) = Uninitialized[x10] : &:r49_1 +# 49| r49_3(glval) = FunctionAddress[String] : +# 49| v49_4(void) = Call[String] : func:r49_3, this:r49_1 +# 49| mu49_5(unknown) = ^CallSideEffect : ~m? +# 49| mu49_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r49_1 +# 50| r50_1(glval) = VariableAddress[x10] : +# 50| r50_2(glval) = FunctionAddress[~String] : +# 50| v50_3(void) = Call[~String] : func:r50_2, this:r50_1 +# 50| mu50_4(unknown) = ^CallSideEffect : ~m? +# 50| v50_5(void) = ^IndirectReadSideEffect[-1] : &:r50_1, ~m? +# 50| mu50_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r50_1 +# 50| r50_7(bool) = Constant[0] : +# 50| v50_8(void) = ConditionalBranch : r50_7 +#-----| False -> Block 11 +#-----| True -> Block 1026 + +# 52| Block 11 +# 52| r52_1(glval) = VariableAddress[x11] : +# 52| mu52_2(String) = Uninitialized[x11] : &:r52_1 +# 52| r52_3(glval) = FunctionAddress[String] : +# 52| v52_4(void) = Call[String] : func:r52_3, this:r52_1 +# 52| mu52_5(unknown) = ^CallSideEffect : ~m? +# 52| mu52_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r52_1 +# 53| r53_1(glval) = VariableAddress[x11] : +# 53| r53_2(glval) = FunctionAddress[~String] : +# 53| v53_3(void) = Call[~String] : func:r53_2, this:r53_1 +# 53| mu53_4(unknown) = ^CallSideEffect : ~m? +# 53| v53_5(void) = ^IndirectReadSideEffect[-1] : &:r53_1, ~m? +# 53| mu53_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r53_1 +# 53| r53_7(bool) = Constant[0] : +# 53| v53_8(void) = ConditionalBranch : r53_7 +#-----| False -> Block 12 +#-----| True -> Block 1026 + +# 55| Block 12 +# 55| r55_1(glval) = VariableAddress[x12] : +# 55| mu55_2(String) = Uninitialized[x12] : &:r55_1 +# 55| r55_3(glval) = FunctionAddress[String] : +# 55| v55_4(void) = Call[String] : func:r55_3, this:r55_1 +# 55| mu55_5(unknown) = ^CallSideEffect : ~m? +# 55| mu55_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r55_1 +# 56| r56_1(glval) = VariableAddress[x12] : +# 56| r56_2(glval) = FunctionAddress[~String] : +# 56| v56_3(void) = Call[~String] : func:r56_2, this:r56_1 +# 56| mu56_4(unknown) = ^CallSideEffect : ~m? +# 56| v56_5(void) = ^IndirectReadSideEffect[-1] : &:r56_1, ~m? +# 56| mu56_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r56_1 +# 56| r56_7(bool) = Constant[0] : +# 56| v56_8(void) = ConditionalBranch : r56_7 +#-----| False -> Block 13 +#-----| True -> Block 1026 + +# 58| Block 13 +# 58| r58_1(glval) = VariableAddress[x13] : +# 58| mu58_2(String) = Uninitialized[x13] : &:r58_1 +# 58| r58_3(glval) = FunctionAddress[String] : +# 58| v58_4(void) = Call[String] : func:r58_3, this:r58_1 +# 58| mu58_5(unknown) = ^CallSideEffect : ~m? +# 58| mu58_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r58_1 +# 59| r59_1(glval) = VariableAddress[x13] : +# 59| r59_2(glval) = FunctionAddress[~String] : +# 59| v59_3(void) = Call[~String] : func:r59_2, this:r59_1 +# 59| mu59_4(unknown) = ^CallSideEffect : ~m? +# 59| v59_5(void) = ^IndirectReadSideEffect[-1] : &:r59_1, ~m? +# 59| mu59_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r59_1 +# 59| r59_7(bool) = Constant[0] : +# 59| v59_8(void) = ConditionalBranch : r59_7 +#-----| False -> Block 14 +#-----| True -> Block 1026 + +# 61| Block 14 +# 61| r61_1(glval) = VariableAddress[x14] : +# 61| mu61_2(String) = Uninitialized[x14] : &:r61_1 +# 61| r61_3(glval) = FunctionAddress[String] : +# 61| v61_4(void) = Call[String] : func:r61_3, this:r61_1 +# 61| mu61_5(unknown) = ^CallSideEffect : ~m? +# 61| mu61_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r61_1 +# 62| r62_1(glval) = VariableAddress[x14] : +# 62| r62_2(glval) = FunctionAddress[~String] : +# 62| v62_3(void) = Call[~String] : func:r62_2, this:r62_1 +# 62| mu62_4(unknown) = ^CallSideEffect : ~m? +# 62| v62_5(void) = ^IndirectReadSideEffect[-1] : &:r62_1, ~m? +# 62| mu62_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r62_1 +# 62| r62_7(bool) = Constant[0] : +# 62| v62_8(void) = ConditionalBranch : r62_7 +#-----| False -> Block 15 +#-----| True -> Block 1026 + +# 64| Block 15 +# 64| r64_1(glval) = VariableAddress[x15] : +# 64| mu64_2(String) = Uninitialized[x15] : &:r64_1 +# 64| r64_3(glval) = FunctionAddress[String] : +# 64| v64_4(void) = Call[String] : func:r64_3, this:r64_1 +# 64| mu64_5(unknown) = ^CallSideEffect : ~m? +# 64| mu64_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r64_1 +# 65| r65_1(glval) = VariableAddress[x15] : +# 65| r65_2(glval) = FunctionAddress[~String] : +# 65| v65_3(void) = Call[~String] : func:r65_2, this:r65_1 +# 65| mu65_4(unknown) = ^CallSideEffect : ~m? +# 65| v65_5(void) = ^IndirectReadSideEffect[-1] : &:r65_1, ~m? +# 65| mu65_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r65_1 +# 65| r65_7(bool) = Constant[0] : +# 65| v65_8(void) = ConditionalBranch : r65_7 +#-----| False -> Block 16 +#-----| True -> Block 1026 + +# 67| Block 16 +# 67| r67_1(glval) = VariableAddress[x16] : +# 67| mu67_2(String) = Uninitialized[x16] : &:r67_1 +# 67| r67_3(glval) = FunctionAddress[String] : +# 67| v67_4(void) = Call[String] : func:r67_3, this:r67_1 +# 67| mu67_5(unknown) = ^CallSideEffect : ~m? +# 67| mu67_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r67_1 +# 68| r68_1(glval) = VariableAddress[x16] : +# 68| r68_2(glval) = FunctionAddress[~String] : +# 68| v68_3(void) = Call[~String] : func:r68_2, this:r68_1 +# 68| mu68_4(unknown) = ^CallSideEffect : ~m? +# 68| v68_5(void) = ^IndirectReadSideEffect[-1] : &:r68_1, ~m? +# 68| mu68_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r68_1 +# 68| r68_7(bool) = Constant[0] : +# 68| v68_8(void) = ConditionalBranch : r68_7 +#-----| False -> Block 17 +#-----| True -> Block 1026 + +# 70| Block 17 +# 70| r70_1(glval) = VariableAddress[x17] : +# 70| mu70_2(String) = Uninitialized[x17] : &:r70_1 +# 70| r70_3(glval) = FunctionAddress[String] : +# 70| v70_4(void) = Call[String] : func:r70_3, this:r70_1 +# 70| mu70_5(unknown) = ^CallSideEffect : ~m? +# 70| mu70_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r70_1 +# 71| r71_1(glval) = VariableAddress[x17] : +# 71| r71_2(glval) = FunctionAddress[~String] : +# 71| v71_3(void) = Call[~String] : func:r71_2, this:r71_1 +# 71| mu71_4(unknown) = ^CallSideEffect : ~m? +# 71| v71_5(void) = ^IndirectReadSideEffect[-1] : &:r71_1, ~m? +# 71| mu71_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r71_1 +# 71| r71_7(bool) = Constant[0] : +# 71| v71_8(void) = ConditionalBranch : r71_7 +#-----| False -> Block 18 +#-----| True -> Block 1026 + +# 73| Block 18 +# 73| r73_1(glval) = VariableAddress[x18] : +# 73| mu73_2(String) = Uninitialized[x18] : &:r73_1 +# 73| r73_3(glval) = FunctionAddress[String] : +# 73| v73_4(void) = Call[String] : func:r73_3, this:r73_1 +# 73| mu73_5(unknown) = ^CallSideEffect : ~m? +# 73| mu73_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r73_1 +# 74| r74_1(glval) = VariableAddress[x18] : +# 74| r74_2(glval) = FunctionAddress[~String] : +# 74| v74_3(void) = Call[~String] : func:r74_2, this:r74_1 +# 74| mu74_4(unknown) = ^CallSideEffect : ~m? +# 74| v74_5(void) = ^IndirectReadSideEffect[-1] : &:r74_1, ~m? +# 74| mu74_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r74_1 +# 74| r74_7(bool) = Constant[0] : +# 74| v74_8(void) = ConditionalBranch : r74_7 +#-----| False -> Block 19 +#-----| True -> Block 1026 + +# 76| Block 19 +# 76| r76_1(glval) = VariableAddress[x19] : +# 76| mu76_2(String) = Uninitialized[x19] : &:r76_1 +# 76| r76_3(glval) = FunctionAddress[String] : +# 76| v76_4(void) = Call[String] : func:r76_3, this:r76_1 +# 76| mu76_5(unknown) = ^CallSideEffect : ~m? +# 76| mu76_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r76_1 +# 77| r77_1(glval) = VariableAddress[x19] : +# 77| r77_2(glval) = FunctionAddress[~String] : +# 77| v77_3(void) = Call[~String] : func:r77_2, this:r77_1 +# 77| mu77_4(unknown) = ^CallSideEffect : ~m? +# 77| v77_5(void) = ^IndirectReadSideEffect[-1] : &:r77_1, ~m? +# 77| mu77_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r77_1 +# 77| r77_7(bool) = Constant[0] : +# 77| v77_8(void) = ConditionalBranch : r77_7 +#-----| False -> Block 20 +#-----| True -> Block 1026 + +# 79| Block 20 +# 79| r79_1(glval) = VariableAddress[x20] : +# 79| mu79_2(String) = Uninitialized[x20] : &:r79_1 +# 79| r79_3(glval) = FunctionAddress[String] : +# 79| v79_4(void) = Call[String] : func:r79_3, this:r79_1 +# 79| mu79_5(unknown) = ^CallSideEffect : ~m? +# 79| mu79_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r79_1 +# 80| r80_1(glval) = VariableAddress[x20] : +# 80| r80_2(glval) = FunctionAddress[~String] : +# 80| v80_3(void) = Call[~String] : func:r80_2, this:r80_1 +# 80| mu80_4(unknown) = ^CallSideEffect : ~m? +# 80| v80_5(void) = ^IndirectReadSideEffect[-1] : &:r80_1, ~m? +# 80| mu80_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r80_1 +# 80| r80_7(bool) = Constant[0] : +# 80| v80_8(void) = ConditionalBranch : r80_7 +#-----| False -> Block 21 +#-----| True -> Block 1026 + +# 82| Block 21 +# 82| r82_1(glval) = VariableAddress[x21] : +# 82| mu82_2(String) = Uninitialized[x21] : &:r82_1 +# 82| r82_3(glval) = FunctionAddress[String] : +# 82| v82_4(void) = Call[String] : func:r82_3, this:r82_1 +# 82| mu82_5(unknown) = ^CallSideEffect : ~m? +# 82| mu82_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r82_1 +# 83| r83_1(glval) = VariableAddress[x21] : +# 83| r83_2(glval) = FunctionAddress[~String] : +# 83| v83_3(void) = Call[~String] : func:r83_2, this:r83_1 +# 83| mu83_4(unknown) = ^CallSideEffect : ~m? +# 83| v83_5(void) = ^IndirectReadSideEffect[-1] : &:r83_1, ~m? +# 83| mu83_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r83_1 +# 83| r83_7(bool) = Constant[0] : +# 83| v83_8(void) = ConditionalBranch : r83_7 +#-----| False -> Block 22 +#-----| True -> Block 1026 + +# 85| Block 22 +# 85| r85_1(glval) = VariableAddress[x22] : +# 85| mu85_2(String) = Uninitialized[x22] : &:r85_1 +# 85| r85_3(glval) = FunctionAddress[String] : +# 85| v85_4(void) = Call[String] : func:r85_3, this:r85_1 +# 85| mu85_5(unknown) = ^CallSideEffect : ~m? +# 85| mu85_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r85_1 +# 86| r86_1(glval) = VariableAddress[x22] : +# 86| r86_2(glval) = FunctionAddress[~String] : +# 86| v86_3(void) = Call[~String] : func:r86_2, this:r86_1 +# 86| mu86_4(unknown) = ^CallSideEffect : ~m? +# 86| v86_5(void) = ^IndirectReadSideEffect[-1] : &:r86_1, ~m? +# 86| mu86_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r86_1 +# 86| r86_7(bool) = Constant[0] : +# 86| v86_8(void) = ConditionalBranch : r86_7 +#-----| False -> Block 23 +#-----| True -> Block 1026 + +# 88| Block 23 +# 88| r88_1(glval) = VariableAddress[x23] : +# 88| mu88_2(String) = Uninitialized[x23] : &:r88_1 +# 88| r88_3(glval) = FunctionAddress[String] : +# 88| v88_4(void) = Call[String] : func:r88_3, this:r88_1 +# 88| mu88_5(unknown) = ^CallSideEffect : ~m? +# 88| mu88_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r88_1 +# 89| r89_1(glval) = VariableAddress[x23] : +# 89| r89_2(glval) = FunctionAddress[~String] : +# 89| v89_3(void) = Call[~String] : func:r89_2, this:r89_1 +# 89| mu89_4(unknown) = ^CallSideEffect : ~m? +# 89| v89_5(void) = ^IndirectReadSideEffect[-1] : &:r89_1, ~m? +# 89| mu89_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r89_1 +# 89| r89_7(bool) = Constant[0] : +# 89| v89_8(void) = ConditionalBranch : r89_7 +#-----| False -> Block 24 +#-----| True -> Block 1026 + +# 91| Block 24 +# 91| r91_1(glval) = VariableAddress[x24] : +# 91| mu91_2(String) = Uninitialized[x24] : &:r91_1 +# 91| r91_3(glval) = FunctionAddress[String] : +# 91| v91_4(void) = Call[String] : func:r91_3, this:r91_1 +# 91| mu91_5(unknown) = ^CallSideEffect : ~m? +# 91| mu91_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r91_1 +# 92| r92_1(glval) = VariableAddress[x24] : +# 92| r92_2(glval) = FunctionAddress[~String] : +# 92| v92_3(void) = Call[~String] : func:r92_2, this:r92_1 +# 92| mu92_4(unknown) = ^CallSideEffect : ~m? +# 92| v92_5(void) = ^IndirectReadSideEffect[-1] : &:r92_1, ~m? +# 92| mu92_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r92_1 +# 92| r92_7(bool) = Constant[0] : +# 92| v92_8(void) = ConditionalBranch : r92_7 +#-----| False -> Block 25 +#-----| True -> Block 1026 + +# 94| Block 25 +# 94| r94_1(glval) = VariableAddress[x25] : +# 94| mu94_2(String) = Uninitialized[x25] : &:r94_1 +# 94| r94_3(glval) = FunctionAddress[String] : +# 94| v94_4(void) = Call[String] : func:r94_3, this:r94_1 +# 94| mu94_5(unknown) = ^CallSideEffect : ~m? +# 94| mu94_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r94_1 +# 95| r95_1(glval) = VariableAddress[x25] : +# 95| r95_2(glval) = FunctionAddress[~String] : +# 95| v95_3(void) = Call[~String] : func:r95_2, this:r95_1 +# 95| mu95_4(unknown) = ^CallSideEffect : ~m? +# 95| v95_5(void) = ^IndirectReadSideEffect[-1] : &:r95_1, ~m? +# 95| mu95_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r95_1 +# 95| r95_7(bool) = Constant[0] : +# 95| v95_8(void) = ConditionalBranch : r95_7 +#-----| False -> Block 26 +#-----| True -> Block 1026 + +# 97| Block 26 +# 97| r97_1(glval) = VariableAddress[x26] : +# 97| mu97_2(String) = Uninitialized[x26] : &:r97_1 +# 97| r97_3(glval) = FunctionAddress[String] : +# 97| v97_4(void) = Call[String] : func:r97_3, this:r97_1 +# 97| mu97_5(unknown) = ^CallSideEffect : ~m? +# 97| mu97_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r97_1 +# 98| r98_1(glval) = VariableAddress[x26] : +# 98| r98_2(glval) = FunctionAddress[~String] : +# 98| v98_3(void) = Call[~String] : func:r98_2, this:r98_1 +# 98| mu98_4(unknown) = ^CallSideEffect : ~m? +# 98| v98_5(void) = ^IndirectReadSideEffect[-1] : &:r98_1, ~m? +# 98| mu98_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r98_1 +# 98| r98_7(bool) = Constant[0] : +# 98| v98_8(void) = ConditionalBranch : r98_7 +#-----| False -> Block 27 +#-----| True -> Block 1026 + +# 100| Block 27 +# 100| r100_1(glval) = VariableAddress[x27] : +# 100| mu100_2(String) = Uninitialized[x27] : &:r100_1 +# 100| r100_3(glval) = FunctionAddress[String] : +# 100| v100_4(void) = Call[String] : func:r100_3, this:r100_1 +# 100| mu100_5(unknown) = ^CallSideEffect : ~m? +# 100| mu100_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r100_1 +# 101| r101_1(glval) = VariableAddress[x27] : +# 101| r101_2(glval) = FunctionAddress[~String] : +# 101| v101_3(void) = Call[~String] : func:r101_2, this:r101_1 +# 101| mu101_4(unknown) = ^CallSideEffect : ~m? +# 101| v101_5(void) = ^IndirectReadSideEffect[-1] : &:r101_1, ~m? +# 101| mu101_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r101_1 +# 101| r101_7(bool) = Constant[0] : +# 101| v101_8(void) = ConditionalBranch : r101_7 +#-----| False -> Block 28 +#-----| True -> Block 1026 + +# 103| Block 28 +# 103| r103_1(glval) = VariableAddress[x28] : +# 103| mu103_2(String) = Uninitialized[x28] : &:r103_1 +# 103| r103_3(glval) = FunctionAddress[String] : +# 103| v103_4(void) = Call[String] : func:r103_3, this:r103_1 +# 103| mu103_5(unknown) = ^CallSideEffect : ~m? +# 103| mu103_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r103_1 +# 104| r104_1(glval) = VariableAddress[x28] : +# 104| r104_2(glval) = FunctionAddress[~String] : +# 104| v104_3(void) = Call[~String] : func:r104_2, this:r104_1 +# 104| mu104_4(unknown) = ^CallSideEffect : ~m? +# 104| v104_5(void) = ^IndirectReadSideEffect[-1] : &:r104_1, ~m? +# 104| mu104_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r104_1 +# 104| r104_7(bool) = Constant[0] : +# 104| v104_8(void) = ConditionalBranch : r104_7 +#-----| False -> Block 29 +#-----| True -> Block 1026 + +# 106| Block 29 +# 106| r106_1(glval) = VariableAddress[x29] : +# 106| mu106_2(String) = Uninitialized[x29] : &:r106_1 +# 106| r106_3(glval) = FunctionAddress[String] : +# 106| v106_4(void) = Call[String] : func:r106_3, this:r106_1 +# 106| mu106_5(unknown) = ^CallSideEffect : ~m? +# 106| mu106_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r106_1 +# 107| r107_1(glval) = VariableAddress[x29] : +# 107| r107_2(glval) = FunctionAddress[~String] : +# 107| v107_3(void) = Call[~String] : func:r107_2, this:r107_1 +# 107| mu107_4(unknown) = ^CallSideEffect : ~m? +# 107| v107_5(void) = ^IndirectReadSideEffect[-1] : &:r107_1, ~m? +# 107| mu107_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r107_1 +# 107| r107_7(bool) = Constant[0] : +# 107| v107_8(void) = ConditionalBranch : r107_7 +#-----| False -> Block 30 +#-----| True -> Block 1026 + +# 109| Block 30 +# 109| r109_1(glval) = VariableAddress[x30] : +# 109| mu109_2(String) = Uninitialized[x30] : &:r109_1 +# 109| r109_3(glval) = FunctionAddress[String] : +# 109| v109_4(void) = Call[String] : func:r109_3, this:r109_1 +# 109| mu109_5(unknown) = ^CallSideEffect : ~m? +# 109| mu109_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r109_1 +# 110| r110_1(glval) = VariableAddress[x30] : +# 110| r110_2(glval) = FunctionAddress[~String] : +# 110| v110_3(void) = Call[~String] : func:r110_2, this:r110_1 +# 110| mu110_4(unknown) = ^CallSideEffect : ~m? +# 110| v110_5(void) = ^IndirectReadSideEffect[-1] : &:r110_1, ~m? +# 110| mu110_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r110_1 +# 110| r110_7(bool) = Constant[0] : +# 110| v110_8(void) = ConditionalBranch : r110_7 +#-----| False -> Block 31 +#-----| True -> Block 1026 + +# 112| Block 31 +# 112| r112_1(glval) = VariableAddress[x31] : +# 112| mu112_2(String) = Uninitialized[x31] : &:r112_1 +# 112| r112_3(glval) = FunctionAddress[String] : +# 112| v112_4(void) = Call[String] : func:r112_3, this:r112_1 +# 112| mu112_5(unknown) = ^CallSideEffect : ~m? +# 112| mu112_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r112_1 +# 113| r113_1(glval) = VariableAddress[x31] : +# 113| r113_2(glval) = FunctionAddress[~String] : +# 113| v113_3(void) = Call[~String] : func:r113_2, this:r113_1 +# 113| mu113_4(unknown) = ^CallSideEffect : ~m? +# 113| v113_5(void) = ^IndirectReadSideEffect[-1] : &:r113_1, ~m? +# 113| mu113_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r113_1 +# 113| r113_7(bool) = Constant[0] : +# 113| v113_8(void) = ConditionalBranch : r113_7 +#-----| False -> Block 32 +#-----| True -> Block 1026 + +# 115| Block 32 +# 115| r115_1(glval) = VariableAddress[x32] : +# 115| mu115_2(String) = Uninitialized[x32] : &:r115_1 +# 115| r115_3(glval) = FunctionAddress[String] : +# 115| v115_4(void) = Call[String] : func:r115_3, this:r115_1 +# 115| mu115_5(unknown) = ^CallSideEffect : ~m? +# 115| mu115_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r115_1 +# 116| r116_1(glval) = VariableAddress[x32] : +# 116| r116_2(glval) = FunctionAddress[~String] : +# 116| v116_3(void) = Call[~String] : func:r116_2, this:r116_1 +# 116| mu116_4(unknown) = ^CallSideEffect : ~m? +# 116| v116_5(void) = ^IndirectReadSideEffect[-1] : &:r116_1, ~m? +# 116| mu116_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r116_1 +# 116| r116_7(bool) = Constant[0] : +# 116| v116_8(void) = ConditionalBranch : r116_7 +#-----| False -> Block 33 +#-----| True -> Block 1026 + +# 118| Block 33 +# 118| r118_1(glval) = VariableAddress[x33] : +# 118| mu118_2(String) = Uninitialized[x33] : &:r118_1 +# 118| r118_3(glval) = FunctionAddress[String] : +# 118| v118_4(void) = Call[String] : func:r118_3, this:r118_1 +# 118| mu118_5(unknown) = ^CallSideEffect : ~m? +# 118| mu118_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r118_1 +# 119| r119_1(glval) = VariableAddress[x33] : +# 119| r119_2(glval) = FunctionAddress[~String] : +# 119| v119_3(void) = Call[~String] : func:r119_2, this:r119_1 +# 119| mu119_4(unknown) = ^CallSideEffect : ~m? +# 119| v119_5(void) = ^IndirectReadSideEffect[-1] : &:r119_1, ~m? +# 119| mu119_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r119_1 +# 119| r119_7(bool) = Constant[0] : +# 119| v119_8(void) = ConditionalBranch : r119_7 +#-----| False -> Block 34 +#-----| True -> Block 1026 + +# 121| Block 34 +# 121| r121_1(glval) = VariableAddress[x34] : +# 121| mu121_2(String) = Uninitialized[x34] : &:r121_1 +# 121| r121_3(glval) = FunctionAddress[String] : +# 121| v121_4(void) = Call[String] : func:r121_3, this:r121_1 +# 121| mu121_5(unknown) = ^CallSideEffect : ~m? +# 121| mu121_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r121_1 +# 122| r122_1(glval) = VariableAddress[x34] : +# 122| r122_2(glval) = FunctionAddress[~String] : +# 122| v122_3(void) = Call[~String] : func:r122_2, this:r122_1 +# 122| mu122_4(unknown) = ^CallSideEffect : ~m? +# 122| v122_5(void) = ^IndirectReadSideEffect[-1] : &:r122_1, ~m? +# 122| mu122_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r122_1 +# 122| r122_7(bool) = Constant[0] : +# 122| v122_8(void) = ConditionalBranch : r122_7 +#-----| False -> Block 35 +#-----| True -> Block 1026 + +# 124| Block 35 +# 124| r124_1(glval) = VariableAddress[x35] : +# 124| mu124_2(String) = Uninitialized[x35] : &:r124_1 +# 124| r124_3(glval) = FunctionAddress[String] : +# 124| v124_4(void) = Call[String] : func:r124_3, this:r124_1 +# 124| mu124_5(unknown) = ^CallSideEffect : ~m? +# 124| mu124_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r124_1 +# 125| r125_1(glval) = VariableAddress[x35] : +# 125| r125_2(glval) = FunctionAddress[~String] : +# 125| v125_3(void) = Call[~String] : func:r125_2, this:r125_1 +# 125| mu125_4(unknown) = ^CallSideEffect : ~m? +# 125| v125_5(void) = ^IndirectReadSideEffect[-1] : &:r125_1, ~m? +# 125| mu125_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r125_1 +# 125| r125_7(bool) = Constant[0] : +# 125| v125_8(void) = ConditionalBranch : r125_7 +#-----| False -> Block 36 +#-----| True -> Block 1026 + +# 127| Block 36 +# 127| r127_1(glval) = VariableAddress[x36] : +# 127| mu127_2(String) = Uninitialized[x36] : &:r127_1 +# 127| r127_3(glval) = FunctionAddress[String] : +# 127| v127_4(void) = Call[String] : func:r127_3, this:r127_1 +# 127| mu127_5(unknown) = ^CallSideEffect : ~m? +# 127| mu127_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r127_1 +# 128| r128_1(glval) = VariableAddress[x36] : +# 128| r128_2(glval) = FunctionAddress[~String] : +# 128| v128_3(void) = Call[~String] : func:r128_2, this:r128_1 +# 128| mu128_4(unknown) = ^CallSideEffect : ~m? +# 128| v128_5(void) = ^IndirectReadSideEffect[-1] : &:r128_1, ~m? +# 128| mu128_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r128_1 +# 128| r128_7(bool) = Constant[0] : +# 128| v128_8(void) = ConditionalBranch : r128_7 +#-----| False -> Block 37 +#-----| True -> Block 1026 + +# 130| Block 37 +# 130| r130_1(glval) = VariableAddress[x37] : +# 130| mu130_2(String) = Uninitialized[x37] : &:r130_1 +# 130| r130_3(glval) = FunctionAddress[String] : +# 130| v130_4(void) = Call[String] : func:r130_3, this:r130_1 +# 130| mu130_5(unknown) = ^CallSideEffect : ~m? +# 130| mu130_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r130_1 +# 131| r131_1(glval) = VariableAddress[x37] : +# 131| r131_2(glval) = FunctionAddress[~String] : +# 131| v131_3(void) = Call[~String] : func:r131_2, this:r131_1 +# 131| mu131_4(unknown) = ^CallSideEffect : ~m? +# 131| v131_5(void) = ^IndirectReadSideEffect[-1] : &:r131_1, ~m? +# 131| mu131_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r131_1 +# 131| r131_7(bool) = Constant[0] : +# 131| v131_8(void) = ConditionalBranch : r131_7 +#-----| False -> Block 38 +#-----| True -> Block 1026 + +# 133| Block 38 +# 133| r133_1(glval) = VariableAddress[x38] : +# 133| mu133_2(String) = Uninitialized[x38] : &:r133_1 +# 133| r133_3(glval) = FunctionAddress[String] : +# 133| v133_4(void) = Call[String] : func:r133_3, this:r133_1 +# 133| mu133_5(unknown) = ^CallSideEffect : ~m? +# 133| mu133_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r133_1 +# 134| r134_1(glval) = VariableAddress[x38] : +# 134| r134_2(glval) = FunctionAddress[~String] : +# 134| v134_3(void) = Call[~String] : func:r134_2, this:r134_1 +# 134| mu134_4(unknown) = ^CallSideEffect : ~m? +# 134| v134_5(void) = ^IndirectReadSideEffect[-1] : &:r134_1, ~m? +# 134| mu134_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r134_1 +# 134| r134_7(bool) = Constant[0] : +# 134| v134_8(void) = ConditionalBranch : r134_7 +#-----| False -> Block 39 +#-----| True -> Block 1026 + +# 136| Block 39 +# 136| r136_1(glval) = VariableAddress[x39] : +# 136| mu136_2(String) = Uninitialized[x39] : &:r136_1 +# 136| r136_3(glval) = FunctionAddress[String] : +# 136| v136_4(void) = Call[String] : func:r136_3, this:r136_1 +# 136| mu136_5(unknown) = ^CallSideEffect : ~m? +# 136| mu136_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r136_1 +# 137| r137_1(glval) = VariableAddress[x39] : +# 137| r137_2(glval) = FunctionAddress[~String] : +# 137| v137_3(void) = Call[~String] : func:r137_2, this:r137_1 +# 137| mu137_4(unknown) = ^CallSideEffect : ~m? +# 137| v137_5(void) = ^IndirectReadSideEffect[-1] : &:r137_1, ~m? +# 137| mu137_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r137_1 +# 137| r137_7(bool) = Constant[0] : +# 137| v137_8(void) = ConditionalBranch : r137_7 +#-----| False -> Block 40 +#-----| True -> Block 1026 + +# 139| Block 40 +# 139| r139_1(glval) = VariableAddress[x40] : +# 139| mu139_2(String) = Uninitialized[x40] : &:r139_1 +# 139| r139_3(glval) = FunctionAddress[String] : +# 139| v139_4(void) = Call[String] : func:r139_3, this:r139_1 +# 139| mu139_5(unknown) = ^CallSideEffect : ~m? +# 139| mu139_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r139_1 +# 140| r140_1(glval) = VariableAddress[x40] : +# 140| r140_2(glval) = FunctionAddress[~String] : +# 140| v140_3(void) = Call[~String] : func:r140_2, this:r140_1 +# 140| mu140_4(unknown) = ^CallSideEffect : ~m? +# 140| v140_5(void) = ^IndirectReadSideEffect[-1] : &:r140_1, ~m? +# 140| mu140_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r140_1 +# 140| r140_7(bool) = Constant[0] : +# 140| v140_8(void) = ConditionalBranch : r140_7 +#-----| False -> Block 41 +#-----| True -> Block 1026 + +# 142| Block 41 +# 142| r142_1(glval) = VariableAddress[x41] : +# 142| mu142_2(String) = Uninitialized[x41] : &:r142_1 +# 142| r142_3(glval) = FunctionAddress[String] : +# 142| v142_4(void) = Call[String] : func:r142_3, this:r142_1 +# 142| mu142_5(unknown) = ^CallSideEffect : ~m? +# 142| mu142_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r142_1 +# 143| r143_1(glval) = VariableAddress[x41] : +# 143| r143_2(glval) = FunctionAddress[~String] : +# 143| v143_3(void) = Call[~String] : func:r143_2, this:r143_1 +# 143| mu143_4(unknown) = ^CallSideEffect : ~m? +# 143| v143_5(void) = ^IndirectReadSideEffect[-1] : &:r143_1, ~m? +# 143| mu143_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r143_1 +# 143| r143_7(bool) = Constant[0] : +# 143| v143_8(void) = ConditionalBranch : r143_7 +#-----| False -> Block 42 +#-----| True -> Block 1026 + +# 145| Block 42 +# 145| r145_1(glval) = VariableAddress[x42] : +# 145| mu145_2(String) = Uninitialized[x42] : &:r145_1 +# 145| r145_3(glval) = FunctionAddress[String] : +# 145| v145_4(void) = Call[String] : func:r145_3, this:r145_1 +# 145| mu145_5(unknown) = ^CallSideEffect : ~m? +# 145| mu145_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r145_1 +# 146| r146_1(glval) = VariableAddress[x42] : +# 146| r146_2(glval) = FunctionAddress[~String] : +# 146| v146_3(void) = Call[~String] : func:r146_2, this:r146_1 +# 146| mu146_4(unknown) = ^CallSideEffect : ~m? +# 146| v146_5(void) = ^IndirectReadSideEffect[-1] : &:r146_1, ~m? +# 146| mu146_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r146_1 +# 146| r146_7(bool) = Constant[0] : +# 146| v146_8(void) = ConditionalBranch : r146_7 +#-----| False -> Block 43 +#-----| True -> Block 1026 + +# 148| Block 43 +# 148| r148_1(glval) = VariableAddress[x43] : +# 148| mu148_2(String) = Uninitialized[x43] : &:r148_1 +# 148| r148_3(glval) = FunctionAddress[String] : +# 148| v148_4(void) = Call[String] : func:r148_3, this:r148_1 +# 148| mu148_5(unknown) = ^CallSideEffect : ~m? +# 148| mu148_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r148_1 +# 149| r149_1(glval) = VariableAddress[x43] : +# 149| r149_2(glval) = FunctionAddress[~String] : +# 149| v149_3(void) = Call[~String] : func:r149_2, this:r149_1 +# 149| mu149_4(unknown) = ^CallSideEffect : ~m? +# 149| v149_5(void) = ^IndirectReadSideEffect[-1] : &:r149_1, ~m? +# 149| mu149_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r149_1 +# 149| r149_7(bool) = Constant[0] : +# 149| v149_8(void) = ConditionalBranch : r149_7 +#-----| False -> Block 44 +#-----| True -> Block 1026 + +# 151| Block 44 +# 151| r151_1(glval) = VariableAddress[x44] : +# 151| mu151_2(String) = Uninitialized[x44] : &:r151_1 +# 151| r151_3(glval) = FunctionAddress[String] : +# 151| v151_4(void) = Call[String] : func:r151_3, this:r151_1 +# 151| mu151_5(unknown) = ^CallSideEffect : ~m? +# 151| mu151_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r151_1 +# 152| r152_1(glval) = VariableAddress[x44] : +# 152| r152_2(glval) = FunctionAddress[~String] : +# 152| v152_3(void) = Call[~String] : func:r152_2, this:r152_1 +# 152| mu152_4(unknown) = ^CallSideEffect : ~m? +# 152| v152_5(void) = ^IndirectReadSideEffect[-1] : &:r152_1, ~m? +# 152| mu152_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r152_1 +# 152| r152_7(bool) = Constant[0] : +# 152| v152_8(void) = ConditionalBranch : r152_7 +#-----| False -> Block 45 +#-----| True -> Block 1026 + +# 154| Block 45 +# 154| r154_1(glval) = VariableAddress[x45] : +# 154| mu154_2(String) = Uninitialized[x45] : &:r154_1 +# 154| r154_3(glval) = FunctionAddress[String] : +# 154| v154_4(void) = Call[String] : func:r154_3, this:r154_1 +# 154| mu154_5(unknown) = ^CallSideEffect : ~m? +# 154| mu154_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r154_1 +# 155| r155_1(glval) = VariableAddress[x45] : +# 155| r155_2(glval) = FunctionAddress[~String] : +# 155| v155_3(void) = Call[~String] : func:r155_2, this:r155_1 +# 155| mu155_4(unknown) = ^CallSideEffect : ~m? +# 155| v155_5(void) = ^IndirectReadSideEffect[-1] : &:r155_1, ~m? +# 155| mu155_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r155_1 +# 155| r155_7(bool) = Constant[0] : +# 155| v155_8(void) = ConditionalBranch : r155_7 +#-----| False -> Block 46 +#-----| True -> Block 1026 + +# 157| Block 46 +# 157| r157_1(glval) = VariableAddress[x46] : +# 157| mu157_2(String) = Uninitialized[x46] : &:r157_1 +# 157| r157_3(glval) = FunctionAddress[String] : +# 157| v157_4(void) = Call[String] : func:r157_3, this:r157_1 +# 157| mu157_5(unknown) = ^CallSideEffect : ~m? +# 157| mu157_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r157_1 +# 158| r158_1(glval) = VariableAddress[x46] : +# 158| r158_2(glval) = FunctionAddress[~String] : +# 158| v158_3(void) = Call[~String] : func:r158_2, this:r158_1 +# 158| mu158_4(unknown) = ^CallSideEffect : ~m? +# 158| v158_5(void) = ^IndirectReadSideEffect[-1] : &:r158_1, ~m? +# 158| mu158_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r158_1 +# 158| r158_7(bool) = Constant[0] : +# 158| v158_8(void) = ConditionalBranch : r158_7 +#-----| False -> Block 47 +#-----| True -> Block 1026 + +# 160| Block 47 +# 160| r160_1(glval) = VariableAddress[x47] : +# 160| mu160_2(String) = Uninitialized[x47] : &:r160_1 +# 160| r160_3(glval) = FunctionAddress[String] : +# 160| v160_4(void) = Call[String] : func:r160_3, this:r160_1 +# 160| mu160_5(unknown) = ^CallSideEffect : ~m? +# 160| mu160_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r160_1 +# 161| r161_1(glval) = VariableAddress[x47] : +# 161| r161_2(glval) = FunctionAddress[~String] : +# 161| v161_3(void) = Call[~String] : func:r161_2, this:r161_1 +# 161| mu161_4(unknown) = ^CallSideEffect : ~m? +# 161| v161_5(void) = ^IndirectReadSideEffect[-1] : &:r161_1, ~m? +# 161| mu161_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r161_1 +# 161| r161_7(bool) = Constant[0] : +# 161| v161_8(void) = ConditionalBranch : r161_7 +#-----| False -> Block 48 +#-----| True -> Block 1026 + +# 163| Block 48 +# 163| r163_1(glval) = VariableAddress[x48] : +# 163| mu163_2(String) = Uninitialized[x48] : &:r163_1 +# 163| r163_3(glval) = FunctionAddress[String] : +# 163| v163_4(void) = Call[String] : func:r163_3, this:r163_1 +# 163| mu163_5(unknown) = ^CallSideEffect : ~m? +# 163| mu163_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r163_1 +# 164| r164_1(glval) = VariableAddress[x48] : +# 164| r164_2(glval) = FunctionAddress[~String] : +# 164| v164_3(void) = Call[~String] : func:r164_2, this:r164_1 +# 164| mu164_4(unknown) = ^CallSideEffect : ~m? +# 164| v164_5(void) = ^IndirectReadSideEffect[-1] : &:r164_1, ~m? +# 164| mu164_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r164_1 +# 164| r164_7(bool) = Constant[0] : +# 164| v164_8(void) = ConditionalBranch : r164_7 +#-----| False -> Block 49 +#-----| True -> Block 1026 + +# 166| Block 49 +# 166| r166_1(glval) = VariableAddress[x49] : +# 166| mu166_2(String) = Uninitialized[x49] : &:r166_1 +# 166| r166_3(glval) = FunctionAddress[String] : +# 166| v166_4(void) = Call[String] : func:r166_3, this:r166_1 +# 166| mu166_5(unknown) = ^CallSideEffect : ~m? +# 166| mu166_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r166_1 +# 167| r167_1(glval) = VariableAddress[x49] : +# 167| r167_2(glval) = FunctionAddress[~String] : +# 167| v167_3(void) = Call[~String] : func:r167_2, this:r167_1 +# 167| mu167_4(unknown) = ^CallSideEffect : ~m? +# 167| v167_5(void) = ^IndirectReadSideEffect[-1] : &:r167_1, ~m? +# 167| mu167_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r167_1 +# 167| r167_7(bool) = Constant[0] : +# 167| v167_8(void) = ConditionalBranch : r167_7 +#-----| False -> Block 50 +#-----| True -> Block 1026 + +# 169| Block 50 +# 169| r169_1(glval) = VariableAddress[x50] : +# 169| mu169_2(String) = Uninitialized[x50] : &:r169_1 +# 169| r169_3(glval) = FunctionAddress[String] : +# 169| v169_4(void) = Call[String] : func:r169_3, this:r169_1 +# 169| mu169_5(unknown) = ^CallSideEffect : ~m? +# 169| mu169_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r169_1 +# 170| r170_1(glval) = VariableAddress[x50] : +# 170| r170_2(glval) = FunctionAddress[~String] : +# 170| v170_3(void) = Call[~String] : func:r170_2, this:r170_1 +# 170| mu170_4(unknown) = ^CallSideEffect : ~m? +# 170| v170_5(void) = ^IndirectReadSideEffect[-1] : &:r170_1, ~m? +# 170| mu170_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r170_1 +# 170| r170_7(bool) = Constant[0] : +# 170| v170_8(void) = ConditionalBranch : r170_7 +#-----| False -> Block 51 +#-----| True -> Block 1026 + +# 172| Block 51 +# 172| r172_1(glval) = VariableAddress[x51] : +# 172| mu172_2(String) = Uninitialized[x51] : &:r172_1 +# 172| r172_3(glval) = FunctionAddress[String] : +# 172| v172_4(void) = Call[String] : func:r172_3, this:r172_1 +# 172| mu172_5(unknown) = ^CallSideEffect : ~m? +# 172| mu172_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r172_1 +# 173| r173_1(glval) = VariableAddress[x51] : +# 173| r173_2(glval) = FunctionAddress[~String] : +# 173| v173_3(void) = Call[~String] : func:r173_2, this:r173_1 +# 173| mu173_4(unknown) = ^CallSideEffect : ~m? +# 173| v173_5(void) = ^IndirectReadSideEffect[-1] : &:r173_1, ~m? +# 173| mu173_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r173_1 +# 173| r173_7(bool) = Constant[0] : +# 173| v173_8(void) = ConditionalBranch : r173_7 +#-----| False -> Block 52 +#-----| True -> Block 1026 + +# 175| Block 52 +# 175| r175_1(glval) = VariableAddress[x52] : +# 175| mu175_2(String) = Uninitialized[x52] : &:r175_1 +# 175| r175_3(glval) = FunctionAddress[String] : +# 175| v175_4(void) = Call[String] : func:r175_3, this:r175_1 +# 175| mu175_5(unknown) = ^CallSideEffect : ~m? +# 175| mu175_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r175_1 +# 176| r176_1(glval) = VariableAddress[x52] : +# 176| r176_2(glval) = FunctionAddress[~String] : +# 176| v176_3(void) = Call[~String] : func:r176_2, this:r176_1 +# 176| mu176_4(unknown) = ^CallSideEffect : ~m? +# 176| v176_5(void) = ^IndirectReadSideEffect[-1] : &:r176_1, ~m? +# 176| mu176_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r176_1 +# 176| r176_7(bool) = Constant[0] : +# 176| v176_8(void) = ConditionalBranch : r176_7 +#-----| False -> Block 53 +#-----| True -> Block 1026 + +# 178| Block 53 +# 178| r178_1(glval) = VariableAddress[x53] : +# 178| mu178_2(String) = Uninitialized[x53] : &:r178_1 +# 178| r178_3(glval) = FunctionAddress[String] : +# 178| v178_4(void) = Call[String] : func:r178_3, this:r178_1 +# 178| mu178_5(unknown) = ^CallSideEffect : ~m? +# 178| mu178_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r178_1 +# 179| r179_1(glval) = VariableAddress[x53] : +# 179| r179_2(glval) = FunctionAddress[~String] : +# 179| v179_3(void) = Call[~String] : func:r179_2, this:r179_1 +# 179| mu179_4(unknown) = ^CallSideEffect : ~m? +# 179| v179_5(void) = ^IndirectReadSideEffect[-1] : &:r179_1, ~m? +# 179| mu179_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r179_1 +# 179| r179_7(bool) = Constant[0] : +# 179| v179_8(void) = ConditionalBranch : r179_7 +#-----| False -> Block 54 +#-----| True -> Block 1026 + +# 181| Block 54 +# 181| r181_1(glval) = VariableAddress[x54] : +# 181| mu181_2(String) = Uninitialized[x54] : &:r181_1 +# 181| r181_3(glval) = FunctionAddress[String] : +# 181| v181_4(void) = Call[String] : func:r181_3, this:r181_1 +# 181| mu181_5(unknown) = ^CallSideEffect : ~m? +# 181| mu181_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r181_1 +# 182| r182_1(glval) = VariableAddress[x54] : +# 182| r182_2(glval) = FunctionAddress[~String] : +# 182| v182_3(void) = Call[~String] : func:r182_2, this:r182_1 +# 182| mu182_4(unknown) = ^CallSideEffect : ~m? +# 182| v182_5(void) = ^IndirectReadSideEffect[-1] : &:r182_1, ~m? +# 182| mu182_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r182_1 +# 182| r182_7(bool) = Constant[0] : +# 182| v182_8(void) = ConditionalBranch : r182_7 +#-----| False -> Block 55 +#-----| True -> Block 1026 + +# 184| Block 55 +# 184| r184_1(glval) = VariableAddress[x55] : +# 184| mu184_2(String) = Uninitialized[x55] : &:r184_1 +# 184| r184_3(glval) = FunctionAddress[String] : +# 184| v184_4(void) = Call[String] : func:r184_3, this:r184_1 +# 184| mu184_5(unknown) = ^CallSideEffect : ~m? +# 184| mu184_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r184_1 +# 185| r185_1(glval) = VariableAddress[x55] : +# 185| r185_2(glval) = FunctionAddress[~String] : +# 185| v185_3(void) = Call[~String] : func:r185_2, this:r185_1 +# 185| mu185_4(unknown) = ^CallSideEffect : ~m? +# 185| v185_5(void) = ^IndirectReadSideEffect[-1] : &:r185_1, ~m? +# 185| mu185_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r185_1 +# 185| r185_7(bool) = Constant[0] : +# 185| v185_8(void) = ConditionalBranch : r185_7 +#-----| False -> Block 56 +#-----| True -> Block 1026 + +# 187| Block 56 +# 187| r187_1(glval) = VariableAddress[x56] : +# 187| mu187_2(String) = Uninitialized[x56] : &:r187_1 +# 187| r187_3(glval) = FunctionAddress[String] : +# 187| v187_4(void) = Call[String] : func:r187_3, this:r187_1 +# 187| mu187_5(unknown) = ^CallSideEffect : ~m? +# 187| mu187_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r187_1 +# 188| r188_1(glval) = VariableAddress[x56] : +# 188| r188_2(glval) = FunctionAddress[~String] : +# 188| v188_3(void) = Call[~String] : func:r188_2, this:r188_1 +# 188| mu188_4(unknown) = ^CallSideEffect : ~m? +# 188| v188_5(void) = ^IndirectReadSideEffect[-1] : &:r188_1, ~m? +# 188| mu188_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r188_1 +# 188| r188_7(bool) = Constant[0] : +# 188| v188_8(void) = ConditionalBranch : r188_7 +#-----| False -> Block 57 +#-----| True -> Block 1026 + +# 190| Block 57 +# 190| r190_1(glval) = VariableAddress[x57] : +# 190| mu190_2(String) = Uninitialized[x57] : &:r190_1 +# 190| r190_3(glval) = FunctionAddress[String] : +# 190| v190_4(void) = Call[String] : func:r190_3, this:r190_1 +# 190| mu190_5(unknown) = ^CallSideEffect : ~m? +# 190| mu190_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r190_1 +# 191| r191_1(glval) = VariableAddress[x57] : +# 191| r191_2(glval) = FunctionAddress[~String] : +# 191| v191_3(void) = Call[~String] : func:r191_2, this:r191_1 +# 191| mu191_4(unknown) = ^CallSideEffect : ~m? +# 191| v191_5(void) = ^IndirectReadSideEffect[-1] : &:r191_1, ~m? +# 191| mu191_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r191_1 +# 191| r191_7(bool) = Constant[0] : +# 191| v191_8(void) = ConditionalBranch : r191_7 +#-----| False -> Block 58 +#-----| True -> Block 1026 + +# 193| Block 58 +# 193| r193_1(glval) = VariableAddress[x58] : +# 193| mu193_2(String) = Uninitialized[x58] : &:r193_1 +# 193| r193_3(glval) = FunctionAddress[String] : +# 193| v193_4(void) = Call[String] : func:r193_3, this:r193_1 +# 193| mu193_5(unknown) = ^CallSideEffect : ~m? +# 193| mu193_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r193_1 +# 194| r194_1(glval) = VariableAddress[x58] : +# 194| r194_2(glval) = FunctionAddress[~String] : +# 194| v194_3(void) = Call[~String] : func:r194_2, this:r194_1 +# 194| mu194_4(unknown) = ^CallSideEffect : ~m? +# 194| v194_5(void) = ^IndirectReadSideEffect[-1] : &:r194_1, ~m? +# 194| mu194_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r194_1 +# 194| r194_7(bool) = Constant[0] : +# 194| v194_8(void) = ConditionalBranch : r194_7 +#-----| False -> Block 59 +#-----| True -> Block 1026 + +# 196| Block 59 +# 196| r196_1(glval) = VariableAddress[x59] : +# 196| mu196_2(String) = Uninitialized[x59] : &:r196_1 +# 196| r196_3(glval) = FunctionAddress[String] : +# 196| v196_4(void) = Call[String] : func:r196_3, this:r196_1 +# 196| mu196_5(unknown) = ^CallSideEffect : ~m? +# 196| mu196_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r196_1 +# 197| r197_1(glval) = VariableAddress[x59] : +# 197| r197_2(glval) = FunctionAddress[~String] : +# 197| v197_3(void) = Call[~String] : func:r197_2, this:r197_1 +# 197| mu197_4(unknown) = ^CallSideEffect : ~m? +# 197| v197_5(void) = ^IndirectReadSideEffect[-1] : &:r197_1, ~m? +# 197| mu197_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r197_1 +# 197| r197_7(bool) = Constant[0] : +# 197| v197_8(void) = ConditionalBranch : r197_7 +#-----| False -> Block 60 +#-----| True -> Block 1026 + +# 199| Block 60 +# 199| r199_1(glval) = VariableAddress[x60] : +# 199| mu199_2(String) = Uninitialized[x60] : &:r199_1 +# 199| r199_3(glval) = FunctionAddress[String] : +# 199| v199_4(void) = Call[String] : func:r199_3, this:r199_1 +# 199| mu199_5(unknown) = ^CallSideEffect : ~m? +# 199| mu199_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r199_1 +# 200| r200_1(glval) = VariableAddress[x60] : +# 200| r200_2(glval) = FunctionAddress[~String] : +# 200| v200_3(void) = Call[~String] : func:r200_2, this:r200_1 +# 200| mu200_4(unknown) = ^CallSideEffect : ~m? +# 200| v200_5(void) = ^IndirectReadSideEffect[-1] : &:r200_1, ~m? +# 200| mu200_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r200_1 +# 200| r200_7(bool) = Constant[0] : +# 200| v200_8(void) = ConditionalBranch : r200_7 +#-----| False -> Block 61 +#-----| True -> Block 1026 + +# 202| Block 61 +# 202| r202_1(glval) = VariableAddress[x61] : +# 202| mu202_2(String) = Uninitialized[x61] : &:r202_1 +# 202| r202_3(glval) = FunctionAddress[String] : +# 202| v202_4(void) = Call[String] : func:r202_3, this:r202_1 +# 202| mu202_5(unknown) = ^CallSideEffect : ~m? +# 202| mu202_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r202_1 +# 203| r203_1(glval) = VariableAddress[x61] : +# 203| r203_2(glval) = FunctionAddress[~String] : +# 203| v203_3(void) = Call[~String] : func:r203_2, this:r203_1 +# 203| mu203_4(unknown) = ^CallSideEffect : ~m? +# 203| v203_5(void) = ^IndirectReadSideEffect[-1] : &:r203_1, ~m? +# 203| mu203_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r203_1 +# 203| r203_7(bool) = Constant[0] : +# 203| v203_8(void) = ConditionalBranch : r203_7 +#-----| False -> Block 62 +#-----| True -> Block 1026 + +# 205| Block 62 +# 205| r205_1(glval) = VariableAddress[x62] : +# 205| mu205_2(String) = Uninitialized[x62] : &:r205_1 +# 205| r205_3(glval) = FunctionAddress[String] : +# 205| v205_4(void) = Call[String] : func:r205_3, this:r205_1 +# 205| mu205_5(unknown) = ^CallSideEffect : ~m? +# 205| mu205_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r205_1 +# 206| r206_1(glval) = VariableAddress[x62] : +# 206| r206_2(glval) = FunctionAddress[~String] : +# 206| v206_3(void) = Call[~String] : func:r206_2, this:r206_1 +# 206| mu206_4(unknown) = ^CallSideEffect : ~m? +# 206| v206_5(void) = ^IndirectReadSideEffect[-1] : &:r206_1, ~m? +# 206| mu206_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r206_1 +# 206| r206_7(bool) = Constant[0] : +# 206| v206_8(void) = ConditionalBranch : r206_7 +#-----| False -> Block 63 +#-----| True -> Block 1026 + +# 208| Block 63 +# 208| r208_1(glval) = VariableAddress[x63] : +# 208| mu208_2(String) = Uninitialized[x63] : &:r208_1 +# 208| r208_3(glval) = FunctionAddress[String] : +# 208| v208_4(void) = Call[String] : func:r208_3, this:r208_1 +# 208| mu208_5(unknown) = ^CallSideEffect : ~m? +# 208| mu208_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r208_1 +# 209| r209_1(glval) = VariableAddress[x63] : +# 209| r209_2(glval) = FunctionAddress[~String] : +# 209| v209_3(void) = Call[~String] : func:r209_2, this:r209_1 +# 209| mu209_4(unknown) = ^CallSideEffect : ~m? +# 209| v209_5(void) = ^IndirectReadSideEffect[-1] : &:r209_1, ~m? +# 209| mu209_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r209_1 +# 209| r209_7(bool) = Constant[0] : +# 209| v209_8(void) = ConditionalBranch : r209_7 +#-----| False -> Block 64 +#-----| True -> Block 1026 + +# 211| Block 64 +# 211| r211_1(glval) = VariableAddress[x64] : +# 211| mu211_2(String) = Uninitialized[x64] : &:r211_1 +# 211| r211_3(glval) = FunctionAddress[String] : +# 211| v211_4(void) = Call[String] : func:r211_3, this:r211_1 +# 211| mu211_5(unknown) = ^CallSideEffect : ~m? +# 211| mu211_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r211_1 +# 212| r212_1(glval) = VariableAddress[x64] : +# 212| r212_2(glval) = FunctionAddress[~String] : +# 212| v212_3(void) = Call[~String] : func:r212_2, this:r212_1 +# 212| mu212_4(unknown) = ^CallSideEffect : ~m? +# 212| v212_5(void) = ^IndirectReadSideEffect[-1] : &:r212_1, ~m? +# 212| mu212_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r212_1 +# 212| r212_7(bool) = Constant[0] : +# 212| v212_8(void) = ConditionalBranch : r212_7 +#-----| False -> Block 65 +#-----| True -> Block 1026 + +# 214| Block 65 +# 214| r214_1(glval) = VariableAddress[x65] : +# 214| mu214_2(String) = Uninitialized[x65] : &:r214_1 +# 214| r214_3(glval) = FunctionAddress[String] : +# 214| v214_4(void) = Call[String] : func:r214_3, this:r214_1 +# 214| mu214_5(unknown) = ^CallSideEffect : ~m? +# 214| mu214_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r214_1 +# 215| r215_1(glval) = VariableAddress[x65] : +# 215| r215_2(glval) = FunctionAddress[~String] : +# 215| v215_3(void) = Call[~String] : func:r215_2, this:r215_1 +# 215| mu215_4(unknown) = ^CallSideEffect : ~m? +# 215| v215_5(void) = ^IndirectReadSideEffect[-1] : &:r215_1, ~m? +# 215| mu215_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r215_1 +# 215| r215_7(bool) = Constant[0] : +# 215| v215_8(void) = ConditionalBranch : r215_7 +#-----| False -> Block 66 +#-----| True -> Block 1026 + +# 217| Block 66 +# 217| r217_1(glval) = VariableAddress[x66] : +# 217| mu217_2(String) = Uninitialized[x66] : &:r217_1 +# 217| r217_3(glval) = FunctionAddress[String] : +# 217| v217_4(void) = Call[String] : func:r217_3, this:r217_1 +# 217| mu217_5(unknown) = ^CallSideEffect : ~m? +# 217| mu217_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r217_1 +# 218| r218_1(glval) = VariableAddress[x66] : +# 218| r218_2(glval) = FunctionAddress[~String] : +# 218| v218_3(void) = Call[~String] : func:r218_2, this:r218_1 +# 218| mu218_4(unknown) = ^CallSideEffect : ~m? +# 218| v218_5(void) = ^IndirectReadSideEffect[-1] : &:r218_1, ~m? +# 218| mu218_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r218_1 +# 218| r218_7(bool) = Constant[0] : +# 218| v218_8(void) = ConditionalBranch : r218_7 +#-----| False -> Block 67 +#-----| True -> Block 1026 + +# 220| Block 67 +# 220| r220_1(glval) = VariableAddress[x67] : +# 220| mu220_2(String) = Uninitialized[x67] : &:r220_1 +# 220| r220_3(glval) = FunctionAddress[String] : +# 220| v220_4(void) = Call[String] : func:r220_3, this:r220_1 +# 220| mu220_5(unknown) = ^CallSideEffect : ~m? +# 220| mu220_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r220_1 +# 221| r221_1(glval) = VariableAddress[x67] : +# 221| r221_2(glval) = FunctionAddress[~String] : +# 221| v221_3(void) = Call[~String] : func:r221_2, this:r221_1 +# 221| mu221_4(unknown) = ^CallSideEffect : ~m? +# 221| v221_5(void) = ^IndirectReadSideEffect[-1] : &:r221_1, ~m? +# 221| mu221_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r221_1 +# 221| r221_7(bool) = Constant[0] : +# 221| v221_8(void) = ConditionalBranch : r221_7 +#-----| False -> Block 68 +#-----| True -> Block 1026 + +# 223| Block 68 +# 223| r223_1(glval) = VariableAddress[x68] : +# 223| mu223_2(String) = Uninitialized[x68] : &:r223_1 +# 223| r223_3(glval) = FunctionAddress[String] : +# 223| v223_4(void) = Call[String] : func:r223_3, this:r223_1 +# 223| mu223_5(unknown) = ^CallSideEffect : ~m? +# 223| mu223_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r223_1 +# 224| r224_1(glval) = VariableAddress[x68] : +# 224| r224_2(glval) = FunctionAddress[~String] : +# 224| v224_3(void) = Call[~String] : func:r224_2, this:r224_1 +# 224| mu224_4(unknown) = ^CallSideEffect : ~m? +# 224| v224_5(void) = ^IndirectReadSideEffect[-1] : &:r224_1, ~m? +# 224| mu224_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r224_1 +# 224| r224_7(bool) = Constant[0] : +# 224| v224_8(void) = ConditionalBranch : r224_7 +#-----| False -> Block 69 +#-----| True -> Block 1026 + +# 226| Block 69 +# 226| r226_1(glval) = VariableAddress[x69] : +# 226| mu226_2(String) = Uninitialized[x69] : &:r226_1 +# 226| r226_3(glval) = FunctionAddress[String] : +# 226| v226_4(void) = Call[String] : func:r226_3, this:r226_1 +# 226| mu226_5(unknown) = ^CallSideEffect : ~m? +# 226| mu226_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r226_1 +# 227| r227_1(glval) = VariableAddress[x69] : +# 227| r227_2(glval) = FunctionAddress[~String] : +# 227| v227_3(void) = Call[~String] : func:r227_2, this:r227_1 +# 227| mu227_4(unknown) = ^CallSideEffect : ~m? +# 227| v227_5(void) = ^IndirectReadSideEffect[-1] : &:r227_1, ~m? +# 227| mu227_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r227_1 +# 227| r227_7(bool) = Constant[0] : +# 227| v227_8(void) = ConditionalBranch : r227_7 +#-----| False -> Block 70 +#-----| True -> Block 1026 + +# 229| Block 70 +# 229| r229_1(glval) = VariableAddress[x70] : +# 229| mu229_2(String) = Uninitialized[x70] : &:r229_1 +# 229| r229_3(glval) = FunctionAddress[String] : +# 229| v229_4(void) = Call[String] : func:r229_3, this:r229_1 +# 229| mu229_5(unknown) = ^CallSideEffect : ~m? +# 229| mu229_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r229_1 +# 230| r230_1(glval) = VariableAddress[x70] : +# 230| r230_2(glval) = FunctionAddress[~String] : +# 230| v230_3(void) = Call[~String] : func:r230_2, this:r230_1 +# 230| mu230_4(unknown) = ^CallSideEffect : ~m? +# 230| v230_5(void) = ^IndirectReadSideEffect[-1] : &:r230_1, ~m? +# 230| mu230_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r230_1 +# 230| r230_7(bool) = Constant[0] : +# 230| v230_8(void) = ConditionalBranch : r230_7 +#-----| False -> Block 71 +#-----| True -> Block 1026 + +# 232| Block 71 +# 232| r232_1(glval) = VariableAddress[x71] : +# 232| mu232_2(String) = Uninitialized[x71] : &:r232_1 +# 232| r232_3(glval) = FunctionAddress[String] : +# 232| v232_4(void) = Call[String] : func:r232_3, this:r232_1 +# 232| mu232_5(unknown) = ^CallSideEffect : ~m? +# 232| mu232_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r232_1 +# 233| r233_1(glval) = VariableAddress[x71] : +# 233| r233_2(glval) = FunctionAddress[~String] : +# 233| v233_3(void) = Call[~String] : func:r233_2, this:r233_1 +# 233| mu233_4(unknown) = ^CallSideEffect : ~m? +# 233| v233_5(void) = ^IndirectReadSideEffect[-1] : &:r233_1, ~m? +# 233| mu233_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r233_1 +# 233| r233_7(bool) = Constant[0] : +# 233| v233_8(void) = ConditionalBranch : r233_7 +#-----| False -> Block 72 +#-----| True -> Block 1026 + +# 235| Block 72 +# 235| r235_1(glval) = VariableAddress[x72] : +# 235| mu235_2(String) = Uninitialized[x72] : &:r235_1 +# 235| r235_3(glval) = FunctionAddress[String] : +# 235| v235_4(void) = Call[String] : func:r235_3, this:r235_1 +# 235| mu235_5(unknown) = ^CallSideEffect : ~m? +# 235| mu235_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r235_1 +# 236| r236_1(glval) = VariableAddress[x72] : +# 236| r236_2(glval) = FunctionAddress[~String] : +# 236| v236_3(void) = Call[~String] : func:r236_2, this:r236_1 +# 236| mu236_4(unknown) = ^CallSideEffect : ~m? +# 236| v236_5(void) = ^IndirectReadSideEffect[-1] : &:r236_1, ~m? +# 236| mu236_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r236_1 +# 236| r236_7(bool) = Constant[0] : +# 236| v236_8(void) = ConditionalBranch : r236_7 +#-----| False -> Block 73 +#-----| True -> Block 1026 + +# 238| Block 73 +# 238| r238_1(glval) = VariableAddress[x73] : +# 238| mu238_2(String) = Uninitialized[x73] : &:r238_1 +# 238| r238_3(glval) = FunctionAddress[String] : +# 238| v238_4(void) = Call[String] : func:r238_3, this:r238_1 +# 238| mu238_5(unknown) = ^CallSideEffect : ~m? +# 238| mu238_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r238_1 +# 239| r239_1(glval) = VariableAddress[x73] : +# 239| r239_2(glval) = FunctionAddress[~String] : +# 239| v239_3(void) = Call[~String] : func:r239_2, this:r239_1 +# 239| mu239_4(unknown) = ^CallSideEffect : ~m? +# 239| v239_5(void) = ^IndirectReadSideEffect[-1] : &:r239_1, ~m? +# 239| mu239_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r239_1 +# 239| r239_7(bool) = Constant[0] : +# 239| v239_8(void) = ConditionalBranch : r239_7 +#-----| False -> Block 74 +#-----| True -> Block 1026 + +# 241| Block 74 +# 241| r241_1(glval) = VariableAddress[x74] : +# 241| mu241_2(String) = Uninitialized[x74] : &:r241_1 +# 241| r241_3(glval) = FunctionAddress[String] : +# 241| v241_4(void) = Call[String] : func:r241_3, this:r241_1 +# 241| mu241_5(unknown) = ^CallSideEffect : ~m? +# 241| mu241_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r241_1 +# 242| r242_1(glval) = VariableAddress[x74] : +# 242| r242_2(glval) = FunctionAddress[~String] : +# 242| v242_3(void) = Call[~String] : func:r242_2, this:r242_1 +# 242| mu242_4(unknown) = ^CallSideEffect : ~m? +# 242| v242_5(void) = ^IndirectReadSideEffect[-1] : &:r242_1, ~m? +# 242| mu242_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r242_1 +# 242| r242_7(bool) = Constant[0] : +# 242| v242_8(void) = ConditionalBranch : r242_7 +#-----| False -> Block 75 +#-----| True -> Block 1026 + +# 244| Block 75 +# 244| r244_1(glval) = VariableAddress[x75] : +# 244| mu244_2(String) = Uninitialized[x75] : &:r244_1 +# 244| r244_3(glval) = FunctionAddress[String] : +# 244| v244_4(void) = Call[String] : func:r244_3, this:r244_1 +# 244| mu244_5(unknown) = ^CallSideEffect : ~m? +# 244| mu244_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r244_1 +# 245| r245_1(glval) = VariableAddress[x75] : +# 245| r245_2(glval) = FunctionAddress[~String] : +# 245| v245_3(void) = Call[~String] : func:r245_2, this:r245_1 +# 245| mu245_4(unknown) = ^CallSideEffect : ~m? +# 245| v245_5(void) = ^IndirectReadSideEffect[-1] : &:r245_1, ~m? +# 245| mu245_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r245_1 +# 245| r245_7(bool) = Constant[0] : +# 245| v245_8(void) = ConditionalBranch : r245_7 +#-----| False -> Block 76 +#-----| True -> Block 1026 + +# 247| Block 76 +# 247| r247_1(glval) = VariableAddress[x76] : +# 247| mu247_2(String) = Uninitialized[x76] : &:r247_1 +# 247| r247_3(glval) = FunctionAddress[String] : +# 247| v247_4(void) = Call[String] : func:r247_3, this:r247_1 +# 247| mu247_5(unknown) = ^CallSideEffect : ~m? +# 247| mu247_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r247_1 +# 248| r248_1(glval) = VariableAddress[x76] : +# 248| r248_2(glval) = FunctionAddress[~String] : +# 248| v248_3(void) = Call[~String] : func:r248_2, this:r248_1 +# 248| mu248_4(unknown) = ^CallSideEffect : ~m? +# 248| v248_5(void) = ^IndirectReadSideEffect[-1] : &:r248_1, ~m? +# 248| mu248_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r248_1 +# 248| r248_7(bool) = Constant[0] : +# 248| v248_8(void) = ConditionalBranch : r248_7 +#-----| False -> Block 77 +#-----| True -> Block 1026 + +# 250| Block 77 +# 250| r250_1(glval) = VariableAddress[x77] : +# 250| mu250_2(String) = Uninitialized[x77] : &:r250_1 +# 250| r250_3(glval) = FunctionAddress[String] : +# 250| v250_4(void) = Call[String] : func:r250_3, this:r250_1 +# 250| mu250_5(unknown) = ^CallSideEffect : ~m? +# 250| mu250_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r250_1 +# 251| r251_1(glval) = VariableAddress[x77] : +# 251| r251_2(glval) = FunctionAddress[~String] : +# 251| v251_3(void) = Call[~String] : func:r251_2, this:r251_1 +# 251| mu251_4(unknown) = ^CallSideEffect : ~m? +# 251| v251_5(void) = ^IndirectReadSideEffect[-1] : &:r251_1, ~m? +# 251| mu251_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r251_1 +# 251| r251_7(bool) = Constant[0] : +# 251| v251_8(void) = ConditionalBranch : r251_7 +#-----| False -> Block 78 +#-----| True -> Block 1026 + +# 253| Block 78 +# 253| r253_1(glval) = VariableAddress[x78] : +# 253| mu253_2(String) = Uninitialized[x78] : &:r253_1 +# 253| r253_3(glval) = FunctionAddress[String] : +# 253| v253_4(void) = Call[String] : func:r253_3, this:r253_1 +# 253| mu253_5(unknown) = ^CallSideEffect : ~m? +# 253| mu253_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r253_1 +# 254| r254_1(glval) = VariableAddress[x78] : +# 254| r254_2(glval) = FunctionAddress[~String] : +# 254| v254_3(void) = Call[~String] : func:r254_2, this:r254_1 +# 254| mu254_4(unknown) = ^CallSideEffect : ~m? +# 254| v254_5(void) = ^IndirectReadSideEffect[-1] : &:r254_1, ~m? +# 254| mu254_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r254_1 +# 254| r254_7(bool) = Constant[0] : +# 254| v254_8(void) = ConditionalBranch : r254_7 +#-----| False -> Block 79 +#-----| True -> Block 1026 + +# 256| Block 79 +# 256| r256_1(glval) = VariableAddress[x79] : +# 256| mu256_2(String) = Uninitialized[x79] : &:r256_1 +# 256| r256_3(glval) = FunctionAddress[String] : +# 256| v256_4(void) = Call[String] : func:r256_3, this:r256_1 +# 256| mu256_5(unknown) = ^CallSideEffect : ~m? +# 256| mu256_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r256_1 +# 257| r257_1(glval) = VariableAddress[x79] : +# 257| r257_2(glval) = FunctionAddress[~String] : +# 257| v257_3(void) = Call[~String] : func:r257_2, this:r257_1 +# 257| mu257_4(unknown) = ^CallSideEffect : ~m? +# 257| v257_5(void) = ^IndirectReadSideEffect[-1] : &:r257_1, ~m? +# 257| mu257_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r257_1 +# 257| r257_7(bool) = Constant[0] : +# 257| v257_8(void) = ConditionalBranch : r257_7 +#-----| False -> Block 80 +#-----| True -> Block 1026 + +# 259| Block 80 +# 259| r259_1(glval) = VariableAddress[x80] : +# 259| mu259_2(String) = Uninitialized[x80] : &:r259_1 +# 259| r259_3(glval) = FunctionAddress[String] : +# 259| v259_4(void) = Call[String] : func:r259_3, this:r259_1 +# 259| mu259_5(unknown) = ^CallSideEffect : ~m? +# 259| mu259_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r259_1 +# 260| r260_1(glval) = VariableAddress[x80] : +# 260| r260_2(glval) = FunctionAddress[~String] : +# 260| v260_3(void) = Call[~String] : func:r260_2, this:r260_1 +# 260| mu260_4(unknown) = ^CallSideEffect : ~m? +# 260| v260_5(void) = ^IndirectReadSideEffect[-1] : &:r260_1, ~m? +# 260| mu260_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r260_1 +# 260| r260_7(bool) = Constant[0] : +# 260| v260_8(void) = ConditionalBranch : r260_7 +#-----| False -> Block 81 +#-----| True -> Block 1026 + +# 262| Block 81 +# 262| r262_1(glval) = VariableAddress[x81] : +# 262| mu262_2(String) = Uninitialized[x81] : &:r262_1 +# 262| r262_3(glval) = FunctionAddress[String] : +# 262| v262_4(void) = Call[String] : func:r262_3, this:r262_1 +# 262| mu262_5(unknown) = ^CallSideEffect : ~m? +# 262| mu262_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r262_1 +# 263| r263_1(glval) = VariableAddress[x81] : +# 263| r263_2(glval) = FunctionAddress[~String] : +# 263| v263_3(void) = Call[~String] : func:r263_2, this:r263_1 +# 263| mu263_4(unknown) = ^CallSideEffect : ~m? +# 263| v263_5(void) = ^IndirectReadSideEffect[-1] : &:r263_1, ~m? +# 263| mu263_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r263_1 +# 263| r263_7(bool) = Constant[0] : +# 263| v263_8(void) = ConditionalBranch : r263_7 +#-----| False -> Block 82 +#-----| True -> Block 1026 + +# 265| Block 82 +# 265| r265_1(glval) = VariableAddress[x82] : +# 265| mu265_2(String) = Uninitialized[x82] : &:r265_1 +# 265| r265_3(glval) = FunctionAddress[String] : +# 265| v265_4(void) = Call[String] : func:r265_3, this:r265_1 +# 265| mu265_5(unknown) = ^CallSideEffect : ~m? +# 265| mu265_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r265_1 +# 266| r266_1(glval) = VariableAddress[x82] : +# 266| r266_2(glval) = FunctionAddress[~String] : +# 266| v266_3(void) = Call[~String] : func:r266_2, this:r266_1 +# 266| mu266_4(unknown) = ^CallSideEffect : ~m? +# 266| v266_5(void) = ^IndirectReadSideEffect[-1] : &:r266_1, ~m? +# 266| mu266_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r266_1 +# 266| r266_7(bool) = Constant[0] : +# 266| v266_8(void) = ConditionalBranch : r266_7 +#-----| False -> Block 83 +#-----| True -> Block 1026 + +# 268| Block 83 +# 268| r268_1(glval) = VariableAddress[x83] : +# 268| mu268_2(String) = Uninitialized[x83] : &:r268_1 +# 268| r268_3(glval) = FunctionAddress[String] : +# 268| v268_4(void) = Call[String] : func:r268_3, this:r268_1 +# 268| mu268_5(unknown) = ^CallSideEffect : ~m? +# 268| mu268_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r268_1 +# 269| r269_1(glval) = VariableAddress[x83] : +# 269| r269_2(glval) = FunctionAddress[~String] : +# 269| v269_3(void) = Call[~String] : func:r269_2, this:r269_1 +# 269| mu269_4(unknown) = ^CallSideEffect : ~m? +# 269| v269_5(void) = ^IndirectReadSideEffect[-1] : &:r269_1, ~m? +# 269| mu269_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r269_1 +# 269| r269_7(bool) = Constant[0] : +# 269| v269_8(void) = ConditionalBranch : r269_7 +#-----| False -> Block 84 +#-----| True -> Block 1026 + +# 271| Block 84 +# 271| r271_1(glval) = VariableAddress[x84] : +# 271| mu271_2(String) = Uninitialized[x84] : &:r271_1 +# 271| r271_3(glval) = FunctionAddress[String] : +# 271| v271_4(void) = Call[String] : func:r271_3, this:r271_1 +# 271| mu271_5(unknown) = ^CallSideEffect : ~m? +# 271| mu271_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r271_1 +# 272| r272_1(glval) = VariableAddress[x84] : +# 272| r272_2(glval) = FunctionAddress[~String] : +# 272| v272_3(void) = Call[~String] : func:r272_2, this:r272_1 +# 272| mu272_4(unknown) = ^CallSideEffect : ~m? +# 272| v272_5(void) = ^IndirectReadSideEffect[-1] : &:r272_1, ~m? +# 272| mu272_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r272_1 +# 272| r272_7(bool) = Constant[0] : +# 272| v272_8(void) = ConditionalBranch : r272_7 +#-----| False -> Block 85 +#-----| True -> Block 1026 + +# 274| Block 85 +# 274| r274_1(glval) = VariableAddress[x85] : +# 274| mu274_2(String) = Uninitialized[x85] : &:r274_1 +# 274| r274_3(glval) = FunctionAddress[String] : +# 274| v274_4(void) = Call[String] : func:r274_3, this:r274_1 +# 274| mu274_5(unknown) = ^CallSideEffect : ~m? +# 274| mu274_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r274_1 +# 275| r275_1(glval) = VariableAddress[x85] : +# 275| r275_2(glval) = FunctionAddress[~String] : +# 275| v275_3(void) = Call[~String] : func:r275_2, this:r275_1 +# 275| mu275_4(unknown) = ^CallSideEffect : ~m? +# 275| v275_5(void) = ^IndirectReadSideEffect[-1] : &:r275_1, ~m? +# 275| mu275_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r275_1 +# 275| r275_7(bool) = Constant[0] : +# 275| v275_8(void) = ConditionalBranch : r275_7 +#-----| False -> Block 86 +#-----| True -> Block 1026 + +# 277| Block 86 +# 277| r277_1(glval) = VariableAddress[x86] : +# 277| mu277_2(String) = Uninitialized[x86] : &:r277_1 +# 277| r277_3(glval) = FunctionAddress[String] : +# 277| v277_4(void) = Call[String] : func:r277_3, this:r277_1 +# 277| mu277_5(unknown) = ^CallSideEffect : ~m? +# 277| mu277_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r277_1 +# 278| r278_1(glval) = VariableAddress[x86] : +# 278| r278_2(glval) = FunctionAddress[~String] : +# 278| v278_3(void) = Call[~String] : func:r278_2, this:r278_1 +# 278| mu278_4(unknown) = ^CallSideEffect : ~m? +# 278| v278_5(void) = ^IndirectReadSideEffect[-1] : &:r278_1, ~m? +# 278| mu278_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r278_1 +# 278| r278_7(bool) = Constant[0] : +# 278| v278_8(void) = ConditionalBranch : r278_7 +#-----| False -> Block 87 +#-----| True -> Block 1026 + +# 280| Block 87 +# 280| r280_1(glval) = VariableAddress[x87] : +# 280| mu280_2(String) = Uninitialized[x87] : &:r280_1 +# 280| r280_3(glval) = FunctionAddress[String] : +# 280| v280_4(void) = Call[String] : func:r280_3, this:r280_1 +# 280| mu280_5(unknown) = ^CallSideEffect : ~m? +# 280| mu280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r280_1 +# 281| r281_1(glval) = VariableAddress[x87] : +# 281| r281_2(glval) = FunctionAddress[~String] : +# 281| v281_3(void) = Call[~String] : func:r281_2, this:r281_1 +# 281| mu281_4(unknown) = ^CallSideEffect : ~m? +# 281| v281_5(void) = ^IndirectReadSideEffect[-1] : &:r281_1, ~m? +# 281| mu281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r281_1 +# 281| r281_7(bool) = Constant[0] : +# 281| v281_8(void) = ConditionalBranch : r281_7 +#-----| False -> Block 88 +#-----| True -> Block 1026 + +# 283| Block 88 +# 283| r283_1(glval) = VariableAddress[x88] : +# 283| mu283_2(String) = Uninitialized[x88] : &:r283_1 +# 283| r283_3(glval) = FunctionAddress[String] : +# 283| v283_4(void) = Call[String] : func:r283_3, this:r283_1 +# 283| mu283_5(unknown) = ^CallSideEffect : ~m? +# 283| mu283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r283_1 +# 284| r284_1(glval) = VariableAddress[x88] : +# 284| r284_2(glval) = FunctionAddress[~String] : +# 284| v284_3(void) = Call[~String] : func:r284_2, this:r284_1 +# 284| mu284_4(unknown) = ^CallSideEffect : ~m? +# 284| v284_5(void) = ^IndirectReadSideEffect[-1] : &:r284_1, ~m? +# 284| mu284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r284_1 +# 284| r284_7(bool) = Constant[0] : +# 284| v284_8(void) = ConditionalBranch : r284_7 +#-----| False -> Block 89 +#-----| True -> Block 1026 + +# 286| Block 89 +# 286| r286_1(glval) = VariableAddress[x89] : +# 286| mu286_2(String) = Uninitialized[x89] : &:r286_1 +# 286| r286_3(glval) = FunctionAddress[String] : +# 286| v286_4(void) = Call[String] : func:r286_3, this:r286_1 +# 286| mu286_5(unknown) = ^CallSideEffect : ~m? +# 286| mu286_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r286_1 +# 287| r287_1(glval) = VariableAddress[x89] : +# 287| r287_2(glval) = FunctionAddress[~String] : +# 287| v287_3(void) = Call[~String] : func:r287_2, this:r287_1 +# 287| mu287_4(unknown) = ^CallSideEffect : ~m? +# 287| v287_5(void) = ^IndirectReadSideEffect[-1] : &:r287_1, ~m? +# 287| mu287_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r287_1 +# 287| r287_7(bool) = Constant[0] : +# 287| v287_8(void) = ConditionalBranch : r287_7 +#-----| False -> Block 90 +#-----| True -> Block 1026 + +# 289| Block 90 +# 289| r289_1(glval) = VariableAddress[x90] : +# 289| mu289_2(String) = Uninitialized[x90] : &:r289_1 +# 289| r289_3(glval) = FunctionAddress[String] : +# 289| v289_4(void) = Call[String] : func:r289_3, this:r289_1 +# 289| mu289_5(unknown) = ^CallSideEffect : ~m? +# 289| mu289_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r289_1 +# 290| r290_1(glval) = VariableAddress[x90] : +# 290| r290_2(glval) = FunctionAddress[~String] : +# 290| v290_3(void) = Call[~String] : func:r290_2, this:r290_1 +# 290| mu290_4(unknown) = ^CallSideEffect : ~m? +# 290| v290_5(void) = ^IndirectReadSideEffect[-1] : &:r290_1, ~m? +# 290| mu290_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r290_1 +# 290| r290_7(bool) = Constant[0] : +# 290| v290_8(void) = ConditionalBranch : r290_7 +#-----| False -> Block 91 +#-----| True -> Block 1026 + +# 292| Block 91 +# 292| r292_1(glval) = VariableAddress[x91] : +# 292| mu292_2(String) = Uninitialized[x91] : &:r292_1 +# 292| r292_3(glval) = FunctionAddress[String] : +# 292| v292_4(void) = Call[String] : func:r292_3, this:r292_1 +# 292| mu292_5(unknown) = ^CallSideEffect : ~m? +# 292| mu292_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r292_1 +# 293| r293_1(glval) = VariableAddress[x91] : +# 293| r293_2(glval) = FunctionAddress[~String] : +# 293| v293_3(void) = Call[~String] : func:r293_2, this:r293_1 +# 293| mu293_4(unknown) = ^CallSideEffect : ~m? +# 293| v293_5(void) = ^IndirectReadSideEffect[-1] : &:r293_1, ~m? +# 293| mu293_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r293_1 +# 293| r293_7(bool) = Constant[0] : +# 293| v293_8(void) = ConditionalBranch : r293_7 +#-----| False -> Block 92 +#-----| True -> Block 1026 + +# 295| Block 92 +# 295| r295_1(glval) = VariableAddress[x92] : +# 295| mu295_2(String) = Uninitialized[x92] : &:r295_1 +# 295| r295_3(glval) = FunctionAddress[String] : +# 295| v295_4(void) = Call[String] : func:r295_3, this:r295_1 +# 295| mu295_5(unknown) = ^CallSideEffect : ~m? +# 295| mu295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r295_1 +# 296| r296_1(glval) = VariableAddress[x92] : +# 296| r296_2(glval) = FunctionAddress[~String] : +# 296| v296_3(void) = Call[~String] : func:r296_2, this:r296_1 +# 296| mu296_4(unknown) = ^CallSideEffect : ~m? +# 296| v296_5(void) = ^IndirectReadSideEffect[-1] : &:r296_1, ~m? +# 296| mu296_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r296_1 +# 296| r296_7(bool) = Constant[0] : +# 296| v296_8(void) = ConditionalBranch : r296_7 +#-----| False -> Block 93 +#-----| True -> Block 1026 + +# 298| Block 93 +# 298| r298_1(glval) = VariableAddress[x93] : +# 298| mu298_2(String) = Uninitialized[x93] : &:r298_1 +# 298| r298_3(glval) = FunctionAddress[String] : +# 298| v298_4(void) = Call[String] : func:r298_3, this:r298_1 +# 298| mu298_5(unknown) = ^CallSideEffect : ~m? +# 298| mu298_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r298_1 +# 299| r299_1(glval) = VariableAddress[x93] : +# 299| r299_2(glval) = FunctionAddress[~String] : +# 299| v299_3(void) = Call[~String] : func:r299_2, this:r299_1 +# 299| mu299_4(unknown) = ^CallSideEffect : ~m? +# 299| v299_5(void) = ^IndirectReadSideEffect[-1] : &:r299_1, ~m? +# 299| mu299_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r299_1 +# 299| r299_7(bool) = Constant[0] : +# 299| v299_8(void) = ConditionalBranch : r299_7 +#-----| False -> Block 94 +#-----| True -> Block 1026 + +# 301| Block 94 +# 301| r301_1(glval) = VariableAddress[x94] : +# 301| mu301_2(String) = Uninitialized[x94] : &:r301_1 +# 301| r301_3(glval) = FunctionAddress[String] : +# 301| v301_4(void) = Call[String] : func:r301_3, this:r301_1 +# 301| mu301_5(unknown) = ^CallSideEffect : ~m? +# 301| mu301_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r301_1 +# 302| r302_1(glval) = VariableAddress[x94] : +# 302| r302_2(glval) = FunctionAddress[~String] : +# 302| v302_3(void) = Call[~String] : func:r302_2, this:r302_1 +# 302| mu302_4(unknown) = ^CallSideEffect : ~m? +# 302| v302_5(void) = ^IndirectReadSideEffect[-1] : &:r302_1, ~m? +# 302| mu302_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r302_1 +# 302| r302_7(bool) = Constant[0] : +# 302| v302_8(void) = ConditionalBranch : r302_7 +#-----| False -> Block 95 +#-----| True -> Block 1026 + +# 304| Block 95 +# 304| r304_1(glval) = VariableAddress[x95] : +# 304| mu304_2(String) = Uninitialized[x95] : &:r304_1 +# 304| r304_3(glval) = FunctionAddress[String] : +# 304| v304_4(void) = Call[String] : func:r304_3, this:r304_1 +# 304| mu304_5(unknown) = ^CallSideEffect : ~m? +# 304| mu304_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r304_1 +# 305| r305_1(glval) = VariableAddress[x95] : +# 305| r305_2(glval) = FunctionAddress[~String] : +# 305| v305_3(void) = Call[~String] : func:r305_2, this:r305_1 +# 305| mu305_4(unknown) = ^CallSideEffect : ~m? +# 305| v305_5(void) = ^IndirectReadSideEffect[-1] : &:r305_1, ~m? +# 305| mu305_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r305_1 +# 305| r305_7(bool) = Constant[0] : +# 305| v305_8(void) = ConditionalBranch : r305_7 +#-----| False -> Block 96 +#-----| True -> Block 1026 + +# 307| Block 96 +# 307| r307_1(glval) = VariableAddress[x96] : +# 307| mu307_2(String) = Uninitialized[x96] : &:r307_1 +# 307| r307_3(glval) = FunctionAddress[String] : +# 307| v307_4(void) = Call[String] : func:r307_3, this:r307_1 +# 307| mu307_5(unknown) = ^CallSideEffect : ~m? +# 307| mu307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r307_1 +# 308| r308_1(glval) = VariableAddress[x96] : +# 308| r308_2(glval) = FunctionAddress[~String] : +# 308| v308_3(void) = Call[~String] : func:r308_2, this:r308_1 +# 308| mu308_4(unknown) = ^CallSideEffect : ~m? +# 308| v308_5(void) = ^IndirectReadSideEffect[-1] : &:r308_1, ~m? +# 308| mu308_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r308_1 +# 308| r308_7(bool) = Constant[0] : +# 308| v308_8(void) = ConditionalBranch : r308_7 +#-----| False -> Block 97 +#-----| True -> Block 1026 + +# 310| Block 97 +# 310| r310_1(glval) = VariableAddress[x97] : +# 310| mu310_2(String) = Uninitialized[x97] : &:r310_1 +# 310| r310_3(glval) = FunctionAddress[String] : +# 310| v310_4(void) = Call[String] : func:r310_3, this:r310_1 +# 310| mu310_5(unknown) = ^CallSideEffect : ~m? +# 310| mu310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r310_1 +# 311| r311_1(glval) = VariableAddress[x97] : +# 311| r311_2(glval) = FunctionAddress[~String] : +# 311| v311_3(void) = Call[~String] : func:r311_2, this:r311_1 +# 311| mu311_4(unknown) = ^CallSideEffect : ~m? +# 311| v311_5(void) = ^IndirectReadSideEffect[-1] : &:r311_1, ~m? +# 311| mu311_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r311_1 +# 311| r311_7(bool) = Constant[0] : +# 311| v311_8(void) = ConditionalBranch : r311_7 +#-----| False -> Block 98 +#-----| True -> Block 1026 + +# 313| Block 98 +# 313| r313_1(glval) = VariableAddress[x98] : +# 313| mu313_2(String) = Uninitialized[x98] : &:r313_1 +# 313| r313_3(glval) = FunctionAddress[String] : +# 313| v313_4(void) = Call[String] : func:r313_3, this:r313_1 +# 313| mu313_5(unknown) = ^CallSideEffect : ~m? +# 313| mu313_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r313_1 +# 314| r314_1(glval) = VariableAddress[x98] : +# 314| r314_2(glval) = FunctionAddress[~String] : +# 314| v314_3(void) = Call[~String] : func:r314_2, this:r314_1 +# 314| mu314_4(unknown) = ^CallSideEffect : ~m? +# 314| v314_5(void) = ^IndirectReadSideEffect[-1] : &:r314_1, ~m? +# 314| mu314_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r314_1 +# 314| r314_7(bool) = Constant[0] : +# 314| v314_8(void) = ConditionalBranch : r314_7 +#-----| False -> Block 99 +#-----| True -> Block 1026 + +# 316| Block 99 +# 316| r316_1(glval) = VariableAddress[x99] : +# 316| mu316_2(String) = Uninitialized[x99] : &:r316_1 +# 316| r316_3(glval) = FunctionAddress[String] : +# 316| v316_4(void) = Call[String] : func:r316_3, this:r316_1 +# 316| mu316_5(unknown) = ^CallSideEffect : ~m? +# 316| mu316_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r316_1 +# 317| r317_1(glval) = VariableAddress[x99] : +# 317| r317_2(glval) = FunctionAddress[~String] : +# 317| v317_3(void) = Call[~String] : func:r317_2, this:r317_1 +# 317| mu317_4(unknown) = ^CallSideEffect : ~m? +# 317| v317_5(void) = ^IndirectReadSideEffect[-1] : &:r317_1, ~m? +# 317| mu317_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r317_1 +# 317| r317_7(bool) = Constant[0] : +# 317| v317_8(void) = ConditionalBranch : r317_7 +#-----| False -> Block 100 +#-----| True -> Block 1026 + +# 319| Block 100 +# 319| r319_1(glval) = VariableAddress[x100] : +# 319| mu319_2(String) = Uninitialized[x100] : &:r319_1 +# 319| r319_3(glval) = FunctionAddress[String] : +# 319| v319_4(void) = Call[String] : func:r319_3, this:r319_1 +# 319| mu319_5(unknown) = ^CallSideEffect : ~m? +# 319| mu319_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r319_1 +# 320| r320_1(glval) = VariableAddress[x100] : +# 320| r320_2(glval) = FunctionAddress[~String] : +# 320| v320_3(void) = Call[~String] : func:r320_2, this:r320_1 +# 320| mu320_4(unknown) = ^CallSideEffect : ~m? +# 320| v320_5(void) = ^IndirectReadSideEffect[-1] : &:r320_1, ~m? +# 320| mu320_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r320_1 +# 320| r320_7(bool) = Constant[0] : +# 320| v320_8(void) = ConditionalBranch : r320_7 +#-----| False -> Block 101 +#-----| True -> Block 1026 + +# 322| Block 101 +# 322| r322_1(glval) = VariableAddress[x101] : +# 322| mu322_2(String) = Uninitialized[x101] : &:r322_1 +# 322| r322_3(glval) = FunctionAddress[String] : +# 322| v322_4(void) = Call[String] : func:r322_3, this:r322_1 +# 322| mu322_5(unknown) = ^CallSideEffect : ~m? +# 322| mu322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r322_1 +# 323| r323_1(glval) = VariableAddress[x101] : +# 323| r323_2(glval) = FunctionAddress[~String] : +# 323| v323_3(void) = Call[~String] : func:r323_2, this:r323_1 +# 323| mu323_4(unknown) = ^CallSideEffect : ~m? +# 323| v323_5(void) = ^IndirectReadSideEffect[-1] : &:r323_1, ~m? +# 323| mu323_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r323_1 +# 323| r323_7(bool) = Constant[0] : +# 323| v323_8(void) = ConditionalBranch : r323_7 +#-----| False -> Block 102 +#-----| True -> Block 1026 + +# 325| Block 102 +# 325| r325_1(glval) = VariableAddress[x102] : +# 325| mu325_2(String) = Uninitialized[x102] : &:r325_1 +# 325| r325_3(glval) = FunctionAddress[String] : +# 325| v325_4(void) = Call[String] : func:r325_3, this:r325_1 +# 325| mu325_5(unknown) = ^CallSideEffect : ~m? +# 325| mu325_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r325_1 +# 326| r326_1(glval) = VariableAddress[x102] : +# 326| r326_2(glval) = FunctionAddress[~String] : +# 326| v326_3(void) = Call[~String] : func:r326_2, this:r326_1 +# 326| mu326_4(unknown) = ^CallSideEffect : ~m? +# 326| v326_5(void) = ^IndirectReadSideEffect[-1] : &:r326_1, ~m? +# 326| mu326_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r326_1 +# 326| r326_7(bool) = Constant[0] : +# 326| v326_8(void) = ConditionalBranch : r326_7 +#-----| False -> Block 103 +#-----| True -> Block 1026 + +# 328| Block 103 +# 328| r328_1(glval) = VariableAddress[x103] : +# 328| mu328_2(String) = Uninitialized[x103] : &:r328_1 +# 328| r328_3(glval) = FunctionAddress[String] : +# 328| v328_4(void) = Call[String] : func:r328_3, this:r328_1 +# 328| mu328_5(unknown) = ^CallSideEffect : ~m? +# 328| mu328_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r328_1 +# 329| r329_1(glval) = VariableAddress[x103] : +# 329| r329_2(glval) = FunctionAddress[~String] : +# 329| v329_3(void) = Call[~String] : func:r329_2, this:r329_1 +# 329| mu329_4(unknown) = ^CallSideEffect : ~m? +# 329| v329_5(void) = ^IndirectReadSideEffect[-1] : &:r329_1, ~m? +# 329| mu329_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r329_1 +# 329| r329_7(bool) = Constant[0] : +# 329| v329_8(void) = ConditionalBranch : r329_7 +#-----| False -> Block 104 +#-----| True -> Block 1026 + +# 331| Block 104 +# 331| r331_1(glval) = VariableAddress[x104] : +# 331| mu331_2(String) = Uninitialized[x104] : &:r331_1 +# 331| r331_3(glval) = FunctionAddress[String] : +# 331| v331_4(void) = Call[String] : func:r331_3, this:r331_1 +# 331| mu331_5(unknown) = ^CallSideEffect : ~m? +# 331| mu331_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r331_1 +# 332| r332_1(glval) = VariableAddress[x104] : +# 332| r332_2(glval) = FunctionAddress[~String] : +# 332| v332_3(void) = Call[~String] : func:r332_2, this:r332_1 +# 332| mu332_4(unknown) = ^CallSideEffect : ~m? +# 332| v332_5(void) = ^IndirectReadSideEffect[-1] : &:r332_1, ~m? +# 332| mu332_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r332_1 +# 332| r332_7(bool) = Constant[0] : +# 332| v332_8(void) = ConditionalBranch : r332_7 +#-----| False -> Block 105 +#-----| True -> Block 1026 + +# 334| Block 105 +# 334| r334_1(glval) = VariableAddress[x105] : +# 334| mu334_2(String) = Uninitialized[x105] : &:r334_1 +# 334| r334_3(glval) = FunctionAddress[String] : +# 334| v334_4(void) = Call[String] : func:r334_3, this:r334_1 +# 334| mu334_5(unknown) = ^CallSideEffect : ~m? +# 334| mu334_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r334_1 +# 335| r335_1(glval) = VariableAddress[x105] : +# 335| r335_2(glval) = FunctionAddress[~String] : +# 335| v335_3(void) = Call[~String] : func:r335_2, this:r335_1 +# 335| mu335_4(unknown) = ^CallSideEffect : ~m? +# 335| v335_5(void) = ^IndirectReadSideEffect[-1] : &:r335_1, ~m? +# 335| mu335_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r335_1 +# 335| r335_7(bool) = Constant[0] : +# 335| v335_8(void) = ConditionalBranch : r335_7 +#-----| False -> Block 106 +#-----| True -> Block 1026 + +# 337| Block 106 +# 337| r337_1(glval) = VariableAddress[x106] : +# 337| mu337_2(String) = Uninitialized[x106] : &:r337_1 +# 337| r337_3(glval) = FunctionAddress[String] : +# 337| v337_4(void) = Call[String] : func:r337_3, this:r337_1 +# 337| mu337_5(unknown) = ^CallSideEffect : ~m? +# 337| mu337_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r337_1 +# 338| r338_1(glval) = VariableAddress[x106] : +# 338| r338_2(glval) = FunctionAddress[~String] : +# 338| v338_3(void) = Call[~String] : func:r338_2, this:r338_1 +# 338| mu338_4(unknown) = ^CallSideEffect : ~m? +# 338| v338_5(void) = ^IndirectReadSideEffect[-1] : &:r338_1, ~m? +# 338| mu338_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r338_1 +# 338| r338_7(bool) = Constant[0] : +# 338| v338_8(void) = ConditionalBranch : r338_7 +#-----| False -> Block 107 +#-----| True -> Block 1026 + +# 340| Block 107 +# 340| r340_1(glval) = VariableAddress[x107] : +# 340| mu340_2(String) = Uninitialized[x107] : &:r340_1 +# 340| r340_3(glval) = FunctionAddress[String] : +# 340| v340_4(void) = Call[String] : func:r340_3, this:r340_1 +# 340| mu340_5(unknown) = ^CallSideEffect : ~m? +# 340| mu340_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r340_1 +# 341| r341_1(glval) = VariableAddress[x107] : +# 341| r341_2(glval) = FunctionAddress[~String] : +# 341| v341_3(void) = Call[~String] : func:r341_2, this:r341_1 +# 341| mu341_4(unknown) = ^CallSideEffect : ~m? +# 341| v341_5(void) = ^IndirectReadSideEffect[-1] : &:r341_1, ~m? +# 341| mu341_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r341_1 +# 341| r341_7(bool) = Constant[0] : +# 341| v341_8(void) = ConditionalBranch : r341_7 +#-----| False -> Block 108 +#-----| True -> Block 1026 + +# 343| Block 108 +# 343| r343_1(glval) = VariableAddress[x108] : +# 343| mu343_2(String) = Uninitialized[x108] : &:r343_1 +# 343| r343_3(glval) = FunctionAddress[String] : +# 343| v343_4(void) = Call[String] : func:r343_3, this:r343_1 +# 343| mu343_5(unknown) = ^CallSideEffect : ~m? +# 343| mu343_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r343_1 +# 344| r344_1(glval) = VariableAddress[x108] : +# 344| r344_2(glval) = FunctionAddress[~String] : +# 344| v344_3(void) = Call[~String] : func:r344_2, this:r344_1 +# 344| mu344_4(unknown) = ^CallSideEffect : ~m? +# 344| v344_5(void) = ^IndirectReadSideEffect[-1] : &:r344_1, ~m? +# 344| mu344_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r344_1 +# 344| r344_7(bool) = Constant[0] : +# 344| v344_8(void) = ConditionalBranch : r344_7 +#-----| False -> Block 109 +#-----| True -> Block 1026 + +# 346| Block 109 +# 346| r346_1(glval) = VariableAddress[x109] : +# 346| mu346_2(String) = Uninitialized[x109] : &:r346_1 +# 346| r346_3(glval) = FunctionAddress[String] : +# 346| v346_4(void) = Call[String] : func:r346_3, this:r346_1 +# 346| mu346_5(unknown) = ^CallSideEffect : ~m? +# 346| mu346_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r346_1 +# 347| r347_1(glval) = VariableAddress[x109] : +# 347| r347_2(glval) = FunctionAddress[~String] : +# 347| v347_3(void) = Call[~String] : func:r347_2, this:r347_1 +# 347| mu347_4(unknown) = ^CallSideEffect : ~m? +# 347| v347_5(void) = ^IndirectReadSideEffect[-1] : &:r347_1, ~m? +# 347| mu347_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r347_1 +# 347| r347_7(bool) = Constant[0] : +# 347| v347_8(void) = ConditionalBranch : r347_7 +#-----| False -> Block 110 +#-----| True -> Block 1026 + +# 349| Block 110 +# 349| r349_1(glval) = VariableAddress[x110] : +# 349| mu349_2(String) = Uninitialized[x110] : &:r349_1 +# 349| r349_3(glval) = FunctionAddress[String] : +# 349| v349_4(void) = Call[String] : func:r349_3, this:r349_1 +# 349| mu349_5(unknown) = ^CallSideEffect : ~m? +# 349| mu349_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r349_1 +# 350| r350_1(glval) = VariableAddress[x110] : +# 350| r350_2(glval) = FunctionAddress[~String] : +# 350| v350_3(void) = Call[~String] : func:r350_2, this:r350_1 +# 350| mu350_4(unknown) = ^CallSideEffect : ~m? +# 350| v350_5(void) = ^IndirectReadSideEffect[-1] : &:r350_1, ~m? +# 350| mu350_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r350_1 +# 350| r350_7(bool) = Constant[0] : +# 350| v350_8(void) = ConditionalBranch : r350_7 +#-----| False -> Block 111 +#-----| True -> Block 1026 + +# 352| Block 111 +# 352| r352_1(glval) = VariableAddress[x111] : +# 352| mu352_2(String) = Uninitialized[x111] : &:r352_1 +# 352| r352_3(glval) = FunctionAddress[String] : +# 352| v352_4(void) = Call[String] : func:r352_3, this:r352_1 +# 352| mu352_5(unknown) = ^CallSideEffect : ~m? +# 352| mu352_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r352_1 +# 353| r353_1(glval) = VariableAddress[x111] : +# 353| r353_2(glval) = FunctionAddress[~String] : +# 353| v353_3(void) = Call[~String] : func:r353_2, this:r353_1 +# 353| mu353_4(unknown) = ^CallSideEffect : ~m? +# 353| v353_5(void) = ^IndirectReadSideEffect[-1] : &:r353_1, ~m? +# 353| mu353_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r353_1 +# 353| r353_7(bool) = Constant[0] : +# 353| v353_8(void) = ConditionalBranch : r353_7 +#-----| False -> Block 112 +#-----| True -> Block 1026 + +# 355| Block 112 +# 355| r355_1(glval) = VariableAddress[x112] : +# 355| mu355_2(String) = Uninitialized[x112] : &:r355_1 +# 355| r355_3(glval) = FunctionAddress[String] : +# 355| v355_4(void) = Call[String] : func:r355_3, this:r355_1 +# 355| mu355_5(unknown) = ^CallSideEffect : ~m? +# 355| mu355_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r355_1 +# 356| r356_1(glval) = VariableAddress[x112] : +# 356| r356_2(glval) = FunctionAddress[~String] : +# 356| v356_3(void) = Call[~String] : func:r356_2, this:r356_1 +# 356| mu356_4(unknown) = ^CallSideEffect : ~m? +# 356| v356_5(void) = ^IndirectReadSideEffect[-1] : &:r356_1, ~m? +# 356| mu356_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r356_1 +# 356| r356_7(bool) = Constant[0] : +# 356| v356_8(void) = ConditionalBranch : r356_7 +#-----| False -> Block 113 +#-----| True -> Block 1026 + +# 358| Block 113 +# 358| r358_1(glval) = VariableAddress[x113] : +# 358| mu358_2(String) = Uninitialized[x113] : &:r358_1 +# 358| r358_3(glval) = FunctionAddress[String] : +# 358| v358_4(void) = Call[String] : func:r358_3, this:r358_1 +# 358| mu358_5(unknown) = ^CallSideEffect : ~m? +# 358| mu358_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r358_1 +# 359| r359_1(glval) = VariableAddress[x113] : +# 359| r359_2(glval) = FunctionAddress[~String] : +# 359| v359_3(void) = Call[~String] : func:r359_2, this:r359_1 +# 359| mu359_4(unknown) = ^CallSideEffect : ~m? +# 359| v359_5(void) = ^IndirectReadSideEffect[-1] : &:r359_1, ~m? +# 359| mu359_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r359_1 +# 359| r359_7(bool) = Constant[0] : +# 359| v359_8(void) = ConditionalBranch : r359_7 +#-----| False -> Block 114 +#-----| True -> Block 1026 + +# 361| Block 114 +# 361| r361_1(glval) = VariableAddress[x114] : +# 361| mu361_2(String) = Uninitialized[x114] : &:r361_1 +# 361| r361_3(glval) = FunctionAddress[String] : +# 361| v361_4(void) = Call[String] : func:r361_3, this:r361_1 +# 361| mu361_5(unknown) = ^CallSideEffect : ~m? +# 361| mu361_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r361_1 +# 362| r362_1(glval) = VariableAddress[x114] : +# 362| r362_2(glval) = FunctionAddress[~String] : +# 362| v362_3(void) = Call[~String] : func:r362_2, this:r362_1 +# 362| mu362_4(unknown) = ^CallSideEffect : ~m? +# 362| v362_5(void) = ^IndirectReadSideEffect[-1] : &:r362_1, ~m? +# 362| mu362_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r362_1 +# 362| r362_7(bool) = Constant[0] : +# 362| v362_8(void) = ConditionalBranch : r362_7 +#-----| False -> Block 115 +#-----| True -> Block 1026 + +# 364| Block 115 +# 364| r364_1(glval) = VariableAddress[x115] : +# 364| mu364_2(String) = Uninitialized[x115] : &:r364_1 +# 364| r364_3(glval) = FunctionAddress[String] : +# 364| v364_4(void) = Call[String] : func:r364_3, this:r364_1 +# 364| mu364_5(unknown) = ^CallSideEffect : ~m? +# 364| mu364_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r364_1 +# 365| r365_1(glval) = VariableAddress[x115] : +# 365| r365_2(glval) = FunctionAddress[~String] : +# 365| v365_3(void) = Call[~String] : func:r365_2, this:r365_1 +# 365| mu365_4(unknown) = ^CallSideEffect : ~m? +# 365| v365_5(void) = ^IndirectReadSideEffect[-1] : &:r365_1, ~m? +# 365| mu365_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r365_1 +# 365| r365_7(bool) = Constant[0] : +# 365| v365_8(void) = ConditionalBranch : r365_7 +#-----| False -> Block 116 +#-----| True -> Block 1026 + +# 367| Block 116 +# 367| r367_1(glval) = VariableAddress[x116] : +# 367| mu367_2(String) = Uninitialized[x116] : &:r367_1 +# 367| r367_3(glval) = FunctionAddress[String] : +# 367| v367_4(void) = Call[String] : func:r367_3, this:r367_1 +# 367| mu367_5(unknown) = ^CallSideEffect : ~m? +# 367| mu367_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r367_1 +# 368| r368_1(glval) = VariableAddress[x116] : +# 368| r368_2(glval) = FunctionAddress[~String] : +# 368| v368_3(void) = Call[~String] : func:r368_2, this:r368_1 +# 368| mu368_4(unknown) = ^CallSideEffect : ~m? +# 368| v368_5(void) = ^IndirectReadSideEffect[-1] : &:r368_1, ~m? +# 368| mu368_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r368_1 +# 368| r368_7(bool) = Constant[0] : +# 368| v368_8(void) = ConditionalBranch : r368_7 +#-----| False -> Block 117 +#-----| True -> Block 1026 + +# 370| Block 117 +# 370| r370_1(glval) = VariableAddress[x117] : +# 370| mu370_2(String) = Uninitialized[x117] : &:r370_1 +# 370| r370_3(glval) = FunctionAddress[String] : +# 370| v370_4(void) = Call[String] : func:r370_3, this:r370_1 +# 370| mu370_5(unknown) = ^CallSideEffect : ~m? +# 370| mu370_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r370_1 +# 371| r371_1(glval) = VariableAddress[x117] : +# 371| r371_2(glval) = FunctionAddress[~String] : +# 371| v371_3(void) = Call[~String] : func:r371_2, this:r371_1 +# 371| mu371_4(unknown) = ^CallSideEffect : ~m? +# 371| v371_5(void) = ^IndirectReadSideEffect[-1] : &:r371_1, ~m? +# 371| mu371_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r371_1 +# 371| r371_7(bool) = Constant[0] : +# 371| v371_8(void) = ConditionalBranch : r371_7 +#-----| False -> Block 118 +#-----| True -> Block 1026 + +# 373| Block 118 +# 373| r373_1(glval) = VariableAddress[x118] : +# 373| mu373_2(String) = Uninitialized[x118] : &:r373_1 +# 373| r373_3(glval) = FunctionAddress[String] : +# 373| v373_4(void) = Call[String] : func:r373_3, this:r373_1 +# 373| mu373_5(unknown) = ^CallSideEffect : ~m? +# 373| mu373_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r373_1 +# 374| r374_1(glval) = VariableAddress[x118] : +# 374| r374_2(glval) = FunctionAddress[~String] : +# 374| v374_3(void) = Call[~String] : func:r374_2, this:r374_1 +# 374| mu374_4(unknown) = ^CallSideEffect : ~m? +# 374| v374_5(void) = ^IndirectReadSideEffect[-1] : &:r374_1, ~m? +# 374| mu374_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r374_1 +# 374| r374_7(bool) = Constant[0] : +# 374| v374_8(void) = ConditionalBranch : r374_7 +#-----| False -> Block 119 +#-----| True -> Block 1026 + +# 376| Block 119 +# 376| r376_1(glval) = VariableAddress[x119] : +# 376| mu376_2(String) = Uninitialized[x119] : &:r376_1 +# 376| r376_3(glval) = FunctionAddress[String] : +# 376| v376_4(void) = Call[String] : func:r376_3, this:r376_1 +# 376| mu376_5(unknown) = ^CallSideEffect : ~m? +# 376| mu376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r376_1 +# 377| r377_1(glval) = VariableAddress[x119] : +# 377| r377_2(glval) = FunctionAddress[~String] : +# 377| v377_3(void) = Call[~String] : func:r377_2, this:r377_1 +# 377| mu377_4(unknown) = ^CallSideEffect : ~m? +# 377| v377_5(void) = ^IndirectReadSideEffect[-1] : &:r377_1, ~m? +# 377| mu377_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r377_1 +# 377| r377_7(bool) = Constant[0] : +# 377| v377_8(void) = ConditionalBranch : r377_7 +#-----| False -> Block 120 +#-----| True -> Block 1026 + +# 379| Block 120 +# 379| r379_1(glval) = VariableAddress[x120] : +# 379| mu379_2(String) = Uninitialized[x120] : &:r379_1 +# 379| r379_3(glval) = FunctionAddress[String] : +# 379| v379_4(void) = Call[String] : func:r379_3, this:r379_1 +# 379| mu379_5(unknown) = ^CallSideEffect : ~m? +# 379| mu379_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r379_1 +# 380| r380_1(glval) = VariableAddress[x120] : +# 380| r380_2(glval) = FunctionAddress[~String] : +# 380| v380_3(void) = Call[~String] : func:r380_2, this:r380_1 +# 380| mu380_4(unknown) = ^CallSideEffect : ~m? +# 380| v380_5(void) = ^IndirectReadSideEffect[-1] : &:r380_1, ~m? +# 380| mu380_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r380_1 +# 380| r380_7(bool) = Constant[0] : +# 380| v380_8(void) = ConditionalBranch : r380_7 +#-----| False -> Block 121 +#-----| True -> Block 1026 + +# 382| Block 121 +# 382| r382_1(glval) = VariableAddress[x121] : +# 382| mu382_2(String) = Uninitialized[x121] : &:r382_1 +# 382| r382_3(glval) = FunctionAddress[String] : +# 382| v382_4(void) = Call[String] : func:r382_3, this:r382_1 +# 382| mu382_5(unknown) = ^CallSideEffect : ~m? +# 382| mu382_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r382_1 +# 383| r383_1(glval) = VariableAddress[x121] : +# 383| r383_2(glval) = FunctionAddress[~String] : +# 383| v383_3(void) = Call[~String] : func:r383_2, this:r383_1 +# 383| mu383_4(unknown) = ^CallSideEffect : ~m? +# 383| v383_5(void) = ^IndirectReadSideEffect[-1] : &:r383_1, ~m? +# 383| mu383_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r383_1 +# 383| r383_7(bool) = Constant[0] : +# 383| v383_8(void) = ConditionalBranch : r383_7 +#-----| False -> Block 122 +#-----| True -> Block 1026 + +# 385| Block 122 +# 385| r385_1(glval) = VariableAddress[x122] : +# 385| mu385_2(String) = Uninitialized[x122] : &:r385_1 +# 385| r385_3(glval) = FunctionAddress[String] : +# 385| v385_4(void) = Call[String] : func:r385_3, this:r385_1 +# 385| mu385_5(unknown) = ^CallSideEffect : ~m? +# 385| mu385_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r385_1 +# 386| r386_1(glval) = VariableAddress[x122] : +# 386| r386_2(glval) = FunctionAddress[~String] : +# 386| v386_3(void) = Call[~String] : func:r386_2, this:r386_1 +# 386| mu386_4(unknown) = ^CallSideEffect : ~m? +# 386| v386_5(void) = ^IndirectReadSideEffect[-1] : &:r386_1, ~m? +# 386| mu386_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r386_1 +# 386| r386_7(bool) = Constant[0] : +# 386| v386_8(void) = ConditionalBranch : r386_7 +#-----| False -> Block 123 +#-----| True -> Block 1026 + +# 388| Block 123 +# 388| r388_1(glval) = VariableAddress[x123] : +# 388| mu388_2(String) = Uninitialized[x123] : &:r388_1 +# 388| r388_3(glval) = FunctionAddress[String] : +# 388| v388_4(void) = Call[String] : func:r388_3, this:r388_1 +# 388| mu388_5(unknown) = ^CallSideEffect : ~m? +# 388| mu388_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r388_1 +# 389| r389_1(glval) = VariableAddress[x123] : +# 389| r389_2(glval) = FunctionAddress[~String] : +# 389| v389_3(void) = Call[~String] : func:r389_2, this:r389_1 +# 389| mu389_4(unknown) = ^CallSideEffect : ~m? +# 389| v389_5(void) = ^IndirectReadSideEffect[-1] : &:r389_1, ~m? +# 389| mu389_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r389_1 +# 389| r389_7(bool) = Constant[0] : +# 389| v389_8(void) = ConditionalBranch : r389_7 +#-----| False -> Block 124 +#-----| True -> Block 1026 + +# 391| Block 124 +# 391| r391_1(glval) = VariableAddress[x124] : +# 391| mu391_2(String) = Uninitialized[x124] : &:r391_1 +# 391| r391_3(glval) = FunctionAddress[String] : +# 391| v391_4(void) = Call[String] : func:r391_3, this:r391_1 +# 391| mu391_5(unknown) = ^CallSideEffect : ~m? +# 391| mu391_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r391_1 +# 392| r392_1(glval) = VariableAddress[x124] : +# 392| r392_2(glval) = FunctionAddress[~String] : +# 392| v392_3(void) = Call[~String] : func:r392_2, this:r392_1 +# 392| mu392_4(unknown) = ^CallSideEffect : ~m? +# 392| v392_5(void) = ^IndirectReadSideEffect[-1] : &:r392_1, ~m? +# 392| mu392_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r392_1 +# 392| r392_7(bool) = Constant[0] : +# 392| v392_8(void) = ConditionalBranch : r392_7 +#-----| False -> Block 125 +#-----| True -> Block 1026 + +# 394| Block 125 +# 394| r394_1(glval) = VariableAddress[x125] : +# 394| mu394_2(String) = Uninitialized[x125] : &:r394_1 +# 394| r394_3(glval) = FunctionAddress[String] : +# 394| v394_4(void) = Call[String] : func:r394_3, this:r394_1 +# 394| mu394_5(unknown) = ^CallSideEffect : ~m? +# 394| mu394_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r394_1 +# 395| r395_1(glval) = VariableAddress[x125] : +# 395| r395_2(glval) = FunctionAddress[~String] : +# 395| v395_3(void) = Call[~String] : func:r395_2, this:r395_1 +# 395| mu395_4(unknown) = ^CallSideEffect : ~m? +# 395| v395_5(void) = ^IndirectReadSideEffect[-1] : &:r395_1, ~m? +# 395| mu395_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r395_1 +# 395| r395_7(bool) = Constant[0] : +# 395| v395_8(void) = ConditionalBranch : r395_7 +#-----| False -> Block 126 +#-----| True -> Block 1026 + +# 397| Block 126 +# 397| r397_1(glval) = VariableAddress[x126] : +# 397| mu397_2(String) = Uninitialized[x126] : &:r397_1 +# 397| r397_3(glval) = FunctionAddress[String] : +# 397| v397_4(void) = Call[String] : func:r397_3, this:r397_1 +# 397| mu397_5(unknown) = ^CallSideEffect : ~m? +# 397| mu397_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r397_1 +# 398| r398_1(glval) = VariableAddress[x126] : +# 398| r398_2(glval) = FunctionAddress[~String] : +# 398| v398_3(void) = Call[~String] : func:r398_2, this:r398_1 +# 398| mu398_4(unknown) = ^CallSideEffect : ~m? +# 398| v398_5(void) = ^IndirectReadSideEffect[-1] : &:r398_1, ~m? +# 398| mu398_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r398_1 +# 398| r398_7(bool) = Constant[0] : +# 398| v398_8(void) = ConditionalBranch : r398_7 +#-----| False -> Block 127 +#-----| True -> Block 1026 + +# 400| Block 127 +# 400| r400_1(glval) = VariableAddress[x127] : +# 400| mu400_2(String) = Uninitialized[x127] : &:r400_1 +# 400| r400_3(glval) = FunctionAddress[String] : +# 400| v400_4(void) = Call[String] : func:r400_3, this:r400_1 +# 400| mu400_5(unknown) = ^CallSideEffect : ~m? +# 400| mu400_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r400_1 +# 401| r401_1(glval) = VariableAddress[x127] : +# 401| r401_2(glval) = FunctionAddress[~String] : +# 401| v401_3(void) = Call[~String] : func:r401_2, this:r401_1 +# 401| mu401_4(unknown) = ^CallSideEffect : ~m? +# 401| v401_5(void) = ^IndirectReadSideEffect[-1] : &:r401_1, ~m? +# 401| mu401_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r401_1 +# 401| r401_7(bool) = Constant[0] : +# 401| v401_8(void) = ConditionalBranch : r401_7 +#-----| False -> Block 128 +#-----| True -> Block 1026 + +# 403| Block 128 +# 403| r403_1(glval) = VariableAddress[x128] : +# 403| mu403_2(String) = Uninitialized[x128] : &:r403_1 +# 403| r403_3(glval) = FunctionAddress[String] : +# 403| v403_4(void) = Call[String] : func:r403_3, this:r403_1 +# 403| mu403_5(unknown) = ^CallSideEffect : ~m? +# 403| mu403_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r403_1 +# 404| r404_1(glval) = VariableAddress[x128] : +# 404| r404_2(glval) = FunctionAddress[~String] : +# 404| v404_3(void) = Call[~String] : func:r404_2, this:r404_1 +# 404| mu404_4(unknown) = ^CallSideEffect : ~m? +# 404| v404_5(void) = ^IndirectReadSideEffect[-1] : &:r404_1, ~m? +# 404| mu404_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r404_1 +# 404| r404_7(bool) = Constant[0] : +# 404| v404_8(void) = ConditionalBranch : r404_7 +#-----| False -> Block 129 +#-----| True -> Block 1026 + +# 406| Block 129 +# 406| r406_1(glval) = VariableAddress[x129] : +# 406| mu406_2(String) = Uninitialized[x129] : &:r406_1 +# 406| r406_3(glval) = FunctionAddress[String] : +# 406| v406_4(void) = Call[String] : func:r406_3, this:r406_1 +# 406| mu406_5(unknown) = ^CallSideEffect : ~m? +# 406| mu406_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r406_1 +# 407| r407_1(glval) = VariableAddress[x129] : +# 407| r407_2(glval) = FunctionAddress[~String] : +# 407| v407_3(void) = Call[~String] : func:r407_2, this:r407_1 +# 407| mu407_4(unknown) = ^CallSideEffect : ~m? +# 407| v407_5(void) = ^IndirectReadSideEffect[-1] : &:r407_1, ~m? +# 407| mu407_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r407_1 +# 407| r407_7(bool) = Constant[0] : +# 407| v407_8(void) = ConditionalBranch : r407_7 +#-----| False -> Block 130 +#-----| True -> Block 1026 + +# 409| Block 130 +# 409| r409_1(glval) = VariableAddress[x130] : +# 409| mu409_2(String) = Uninitialized[x130] : &:r409_1 +# 409| r409_3(glval) = FunctionAddress[String] : +# 409| v409_4(void) = Call[String] : func:r409_3, this:r409_1 +# 409| mu409_5(unknown) = ^CallSideEffect : ~m? +# 409| mu409_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r409_1 +# 410| r410_1(glval) = VariableAddress[x130] : +# 410| r410_2(glval) = FunctionAddress[~String] : +# 410| v410_3(void) = Call[~String] : func:r410_2, this:r410_1 +# 410| mu410_4(unknown) = ^CallSideEffect : ~m? +# 410| v410_5(void) = ^IndirectReadSideEffect[-1] : &:r410_1, ~m? +# 410| mu410_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r410_1 +# 410| r410_7(bool) = Constant[0] : +# 410| v410_8(void) = ConditionalBranch : r410_7 +#-----| False -> Block 131 +#-----| True -> Block 1026 + +# 412| Block 131 +# 412| r412_1(glval) = VariableAddress[x131] : +# 412| mu412_2(String) = Uninitialized[x131] : &:r412_1 +# 412| r412_3(glval) = FunctionAddress[String] : +# 412| v412_4(void) = Call[String] : func:r412_3, this:r412_1 +# 412| mu412_5(unknown) = ^CallSideEffect : ~m? +# 412| mu412_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r412_1 +# 413| r413_1(glval) = VariableAddress[x131] : +# 413| r413_2(glval) = FunctionAddress[~String] : +# 413| v413_3(void) = Call[~String] : func:r413_2, this:r413_1 +# 413| mu413_4(unknown) = ^CallSideEffect : ~m? +# 413| v413_5(void) = ^IndirectReadSideEffect[-1] : &:r413_1, ~m? +# 413| mu413_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r413_1 +# 413| r413_7(bool) = Constant[0] : +# 413| v413_8(void) = ConditionalBranch : r413_7 +#-----| False -> Block 132 +#-----| True -> Block 1026 + +# 415| Block 132 +# 415| r415_1(glval) = VariableAddress[x132] : +# 415| mu415_2(String) = Uninitialized[x132] : &:r415_1 +# 415| r415_3(glval) = FunctionAddress[String] : +# 415| v415_4(void) = Call[String] : func:r415_3, this:r415_1 +# 415| mu415_5(unknown) = ^CallSideEffect : ~m? +# 415| mu415_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r415_1 +# 416| r416_1(glval) = VariableAddress[x132] : +# 416| r416_2(glval) = FunctionAddress[~String] : +# 416| v416_3(void) = Call[~String] : func:r416_2, this:r416_1 +# 416| mu416_4(unknown) = ^CallSideEffect : ~m? +# 416| v416_5(void) = ^IndirectReadSideEffect[-1] : &:r416_1, ~m? +# 416| mu416_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r416_1 +# 416| r416_7(bool) = Constant[0] : +# 416| v416_8(void) = ConditionalBranch : r416_7 +#-----| False -> Block 133 +#-----| True -> Block 1026 + +# 418| Block 133 +# 418| r418_1(glval) = VariableAddress[x133] : +# 418| mu418_2(String) = Uninitialized[x133] : &:r418_1 +# 418| r418_3(glval) = FunctionAddress[String] : +# 418| v418_4(void) = Call[String] : func:r418_3, this:r418_1 +# 418| mu418_5(unknown) = ^CallSideEffect : ~m? +# 418| mu418_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r418_1 +# 419| r419_1(glval) = VariableAddress[x133] : +# 419| r419_2(glval) = FunctionAddress[~String] : +# 419| v419_3(void) = Call[~String] : func:r419_2, this:r419_1 +# 419| mu419_4(unknown) = ^CallSideEffect : ~m? +# 419| v419_5(void) = ^IndirectReadSideEffect[-1] : &:r419_1, ~m? +# 419| mu419_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r419_1 +# 419| r419_7(bool) = Constant[0] : +# 419| v419_8(void) = ConditionalBranch : r419_7 +#-----| False -> Block 134 +#-----| True -> Block 1026 + +# 421| Block 134 +# 421| r421_1(glval) = VariableAddress[x134] : +# 421| mu421_2(String) = Uninitialized[x134] : &:r421_1 +# 421| r421_3(glval) = FunctionAddress[String] : +# 421| v421_4(void) = Call[String] : func:r421_3, this:r421_1 +# 421| mu421_5(unknown) = ^CallSideEffect : ~m? +# 421| mu421_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r421_1 +# 422| r422_1(glval) = VariableAddress[x134] : +# 422| r422_2(glval) = FunctionAddress[~String] : +# 422| v422_3(void) = Call[~String] : func:r422_2, this:r422_1 +# 422| mu422_4(unknown) = ^CallSideEffect : ~m? +# 422| v422_5(void) = ^IndirectReadSideEffect[-1] : &:r422_1, ~m? +# 422| mu422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r422_1 +# 422| r422_7(bool) = Constant[0] : +# 422| v422_8(void) = ConditionalBranch : r422_7 +#-----| False -> Block 135 +#-----| True -> Block 1026 + +# 424| Block 135 +# 424| r424_1(glval) = VariableAddress[x135] : +# 424| mu424_2(String) = Uninitialized[x135] : &:r424_1 +# 424| r424_3(glval) = FunctionAddress[String] : +# 424| v424_4(void) = Call[String] : func:r424_3, this:r424_1 +# 424| mu424_5(unknown) = ^CallSideEffect : ~m? +# 424| mu424_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r424_1 +# 425| r425_1(glval) = VariableAddress[x135] : +# 425| r425_2(glval) = FunctionAddress[~String] : +# 425| v425_3(void) = Call[~String] : func:r425_2, this:r425_1 +# 425| mu425_4(unknown) = ^CallSideEffect : ~m? +# 425| v425_5(void) = ^IndirectReadSideEffect[-1] : &:r425_1, ~m? +# 425| mu425_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r425_1 +# 425| r425_7(bool) = Constant[0] : +# 425| v425_8(void) = ConditionalBranch : r425_7 +#-----| False -> Block 136 +#-----| True -> Block 1026 + +# 427| Block 136 +# 427| r427_1(glval) = VariableAddress[x136] : +# 427| mu427_2(String) = Uninitialized[x136] : &:r427_1 +# 427| r427_3(glval) = FunctionAddress[String] : +# 427| v427_4(void) = Call[String] : func:r427_3, this:r427_1 +# 427| mu427_5(unknown) = ^CallSideEffect : ~m? +# 427| mu427_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r427_1 +# 428| r428_1(glval) = VariableAddress[x136] : +# 428| r428_2(glval) = FunctionAddress[~String] : +# 428| v428_3(void) = Call[~String] : func:r428_2, this:r428_1 +# 428| mu428_4(unknown) = ^CallSideEffect : ~m? +# 428| v428_5(void) = ^IndirectReadSideEffect[-1] : &:r428_1, ~m? +# 428| mu428_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r428_1 +# 428| r428_7(bool) = Constant[0] : +# 428| v428_8(void) = ConditionalBranch : r428_7 +#-----| False -> Block 137 +#-----| True -> Block 1026 + +# 430| Block 137 +# 430| r430_1(glval) = VariableAddress[x137] : +# 430| mu430_2(String) = Uninitialized[x137] : &:r430_1 +# 430| r430_3(glval) = FunctionAddress[String] : +# 430| v430_4(void) = Call[String] : func:r430_3, this:r430_1 +# 430| mu430_5(unknown) = ^CallSideEffect : ~m? +# 430| mu430_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r430_1 +# 431| r431_1(glval) = VariableAddress[x137] : +# 431| r431_2(glval) = FunctionAddress[~String] : +# 431| v431_3(void) = Call[~String] : func:r431_2, this:r431_1 +# 431| mu431_4(unknown) = ^CallSideEffect : ~m? +# 431| v431_5(void) = ^IndirectReadSideEffect[-1] : &:r431_1, ~m? +# 431| mu431_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r431_1 +# 431| r431_7(bool) = Constant[0] : +# 431| v431_8(void) = ConditionalBranch : r431_7 +#-----| False -> Block 138 +#-----| True -> Block 1026 + +# 433| Block 138 +# 433| r433_1(glval) = VariableAddress[x138] : +# 433| mu433_2(String) = Uninitialized[x138] : &:r433_1 +# 433| r433_3(glval) = FunctionAddress[String] : +# 433| v433_4(void) = Call[String] : func:r433_3, this:r433_1 +# 433| mu433_5(unknown) = ^CallSideEffect : ~m? +# 433| mu433_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r433_1 +# 434| r434_1(glval) = VariableAddress[x138] : +# 434| r434_2(glval) = FunctionAddress[~String] : +# 434| v434_3(void) = Call[~String] : func:r434_2, this:r434_1 +# 434| mu434_4(unknown) = ^CallSideEffect : ~m? +# 434| v434_5(void) = ^IndirectReadSideEffect[-1] : &:r434_1, ~m? +# 434| mu434_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r434_1 +# 434| r434_7(bool) = Constant[0] : +# 434| v434_8(void) = ConditionalBranch : r434_7 +#-----| False -> Block 139 +#-----| True -> Block 1026 + +# 436| Block 139 +# 436| r436_1(glval) = VariableAddress[x139] : +# 436| mu436_2(String) = Uninitialized[x139] : &:r436_1 +# 436| r436_3(glval) = FunctionAddress[String] : +# 436| v436_4(void) = Call[String] : func:r436_3, this:r436_1 +# 436| mu436_5(unknown) = ^CallSideEffect : ~m? +# 436| mu436_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r436_1 +# 437| r437_1(glval) = VariableAddress[x139] : +# 437| r437_2(glval) = FunctionAddress[~String] : +# 437| v437_3(void) = Call[~String] : func:r437_2, this:r437_1 +# 437| mu437_4(unknown) = ^CallSideEffect : ~m? +# 437| v437_5(void) = ^IndirectReadSideEffect[-1] : &:r437_1, ~m? +# 437| mu437_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r437_1 +# 437| r437_7(bool) = Constant[0] : +# 437| v437_8(void) = ConditionalBranch : r437_7 +#-----| False -> Block 140 +#-----| True -> Block 1026 + +# 439| Block 140 +# 439| r439_1(glval) = VariableAddress[x140] : +# 439| mu439_2(String) = Uninitialized[x140] : &:r439_1 +# 439| r439_3(glval) = FunctionAddress[String] : +# 439| v439_4(void) = Call[String] : func:r439_3, this:r439_1 +# 439| mu439_5(unknown) = ^CallSideEffect : ~m? +# 439| mu439_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r439_1 +# 440| r440_1(glval) = VariableAddress[x140] : +# 440| r440_2(glval) = FunctionAddress[~String] : +# 440| v440_3(void) = Call[~String] : func:r440_2, this:r440_1 +# 440| mu440_4(unknown) = ^CallSideEffect : ~m? +# 440| v440_5(void) = ^IndirectReadSideEffect[-1] : &:r440_1, ~m? +# 440| mu440_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r440_1 +# 440| r440_7(bool) = Constant[0] : +# 440| v440_8(void) = ConditionalBranch : r440_7 +#-----| False -> Block 141 +#-----| True -> Block 1026 + +# 442| Block 141 +# 442| r442_1(glval) = VariableAddress[x141] : +# 442| mu442_2(String) = Uninitialized[x141] : &:r442_1 +# 442| r442_3(glval) = FunctionAddress[String] : +# 442| v442_4(void) = Call[String] : func:r442_3, this:r442_1 +# 442| mu442_5(unknown) = ^CallSideEffect : ~m? +# 442| mu442_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r442_1 +# 443| r443_1(glval) = VariableAddress[x141] : +# 443| r443_2(glval) = FunctionAddress[~String] : +# 443| v443_3(void) = Call[~String] : func:r443_2, this:r443_1 +# 443| mu443_4(unknown) = ^CallSideEffect : ~m? +# 443| v443_5(void) = ^IndirectReadSideEffect[-1] : &:r443_1, ~m? +# 443| mu443_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r443_1 +# 443| r443_7(bool) = Constant[0] : +# 443| v443_8(void) = ConditionalBranch : r443_7 +#-----| False -> Block 142 +#-----| True -> Block 1026 + +# 445| Block 142 +# 445| r445_1(glval) = VariableAddress[x142] : +# 445| mu445_2(String) = Uninitialized[x142] : &:r445_1 +# 445| r445_3(glval) = FunctionAddress[String] : +# 445| v445_4(void) = Call[String] : func:r445_3, this:r445_1 +# 445| mu445_5(unknown) = ^CallSideEffect : ~m? +# 445| mu445_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r445_1 +# 446| r446_1(glval) = VariableAddress[x142] : +# 446| r446_2(glval) = FunctionAddress[~String] : +# 446| v446_3(void) = Call[~String] : func:r446_2, this:r446_1 +# 446| mu446_4(unknown) = ^CallSideEffect : ~m? +# 446| v446_5(void) = ^IndirectReadSideEffect[-1] : &:r446_1, ~m? +# 446| mu446_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r446_1 +# 446| r446_7(bool) = Constant[0] : +# 446| v446_8(void) = ConditionalBranch : r446_7 +#-----| False -> Block 143 +#-----| True -> Block 1026 + +# 448| Block 143 +# 448| r448_1(glval) = VariableAddress[x143] : +# 448| mu448_2(String) = Uninitialized[x143] : &:r448_1 +# 448| r448_3(glval) = FunctionAddress[String] : +# 448| v448_4(void) = Call[String] : func:r448_3, this:r448_1 +# 448| mu448_5(unknown) = ^CallSideEffect : ~m? +# 448| mu448_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r448_1 +# 449| r449_1(glval) = VariableAddress[x143] : +# 449| r449_2(glval) = FunctionAddress[~String] : +# 449| v449_3(void) = Call[~String] : func:r449_2, this:r449_1 +# 449| mu449_4(unknown) = ^CallSideEffect : ~m? +# 449| v449_5(void) = ^IndirectReadSideEffect[-1] : &:r449_1, ~m? +# 449| mu449_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r449_1 +# 449| r449_7(bool) = Constant[0] : +# 449| v449_8(void) = ConditionalBranch : r449_7 +#-----| False -> Block 144 +#-----| True -> Block 1026 + +# 451| Block 144 +# 451| r451_1(glval) = VariableAddress[x144] : +# 451| mu451_2(String) = Uninitialized[x144] : &:r451_1 +# 451| r451_3(glval) = FunctionAddress[String] : +# 451| v451_4(void) = Call[String] : func:r451_3, this:r451_1 +# 451| mu451_5(unknown) = ^CallSideEffect : ~m? +# 451| mu451_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r451_1 +# 452| r452_1(glval) = VariableAddress[x144] : +# 452| r452_2(glval) = FunctionAddress[~String] : +# 452| v452_3(void) = Call[~String] : func:r452_2, this:r452_1 +# 452| mu452_4(unknown) = ^CallSideEffect : ~m? +# 452| v452_5(void) = ^IndirectReadSideEffect[-1] : &:r452_1, ~m? +# 452| mu452_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r452_1 +# 452| r452_7(bool) = Constant[0] : +# 452| v452_8(void) = ConditionalBranch : r452_7 +#-----| False -> Block 145 +#-----| True -> Block 1026 + +# 454| Block 145 +# 454| r454_1(glval) = VariableAddress[x145] : +# 454| mu454_2(String) = Uninitialized[x145] : &:r454_1 +# 454| r454_3(glval) = FunctionAddress[String] : +# 454| v454_4(void) = Call[String] : func:r454_3, this:r454_1 +# 454| mu454_5(unknown) = ^CallSideEffect : ~m? +# 454| mu454_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r454_1 +# 455| r455_1(glval) = VariableAddress[x145] : +# 455| r455_2(glval) = FunctionAddress[~String] : +# 455| v455_3(void) = Call[~String] : func:r455_2, this:r455_1 +# 455| mu455_4(unknown) = ^CallSideEffect : ~m? +# 455| v455_5(void) = ^IndirectReadSideEffect[-1] : &:r455_1, ~m? +# 455| mu455_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r455_1 +# 455| r455_7(bool) = Constant[0] : +# 455| v455_8(void) = ConditionalBranch : r455_7 +#-----| False -> Block 146 +#-----| True -> Block 1026 + +# 457| Block 146 +# 457| r457_1(glval) = VariableAddress[x146] : +# 457| mu457_2(String) = Uninitialized[x146] : &:r457_1 +# 457| r457_3(glval) = FunctionAddress[String] : +# 457| v457_4(void) = Call[String] : func:r457_3, this:r457_1 +# 457| mu457_5(unknown) = ^CallSideEffect : ~m? +# 457| mu457_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r457_1 +# 458| r458_1(glval) = VariableAddress[x146] : +# 458| r458_2(glval) = FunctionAddress[~String] : +# 458| v458_3(void) = Call[~String] : func:r458_2, this:r458_1 +# 458| mu458_4(unknown) = ^CallSideEffect : ~m? +# 458| v458_5(void) = ^IndirectReadSideEffect[-1] : &:r458_1, ~m? +# 458| mu458_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r458_1 +# 458| r458_7(bool) = Constant[0] : +# 458| v458_8(void) = ConditionalBranch : r458_7 +#-----| False -> Block 147 +#-----| True -> Block 1026 + +# 460| Block 147 +# 460| r460_1(glval) = VariableAddress[x147] : +# 460| mu460_2(String) = Uninitialized[x147] : &:r460_1 +# 460| r460_3(glval) = FunctionAddress[String] : +# 460| v460_4(void) = Call[String] : func:r460_3, this:r460_1 +# 460| mu460_5(unknown) = ^CallSideEffect : ~m? +# 460| mu460_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r460_1 +# 461| r461_1(glval) = VariableAddress[x147] : +# 461| r461_2(glval) = FunctionAddress[~String] : +# 461| v461_3(void) = Call[~String] : func:r461_2, this:r461_1 +# 461| mu461_4(unknown) = ^CallSideEffect : ~m? +# 461| v461_5(void) = ^IndirectReadSideEffect[-1] : &:r461_1, ~m? +# 461| mu461_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r461_1 +# 461| r461_7(bool) = Constant[0] : +# 461| v461_8(void) = ConditionalBranch : r461_7 +#-----| False -> Block 148 +#-----| True -> Block 1026 + +# 463| Block 148 +# 463| r463_1(glval) = VariableAddress[x148] : +# 463| mu463_2(String) = Uninitialized[x148] : &:r463_1 +# 463| r463_3(glval) = FunctionAddress[String] : +# 463| v463_4(void) = Call[String] : func:r463_3, this:r463_1 +# 463| mu463_5(unknown) = ^CallSideEffect : ~m? +# 463| mu463_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r463_1 +# 464| r464_1(glval) = VariableAddress[x148] : +# 464| r464_2(glval) = FunctionAddress[~String] : +# 464| v464_3(void) = Call[~String] : func:r464_2, this:r464_1 +# 464| mu464_4(unknown) = ^CallSideEffect : ~m? +# 464| v464_5(void) = ^IndirectReadSideEffect[-1] : &:r464_1, ~m? +# 464| mu464_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r464_1 +# 464| r464_7(bool) = Constant[0] : +# 464| v464_8(void) = ConditionalBranch : r464_7 +#-----| False -> Block 149 +#-----| True -> Block 1026 + +# 466| Block 149 +# 466| r466_1(glval) = VariableAddress[x149] : +# 466| mu466_2(String) = Uninitialized[x149] : &:r466_1 +# 466| r466_3(glval) = FunctionAddress[String] : +# 466| v466_4(void) = Call[String] : func:r466_3, this:r466_1 +# 466| mu466_5(unknown) = ^CallSideEffect : ~m? +# 466| mu466_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r466_1 +# 467| r467_1(glval) = VariableAddress[x149] : +# 467| r467_2(glval) = FunctionAddress[~String] : +# 467| v467_3(void) = Call[~String] : func:r467_2, this:r467_1 +# 467| mu467_4(unknown) = ^CallSideEffect : ~m? +# 467| v467_5(void) = ^IndirectReadSideEffect[-1] : &:r467_1, ~m? +# 467| mu467_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r467_1 +# 467| r467_7(bool) = Constant[0] : +# 467| v467_8(void) = ConditionalBranch : r467_7 +#-----| False -> Block 150 +#-----| True -> Block 1026 + +# 469| Block 150 +# 469| r469_1(glval) = VariableAddress[x150] : +# 469| mu469_2(String) = Uninitialized[x150] : &:r469_1 +# 469| r469_3(glval) = FunctionAddress[String] : +# 469| v469_4(void) = Call[String] : func:r469_3, this:r469_1 +# 469| mu469_5(unknown) = ^CallSideEffect : ~m? +# 469| mu469_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r469_1 +# 470| r470_1(glval) = VariableAddress[x150] : +# 470| r470_2(glval) = FunctionAddress[~String] : +# 470| v470_3(void) = Call[~String] : func:r470_2, this:r470_1 +# 470| mu470_4(unknown) = ^CallSideEffect : ~m? +# 470| v470_5(void) = ^IndirectReadSideEffect[-1] : &:r470_1, ~m? +# 470| mu470_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r470_1 +# 470| r470_7(bool) = Constant[0] : +# 470| v470_8(void) = ConditionalBranch : r470_7 +#-----| False -> Block 151 +#-----| True -> Block 1026 + +# 472| Block 151 +# 472| r472_1(glval) = VariableAddress[x151] : +# 472| mu472_2(String) = Uninitialized[x151] : &:r472_1 +# 472| r472_3(glval) = FunctionAddress[String] : +# 472| v472_4(void) = Call[String] : func:r472_3, this:r472_1 +# 472| mu472_5(unknown) = ^CallSideEffect : ~m? +# 472| mu472_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r472_1 +# 473| r473_1(glval) = VariableAddress[x151] : +# 473| r473_2(glval) = FunctionAddress[~String] : +# 473| v473_3(void) = Call[~String] : func:r473_2, this:r473_1 +# 473| mu473_4(unknown) = ^CallSideEffect : ~m? +# 473| v473_5(void) = ^IndirectReadSideEffect[-1] : &:r473_1, ~m? +# 473| mu473_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r473_1 +# 473| r473_7(bool) = Constant[0] : +# 473| v473_8(void) = ConditionalBranch : r473_7 +#-----| False -> Block 152 +#-----| True -> Block 1026 + +# 475| Block 152 +# 475| r475_1(glval) = VariableAddress[x152] : +# 475| mu475_2(String) = Uninitialized[x152] : &:r475_1 +# 475| r475_3(glval) = FunctionAddress[String] : +# 475| v475_4(void) = Call[String] : func:r475_3, this:r475_1 +# 475| mu475_5(unknown) = ^CallSideEffect : ~m? +# 475| mu475_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r475_1 +# 476| r476_1(glval) = VariableAddress[x152] : +# 476| r476_2(glval) = FunctionAddress[~String] : +# 476| v476_3(void) = Call[~String] : func:r476_2, this:r476_1 +# 476| mu476_4(unknown) = ^CallSideEffect : ~m? +# 476| v476_5(void) = ^IndirectReadSideEffect[-1] : &:r476_1, ~m? +# 476| mu476_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r476_1 +# 476| r476_7(bool) = Constant[0] : +# 476| v476_8(void) = ConditionalBranch : r476_7 +#-----| False -> Block 153 +#-----| True -> Block 1026 + +# 478| Block 153 +# 478| r478_1(glval) = VariableAddress[x153] : +# 478| mu478_2(String) = Uninitialized[x153] : &:r478_1 +# 478| r478_3(glval) = FunctionAddress[String] : +# 478| v478_4(void) = Call[String] : func:r478_3, this:r478_1 +# 478| mu478_5(unknown) = ^CallSideEffect : ~m? +# 478| mu478_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r478_1 +# 479| r479_1(glval) = VariableAddress[x153] : +# 479| r479_2(glval) = FunctionAddress[~String] : +# 479| v479_3(void) = Call[~String] : func:r479_2, this:r479_1 +# 479| mu479_4(unknown) = ^CallSideEffect : ~m? +# 479| v479_5(void) = ^IndirectReadSideEffect[-1] : &:r479_1, ~m? +# 479| mu479_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r479_1 +# 479| r479_7(bool) = Constant[0] : +# 479| v479_8(void) = ConditionalBranch : r479_7 +#-----| False -> Block 154 +#-----| True -> Block 1026 + +# 481| Block 154 +# 481| r481_1(glval) = VariableAddress[x154] : +# 481| mu481_2(String) = Uninitialized[x154] : &:r481_1 +# 481| r481_3(glval) = FunctionAddress[String] : +# 481| v481_4(void) = Call[String] : func:r481_3, this:r481_1 +# 481| mu481_5(unknown) = ^CallSideEffect : ~m? +# 481| mu481_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r481_1 +# 482| r482_1(glval) = VariableAddress[x154] : +# 482| r482_2(glval) = FunctionAddress[~String] : +# 482| v482_3(void) = Call[~String] : func:r482_2, this:r482_1 +# 482| mu482_4(unknown) = ^CallSideEffect : ~m? +# 482| v482_5(void) = ^IndirectReadSideEffect[-1] : &:r482_1, ~m? +# 482| mu482_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r482_1 +# 482| r482_7(bool) = Constant[0] : +# 482| v482_8(void) = ConditionalBranch : r482_7 +#-----| False -> Block 155 +#-----| True -> Block 1026 + +# 484| Block 155 +# 484| r484_1(glval) = VariableAddress[x155] : +# 484| mu484_2(String) = Uninitialized[x155] : &:r484_1 +# 484| r484_3(glval) = FunctionAddress[String] : +# 484| v484_4(void) = Call[String] : func:r484_3, this:r484_1 +# 484| mu484_5(unknown) = ^CallSideEffect : ~m? +# 484| mu484_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r484_1 +# 485| r485_1(glval) = VariableAddress[x155] : +# 485| r485_2(glval) = FunctionAddress[~String] : +# 485| v485_3(void) = Call[~String] : func:r485_2, this:r485_1 +# 485| mu485_4(unknown) = ^CallSideEffect : ~m? +# 485| v485_5(void) = ^IndirectReadSideEffect[-1] : &:r485_1, ~m? +# 485| mu485_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r485_1 +# 485| r485_7(bool) = Constant[0] : +# 485| v485_8(void) = ConditionalBranch : r485_7 +#-----| False -> Block 156 +#-----| True -> Block 1026 + +# 487| Block 156 +# 487| r487_1(glval) = VariableAddress[x156] : +# 487| mu487_2(String) = Uninitialized[x156] : &:r487_1 +# 487| r487_3(glval) = FunctionAddress[String] : +# 487| v487_4(void) = Call[String] : func:r487_3, this:r487_1 +# 487| mu487_5(unknown) = ^CallSideEffect : ~m? +# 487| mu487_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r487_1 +# 488| r488_1(glval) = VariableAddress[x156] : +# 488| r488_2(glval) = FunctionAddress[~String] : +# 488| v488_3(void) = Call[~String] : func:r488_2, this:r488_1 +# 488| mu488_4(unknown) = ^CallSideEffect : ~m? +# 488| v488_5(void) = ^IndirectReadSideEffect[-1] : &:r488_1, ~m? +# 488| mu488_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r488_1 +# 488| r488_7(bool) = Constant[0] : +# 488| v488_8(void) = ConditionalBranch : r488_7 +#-----| False -> Block 157 +#-----| True -> Block 1026 + +# 490| Block 157 +# 490| r490_1(glval) = VariableAddress[x157] : +# 490| mu490_2(String) = Uninitialized[x157] : &:r490_1 +# 490| r490_3(glval) = FunctionAddress[String] : +# 490| v490_4(void) = Call[String] : func:r490_3, this:r490_1 +# 490| mu490_5(unknown) = ^CallSideEffect : ~m? +# 490| mu490_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r490_1 +# 491| r491_1(glval) = VariableAddress[x157] : +# 491| r491_2(glval) = FunctionAddress[~String] : +# 491| v491_3(void) = Call[~String] : func:r491_2, this:r491_1 +# 491| mu491_4(unknown) = ^CallSideEffect : ~m? +# 491| v491_5(void) = ^IndirectReadSideEffect[-1] : &:r491_1, ~m? +# 491| mu491_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r491_1 +# 491| r491_7(bool) = Constant[0] : +# 491| v491_8(void) = ConditionalBranch : r491_7 +#-----| False -> Block 158 +#-----| True -> Block 1026 + +# 493| Block 158 +# 493| r493_1(glval) = VariableAddress[x158] : +# 493| mu493_2(String) = Uninitialized[x158] : &:r493_1 +# 493| r493_3(glval) = FunctionAddress[String] : +# 493| v493_4(void) = Call[String] : func:r493_3, this:r493_1 +# 493| mu493_5(unknown) = ^CallSideEffect : ~m? +# 493| mu493_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r493_1 +# 494| r494_1(glval) = VariableAddress[x158] : +# 494| r494_2(glval) = FunctionAddress[~String] : +# 494| v494_3(void) = Call[~String] : func:r494_2, this:r494_1 +# 494| mu494_4(unknown) = ^CallSideEffect : ~m? +# 494| v494_5(void) = ^IndirectReadSideEffect[-1] : &:r494_1, ~m? +# 494| mu494_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r494_1 +# 494| r494_7(bool) = Constant[0] : +# 494| v494_8(void) = ConditionalBranch : r494_7 +#-----| False -> Block 159 +#-----| True -> Block 1026 + +# 496| Block 159 +# 496| r496_1(glval) = VariableAddress[x159] : +# 496| mu496_2(String) = Uninitialized[x159] : &:r496_1 +# 496| r496_3(glval) = FunctionAddress[String] : +# 496| v496_4(void) = Call[String] : func:r496_3, this:r496_1 +# 496| mu496_5(unknown) = ^CallSideEffect : ~m? +# 496| mu496_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r496_1 +# 497| r497_1(glval) = VariableAddress[x159] : +# 497| r497_2(glval) = FunctionAddress[~String] : +# 497| v497_3(void) = Call[~String] : func:r497_2, this:r497_1 +# 497| mu497_4(unknown) = ^CallSideEffect : ~m? +# 497| v497_5(void) = ^IndirectReadSideEffect[-1] : &:r497_1, ~m? +# 497| mu497_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r497_1 +# 497| r497_7(bool) = Constant[0] : +# 497| v497_8(void) = ConditionalBranch : r497_7 +#-----| False -> Block 160 +#-----| True -> Block 1026 + +# 499| Block 160 +# 499| r499_1(glval) = VariableAddress[x160] : +# 499| mu499_2(String) = Uninitialized[x160] : &:r499_1 +# 499| r499_3(glval) = FunctionAddress[String] : +# 499| v499_4(void) = Call[String] : func:r499_3, this:r499_1 +# 499| mu499_5(unknown) = ^CallSideEffect : ~m? +# 499| mu499_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r499_1 +# 500| r500_1(glval) = VariableAddress[x160] : +# 500| r500_2(glval) = FunctionAddress[~String] : +# 500| v500_3(void) = Call[~String] : func:r500_2, this:r500_1 +# 500| mu500_4(unknown) = ^CallSideEffect : ~m? +# 500| v500_5(void) = ^IndirectReadSideEffect[-1] : &:r500_1, ~m? +# 500| mu500_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r500_1 +# 500| r500_7(bool) = Constant[0] : +# 500| v500_8(void) = ConditionalBranch : r500_7 +#-----| False -> Block 161 +#-----| True -> Block 1026 + +# 502| Block 161 +# 502| r502_1(glval) = VariableAddress[x161] : +# 502| mu502_2(String) = Uninitialized[x161] : &:r502_1 +# 502| r502_3(glval) = FunctionAddress[String] : +# 502| v502_4(void) = Call[String] : func:r502_3, this:r502_1 +# 502| mu502_5(unknown) = ^CallSideEffect : ~m? +# 502| mu502_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r502_1 +# 503| r503_1(glval) = VariableAddress[x161] : +# 503| r503_2(glval) = FunctionAddress[~String] : +# 503| v503_3(void) = Call[~String] : func:r503_2, this:r503_1 +# 503| mu503_4(unknown) = ^CallSideEffect : ~m? +# 503| v503_5(void) = ^IndirectReadSideEffect[-1] : &:r503_1, ~m? +# 503| mu503_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r503_1 +# 503| r503_7(bool) = Constant[0] : +# 503| v503_8(void) = ConditionalBranch : r503_7 +#-----| False -> Block 162 +#-----| True -> Block 1026 + +# 505| Block 162 +# 505| r505_1(glval) = VariableAddress[x162] : +# 505| mu505_2(String) = Uninitialized[x162] : &:r505_1 +# 505| r505_3(glval) = FunctionAddress[String] : +# 505| v505_4(void) = Call[String] : func:r505_3, this:r505_1 +# 505| mu505_5(unknown) = ^CallSideEffect : ~m? +# 505| mu505_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r505_1 +# 506| r506_1(glval) = VariableAddress[x162] : +# 506| r506_2(glval) = FunctionAddress[~String] : +# 506| v506_3(void) = Call[~String] : func:r506_2, this:r506_1 +# 506| mu506_4(unknown) = ^CallSideEffect : ~m? +# 506| v506_5(void) = ^IndirectReadSideEffect[-1] : &:r506_1, ~m? +# 506| mu506_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r506_1 +# 506| r506_7(bool) = Constant[0] : +# 506| v506_8(void) = ConditionalBranch : r506_7 +#-----| False -> Block 163 +#-----| True -> Block 1026 + +# 508| Block 163 +# 508| r508_1(glval) = VariableAddress[x163] : +# 508| mu508_2(String) = Uninitialized[x163] : &:r508_1 +# 508| r508_3(glval) = FunctionAddress[String] : +# 508| v508_4(void) = Call[String] : func:r508_3, this:r508_1 +# 508| mu508_5(unknown) = ^CallSideEffect : ~m? +# 508| mu508_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r508_1 +# 509| r509_1(glval) = VariableAddress[x163] : +# 509| r509_2(glval) = FunctionAddress[~String] : +# 509| v509_3(void) = Call[~String] : func:r509_2, this:r509_1 +# 509| mu509_4(unknown) = ^CallSideEffect : ~m? +# 509| v509_5(void) = ^IndirectReadSideEffect[-1] : &:r509_1, ~m? +# 509| mu509_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r509_1 +# 509| r509_7(bool) = Constant[0] : +# 509| v509_8(void) = ConditionalBranch : r509_7 +#-----| False -> Block 164 +#-----| True -> Block 1026 + +# 511| Block 164 +# 511| r511_1(glval) = VariableAddress[x164] : +# 511| mu511_2(String) = Uninitialized[x164] : &:r511_1 +# 511| r511_3(glval) = FunctionAddress[String] : +# 511| v511_4(void) = Call[String] : func:r511_3, this:r511_1 +# 511| mu511_5(unknown) = ^CallSideEffect : ~m? +# 511| mu511_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r511_1 +# 512| r512_1(glval) = VariableAddress[x164] : +# 512| r512_2(glval) = FunctionAddress[~String] : +# 512| v512_3(void) = Call[~String] : func:r512_2, this:r512_1 +# 512| mu512_4(unknown) = ^CallSideEffect : ~m? +# 512| v512_5(void) = ^IndirectReadSideEffect[-1] : &:r512_1, ~m? +# 512| mu512_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r512_1 +# 512| r512_7(bool) = Constant[0] : +# 512| v512_8(void) = ConditionalBranch : r512_7 +#-----| False -> Block 165 +#-----| True -> Block 1026 + +# 514| Block 165 +# 514| r514_1(glval) = VariableAddress[x165] : +# 514| mu514_2(String) = Uninitialized[x165] : &:r514_1 +# 514| r514_3(glval) = FunctionAddress[String] : +# 514| v514_4(void) = Call[String] : func:r514_3, this:r514_1 +# 514| mu514_5(unknown) = ^CallSideEffect : ~m? +# 514| mu514_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r514_1 +# 515| r515_1(glval) = VariableAddress[x165] : +# 515| r515_2(glval) = FunctionAddress[~String] : +# 515| v515_3(void) = Call[~String] : func:r515_2, this:r515_1 +# 515| mu515_4(unknown) = ^CallSideEffect : ~m? +# 515| v515_5(void) = ^IndirectReadSideEffect[-1] : &:r515_1, ~m? +# 515| mu515_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r515_1 +# 515| r515_7(bool) = Constant[0] : +# 515| v515_8(void) = ConditionalBranch : r515_7 +#-----| False -> Block 166 +#-----| True -> Block 1026 + +# 517| Block 166 +# 517| r517_1(glval) = VariableAddress[x166] : +# 517| mu517_2(String) = Uninitialized[x166] : &:r517_1 +# 517| r517_3(glval) = FunctionAddress[String] : +# 517| v517_4(void) = Call[String] : func:r517_3, this:r517_1 +# 517| mu517_5(unknown) = ^CallSideEffect : ~m? +# 517| mu517_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r517_1 +# 518| r518_1(glval) = VariableAddress[x166] : +# 518| r518_2(glval) = FunctionAddress[~String] : +# 518| v518_3(void) = Call[~String] : func:r518_2, this:r518_1 +# 518| mu518_4(unknown) = ^CallSideEffect : ~m? +# 518| v518_5(void) = ^IndirectReadSideEffect[-1] : &:r518_1, ~m? +# 518| mu518_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r518_1 +# 518| r518_7(bool) = Constant[0] : +# 518| v518_8(void) = ConditionalBranch : r518_7 +#-----| False -> Block 167 +#-----| True -> Block 1026 + +# 520| Block 167 +# 520| r520_1(glval) = VariableAddress[x167] : +# 520| mu520_2(String) = Uninitialized[x167] : &:r520_1 +# 520| r520_3(glval) = FunctionAddress[String] : +# 520| v520_4(void) = Call[String] : func:r520_3, this:r520_1 +# 520| mu520_5(unknown) = ^CallSideEffect : ~m? +# 520| mu520_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r520_1 +# 521| r521_1(glval) = VariableAddress[x167] : +# 521| r521_2(glval) = FunctionAddress[~String] : +# 521| v521_3(void) = Call[~String] : func:r521_2, this:r521_1 +# 521| mu521_4(unknown) = ^CallSideEffect : ~m? +# 521| v521_5(void) = ^IndirectReadSideEffect[-1] : &:r521_1, ~m? +# 521| mu521_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r521_1 +# 521| r521_7(bool) = Constant[0] : +# 521| v521_8(void) = ConditionalBranch : r521_7 +#-----| False -> Block 168 +#-----| True -> Block 1026 + +# 523| Block 168 +# 523| r523_1(glval) = VariableAddress[x168] : +# 523| mu523_2(String) = Uninitialized[x168] : &:r523_1 +# 523| r523_3(glval) = FunctionAddress[String] : +# 523| v523_4(void) = Call[String] : func:r523_3, this:r523_1 +# 523| mu523_5(unknown) = ^CallSideEffect : ~m? +# 523| mu523_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r523_1 +# 524| r524_1(glval) = VariableAddress[x168] : +# 524| r524_2(glval) = FunctionAddress[~String] : +# 524| v524_3(void) = Call[~String] : func:r524_2, this:r524_1 +# 524| mu524_4(unknown) = ^CallSideEffect : ~m? +# 524| v524_5(void) = ^IndirectReadSideEffect[-1] : &:r524_1, ~m? +# 524| mu524_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r524_1 +# 524| r524_7(bool) = Constant[0] : +# 524| v524_8(void) = ConditionalBranch : r524_7 +#-----| False -> Block 169 +#-----| True -> Block 1026 + +# 526| Block 169 +# 526| r526_1(glval) = VariableAddress[x169] : +# 526| mu526_2(String) = Uninitialized[x169] : &:r526_1 +# 526| r526_3(glval) = FunctionAddress[String] : +# 526| v526_4(void) = Call[String] : func:r526_3, this:r526_1 +# 526| mu526_5(unknown) = ^CallSideEffect : ~m? +# 526| mu526_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r526_1 +# 527| r527_1(glval) = VariableAddress[x169] : +# 527| r527_2(glval) = FunctionAddress[~String] : +# 527| v527_3(void) = Call[~String] : func:r527_2, this:r527_1 +# 527| mu527_4(unknown) = ^CallSideEffect : ~m? +# 527| v527_5(void) = ^IndirectReadSideEffect[-1] : &:r527_1, ~m? +# 527| mu527_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r527_1 +# 527| r527_7(bool) = Constant[0] : +# 527| v527_8(void) = ConditionalBranch : r527_7 +#-----| False -> Block 170 +#-----| True -> Block 1026 + +# 529| Block 170 +# 529| r529_1(glval) = VariableAddress[x170] : +# 529| mu529_2(String) = Uninitialized[x170] : &:r529_1 +# 529| r529_3(glval) = FunctionAddress[String] : +# 529| v529_4(void) = Call[String] : func:r529_3, this:r529_1 +# 529| mu529_5(unknown) = ^CallSideEffect : ~m? +# 529| mu529_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r529_1 +# 530| r530_1(glval) = VariableAddress[x170] : +# 530| r530_2(glval) = FunctionAddress[~String] : +# 530| v530_3(void) = Call[~String] : func:r530_2, this:r530_1 +# 530| mu530_4(unknown) = ^CallSideEffect : ~m? +# 530| v530_5(void) = ^IndirectReadSideEffect[-1] : &:r530_1, ~m? +# 530| mu530_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r530_1 +# 530| r530_7(bool) = Constant[0] : +# 530| v530_8(void) = ConditionalBranch : r530_7 +#-----| False -> Block 171 +#-----| True -> Block 1026 + +# 532| Block 171 +# 532| r532_1(glval) = VariableAddress[x171] : +# 532| mu532_2(String) = Uninitialized[x171] : &:r532_1 +# 532| r532_3(glval) = FunctionAddress[String] : +# 532| v532_4(void) = Call[String] : func:r532_3, this:r532_1 +# 532| mu532_5(unknown) = ^CallSideEffect : ~m? +# 532| mu532_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r532_1 +# 533| r533_1(glval) = VariableAddress[x171] : +# 533| r533_2(glval) = FunctionAddress[~String] : +# 533| v533_3(void) = Call[~String] : func:r533_2, this:r533_1 +# 533| mu533_4(unknown) = ^CallSideEffect : ~m? +# 533| v533_5(void) = ^IndirectReadSideEffect[-1] : &:r533_1, ~m? +# 533| mu533_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r533_1 +# 533| r533_7(bool) = Constant[0] : +# 533| v533_8(void) = ConditionalBranch : r533_7 +#-----| False -> Block 172 +#-----| True -> Block 1026 + +# 535| Block 172 +# 535| r535_1(glval) = VariableAddress[x172] : +# 535| mu535_2(String) = Uninitialized[x172] : &:r535_1 +# 535| r535_3(glval) = FunctionAddress[String] : +# 535| v535_4(void) = Call[String] : func:r535_3, this:r535_1 +# 535| mu535_5(unknown) = ^CallSideEffect : ~m? +# 535| mu535_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r535_1 +# 536| r536_1(glval) = VariableAddress[x172] : +# 536| r536_2(glval) = FunctionAddress[~String] : +# 536| v536_3(void) = Call[~String] : func:r536_2, this:r536_1 +# 536| mu536_4(unknown) = ^CallSideEffect : ~m? +# 536| v536_5(void) = ^IndirectReadSideEffect[-1] : &:r536_1, ~m? +# 536| mu536_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r536_1 +# 536| r536_7(bool) = Constant[0] : +# 536| v536_8(void) = ConditionalBranch : r536_7 +#-----| False -> Block 173 +#-----| True -> Block 1026 + +# 538| Block 173 +# 538| r538_1(glval) = VariableAddress[x173] : +# 538| mu538_2(String) = Uninitialized[x173] : &:r538_1 +# 538| r538_3(glval) = FunctionAddress[String] : +# 538| v538_4(void) = Call[String] : func:r538_3, this:r538_1 +# 538| mu538_5(unknown) = ^CallSideEffect : ~m? +# 538| mu538_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r538_1 +# 539| r539_1(glval) = VariableAddress[x173] : +# 539| r539_2(glval) = FunctionAddress[~String] : +# 539| v539_3(void) = Call[~String] : func:r539_2, this:r539_1 +# 539| mu539_4(unknown) = ^CallSideEffect : ~m? +# 539| v539_5(void) = ^IndirectReadSideEffect[-1] : &:r539_1, ~m? +# 539| mu539_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r539_1 +# 539| r539_7(bool) = Constant[0] : +# 539| v539_8(void) = ConditionalBranch : r539_7 +#-----| False -> Block 174 +#-----| True -> Block 1026 + +# 541| Block 174 +# 541| r541_1(glval) = VariableAddress[x174] : +# 541| mu541_2(String) = Uninitialized[x174] : &:r541_1 +# 541| r541_3(glval) = FunctionAddress[String] : +# 541| v541_4(void) = Call[String] : func:r541_3, this:r541_1 +# 541| mu541_5(unknown) = ^CallSideEffect : ~m? +# 541| mu541_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r541_1 +# 542| r542_1(glval) = VariableAddress[x174] : +# 542| r542_2(glval) = FunctionAddress[~String] : +# 542| v542_3(void) = Call[~String] : func:r542_2, this:r542_1 +# 542| mu542_4(unknown) = ^CallSideEffect : ~m? +# 542| v542_5(void) = ^IndirectReadSideEffect[-1] : &:r542_1, ~m? +# 542| mu542_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r542_1 +# 542| r542_7(bool) = Constant[0] : +# 542| v542_8(void) = ConditionalBranch : r542_7 +#-----| False -> Block 175 +#-----| True -> Block 1026 + +# 544| Block 175 +# 544| r544_1(glval) = VariableAddress[x175] : +# 544| mu544_2(String) = Uninitialized[x175] : &:r544_1 +# 544| r544_3(glval) = FunctionAddress[String] : +# 544| v544_4(void) = Call[String] : func:r544_3, this:r544_1 +# 544| mu544_5(unknown) = ^CallSideEffect : ~m? +# 544| mu544_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r544_1 +# 545| r545_1(glval) = VariableAddress[x175] : +# 545| r545_2(glval) = FunctionAddress[~String] : +# 545| v545_3(void) = Call[~String] : func:r545_2, this:r545_1 +# 545| mu545_4(unknown) = ^CallSideEffect : ~m? +# 545| v545_5(void) = ^IndirectReadSideEffect[-1] : &:r545_1, ~m? +# 545| mu545_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r545_1 +# 545| r545_7(bool) = Constant[0] : +# 545| v545_8(void) = ConditionalBranch : r545_7 +#-----| False -> Block 176 +#-----| True -> Block 1026 + +# 547| Block 176 +# 547| r547_1(glval) = VariableAddress[x176] : +# 547| mu547_2(String) = Uninitialized[x176] : &:r547_1 +# 547| r547_3(glval) = FunctionAddress[String] : +# 547| v547_4(void) = Call[String] : func:r547_3, this:r547_1 +# 547| mu547_5(unknown) = ^CallSideEffect : ~m? +# 547| mu547_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r547_1 +# 548| r548_1(glval) = VariableAddress[x176] : +# 548| r548_2(glval) = FunctionAddress[~String] : +# 548| v548_3(void) = Call[~String] : func:r548_2, this:r548_1 +# 548| mu548_4(unknown) = ^CallSideEffect : ~m? +# 548| v548_5(void) = ^IndirectReadSideEffect[-1] : &:r548_1, ~m? +# 548| mu548_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r548_1 +# 548| r548_7(bool) = Constant[0] : +# 548| v548_8(void) = ConditionalBranch : r548_7 +#-----| False -> Block 177 +#-----| True -> Block 1026 + +# 550| Block 177 +# 550| r550_1(glval) = VariableAddress[x177] : +# 550| mu550_2(String) = Uninitialized[x177] : &:r550_1 +# 550| r550_3(glval) = FunctionAddress[String] : +# 550| v550_4(void) = Call[String] : func:r550_3, this:r550_1 +# 550| mu550_5(unknown) = ^CallSideEffect : ~m? +# 550| mu550_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r550_1 +# 551| r551_1(glval) = VariableAddress[x177] : +# 551| r551_2(glval) = FunctionAddress[~String] : +# 551| v551_3(void) = Call[~String] : func:r551_2, this:r551_1 +# 551| mu551_4(unknown) = ^CallSideEffect : ~m? +# 551| v551_5(void) = ^IndirectReadSideEffect[-1] : &:r551_1, ~m? +# 551| mu551_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r551_1 +# 551| r551_7(bool) = Constant[0] : +# 551| v551_8(void) = ConditionalBranch : r551_7 +#-----| False -> Block 178 +#-----| True -> Block 1026 + +# 553| Block 178 +# 553| r553_1(glval) = VariableAddress[x178] : +# 553| mu553_2(String) = Uninitialized[x178] : &:r553_1 +# 553| r553_3(glval) = FunctionAddress[String] : +# 553| v553_4(void) = Call[String] : func:r553_3, this:r553_1 +# 553| mu553_5(unknown) = ^CallSideEffect : ~m? +# 553| mu553_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r553_1 +# 554| r554_1(glval) = VariableAddress[x178] : +# 554| r554_2(glval) = FunctionAddress[~String] : +# 554| v554_3(void) = Call[~String] : func:r554_2, this:r554_1 +# 554| mu554_4(unknown) = ^CallSideEffect : ~m? +# 554| v554_5(void) = ^IndirectReadSideEffect[-1] : &:r554_1, ~m? +# 554| mu554_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r554_1 +# 554| r554_7(bool) = Constant[0] : +# 554| v554_8(void) = ConditionalBranch : r554_7 +#-----| False -> Block 179 +#-----| True -> Block 1026 + +# 556| Block 179 +# 556| r556_1(glval) = VariableAddress[x179] : +# 556| mu556_2(String) = Uninitialized[x179] : &:r556_1 +# 556| r556_3(glval) = FunctionAddress[String] : +# 556| v556_4(void) = Call[String] : func:r556_3, this:r556_1 +# 556| mu556_5(unknown) = ^CallSideEffect : ~m? +# 556| mu556_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r556_1 +# 557| r557_1(glval) = VariableAddress[x179] : +# 557| r557_2(glval) = FunctionAddress[~String] : +# 557| v557_3(void) = Call[~String] : func:r557_2, this:r557_1 +# 557| mu557_4(unknown) = ^CallSideEffect : ~m? +# 557| v557_5(void) = ^IndirectReadSideEffect[-1] : &:r557_1, ~m? +# 557| mu557_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r557_1 +# 557| r557_7(bool) = Constant[0] : +# 557| v557_8(void) = ConditionalBranch : r557_7 +#-----| False -> Block 180 +#-----| True -> Block 1026 + +# 559| Block 180 +# 559| r559_1(glval) = VariableAddress[x180] : +# 559| mu559_2(String) = Uninitialized[x180] : &:r559_1 +# 559| r559_3(glval) = FunctionAddress[String] : +# 559| v559_4(void) = Call[String] : func:r559_3, this:r559_1 +# 559| mu559_5(unknown) = ^CallSideEffect : ~m? +# 559| mu559_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r559_1 +# 560| r560_1(glval) = VariableAddress[x180] : +# 560| r560_2(glval) = FunctionAddress[~String] : +# 560| v560_3(void) = Call[~String] : func:r560_2, this:r560_1 +# 560| mu560_4(unknown) = ^CallSideEffect : ~m? +# 560| v560_5(void) = ^IndirectReadSideEffect[-1] : &:r560_1, ~m? +# 560| mu560_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r560_1 +# 560| r560_7(bool) = Constant[0] : +# 560| v560_8(void) = ConditionalBranch : r560_7 +#-----| False -> Block 181 +#-----| True -> Block 1026 + +# 562| Block 181 +# 562| r562_1(glval) = VariableAddress[x181] : +# 562| mu562_2(String) = Uninitialized[x181] : &:r562_1 +# 562| r562_3(glval) = FunctionAddress[String] : +# 562| v562_4(void) = Call[String] : func:r562_3, this:r562_1 +# 562| mu562_5(unknown) = ^CallSideEffect : ~m? +# 562| mu562_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r562_1 +# 563| r563_1(glval) = VariableAddress[x181] : +# 563| r563_2(glval) = FunctionAddress[~String] : +# 563| v563_3(void) = Call[~String] : func:r563_2, this:r563_1 +# 563| mu563_4(unknown) = ^CallSideEffect : ~m? +# 563| v563_5(void) = ^IndirectReadSideEffect[-1] : &:r563_1, ~m? +# 563| mu563_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r563_1 +# 563| r563_7(bool) = Constant[0] : +# 563| v563_8(void) = ConditionalBranch : r563_7 +#-----| False -> Block 182 +#-----| True -> Block 1026 + +# 565| Block 182 +# 565| r565_1(glval) = VariableAddress[x182] : +# 565| mu565_2(String) = Uninitialized[x182] : &:r565_1 +# 565| r565_3(glval) = FunctionAddress[String] : +# 565| v565_4(void) = Call[String] : func:r565_3, this:r565_1 +# 565| mu565_5(unknown) = ^CallSideEffect : ~m? +# 565| mu565_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r565_1 +# 566| r566_1(glval) = VariableAddress[x182] : +# 566| r566_2(glval) = FunctionAddress[~String] : +# 566| v566_3(void) = Call[~String] : func:r566_2, this:r566_1 +# 566| mu566_4(unknown) = ^CallSideEffect : ~m? +# 566| v566_5(void) = ^IndirectReadSideEffect[-1] : &:r566_1, ~m? +# 566| mu566_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r566_1 +# 566| r566_7(bool) = Constant[0] : +# 566| v566_8(void) = ConditionalBranch : r566_7 +#-----| False -> Block 183 +#-----| True -> Block 1026 + +# 568| Block 183 +# 568| r568_1(glval) = VariableAddress[x183] : +# 568| mu568_2(String) = Uninitialized[x183] : &:r568_1 +# 568| r568_3(glval) = FunctionAddress[String] : +# 568| v568_4(void) = Call[String] : func:r568_3, this:r568_1 +# 568| mu568_5(unknown) = ^CallSideEffect : ~m? +# 568| mu568_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r568_1 +# 569| r569_1(glval) = VariableAddress[x183] : +# 569| r569_2(glval) = FunctionAddress[~String] : +# 569| v569_3(void) = Call[~String] : func:r569_2, this:r569_1 +# 569| mu569_4(unknown) = ^CallSideEffect : ~m? +# 569| v569_5(void) = ^IndirectReadSideEffect[-1] : &:r569_1, ~m? +# 569| mu569_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r569_1 +# 569| r569_7(bool) = Constant[0] : +# 569| v569_8(void) = ConditionalBranch : r569_7 +#-----| False -> Block 184 +#-----| True -> Block 1026 + +# 571| Block 184 +# 571| r571_1(glval) = VariableAddress[x184] : +# 571| mu571_2(String) = Uninitialized[x184] : &:r571_1 +# 571| r571_3(glval) = FunctionAddress[String] : +# 571| v571_4(void) = Call[String] : func:r571_3, this:r571_1 +# 571| mu571_5(unknown) = ^CallSideEffect : ~m? +# 571| mu571_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r571_1 +# 572| r572_1(glval) = VariableAddress[x184] : +# 572| r572_2(glval) = FunctionAddress[~String] : +# 572| v572_3(void) = Call[~String] : func:r572_2, this:r572_1 +# 572| mu572_4(unknown) = ^CallSideEffect : ~m? +# 572| v572_5(void) = ^IndirectReadSideEffect[-1] : &:r572_1, ~m? +# 572| mu572_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r572_1 +# 572| r572_7(bool) = Constant[0] : +# 572| v572_8(void) = ConditionalBranch : r572_7 +#-----| False -> Block 185 +#-----| True -> Block 1026 + +# 574| Block 185 +# 574| r574_1(glval) = VariableAddress[x185] : +# 574| mu574_2(String) = Uninitialized[x185] : &:r574_1 +# 574| r574_3(glval) = FunctionAddress[String] : +# 574| v574_4(void) = Call[String] : func:r574_3, this:r574_1 +# 574| mu574_5(unknown) = ^CallSideEffect : ~m? +# 574| mu574_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r574_1 +# 575| r575_1(glval) = VariableAddress[x185] : +# 575| r575_2(glval) = FunctionAddress[~String] : +# 575| v575_3(void) = Call[~String] : func:r575_2, this:r575_1 +# 575| mu575_4(unknown) = ^CallSideEffect : ~m? +# 575| v575_5(void) = ^IndirectReadSideEffect[-1] : &:r575_1, ~m? +# 575| mu575_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r575_1 +# 575| r575_7(bool) = Constant[0] : +# 575| v575_8(void) = ConditionalBranch : r575_7 +#-----| False -> Block 186 +#-----| True -> Block 1026 + +# 577| Block 186 +# 577| r577_1(glval) = VariableAddress[x186] : +# 577| mu577_2(String) = Uninitialized[x186] : &:r577_1 +# 577| r577_3(glval) = FunctionAddress[String] : +# 577| v577_4(void) = Call[String] : func:r577_3, this:r577_1 +# 577| mu577_5(unknown) = ^CallSideEffect : ~m? +# 577| mu577_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r577_1 +# 578| r578_1(glval) = VariableAddress[x186] : +# 578| r578_2(glval) = FunctionAddress[~String] : +# 578| v578_3(void) = Call[~String] : func:r578_2, this:r578_1 +# 578| mu578_4(unknown) = ^CallSideEffect : ~m? +# 578| v578_5(void) = ^IndirectReadSideEffect[-1] : &:r578_1, ~m? +# 578| mu578_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r578_1 +# 578| r578_7(bool) = Constant[0] : +# 578| v578_8(void) = ConditionalBranch : r578_7 +#-----| False -> Block 187 +#-----| True -> Block 1026 + +# 580| Block 187 +# 580| r580_1(glval) = VariableAddress[x187] : +# 580| mu580_2(String) = Uninitialized[x187] : &:r580_1 +# 580| r580_3(glval) = FunctionAddress[String] : +# 580| v580_4(void) = Call[String] : func:r580_3, this:r580_1 +# 580| mu580_5(unknown) = ^CallSideEffect : ~m? +# 580| mu580_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r580_1 +# 581| r581_1(glval) = VariableAddress[x187] : +# 581| r581_2(glval) = FunctionAddress[~String] : +# 581| v581_3(void) = Call[~String] : func:r581_2, this:r581_1 +# 581| mu581_4(unknown) = ^CallSideEffect : ~m? +# 581| v581_5(void) = ^IndirectReadSideEffect[-1] : &:r581_1, ~m? +# 581| mu581_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r581_1 +# 581| r581_7(bool) = Constant[0] : +# 581| v581_8(void) = ConditionalBranch : r581_7 +#-----| False -> Block 188 +#-----| True -> Block 1026 + +# 583| Block 188 +# 583| r583_1(glval) = VariableAddress[x188] : +# 583| mu583_2(String) = Uninitialized[x188] : &:r583_1 +# 583| r583_3(glval) = FunctionAddress[String] : +# 583| v583_4(void) = Call[String] : func:r583_3, this:r583_1 +# 583| mu583_5(unknown) = ^CallSideEffect : ~m? +# 583| mu583_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r583_1 +# 584| r584_1(glval) = VariableAddress[x188] : +# 584| r584_2(glval) = FunctionAddress[~String] : +# 584| v584_3(void) = Call[~String] : func:r584_2, this:r584_1 +# 584| mu584_4(unknown) = ^CallSideEffect : ~m? +# 584| v584_5(void) = ^IndirectReadSideEffect[-1] : &:r584_1, ~m? +# 584| mu584_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r584_1 +# 584| r584_7(bool) = Constant[0] : +# 584| v584_8(void) = ConditionalBranch : r584_7 +#-----| False -> Block 189 +#-----| True -> Block 1026 + +# 586| Block 189 +# 586| r586_1(glval) = VariableAddress[x189] : +# 586| mu586_2(String) = Uninitialized[x189] : &:r586_1 +# 586| r586_3(glval) = FunctionAddress[String] : +# 586| v586_4(void) = Call[String] : func:r586_3, this:r586_1 +# 586| mu586_5(unknown) = ^CallSideEffect : ~m? +# 586| mu586_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r586_1 +# 587| r587_1(glval) = VariableAddress[x189] : +# 587| r587_2(glval) = FunctionAddress[~String] : +# 587| v587_3(void) = Call[~String] : func:r587_2, this:r587_1 +# 587| mu587_4(unknown) = ^CallSideEffect : ~m? +# 587| v587_5(void) = ^IndirectReadSideEffect[-1] : &:r587_1, ~m? +# 587| mu587_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r587_1 +# 587| r587_7(bool) = Constant[0] : +# 587| v587_8(void) = ConditionalBranch : r587_7 +#-----| False -> Block 190 +#-----| True -> Block 1026 + +# 589| Block 190 +# 589| r589_1(glval) = VariableAddress[x190] : +# 589| mu589_2(String) = Uninitialized[x190] : &:r589_1 +# 589| r589_3(glval) = FunctionAddress[String] : +# 589| v589_4(void) = Call[String] : func:r589_3, this:r589_1 +# 589| mu589_5(unknown) = ^CallSideEffect : ~m? +# 589| mu589_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r589_1 +# 590| r590_1(glval) = VariableAddress[x190] : +# 590| r590_2(glval) = FunctionAddress[~String] : +# 590| v590_3(void) = Call[~String] : func:r590_2, this:r590_1 +# 590| mu590_4(unknown) = ^CallSideEffect : ~m? +# 590| v590_5(void) = ^IndirectReadSideEffect[-1] : &:r590_1, ~m? +# 590| mu590_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r590_1 +# 590| r590_7(bool) = Constant[0] : +# 590| v590_8(void) = ConditionalBranch : r590_7 +#-----| False -> Block 191 +#-----| True -> Block 1026 + +# 592| Block 191 +# 592| r592_1(glval) = VariableAddress[x191] : +# 592| mu592_2(String) = Uninitialized[x191] : &:r592_1 +# 592| r592_3(glval) = FunctionAddress[String] : +# 592| v592_4(void) = Call[String] : func:r592_3, this:r592_1 +# 592| mu592_5(unknown) = ^CallSideEffect : ~m? +# 592| mu592_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r592_1 +# 593| r593_1(glval) = VariableAddress[x191] : +# 593| r593_2(glval) = FunctionAddress[~String] : +# 593| v593_3(void) = Call[~String] : func:r593_2, this:r593_1 +# 593| mu593_4(unknown) = ^CallSideEffect : ~m? +# 593| v593_5(void) = ^IndirectReadSideEffect[-1] : &:r593_1, ~m? +# 593| mu593_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r593_1 +# 593| r593_7(bool) = Constant[0] : +# 593| v593_8(void) = ConditionalBranch : r593_7 +#-----| False -> Block 192 +#-----| True -> Block 1026 + +# 595| Block 192 +# 595| r595_1(glval) = VariableAddress[x192] : +# 595| mu595_2(String) = Uninitialized[x192] : &:r595_1 +# 595| r595_3(glval) = FunctionAddress[String] : +# 595| v595_4(void) = Call[String] : func:r595_3, this:r595_1 +# 595| mu595_5(unknown) = ^CallSideEffect : ~m? +# 595| mu595_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r595_1 +# 596| r596_1(glval) = VariableAddress[x192] : +# 596| r596_2(glval) = FunctionAddress[~String] : +# 596| v596_3(void) = Call[~String] : func:r596_2, this:r596_1 +# 596| mu596_4(unknown) = ^CallSideEffect : ~m? +# 596| v596_5(void) = ^IndirectReadSideEffect[-1] : &:r596_1, ~m? +# 596| mu596_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r596_1 +# 596| r596_7(bool) = Constant[0] : +# 596| v596_8(void) = ConditionalBranch : r596_7 +#-----| False -> Block 193 +#-----| True -> Block 1026 + +# 598| Block 193 +# 598| r598_1(glval) = VariableAddress[x193] : +# 598| mu598_2(String) = Uninitialized[x193] : &:r598_1 +# 598| r598_3(glval) = FunctionAddress[String] : +# 598| v598_4(void) = Call[String] : func:r598_3, this:r598_1 +# 598| mu598_5(unknown) = ^CallSideEffect : ~m? +# 598| mu598_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r598_1 +# 599| r599_1(glval) = VariableAddress[x193] : +# 599| r599_2(glval) = FunctionAddress[~String] : +# 599| v599_3(void) = Call[~String] : func:r599_2, this:r599_1 +# 599| mu599_4(unknown) = ^CallSideEffect : ~m? +# 599| v599_5(void) = ^IndirectReadSideEffect[-1] : &:r599_1, ~m? +# 599| mu599_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r599_1 +# 599| r599_7(bool) = Constant[0] : +# 599| v599_8(void) = ConditionalBranch : r599_7 +#-----| False -> Block 194 +#-----| True -> Block 1026 + +# 601| Block 194 +# 601| r601_1(glval) = VariableAddress[x194] : +# 601| mu601_2(String) = Uninitialized[x194] : &:r601_1 +# 601| r601_3(glval) = FunctionAddress[String] : +# 601| v601_4(void) = Call[String] : func:r601_3, this:r601_1 +# 601| mu601_5(unknown) = ^CallSideEffect : ~m? +# 601| mu601_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r601_1 +# 602| r602_1(glval) = VariableAddress[x194] : +# 602| r602_2(glval) = FunctionAddress[~String] : +# 602| v602_3(void) = Call[~String] : func:r602_2, this:r602_1 +# 602| mu602_4(unknown) = ^CallSideEffect : ~m? +# 602| v602_5(void) = ^IndirectReadSideEffect[-1] : &:r602_1, ~m? +# 602| mu602_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r602_1 +# 602| r602_7(bool) = Constant[0] : +# 602| v602_8(void) = ConditionalBranch : r602_7 +#-----| False -> Block 195 +#-----| True -> Block 1026 + +# 604| Block 195 +# 604| r604_1(glval) = VariableAddress[x195] : +# 604| mu604_2(String) = Uninitialized[x195] : &:r604_1 +# 604| r604_3(glval) = FunctionAddress[String] : +# 604| v604_4(void) = Call[String] : func:r604_3, this:r604_1 +# 604| mu604_5(unknown) = ^CallSideEffect : ~m? +# 604| mu604_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r604_1 +# 605| r605_1(glval) = VariableAddress[x195] : +# 605| r605_2(glval) = FunctionAddress[~String] : +# 605| v605_3(void) = Call[~String] : func:r605_2, this:r605_1 +# 605| mu605_4(unknown) = ^CallSideEffect : ~m? +# 605| v605_5(void) = ^IndirectReadSideEffect[-1] : &:r605_1, ~m? +# 605| mu605_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r605_1 +# 605| r605_7(bool) = Constant[0] : +# 605| v605_8(void) = ConditionalBranch : r605_7 +#-----| False -> Block 196 +#-----| True -> Block 1026 + +# 607| Block 196 +# 607| r607_1(glval) = VariableAddress[x196] : +# 607| mu607_2(String) = Uninitialized[x196] : &:r607_1 +# 607| r607_3(glval) = FunctionAddress[String] : +# 607| v607_4(void) = Call[String] : func:r607_3, this:r607_1 +# 607| mu607_5(unknown) = ^CallSideEffect : ~m? +# 607| mu607_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r607_1 +# 608| r608_1(glval) = VariableAddress[x196] : +# 608| r608_2(glval) = FunctionAddress[~String] : +# 608| v608_3(void) = Call[~String] : func:r608_2, this:r608_1 +# 608| mu608_4(unknown) = ^CallSideEffect : ~m? +# 608| v608_5(void) = ^IndirectReadSideEffect[-1] : &:r608_1, ~m? +# 608| mu608_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r608_1 +# 608| r608_7(bool) = Constant[0] : +# 608| v608_8(void) = ConditionalBranch : r608_7 +#-----| False -> Block 197 +#-----| True -> Block 1026 + +# 610| Block 197 +# 610| r610_1(glval) = VariableAddress[x197] : +# 610| mu610_2(String) = Uninitialized[x197] : &:r610_1 +# 610| r610_3(glval) = FunctionAddress[String] : +# 610| v610_4(void) = Call[String] : func:r610_3, this:r610_1 +# 610| mu610_5(unknown) = ^CallSideEffect : ~m? +# 610| mu610_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r610_1 +# 611| r611_1(glval) = VariableAddress[x197] : +# 611| r611_2(glval) = FunctionAddress[~String] : +# 611| v611_3(void) = Call[~String] : func:r611_2, this:r611_1 +# 611| mu611_4(unknown) = ^CallSideEffect : ~m? +# 611| v611_5(void) = ^IndirectReadSideEffect[-1] : &:r611_1, ~m? +# 611| mu611_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r611_1 +# 611| r611_7(bool) = Constant[0] : +# 611| v611_8(void) = ConditionalBranch : r611_7 +#-----| False -> Block 198 +#-----| True -> Block 1026 + +# 613| Block 198 +# 613| r613_1(glval) = VariableAddress[x198] : +# 613| mu613_2(String) = Uninitialized[x198] : &:r613_1 +# 613| r613_3(glval) = FunctionAddress[String] : +# 613| v613_4(void) = Call[String] : func:r613_3, this:r613_1 +# 613| mu613_5(unknown) = ^CallSideEffect : ~m? +# 613| mu613_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r613_1 +# 614| r614_1(glval) = VariableAddress[x198] : +# 614| r614_2(glval) = FunctionAddress[~String] : +# 614| v614_3(void) = Call[~String] : func:r614_2, this:r614_1 +# 614| mu614_4(unknown) = ^CallSideEffect : ~m? +# 614| v614_5(void) = ^IndirectReadSideEffect[-1] : &:r614_1, ~m? +# 614| mu614_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r614_1 +# 614| r614_7(bool) = Constant[0] : +# 614| v614_8(void) = ConditionalBranch : r614_7 +#-----| False -> Block 199 +#-----| True -> Block 1026 + +# 616| Block 199 +# 616| r616_1(glval) = VariableAddress[x199] : +# 616| mu616_2(String) = Uninitialized[x199] : &:r616_1 +# 616| r616_3(glval) = FunctionAddress[String] : +# 616| v616_4(void) = Call[String] : func:r616_3, this:r616_1 +# 616| mu616_5(unknown) = ^CallSideEffect : ~m? +# 616| mu616_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r616_1 +# 617| r617_1(glval) = VariableAddress[x199] : +# 617| r617_2(glval) = FunctionAddress[~String] : +# 617| v617_3(void) = Call[~String] : func:r617_2, this:r617_1 +# 617| mu617_4(unknown) = ^CallSideEffect : ~m? +# 617| v617_5(void) = ^IndirectReadSideEffect[-1] : &:r617_1, ~m? +# 617| mu617_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r617_1 +# 617| r617_7(bool) = Constant[0] : +# 617| v617_8(void) = ConditionalBranch : r617_7 +#-----| False -> Block 200 +#-----| True -> Block 1026 + +# 619| Block 200 +# 619| r619_1(glval) = VariableAddress[x200] : +# 619| mu619_2(String) = Uninitialized[x200] : &:r619_1 +# 619| r619_3(glval) = FunctionAddress[String] : +# 619| v619_4(void) = Call[String] : func:r619_3, this:r619_1 +# 619| mu619_5(unknown) = ^CallSideEffect : ~m? +# 619| mu619_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r619_1 +# 620| r620_1(glval) = VariableAddress[x200] : +# 620| r620_2(glval) = FunctionAddress[~String] : +# 620| v620_3(void) = Call[~String] : func:r620_2, this:r620_1 +# 620| mu620_4(unknown) = ^CallSideEffect : ~m? +# 620| v620_5(void) = ^IndirectReadSideEffect[-1] : &:r620_1, ~m? +# 620| mu620_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_1 +# 620| r620_7(bool) = Constant[0] : +# 620| v620_8(void) = ConditionalBranch : r620_7 +#-----| False -> Block 201 +#-----| True -> Block 1026 + +# 622| Block 201 +# 622| r622_1(glval) = VariableAddress[x201] : +# 622| mu622_2(String) = Uninitialized[x201] : &:r622_1 +# 622| r622_3(glval) = FunctionAddress[String] : +# 622| v622_4(void) = Call[String] : func:r622_3, this:r622_1 +# 622| mu622_5(unknown) = ^CallSideEffect : ~m? +# 622| mu622_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r622_1 +# 623| r623_1(glval) = VariableAddress[x201] : +# 623| r623_2(glval) = FunctionAddress[~String] : +# 623| v623_3(void) = Call[~String] : func:r623_2, this:r623_1 +# 623| mu623_4(unknown) = ^CallSideEffect : ~m? +# 623| v623_5(void) = ^IndirectReadSideEffect[-1] : &:r623_1, ~m? +# 623| mu623_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r623_1 +# 623| r623_7(bool) = Constant[0] : +# 623| v623_8(void) = ConditionalBranch : r623_7 +#-----| False -> Block 202 +#-----| True -> Block 1026 + +# 625| Block 202 +# 625| r625_1(glval) = VariableAddress[x202] : +# 625| mu625_2(String) = Uninitialized[x202] : &:r625_1 +# 625| r625_3(glval) = FunctionAddress[String] : +# 625| v625_4(void) = Call[String] : func:r625_3, this:r625_1 +# 625| mu625_5(unknown) = ^CallSideEffect : ~m? +# 625| mu625_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r625_1 +# 626| r626_1(glval) = VariableAddress[x202] : +# 626| r626_2(glval) = FunctionAddress[~String] : +# 626| v626_3(void) = Call[~String] : func:r626_2, this:r626_1 +# 626| mu626_4(unknown) = ^CallSideEffect : ~m? +# 626| v626_5(void) = ^IndirectReadSideEffect[-1] : &:r626_1, ~m? +# 626| mu626_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r626_1 +# 626| r626_7(bool) = Constant[0] : +# 626| v626_8(void) = ConditionalBranch : r626_7 +#-----| False -> Block 203 +#-----| True -> Block 1026 + +# 628| Block 203 +# 628| r628_1(glval) = VariableAddress[x203] : +# 628| mu628_2(String) = Uninitialized[x203] : &:r628_1 +# 628| r628_3(glval) = FunctionAddress[String] : +# 628| v628_4(void) = Call[String] : func:r628_3, this:r628_1 +# 628| mu628_5(unknown) = ^CallSideEffect : ~m? +# 628| mu628_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r628_1 +# 629| r629_1(glval) = VariableAddress[x203] : +# 629| r629_2(glval) = FunctionAddress[~String] : +# 629| v629_3(void) = Call[~String] : func:r629_2, this:r629_1 +# 629| mu629_4(unknown) = ^CallSideEffect : ~m? +# 629| v629_5(void) = ^IndirectReadSideEffect[-1] : &:r629_1, ~m? +# 629| mu629_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r629_1 +# 629| r629_7(bool) = Constant[0] : +# 629| v629_8(void) = ConditionalBranch : r629_7 +#-----| False -> Block 204 +#-----| True -> Block 1026 + +# 631| Block 204 +# 631| r631_1(glval) = VariableAddress[x204] : +# 631| mu631_2(String) = Uninitialized[x204] : &:r631_1 +# 631| r631_3(glval) = FunctionAddress[String] : +# 631| v631_4(void) = Call[String] : func:r631_3, this:r631_1 +# 631| mu631_5(unknown) = ^CallSideEffect : ~m? +# 631| mu631_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r631_1 +# 632| r632_1(glval) = VariableAddress[x204] : +# 632| r632_2(glval) = FunctionAddress[~String] : +# 632| v632_3(void) = Call[~String] : func:r632_2, this:r632_1 +# 632| mu632_4(unknown) = ^CallSideEffect : ~m? +# 632| v632_5(void) = ^IndirectReadSideEffect[-1] : &:r632_1, ~m? +# 632| mu632_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r632_1 +# 632| r632_7(bool) = Constant[0] : +# 632| v632_8(void) = ConditionalBranch : r632_7 +#-----| False -> Block 205 +#-----| True -> Block 1026 + +# 634| Block 205 +# 634| r634_1(glval) = VariableAddress[x205] : +# 634| mu634_2(String) = Uninitialized[x205] : &:r634_1 +# 634| r634_3(glval) = FunctionAddress[String] : +# 634| v634_4(void) = Call[String] : func:r634_3, this:r634_1 +# 634| mu634_5(unknown) = ^CallSideEffect : ~m? +# 634| mu634_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r634_1 +# 635| r635_1(glval) = VariableAddress[x205] : +# 635| r635_2(glval) = FunctionAddress[~String] : +# 635| v635_3(void) = Call[~String] : func:r635_2, this:r635_1 +# 635| mu635_4(unknown) = ^CallSideEffect : ~m? +# 635| v635_5(void) = ^IndirectReadSideEffect[-1] : &:r635_1, ~m? +# 635| mu635_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r635_1 +# 635| r635_7(bool) = Constant[0] : +# 635| v635_8(void) = ConditionalBranch : r635_7 +#-----| False -> Block 206 +#-----| True -> Block 1026 + +# 637| Block 206 +# 637| r637_1(glval) = VariableAddress[x206] : +# 637| mu637_2(String) = Uninitialized[x206] : &:r637_1 +# 637| r637_3(glval) = FunctionAddress[String] : +# 637| v637_4(void) = Call[String] : func:r637_3, this:r637_1 +# 637| mu637_5(unknown) = ^CallSideEffect : ~m? +# 637| mu637_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r637_1 +# 638| r638_1(glval) = VariableAddress[x206] : +# 638| r638_2(glval) = FunctionAddress[~String] : +# 638| v638_3(void) = Call[~String] : func:r638_2, this:r638_1 +# 638| mu638_4(unknown) = ^CallSideEffect : ~m? +# 638| v638_5(void) = ^IndirectReadSideEffect[-1] : &:r638_1, ~m? +# 638| mu638_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r638_1 +# 638| r638_7(bool) = Constant[0] : +# 638| v638_8(void) = ConditionalBranch : r638_7 +#-----| False -> Block 207 +#-----| True -> Block 1026 + +# 640| Block 207 +# 640| r640_1(glval) = VariableAddress[x207] : +# 640| mu640_2(String) = Uninitialized[x207] : &:r640_1 +# 640| r640_3(glval) = FunctionAddress[String] : +# 640| v640_4(void) = Call[String] : func:r640_3, this:r640_1 +# 640| mu640_5(unknown) = ^CallSideEffect : ~m? +# 640| mu640_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r640_1 +# 641| r641_1(glval) = VariableAddress[x207] : +# 641| r641_2(glval) = FunctionAddress[~String] : +# 641| v641_3(void) = Call[~String] : func:r641_2, this:r641_1 +# 641| mu641_4(unknown) = ^CallSideEffect : ~m? +# 641| v641_5(void) = ^IndirectReadSideEffect[-1] : &:r641_1, ~m? +# 641| mu641_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r641_1 +# 641| r641_7(bool) = Constant[0] : +# 641| v641_8(void) = ConditionalBranch : r641_7 +#-----| False -> Block 208 +#-----| True -> Block 1026 + +# 643| Block 208 +# 643| r643_1(glval) = VariableAddress[x208] : +# 643| mu643_2(String) = Uninitialized[x208] : &:r643_1 +# 643| r643_3(glval) = FunctionAddress[String] : +# 643| v643_4(void) = Call[String] : func:r643_3, this:r643_1 +# 643| mu643_5(unknown) = ^CallSideEffect : ~m? +# 643| mu643_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r643_1 +# 644| r644_1(glval) = VariableAddress[x208] : +# 644| r644_2(glval) = FunctionAddress[~String] : +# 644| v644_3(void) = Call[~String] : func:r644_2, this:r644_1 +# 644| mu644_4(unknown) = ^CallSideEffect : ~m? +# 644| v644_5(void) = ^IndirectReadSideEffect[-1] : &:r644_1, ~m? +# 644| mu644_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r644_1 +# 644| r644_7(bool) = Constant[0] : +# 644| v644_8(void) = ConditionalBranch : r644_7 +#-----| False -> Block 209 +#-----| True -> Block 1026 + +# 646| Block 209 +# 646| r646_1(glval) = VariableAddress[x209] : +# 646| mu646_2(String) = Uninitialized[x209] : &:r646_1 +# 646| r646_3(glval) = FunctionAddress[String] : +# 646| v646_4(void) = Call[String] : func:r646_3, this:r646_1 +# 646| mu646_5(unknown) = ^CallSideEffect : ~m? +# 646| mu646_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r646_1 +# 647| r647_1(glval) = VariableAddress[x209] : +# 647| r647_2(glval) = FunctionAddress[~String] : +# 647| v647_3(void) = Call[~String] : func:r647_2, this:r647_1 +# 647| mu647_4(unknown) = ^CallSideEffect : ~m? +# 647| v647_5(void) = ^IndirectReadSideEffect[-1] : &:r647_1, ~m? +# 647| mu647_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r647_1 +# 647| r647_7(bool) = Constant[0] : +# 647| v647_8(void) = ConditionalBranch : r647_7 +#-----| False -> Block 210 +#-----| True -> Block 1026 + +# 649| Block 210 +# 649| r649_1(glval) = VariableAddress[x210] : +# 649| mu649_2(String) = Uninitialized[x210] : &:r649_1 +# 649| r649_3(glval) = FunctionAddress[String] : +# 649| v649_4(void) = Call[String] : func:r649_3, this:r649_1 +# 649| mu649_5(unknown) = ^CallSideEffect : ~m? +# 649| mu649_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r649_1 +# 650| r650_1(glval) = VariableAddress[x210] : +# 650| r650_2(glval) = FunctionAddress[~String] : +# 650| v650_3(void) = Call[~String] : func:r650_2, this:r650_1 +# 650| mu650_4(unknown) = ^CallSideEffect : ~m? +# 650| v650_5(void) = ^IndirectReadSideEffect[-1] : &:r650_1, ~m? +# 650| mu650_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r650_1 +# 650| r650_7(bool) = Constant[0] : +# 650| v650_8(void) = ConditionalBranch : r650_7 +#-----| False -> Block 211 +#-----| True -> Block 1026 + +# 652| Block 211 +# 652| r652_1(glval) = VariableAddress[x211] : +# 652| mu652_2(String) = Uninitialized[x211] : &:r652_1 +# 652| r652_3(glval) = FunctionAddress[String] : +# 652| v652_4(void) = Call[String] : func:r652_3, this:r652_1 +# 652| mu652_5(unknown) = ^CallSideEffect : ~m? +# 652| mu652_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r652_1 +# 653| r653_1(glval) = VariableAddress[x211] : +# 653| r653_2(glval) = FunctionAddress[~String] : +# 653| v653_3(void) = Call[~String] : func:r653_2, this:r653_1 +# 653| mu653_4(unknown) = ^CallSideEffect : ~m? +# 653| v653_5(void) = ^IndirectReadSideEffect[-1] : &:r653_1, ~m? +# 653| mu653_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r653_1 +# 653| r653_7(bool) = Constant[0] : +# 653| v653_8(void) = ConditionalBranch : r653_7 +#-----| False -> Block 212 +#-----| True -> Block 1026 + +# 655| Block 212 +# 655| r655_1(glval) = VariableAddress[x212] : +# 655| mu655_2(String) = Uninitialized[x212] : &:r655_1 +# 655| r655_3(glval) = FunctionAddress[String] : +# 655| v655_4(void) = Call[String] : func:r655_3, this:r655_1 +# 655| mu655_5(unknown) = ^CallSideEffect : ~m? +# 655| mu655_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r655_1 +# 656| r656_1(glval) = VariableAddress[x212] : +# 656| r656_2(glval) = FunctionAddress[~String] : +# 656| v656_3(void) = Call[~String] : func:r656_2, this:r656_1 +# 656| mu656_4(unknown) = ^CallSideEffect : ~m? +# 656| v656_5(void) = ^IndirectReadSideEffect[-1] : &:r656_1, ~m? +# 656| mu656_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r656_1 +# 656| r656_7(bool) = Constant[0] : +# 656| v656_8(void) = ConditionalBranch : r656_7 +#-----| False -> Block 213 +#-----| True -> Block 1026 + +# 658| Block 213 +# 658| r658_1(glval) = VariableAddress[x213] : +# 658| mu658_2(String) = Uninitialized[x213] : &:r658_1 +# 658| r658_3(glval) = FunctionAddress[String] : +# 658| v658_4(void) = Call[String] : func:r658_3, this:r658_1 +# 658| mu658_5(unknown) = ^CallSideEffect : ~m? +# 658| mu658_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r658_1 +# 659| r659_1(glval) = VariableAddress[x213] : +# 659| r659_2(glval) = FunctionAddress[~String] : +# 659| v659_3(void) = Call[~String] : func:r659_2, this:r659_1 +# 659| mu659_4(unknown) = ^CallSideEffect : ~m? +# 659| v659_5(void) = ^IndirectReadSideEffect[-1] : &:r659_1, ~m? +# 659| mu659_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r659_1 +# 659| r659_7(bool) = Constant[0] : +# 659| v659_8(void) = ConditionalBranch : r659_7 +#-----| False -> Block 214 +#-----| True -> Block 1026 + +# 661| Block 214 +# 661| r661_1(glval) = VariableAddress[x214] : +# 661| mu661_2(String) = Uninitialized[x214] : &:r661_1 +# 661| r661_3(glval) = FunctionAddress[String] : +# 661| v661_4(void) = Call[String] : func:r661_3, this:r661_1 +# 661| mu661_5(unknown) = ^CallSideEffect : ~m? +# 661| mu661_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r661_1 +# 662| r662_1(glval) = VariableAddress[x214] : +# 662| r662_2(glval) = FunctionAddress[~String] : +# 662| v662_3(void) = Call[~String] : func:r662_2, this:r662_1 +# 662| mu662_4(unknown) = ^CallSideEffect : ~m? +# 662| v662_5(void) = ^IndirectReadSideEffect[-1] : &:r662_1, ~m? +# 662| mu662_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r662_1 +# 662| r662_7(bool) = Constant[0] : +# 662| v662_8(void) = ConditionalBranch : r662_7 +#-----| False -> Block 215 +#-----| True -> Block 1026 + +# 664| Block 215 +# 664| r664_1(glval) = VariableAddress[x215] : +# 664| mu664_2(String) = Uninitialized[x215] : &:r664_1 +# 664| r664_3(glval) = FunctionAddress[String] : +# 664| v664_4(void) = Call[String] : func:r664_3, this:r664_1 +# 664| mu664_5(unknown) = ^CallSideEffect : ~m? +# 664| mu664_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r664_1 +# 665| r665_1(glval) = VariableAddress[x215] : +# 665| r665_2(glval) = FunctionAddress[~String] : +# 665| v665_3(void) = Call[~String] : func:r665_2, this:r665_1 +# 665| mu665_4(unknown) = ^CallSideEffect : ~m? +# 665| v665_5(void) = ^IndirectReadSideEffect[-1] : &:r665_1, ~m? +# 665| mu665_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r665_1 +# 665| r665_7(bool) = Constant[0] : +# 665| v665_8(void) = ConditionalBranch : r665_7 +#-----| False -> Block 216 +#-----| True -> Block 1026 + +# 667| Block 216 +# 667| r667_1(glval) = VariableAddress[x216] : +# 667| mu667_2(String) = Uninitialized[x216] : &:r667_1 +# 667| r667_3(glval) = FunctionAddress[String] : +# 667| v667_4(void) = Call[String] : func:r667_3, this:r667_1 +# 667| mu667_5(unknown) = ^CallSideEffect : ~m? +# 667| mu667_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r667_1 +# 668| r668_1(glval) = VariableAddress[x216] : +# 668| r668_2(glval) = FunctionAddress[~String] : +# 668| v668_3(void) = Call[~String] : func:r668_2, this:r668_1 +# 668| mu668_4(unknown) = ^CallSideEffect : ~m? +# 668| v668_5(void) = ^IndirectReadSideEffect[-1] : &:r668_1, ~m? +# 668| mu668_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r668_1 +# 668| r668_7(bool) = Constant[0] : +# 668| v668_8(void) = ConditionalBranch : r668_7 +#-----| False -> Block 217 +#-----| True -> Block 1026 + +# 670| Block 217 +# 670| r670_1(glval) = VariableAddress[x217] : +# 670| mu670_2(String) = Uninitialized[x217] : &:r670_1 +# 670| r670_3(glval) = FunctionAddress[String] : +# 670| v670_4(void) = Call[String] : func:r670_3, this:r670_1 +# 670| mu670_5(unknown) = ^CallSideEffect : ~m? +# 670| mu670_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r670_1 +# 671| r671_1(glval) = VariableAddress[x217] : +# 671| r671_2(glval) = FunctionAddress[~String] : +# 671| v671_3(void) = Call[~String] : func:r671_2, this:r671_1 +# 671| mu671_4(unknown) = ^CallSideEffect : ~m? +# 671| v671_5(void) = ^IndirectReadSideEffect[-1] : &:r671_1, ~m? +# 671| mu671_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r671_1 +# 671| r671_7(bool) = Constant[0] : +# 671| v671_8(void) = ConditionalBranch : r671_7 +#-----| False -> Block 218 +#-----| True -> Block 1026 + +# 673| Block 218 +# 673| r673_1(glval) = VariableAddress[x218] : +# 673| mu673_2(String) = Uninitialized[x218] : &:r673_1 +# 673| r673_3(glval) = FunctionAddress[String] : +# 673| v673_4(void) = Call[String] : func:r673_3, this:r673_1 +# 673| mu673_5(unknown) = ^CallSideEffect : ~m? +# 673| mu673_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r673_1 +# 674| r674_1(glval) = VariableAddress[x218] : +# 674| r674_2(glval) = FunctionAddress[~String] : +# 674| v674_3(void) = Call[~String] : func:r674_2, this:r674_1 +# 674| mu674_4(unknown) = ^CallSideEffect : ~m? +# 674| v674_5(void) = ^IndirectReadSideEffect[-1] : &:r674_1, ~m? +# 674| mu674_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r674_1 +# 674| r674_7(bool) = Constant[0] : +# 674| v674_8(void) = ConditionalBranch : r674_7 +#-----| False -> Block 219 +#-----| True -> Block 1026 + +# 676| Block 219 +# 676| r676_1(glval) = VariableAddress[x219] : +# 676| mu676_2(String) = Uninitialized[x219] : &:r676_1 +# 676| r676_3(glval) = FunctionAddress[String] : +# 676| v676_4(void) = Call[String] : func:r676_3, this:r676_1 +# 676| mu676_5(unknown) = ^CallSideEffect : ~m? +# 676| mu676_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r676_1 +# 677| r677_1(glval) = VariableAddress[x219] : +# 677| r677_2(glval) = FunctionAddress[~String] : +# 677| v677_3(void) = Call[~String] : func:r677_2, this:r677_1 +# 677| mu677_4(unknown) = ^CallSideEffect : ~m? +# 677| v677_5(void) = ^IndirectReadSideEffect[-1] : &:r677_1, ~m? +# 677| mu677_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r677_1 +# 677| r677_7(bool) = Constant[0] : +# 677| v677_8(void) = ConditionalBranch : r677_7 +#-----| False -> Block 220 +#-----| True -> Block 1026 + +# 679| Block 220 +# 679| r679_1(glval) = VariableAddress[x220] : +# 679| mu679_2(String) = Uninitialized[x220] : &:r679_1 +# 679| r679_3(glval) = FunctionAddress[String] : +# 679| v679_4(void) = Call[String] : func:r679_3, this:r679_1 +# 679| mu679_5(unknown) = ^CallSideEffect : ~m? +# 679| mu679_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r679_1 +# 680| r680_1(glval) = VariableAddress[x220] : +# 680| r680_2(glval) = FunctionAddress[~String] : +# 680| v680_3(void) = Call[~String] : func:r680_2, this:r680_1 +# 680| mu680_4(unknown) = ^CallSideEffect : ~m? +# 680| v680_5(void) = ^IndirectReadSideEffect[-1] : &:r680_1, ~m? +# 680| mu680_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r680_1 +# 680| r680_7(bool) = Constant[0] : +# 680| v680_8(void) = ConditionalBranch : r680_7 +#-----| False -> Block 221 +#-----| True -> Block 1026 + +# 682| Block 221 +# 682| r682_1(glval) = VariableAddress[x221] : +# 682| mu682_2(String) = Uninitialized[x221] : &:r682_1 +# 682| r682_3(glval) = FunctionAddress[String] : +# 682| v682_4(void) = Call[String] : func:r682_3, this:r682_1 +# 682| mu682_5(unknown) = ^CallSideEffect : ~m? +# 682| mu682_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r682_1 +# 683| r683_1(glval) = VariableAddress[x221] : +# 683| r683_2(glval) = FunctionAddress[~String] : +# 683| v683_3(void) = Call[~String] : func:r683_2, this:r683_1 +# 683| mu683_4(unknown) = ^CallSideEffect : ~m? +# 683| v683_5(void) = ^IndirectReadSideEffect[-1] : &:r683_1, ~m? +# 683| mu683_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r683_1 +# 683| r683_7(bool) = Constant[0] : +# 683| v683_8(void) = ConditionalBranch : r683_7 +#-----| False -> Block 222 +#-----| True -> Block 1026 + +# 685| Block 222 +# 685| r685_1(glval) = VariableAddress[x222] : +# 685| mu685_2(String) = Uninitialized[x222] : &:r685_1 +# 685| r685_3(glval) = FunctionAddress[String] : +# 685| v685_4(void) = Call[String] : func:r685_3, this:r685_1 +# 685| mu685_5(unknown) = ^CallSideEffect : ~m? +# 685| mu685_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r685_1 +# 686| r686_1(glval) = VariableAddress[x222] : +# 686| r686_2(glval) = FunctionAddress[~String] : +# 686| v686_3(void) = Call[~String] : func:r686_2, this:r686_1 +# 686| mu686_4(unknown) = ^CallSideEffect : ~m? +# 686| v686_5(void) = ^IndirectReadSideEffect[-1] : &:r686_1, ~m? +# 686| mu686_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r686_1 +# 686| r686_7(bool) = Constant[0] : +# 686| v686_8(void) = ConditionalBranch : r686_7 +#-----| False -> Block 223 +#-----| True -> Block 1026 + +# 688| Block 223 +# 688| r688_1(glval) = VariableAddress[x223] : +# 688| mu688_2(String) = Uninitialized[x223] : &:r688_1 +# 688| r688_3(glval) = FunctionAddress[String] : +# 688| v688_4(void) = Call[String] : func:r688_3, this:r688_1 +# 688| mu688_5(unknown) = ^CallSideEffect : ~m? +# 688| mu688_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r688_1 +# 689| r689_1(glval) = VariableAddress[x223] : +# 689| r689_2(glval) = FunctionAddress[~String] : +# 689| v689_3(void) = Call[~String] : func:r689_2, this:r689_1 +# 689| mu689_4(unknown) = ^CallSideEffect : ~m? +# 689| v689_5(void) = ^IndirectReadSideEffect[-1] : &:r689_1, ~m? +# 689| mu689_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r689_1 +# 689| r689_7(bool) = Constant[0] : +# 689| v689_8(void) = ConditionalBranch : r689_7 +#-----| False -> Block 224 +#-----| True -> Block 1026 + +# 691| Block 224 +# 691| r691_1(glval) = VariableAddress[x224] : +# 691| mu691_2(String) = Uninitialized[x224] : &:r691_1 +# 691| r691_3(glval) = FunctionAddress[String] : +# 691| v691_4(void) = Call[String] : func:r691_3, this:r691_1 +# 691| mu691_5(unknown) = ^CallSideEffect : ~m? +# 691| mu691_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r691_1 +# 692| r692_1(glval) = VariableAddress[x224] : +# 692| r692_2(glval) = FunctionAddress[~String] : +# 692| v692_3(void) = Call[~String] : func:r692_2, this:r692_1 +# 692| mu692_4(unknown) = ^CallSideEffect : ~m? +# 692| v692_5(void) = ^IndirectReadSideEffect[-1] : &:r692_1, ~m? +# 692| mu692_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r692_1 +# 692| r692_7(bool) = Constant[0] : +# 692| v692_8(void) = ConditionalBranch : r692_7 +#-----| False -> Block 225 +#-----| True -> Block 1026 + +# 694| Block 225 +# 694| r694_1(glval) = VariableAddress[x225] : +# 694| mu694_2(String) = Uninitialized[x225] : &:r694_1 +# 694| r694_3(glval) = FunctionAddress[String] : +# 694| v694_4(void) = Call[String] : func:r694_3, this:r694_1 +# 694| mu694_5(unknown) = ^CallSideEffect : ~m? +# 694| mu694_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r694_1 +# 695| r695_1(glval) = VariableAddress[x225] : +# 695| r695_2(glval) = FunctionAddress[~String] : +# 695| v695_3(void) = Call[~String] : func:r695_2, this:r695_1 +# 695| mu695_4(unknown) = ^CallSideEffect : ~m? +# 695| v695_5(void) = ^IndirectReadSideEffect[-1] : &:r695_1, ~m? +# 695| mu695_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r695_1 +# 695| r695_7(bool) = Constant[0] : +# 695| v695_8(void) = ConditionalBranch : r695_7 +#-----| False -> Block 226 +#-----| True -> Block 1026 + +# 697| Block 226 +# 697| r697_1(glval) = VariableAddress[x226] : +# 697| mu697_2(String) = Uninitialized[x226] : &:r697_1 +# 697| r697_3(glval) = FunctionAddress[String] : +# 697| v697_4(void) = Call[String] : func:r697_3, this:r697_1 +# 697| mu697_5(unknown) = ^CallSideEffect : ~m? +# 697| mu697_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r697_1 +# 698| r698_1(glval) = VariableAddress[x226] : +# 698| r698_2(glval) = FunctionAddress[~String] : +# 698| v698_3(void) = Call[~String] : func:r698_2, this:r698_1 +# 698| mu698_4(unknown) = ^CallSideEffect : ~m? +# 698| v698_5(void) = ^IndirectReadSideEffect[-1] : &:r698_1, ~m? +# 698| mu698_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r698_1 +# 698| r698_7(bool) = Constant[0] : +# 698| v698_8(void) = ConditionalBranch : r698_7 +#-----| False -> Block 227 +#-----| True -> Block 1026 + +# 700| Block 227 +# 700| r700_1(glval) = VariableAddress[x227] : +# 700| mu700_2(String) = Uninitialized[x227] : &:r700_1 +# 700| r700_3(glval) = FunctionAddress[String] : +# 700| v700_4(void) = Call[String] : func:r700_3, this:r700_1 +# 700| mu700_5(unknown) = ^CallSideEffect : ~m? +# 700| mu700_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r700_1 +# 701| r701_1(glval) = VariableAddress[x227] : +# 701| r701_2(glval) = FunctionAddress[~String] : +# 701| v701_3(void) = Call[~String] : func:r701_2, this:r701_1 +# 701| mu701_4(unknown) = ^CallSideEffect : ~m? +# 701| v701_5(void) = ^IndirectReadSideEffect[-1] : &:r701_1, ~m? +# 701| mu701_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r701_1 +# 701| r701_7(bool) = Constant[0] : +# 701| v701_8(void) = ConditionalBranch : r701_7 +#-----| False -> Block 228 +#-----| True -> Block 1026 + +# 703| Block 228 +# 703| r703_1(glval) = VariableAddress[x228] : +# 703| mu703_2(String) = Uninitialized[x228] : &:r703_1 +# 703| r703_3(glval) = FunctionAddress[String] : +# 703| v703_4(void) = Call[String] : func:r703_3, this:r703_1 +# 703| mu703_5(unknown) = ^CallSideEffect : ~m? +# 703| mu703_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r703_1 +# 704| r704_1(glval) = VariableAddress[x228] : +# 704| r704_2(glval) = FunctionAddress[~String] : +# 704| v704_3(void) = Call[~String] : func:r704_2, this:r704_1 +# 704| mu704_4(unknown) = ^CallSideEffect : ~m? +# 704| v704_5(void) = ^IndirectReadSideEffect[-1] : &:r704_1, ~m? +# 704| mu704_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r704_1 +# 704| r704_7(bool) = Constant[0] : +# 704| v704_8(void) = ConditionalBranch : r704_7 +#-----| False -> Block 229 +#-----| True -> Block 1026 + +# 706| Block 229 +# 706| r706_1(glval) = VariableAddress[x229] : +# 706| mu706_2(String) = Uninitialized[x229] : &:r706_1 +# 706| r706_3(glval) = FunctionAddress[String] : +# 706| v706_4(void) = Call[String] : func:r706_3, this:r706_1 +# 706| mu706_5(unknown) = ^CallSideEffect : ~m? +# 706| mu706_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r706_1 +# 707| r707_1(glval) = VariableAddress[x229] : +# 707| r707_2(glval) = FunctionAddress[~String] : +# 707| v707_3(void) = Call[~String] : func:r707_2, this:r707_1 +# 707| mu707_4(unknown) = ^CallSideEffect : ~m? +# 707| v707_5(void) = ^IndirectReadSideEffect[-1] : &:r707_1, ~m? +# 707| mu707_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r707_1 +# 707| r707_7(bool) = Constant[0] : +# 707| v707_8(void) = ConditionalBranch : r707_7 +#-----| False -> Block 230 +#-----| True -> Block 1026 + +# 709| Block 230 +# 709| r709_1(glval) = VariableAddress[x230] : +# 709| mu709_2(String) = Uninitialized[x230] : &:r709_1 +# 709| r709_3(glval) = FunctionAddress[String] : +# 709| v709_4(void) = Call[String] : func:r709_3, this:r709_1 +# 709| mu709_5(unknown) = ^CallSideEffect : ~m? +# 709| mu709_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r709_1 +# 710| r710_1(glval) = VariableAddress[x230] : +# 710| r710_2(glval) = FunctionAddress[~String] : +# 710| v710_3(void) = Call[~String] : func:r710_2, this:r710_1 +# 710| mu710_4(unknown) = ^CallSideEffect : ~m? +# 710| v710_5(void) = ^IndirectReadSideEffect[-1] : &:r710_1, ~m? +# 710| mu710_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r710_1 +# 710| r710_7(bool) = Constant[0] : +# 710| v710_8(void) = ConditionalBranch : r710_7 +#-----| False -> Block 231 +#-----| True -> Block 1026 + +# 712| Block 231 +# 712| r712_1(glval) = VariableAddress[x231] : +# 712| mu712_2(String) = Uninitialized[x231] : &:r712_1 +# 712| r712_3(glval) = FunctionAddress[String] : +# 712| v712_4(void) = Call[String] : func:r712_3, this:r712_1 +# 712| mu712_5(unknown) = ^CallSideEffect : ~m? +# 712| mu712_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r712_1 +# 713| r713_1(glval) = VariableAddress[x231] : +# 713| r713_2(glval) = FunctionAddress[~String] : +# 713| v713_3(void) = Call[~String] : func:r713_2, this:r713_1 +# 713| mu713_4(unknown) = ^CallSideEffect : ~m? +# 713| v713_5(void) = ^IndirectReadSideEffect[-1] : &:r713_1, ~m? +# 713| mu713_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r713_1 +# 713| r713_7(bool) = Constant[0] : +# 713| v713_8(void) = ConditionalBranch : r713_7 +#-----| False -> Block 232 +#-----| True -> Block 1026 + +# 715| Block 232 +# 715| r715_1(glval) = VariableAddress[x232] : +# 715| mu715_2(String) = Uninitialized[x232] : &:r715_1 +# 715| r715_3(glval) = FunctionAddress[String] : +# 715| v715_4(void) = Call[String] : func:r715_3, this:r715_1 +# 715| mu715_5(unknown) = ^CallSideEffect : ~m? +# 715| mu715_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r715_1 +# 716| r716_1(glval) = VariableAddress[x232] : +# 716| r716_2(glval) = FunctionAddress[~String] : +# 716| v716_3(void) = Call[~String] : func:r716_2, this:r716_1 +# 716| mu716_4(unknown) = ^CallSideEffect : ~m? +# 716| v716_5(void) = ^IndirectReadSideEffect[-1] : &:r716_1, ~m? +# 716| mu716_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r716_1 +# 716| r716_7(bool) = Constant[0] : +# 716| v716_8(void) = ConditionalBranch : r716_7 +#-----| False -> Block 233 +#-----| True -> Block 1026 + +# 718| Block 233 +# 718| r718_1(glval) = VariableAddress[x233] : +# 718| mu718_2(String) = Uninitialized[x233] : &:r718_1 +# 718| r718_3(glval) = FunctionAddress[String] : +# 718| v718_4(void) = Call[String] : func:r718_3, this:r718_1 +# 718| mu718_5(unknown) = ^CallSideEffect : ~m? +# 718| mu718_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r718_1 +# 719| r719_1(glval) = VariableAddress[x233] : +# 719| r719_2(glval) = FunctionAddress[~String] : +# 719| v719_3(void) = Call[~String] : func:r719_2, this:r719_1 +# 719| mu719_4(unknown) = ^CallSideEffect : ~m? +# 719| v719_5(void) = ^IndirectReadSideEffect[-1] : &:r719_1, ~m? +# 719| mu719_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r719_1 +# 719| r719_7(bool) = Constant[0] : +# 719| v719_8(void) = ConditionalBranch : r719_7 +#-----| False -> Block 234 +#-----| True -> Block 1026 + +# 721| Block 234 +# 721| r721_1(glval) = VariableAddress[x234] : +# 721| mu721_2(String) = Uninitialized[x234] : &:r721_1 +# 721| r721_3(glval) = FunctionAddress[String] : +# 721| v721_4(void) = Call[String] : func:r721_3, this:r721_1 +# 721| mu721_5(unknown) = ^CallSideEffect : ~m? +# 721| mu721_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r721_1 +# 722| r722_1(glval) = VariableAddress[x234] : +# 722| r722_2(glval) = FunctionAddress[~String] : +# 722| v722_3(void) = Call[~String] : func:r722_2, this:r722_1 +# 722| mu722_4(unknown) = ^CallSideEffect : ~m? +# 722| v722_5(void) = ^IndirectReadSideEffect[-1] : &:r722_1, ~m? +# 722| mu722_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r722_1 +# 722| r722_7(bool) = Constant[0] : +# 722| v722_8(void) = ConditionalBranch : r722_7 +#-----| False -> Block 235 +#-----| True -> Block 1026 + +# 724| Block 235 +# 724| r724_1(glval) = VariableAddress[x235] : +# 724| mu724_2(String) = Uninitialized[x235] : &:r724_1 +# 724| r724_3(glval) = FunctionAddress[String] : +# 724| v724_4(void) = Call[String] : func:r724_3, this:r724_1 +# 724| mu724_5(unknown) = ^CallSideEffect : ~m? +# 724| mu724_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r724_1 +# 725| r725_1(glval) = VariableAddress[x235] : +# 725| r725_2(glval) = FunctionAddress[~String] : +# 725| v725_3(void) = Call[~String] : func:r725_2, this:r725_1 +# 725| mu725_4(unknown) = ^CallSideEffect : ~m? +# 725| v725_5(void) = ^IndirectReadSideEffect[-1] : &:r725_1, ~m? +# 725| mu725_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r725_1 +# 725| r725_7(bool) = Constant[0] : +# 725| v725_8(void) = ConditionalBranch : r725_7 +#-----| False -> Block 236 +#-----| True -> Block 1026 + +# 727| Block 236 +# 727| r727_1(glval) = VariableAddress[x236] : +# 727| mu727_2(String) = Uninitialized[x236] : &:r727_1 +# 727| r727_3(glval) = FunctionAddress[String] : +# 727| v727_4(void) = Call[String] : func:r727_3, this:r727_1 +# 727| mu727_5(unknown) = ^CallSideEffect : ~m? +# 727| mu727_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r727_1 +# 728| r728_1(glval) = VariableAddress[x236] : +# 728| r728_2(glval) = FunctionAddress[~String] : +# 728| v728_3(void) = Call[~String] : func:r728_2, this:r728_1 +# 728| mu728_4(unknown) = ^CallSideEffect : ~m? +# 728| v728_5(void) = ^IndirectReadSideEffect[-1] : &:r728_1, ~m? +# 728| mu728_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r728_1 +# 728| r728_7(bool) = Constant[0] : +# 728| v728_8(void) = ConditionalBranch : r728_7 +#-----| False -> Block 237 +#-----| True -> Block 1026 + +# 730| Block 237 +# 730| r730_1(glval) = VariableAddress[x237] : +# 730| mu730_2(String) = Uninitialized[x237] : &:r730_1 +# 730| r730_3(glval) = FunctionAddress[String] : +# 730| v730_4(void) = Call[String] : func:r730_3, this:r730_1 +# 730| mu730_5(unknown) = ^CallSideEffect : ~m? +# 730| mu730_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r730_1 +# 731| r731_1(glval) = VariableAddress[x237] : +# 731| r731_2(glval) = FunctionAddress[~String] : +# 731| v731_3(void) = Call[~String] : func:r731_2, this:r731_1 +# 731| mu731_4(unknown) = ^CallSideEffect : ~m? +# 731| v731_5(void) = ^IndirectReadSideEffect[-1] : &:r731_1, ~m? +# 731| mu731_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r731_1 +# 731| r731_7(bool) = Constant[0] : +# 731| v731_8(void) = ConditionalBranch : r731_7 +#-----| False -> Block 238 +#-----| True -> Block 1026 + +# 733| Block 238 +# 733| r733_1(glval) = VariableAddress[x238] : +# 733| mu733_2(String) = Uninitialized[x238] : &:r733_1 +# 733| r733_3(glval) = FunctionAddress[String] : +# 733| v733_4(void) = Call[String] : func:r733_3, this:r733_1 +# 733| mu733_5(unknown) = ^CallSideEffect : ~m? +# 733| mu733_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r733_1 +# 734| r734_1(glval) = VariableAddress[x238] : +# 734| r734_2(glval) = FunctionAddress[~String] : +# 734| v734_3(void) = Call[~String] : func:r734_2, this:r734_1 +# 734| mu734_4(unknown) = ^CallSideEffect : ~m? +# 734| v734_5(void) = ^IndirectReadSideEffect[-1] : &:r734_1, ~m? +# 734| mu734_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r734_1 +# 734| r734_7(bool) = Constant[0] : +# 734| v734_8(void) = ConditionalBranch : r734_7 +#-----| False -> Block 239 +#-----| True -> Block 1026 + +# 736| Block 239 +# 736| r736_1(glval) = VariableAddress[x239] : +# 736| mu736_2(String) = Uninitialized[x239] : &:r736_1 +# 736| r736_3(glval) = FunctionAddress[String] : +# 736| v736_4(void) = Call[String] : func:r736_3, this:r736_1 +# 736| mu736_5(unknown) = ^CallSideEffect : ~m? +# 736| mu736_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r736_1 +# 737| r737_1(glval) = VariableAddress[x239] : +# 737| r737_2(glval) = FunctionAddress[~String] : +# 737| v737_3(void) = Call[~String] : func:r737_2, this:r737_1 +# 737| mu737_4(unknown) = ^CallSideEffect : ~m? +# 737| v737_5(void) = ^IndirectReadSideEffect[-1] : &:r737_1, ~m? +# 737| mu737_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r737_1 +# 737| r737_7(bool) = Constant[0] : +# 737| v737_8(void) = ConditionalBranch : r737_7 +#-----| False -> Block 240 +#-----| True -> Block 1026 + +# 739| Block 240 +# 739| r739_1(glval) = VariableAddress[x240] : +# 739| mu739_2(String) = Uninitialized[x240] : &:r739_1 +# 739| r739_3(glval) = FunctionAddress[String] : +# 739| v739_4(void) = Call[String] : func:r739_3, this:r739_1 +# 739| mu739_5(unknown) = ^CallSideEffect : ~m? +# 739| mu739_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r739_1 +# 740| r740_1(glval) = VariableAddress[x240] : +# 740| r740_2(glval) = FunctionAddress[~String] : +# 740| v740_3(void) = Call[~String] : func:r740_2, this:r740_1 +# 740| mu740_4(unknown) = ^CallSideEffect : ~m? +# 740| v740_5(void) = ^IndirectReadSideEffect[-1] : &:r740_1, ~m? +# 740| mu740_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r740_1 +# 740| r740_7(bool) = Constant[0] : +# 740| v740_8(void) = ConditionalBranch : r740_7 +#-----| False -> Block 241 +#-----| True -> Block 1026 + +# 742| Block 241 +# 742| r742_1(glval) = VariableAddress[x241] : +# 742| mu742_2(String) = Uninitialized[x241] : &:r742_1 +# 742| r742_3(glval) = FunctionAddress[String] : +# 742| v742_4(void) = Call[String] : func:r742_3, this:r742_1 +# 742| mu742_5(unknown) = ^CallSideEffect : ~m? +# 742| mu742_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r742_1 +# 743| r743_1(glval) = VariableAddress[x241] : +# 743| r743_2(glval) = FunctionAddress[~String] : +# 743| v743_3(void) = Call[~String] : func:r743_2, this:r743_1 +# 743| mu743_4(unknown) = ^CallSideEffect : ~m? +# 743| v743_5(void) = ^IndirectReadSideEffect[-1] : &:r743_1, ~m? +# 743| mu743_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r743_1 +# 743| r743_7(bool) = Constant[0] : +# 743| v743_8(void) = ConditionalBranch : r743_7 +#-----| False -> Block 242 +#-----| True -> Block 1026 + +# 745| Block 242 +# 745| r745_1(glval) = VariableAddress[x242] : +# 745| mu745_2(String) = Uninitialized[x242] : &:r745_1 +# 745| r745_3(glval) = FunctionAddress[String] : +# 745| v745_4(void) = Call[String] : func:r745_3, this:r745_1 +# 745| mu745_5(unknown) = ^CallSideEffect : ~m? +# 745| mu745_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_1 +# 746| r746_1(glval) = VariableAddress[x242] : +# 746| r746_2(glval) = FunctionAddress[~String] : +# 746| v746_3(void) = Call[~String] : func:r746_2, this:r746_1 +# 746| mu746_4(unknown) = ^CallSideEffect : ~m? +# 746| v746_5(void) = ^IndirectReadSideEffect[-1] : &:r746_1, ~m? +# 746| mu746_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r746_1 +# 746| r746_7(bool) = Constant[0] : +# 746| v746_8(void) = ConditionalBranch : r746_7 +#-----| False -> Block 243 +#-----| True -> Block 1026 + +# 748| Block 243 +# 748| r748_1(glval) = VariableAddress[x243] : +# 748| mu748_2(String) = Uninitialized[x243] : &:r748_1 +# 748| r748_3(glval) = FunctionAddress[String] : +# 748| v748_4(void) = Call[String] : func:r748_3, this:r748_1 +# 748| mu748_5(unknown) = ^CallSideEffect : ~m? +# 748| mu748_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r748_1 +# 749| r749_1(glval) = VariableAddress[x243] : +# 749| r749_2(glval) = FunctionAddress[~String] : +# 749| v749_3(void) = Call[~String] : func:r749_2, this:r749_1 +# 749| mu749_4(unknown) = ^CallSideEffect : ~m? +# 749| v749_5(void) = ^IndirectReadSideEffect[-1] : &:r749_1, ~m? +# 749| mu749_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r749_1 +# 749| r749_7(bool) = Constant[0] : +# 749| v749_8(void) = ConditionalBranch : r749_7 +#-----| False -> Block 244 +#-----| True -> Block 1026 + +# 751| Block 244 +# 751| r751_1(glval) = VariableAddress[x244] : +# 751| mu751_2(String) = Uninitialized[x244] : &:r751_1 +# 751| r751_3(glval) = FunctionAddress[String] : +# 751| v751_4(void) = Call[String] : func:r751_3, this:r751_1 +# 751| mu751_5(unknown) = ^CallSideEffect : ~m? +# 751| mu751_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r751_1 +# 752| r752_1(glval) = VariableAddress[x244] : +# 752| r752_2(glval) = FunctionAddress[~String] : +# 752| v752_3(void) = Call[~String] : func:r752_2, this:r752_1 +# 752| mu752_4(unknown) = ^CallSideEffect : ~m? +# 752| v752_5(void) = ^IndirectReadSideEffect[-1] : &:r752_1, ~m? +# 752| mu752_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r752_1 +# 752| r752_7(bool) = Constant[0] : +# 752| v752_8(void) = ConditionalBranch : r752_7 +#-----| False -> Block 245 +#-----| True -> Block 1026 + +# 754| Block 245 +# 754| r754_1(glval) = VariableAddress[x245] : +# 754| mu754_2(String) = Uninitialized[x245] : &:r754_1 +# 754| r754_3(glval) = FunctionAddress[String] : +# 754| v754_4(void) = Call[String] : func:r754_3, this:r754_1 +# 754| mu754_5(unknown) = ^CallSideEffect : ~m? +# 754| mu754_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r754_1 +# 755| r755_1(glval) = VariableAddress[x245] : +# 755| r755_2(glval) = FunctionAddress[~String] : +# 755| v755_3(void) = Call[~String] : func:r755_2, this:r755_1 +# 755| mu755_4(unknown) = ^CallSideEffect : ~m? +# 755| v755_5(void) = ^IndirectReadSideEffect[-1] : &:r755_1, ~m? +# 755| mu755_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r755_1 +# 755| r755_7(bool) = Constant[0] : +# 755| v755_8(void) = ConditionalBranch : r755_7 +#-----| False -> Block 246 +#-----| True -> Block 1026 + +# 757| Block 246 +# 757| r757_1(glval) = VariableAddress[x246] : +# 757| mu757_2(String) = Uninitialized[x246] : &:r757_1 +# 757| r757_3(glval) = FunctionAddress[String] : +# 757| v757_4(void) = Call[String] : func:r757_3, this:r757_1 +# 757| mu757_5(unknown) = ^CallSideEffect : ~m? +# 757| mu757_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r757_1 +# 758| r758_1(glval) = VariableAddress[x246] : +# 758| r758_2(glval) = FunctionAddress[~String] : +# 758| v758_3(void) = Call[~String] : func:r758_2, this:r758_1 +# 758| mu758_4(unknown) = ^CallSideEffect : ~m? +# 758| v758_5(void) = ^IndirectReadSideEffect[-1] : &:r758_1, ~m? +# 758| mu758_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r758_1 +# 758| r758_7(bool) = Constant[0] : +# 758| v758_8(void) = ConditionalBranch : r758_7 +#-----| False -> Block 247 +#-----| True -> Block 1026 + +# 760| Block 247 +# 760| r760_1(glval) = VariableAddress[x247] : +# 760| mu760_2(String) = Uninitialized[x247] : &:r760_1 +# 760| r760_3(glval) = FunctionAddress[String] : +# 760| v760_4(void) = Call[String] : func:r760_3, this:r760_1 +# 760| mu760_5(unknown) = ^CallSideEffect : ~m? +# 760| mu760_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r760_1 +# 761| r761_1(glval) = VariableAddress[x247] : +# 761| r761_2(glval) = FunctionAddress[~String] : +# 761| v761_3(void) = Call[~String] : func:r761_2, this:r761_1 +# 761| mu761_4(unknown) = ^CallSideEffect : ~m? +# 761| v761_5(void) = ^IndirectReadSideEffect[-1] : &:r761_1, ~m? +# 761| mu761_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r761_1 +# 761| r761_7(bool) = Constant[0] : +# 761| v761_8(void) = ConditionalBranch : r761_7 +#-----| False -> Block 248 +#-----| True -> Block 1026 + +# 763| Block 248 +# 763| r763_1(glval) = VariableAddress[x248] : +# 763| mu763_2(String) = Uninitialized[x248] : &:r763_1 +# 763| r763_3(glval) = FunctionAddress[String] : +# 763| v763_4(void) = Call[String] : func:r763_3, this:r763_1 +# 763| mu763_5(unknown) = ^CallSideEffect : ~m? +# 763| mu763_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r763_1 +# 764| r764_1(glval) = VariableAddress[x248] : +# 764| r764_2(glval) = FunctionAddress[~String] : +# 764| v764_3(void) = Call[~String] : func:r764_2, this:r764_1 +# 764| mu764_4(unknown) = ^CallSideEffect : ~m? +# 764| v764_5(void) = ^IndirectReadSideEffect[-1] : &:r764_1, ~m? +# 764| mu764_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r764_1 +# 764| r764_7(bool) = Constant[0] : +# 764| v764_8(void) = ConditionalBranch : r764_7 +#-----| False -> Block 249 +#-----| True -> Block 1026 + +# 766| Block 249 +# 766| r766_1(glval) = VariableAddress[x249] : +# 766| mu766_2(String) = Uninitialized[x249] : &:r766_1 +# 766| r766_3(glval) = FunctionAddress[String] : +# 766| v766_4(void) = Call[String] : func:r766_3, this:r766_1 +# 766| mu766_5(unknown) = ^CallSideEffect : ~m? +# 766| mu766_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r766_1 +# 767| r767_1(glval) = VariableAddress[x249] : +# 767| r767_2(glval) = FunctionAddress[~String] : +# 767| v767_3(void) = Call[~String] : func:r767_2, this:r767_1 +# 767| mu767_4(unknown) = ^CallSideEffect : ~m? +# 767| v767_5(void) = ^IndirectReadSideEffect[-1] : &:r767_1, ~m? +# 767| mu767_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r767_1 +# 767| r767_7(bool) = Constant[0] : +# 767| v767_8(void) = ConditionalBranch : r767_7 +#-----| False -> Block 250 +#-----| True -> Block 1026 + +# 769| Block 250 +# 769| r769_1(glval) = VariableAddress[x250] : +# 769| mu769_2(String) = Uninitialized[x250] : &:r769_1 +# 769| r769_3(glval) = FunctionAddress[String] : +# 769| v769_4(void) = Call[String] : func:r769_3, this:r769_1 +# 769| mu769_5(unknown) = ^CallSideEffect : ~m? +# 769| mu769_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r769_1 +# 770| r770_1(glval) = VariableAddress[x250] : +# 770| r770_2(glval) = FunctionAddress[~String] : +# 770| v770_3(void) = Call[~String] : func:r770_2, this:r770_1 +# 770| mu770_4(unknown) = ^CallSideEffect : ~m? +# 770| v770_5(void) = ^IndirectReadSideEffect[-1] : &:r770_1, ~m? +# 770| mu770_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r770_1 +# 770| r770_7(bool) = Constant[0] : +# 770| v770_8(void) = ConditionalBranch : r770_7 +#-----| False -> Block 251 +#-----| True -> Block 1026 + +# 772| Block 251 +# 772| r772_1(glval) = VariableAddress[x251] : +# 772| mu772_2(String) = Uninitialized[x251] : &:r772_1 +# 772| r772_3(glval) = FunctionAddress[String] : +# 772| v772_4(void) = Call[String] : func:r772_3, this:r772_1 +# 772| mu772_5(unknown) = ^CallSideEffect : ~m? +# 772| mu772_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r772_1 +# 773| r773_1(glval) = VariableAddress[x251] : +# 773| r773_2(glval) = FunctionAddress[~String] : +# 773| v773_3(void) = Call[~String] : func:r773_2, this:r773_1 +# 773| mu773_4(unknown) = ^CallSideEffect : ~m? +# 773| v773_5(void) = ^IndirectReadSideEffect[-1] : &:r773_1, ~m? +# 773| mu773_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r773_1 +# 773| r773_7(bool) = Constant[0] : +# 773| v773_8(void) = ConditionalBranch : r773_7 +#-----| False -> Block 252 +#-----| True -> Block 1026 + +# 775| Block 252 +# 775| r775_1(glval) = VariableAddress[x252] : +# 775| mu775_2(String) = Uninitialized[x252] : &:r775_1 +# 775| r775_3(glval) = FunctionAddress[String] : +# 775| v775_4(void) = Call[String] : func:r775_3, this:r775_1 +# 775| mu775_5(unknown) = ^CallSideEffect : ~m? +# 775| mu775_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r775_1 +# 776| r776_1(glval) = VariableAddress[x252] : +# 776| r776_2(glval) = FunctionAddress[~String] : +# 776| v776_3(void) = Call[~String] : func:r776_2, this:r776_1 +# 776| mu776_4(unknown) = ^CallSideEffect : ~m? +# 776| v776_5(void) = ^IndirectReadSideEffect[-1] : &:r776_1, ~m? +# 776| mu776_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r776_1 +# 776| r776_7(bool) = Constant[0] : +# 776| v776_8(void) = ConditionalBranch : r776_7 +#-----| False -> Block 253 +#-----| True -> Block 1026 + +# 778| Block 253 +# 778| r778_1(glval) = VariableAddress[x253] : +# 778| mu778_2(String) = Uninitialized[x253] : &:r778_1 +# 778| r778_3(glval) = FunctionAddress[String] : +# 778| v778_4(void) = Call[String] : func:r778_3, this:r778_1 +# 778| mu778_5(unknown) = ^CallSideEffect : ~m? +# 778| mu778_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r778_1 +# 779| r779_1(glval) = VariableAddress[x253] : +# 779| r779_2(glval) = FunctionAddress[~String] : +# 779| v779_3(void) = Call[~String] : func:r779_2, this:r779_1 +# 779| mu779_4(unknown) = ^CallSideEffect : ~m? +# 779| v779_5(void) = ^IndirectReadSideEffect[-1] : &:r779_1, ~m? +# 779| mu779_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r779_1 +# 779| r779_7(bool) = Constant[0] : +# 779| v779_8(void) = ConditionalBranch : r779_7 +#-----| False -> Block 254 +#-----| True -> Block 1026 + +# 781| Block 254 +# 781| r781_1(glval) = VariableAddress[x254] : +# 781| mu781_2(String) = Uninitialized[x254] : &:r781_1 +# 781| r781_3(glval) = FunctionAddress[String] : +# 781| v781_4(void) = Call[String] : func:r781_3, this:r781_1 +# 781| mu781_5(unknown) = ^CallSideEffect : ~m? +# 781| mu781_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r781_1 +# 782| r782_1(glval) = VariableAddress[x254] : +# 782| r782_2(glval) = FunctionAddress[~String] : +# 782| v782_3(void) = Call[~String] : func:r782_2, this:r782_1 +# 782| mu782_4(unknown) = ^CallSideEffect : ~m? +# 782| v782_5(void) = ^IndirectReadSideEffect[-1] : &:r782_1, ~m? +# 782| mu782_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r782_1 +# 782| r782_7(bool) = Constant[0] : +# 782| v782_8(void) = ConditionalBranch : r782_7 +#-----| False -> Block 255 +#-----| True -> Block 1026 + +# 784| Block 255 +# 784| r784_1(glval) = VariableAddress[x255] : +# 784| mu784_2(String) = Uninitialized[x255] : &:r784_1 +# 784| r784_3(glval) = FunctionAddress[String] : +# 784| v784_4(void) = Call[String] : func:r784_3, this:r784_1 +# 784| mu784_5(unknown) = ^CallSideEffect : ~m? +# 784| mu784_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r784_1 +# 785| r785_1(glval) = VariableAddress[x255] : +# 785| r785_2(glval) = FunctionAddress[~String] : +# 785| v785_3(void) = Call[~String] : func:r785_2, this:r785_1 +# 785| mu785_4(unknown) = ^CallSideEffect : ~m? +# 785| v785_5(void) = ^IndirectReadSideEffect[-1] : &:r785_1, ~m? +# 785| mu785_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r785_1 +# 785| r785_7(bool) = Constant[0] : +# 785| v785_8(void) = ConditionalBranch : r785_7 +#-----| False -> Block 256 +#-----| True -> Block 1026 + +# 787| Block 256 +# 787| r787_1(glval) = VariableAddress[x256] : +# 787| mu787_2(String) = Uninitialized[x256] : &:r787_1 +# 787| r787_3(glval) = FunctionAddress[String] : +# 787| v787_4(void) = Call[String] : func:r787_3, this:r787_1 +# 787| mu787_5(unknown) = ^CallSideEffect : ~m? +# 787| mu787_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r787_1 +# 788| r788_1(glval) = VariableAddress[x256] : +# 788| r788_2(glval) = FunctionAddress[~String] : +# 788| v788_3(void) = Call[~String] : func:r788_2, this:r788_1 +# 788| mu788_4(unknown) = ^CallSideEffect : ~m? +# 788| v788_5(void) = ^IndirectReadSideEffect[-1] : &:r788_1, ~m? +# 788| mu788_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r788_1 +# 788| r788_7(bool) = Constant[0] : +# 788| v788_8(void) = ConditionalBranch : r788_7 +#-----| False -> Block 257 +#-----| True -> Block 1026 + +# 790| Block 257 +# 790| r790_1(glval) = VariableAddress[x257] : +# 790| mu790_2(String) = Uninitialized[x257] : &:r790_1 +# 790| r790_3(glval) = FunctionAddress[String] : +# 790| v790_4(void) = Call[String] : func:r790_3, this:r790_1 +# 790| mu790_5(unknown) = ^CallSideEffect : ~m? +# 790| mu790_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r790_1 +# 791| r791_1(glval) = VariableAddress[x257] : +# 791| r791_2(glval) = FunctionAddress[~String] : +# 791| v791_3(void) = Call[~String] : func:r791_2, this:r791_1 +# 791| mu791_4(unknown) = ^CallSideEffect : ~m? +# 791| v791_5(void) = ^IndirectReadSideEffect[-1] : &:r791_1, ~m? +# 791| mu791_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r791_1 +# 791| r791_7(bool) = Constant[0] : +# 791| v791_8(void) = ConditionalBranch : r791_7 +#-----| False -> Block 258 +#-----| True -> Block 1026 + +# 793| Block 258 +# 793| r793_1(glval) = VariableAddress[x258] : +# 793| mu793_2(String) = Uninitialized[x258] : &:r793_1 +# 793| r793_3(glval) = FunctionAddress[String] : +# 793| v793_4(void) = Call[String] : func:r793_3, this:r793_1 +# 793| mu793_5(unknown) = ^CallSideEffect : ~m? +# 793| mu793_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r793_1 +# 794| r794_1(glval) = VariableAddress[x258] : +# 794| r794_2(glval) = FunctionAddress[~String] : +# 794| v794_3(void) = Call[~String] : func:r794_2, this:r794_1 +# 794| mu794_4(unknown) = ^CallSideEffect : ~m? +# 794| v794_5(void) = ^IndirectReadSideEffect[-1] : &:r794_1, ~m? +# 794| mu794_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r794_1 +# 794| r794_7(bool) = Constant[0] : +# 794| v794_8(void) = ConditionalBranch : r794_7 +#-----| False -> Block 259 +#-----| True -> Block 1026 + +# 796| Block 259 +# 796| r796_1(glval) = VariableAddress[x259] : +# 796| mu796_2(String) = Uninitialized[x259] : &:r796_1 +# 796| r796_3(glval) = FunctionAddress[String] : +# 796| v796_4(void) = Call[String] : func:r796_3, this:r796_1 +# 796| mu796_5(unknown) = ^CallSideEffect : ~m? +# 796| mu796_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r796_1 +# 797| r797_1(glval) = VariableAddress[x259] : +# 797| r797_2(glval) = FunctionAddress[~String] : +# 797| v797_3(void) = Call[~String] : func:r797_2, this:r797_1 +# 797| mu797_4(unknown) = ^CallSideEffect : ~m? +# 797| v797_5(void) = ^IndirectReadSideEffect[-1] : &:r797_1, ~m? +# 797| mu797_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r797_1 +# 797| r797_7(bool) = Constant[0] : +# 797| v797_8(void) = ConditionalBranch : r797_7 +#-----| False -> Block 260 +#-----| True -> Block 1026 + +# 799| Block 260 +# 799| r799_1(glval) = VariableAddress[x260] : +# 799| mu799_2(String) = Uninitialized[x260] : &:r799_1 +# 799| r799_3(glval) = FunctionAddress[String] : +# 799| v799_4(void) = Call[String] : func:r799_3, this:r799_1 +# 799| mu799_5(unknown) = ^CallSideEffect : ~m? +# 799| mu799_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r799_1 +# 800| r800_1(glval) = VariableAddress[x260] : +# 800| r800_2(glval) = FunctionAddress[~String] : +# 800| v800_3(void) = Call[~String] : func:r800_2, this:r800_1 +# 800| mu800_4(unknown) = ^CallSideEffect : ~m? +# 800| v800_5(void) = ^IndirectReadSideEffect[-1] : &:r800_1, ~m? +# 800| mu800_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r800_1 +# 800| r800_7(bool) = Constant[0] : +# 800| v800_8(void) = ConditionalBranch : r800_7 +#-----| False -> Block 261 +#-----| True -> Block 1026 + +# 802| Block 261 +# 802| r802_1(glval) = VariableAddress[x261] : +# 802| mu802_2(String) = Uninitialized[x261] : &:r802_1 +# 802| r802_3(glval) = FunctionAddress[String] : +# 802| v802_4(void) = Call[String] : func:r802_3, this:r802_1 +# 802| mu802_5(unknown) = ^CallSideEffect : ~m? +# 802| mu802_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r802_1 +# 803| r803_1(glval) = VariableAddress[x261] : +# 803| r803_2(glval) = FunctionAddress[~String] : +# 803| v803_3(void) = Call[~String] : func:r803_2, this:r803_1 +# 803| mu803_4(unknown) = ^CallSideEffect : ~m? +# 803| v803_5(void) = ^IndirectReadSideEffect[-1] : &:r803_1, ~m? +# 803| mu803_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r803_1 +# 803| r803_7(bool) = Constant[0] : +# 803| v803_8(void) = ConditionalBranch : r803_7 +#-----| False -> Block 262 +#-----| True -> Block 1026 + +# 805| Block 262 +# 805| r805_1(glval) = VariableAddress[x262] : +# 805| mu805_2(String) = Uninitialized[x262] : &:r805_1 +# 805| r805_3(glval) = FunctionAddress[String] : +# 805| v805_4(void) = Call[String] : func:r805_3, this:r805_1 +# 805| mu805_5(unknown) = ^CallSideEffect : ~m? +# 805| mu805_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r805_1 +# 806| r806_1(glval) = VariableAddress[x262] : +# 806| r806_2(glval) = FunctionAddress[~String] : +# 806| v806_3(void) = Call[~String] : func:r806_2, this:r806_1 +# 806| mu806_4(unknown) = ^CallSideEffect : ~m? +# 806| v806_5(void) = ^IndirectReadSideEffect[-1] : &:r806_1, ~m? +# 806| mu806_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r806_1 +# 806| r806_7(bool) = Constant[0] : +# 806| v806_8(void) = ConditionalBranch : r806_7 +#-----| False -> Block 263 +#-----| True -> Block 1026 + +# 808| Block 263 +# 808| r808_1(glval) = VariableAddress[x263] : +# 808| mu808_2(String) = Uninitialized[x263] : &:r808_1 +# 808| r808_3(glval) = FunctionAddress[String] : +# 808| v808_4(void) = Call[String] : func:r808_3, this:r808_1 +# 808| mu808_5(unknown) = ^CallSideEffect : ~m? +# 808| mu808_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r808_1 +# 809| r809_1(glval) = VariableAddress[x263] : +# 809| r809_2(glval) = FunctionAddress[~String] : +# 809| v809_3(void) = Call[~String] : func:r809_2, this:r809_1 +# 809| mu809_4(unknown) = ^CallSideEffect : ~m? +# 809| v809_5(void) = ^IndirectReadSideEffect[-1] : &:r809_1, ~m? +# 809| mu809_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r809_1 +# 809| r809_7(bool) = Constant[0] : +# 809| v809_8(void) = ConditionalBranch : r809_7 +#-----| False -> Block 264 +#-----| True -> Block 1026 + +# 811| Block 264 +# 811| r811_1(glval) = VariableAddress[x264] : +# 811| mu811_2(String) = Uninitialized[x264] : &:r811_1 +# 811| r811_3(glval) = FunctionAddress[String] : +# 811| v811_4(void) = Call[String] : func:r811_3, this:r811_1 +# 811| mu811_5(unknown) = ^CallSideEffect : ~m? +# 811| mu811_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r811_1 +# 812| r812_1(glval) = VariableAddress[x264] : +# 812| r812_2(glval) = FunctionAddress[~String] : +# 812| v812_3(void) = Call[~String] : func:r812_2, this:r812_1 +# 812| mu812_4(unknown) = ^CallSideEffect : ~m? +# 812| v812_5(void) = ^IndirectReadSideEffect[-1] : &:r812_1, ~m? +# 812| mu812_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r812_1 +# 812| r812_7(bool) = Constant[0] : +# 812| v812_8(void) = ConditionalBranch : r812_7 +#-----| False -> Block 265 +#-----| True -> Block 1026 + +# 814| Block 265 +# 814| r814_1(glval) = VariableAddress[x265] : +# 814| mu814_2(String) = Uninitialized[x265] : &:r814_1 +# 814| r814_3(glval) = FunctionAddress[String] : +# 814| v814_4(void) = Call[String] : func:r814_3, this:r814_1 +# 814| mu814_5(unknown) = ^CallSideEffect : ~m? +# 814| mu814_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r814_1 +# 815| r815_1(glval) = VariableAddress[x265] : +# 815| r815_2(glval) = FunctionAddress[~String] : +# 815| v815_3(void) = Call[~String] : func:r815_2, this:r815_1 +# 815| mu815_4(unknown) = ^CallSideEffect : ~m? +# 815| v815_5(void) = ^IndirectReadSideEffect[-1] : &:r815_1, ~m? +# 815| mu815_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r815_1 +# 815| r815_7(bool) = Constant[0] : +# 815| v815_8(void) = ConditionalBranch : r815_7 +#-----| False -> Block 266 +#-----| True -> Block 1026 + +# 817| Block 266 +# 817| r817_1(glval) = VariableAddress[x266] : +# 817| mu817_2(String) = Uninitialized[x266] : &:r817_1 +# 817| r817_3(glval) = FunctionAddress[String] : +# 817| v817_4(void) = Call[String] : func:r817_3, this:r817_1 +# 817| mu817_5(unknown) = ^CallSideEffect : ~m? +# 817| mu817_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r817_1 +# 818| r818_1(glval) = VariableAddress[x266] : +# 818| r818_2(glval) = FunctionAddress[~String] : +# 818| v818_3(void) = Call[~String] : func:r818_2, this:r818_1 +# 818| mu818_4(unknown) = ^CallSideEffect : ~m? +# 818| v818_5(void) = ^IndirectReadSideEffect[-1] : &:r818_1, ~m? +# 818| mu818_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r818_1 +# 818| r818_7(bool) = Constant[0] : +# 818| v818_8(void) = ConditionalBranch : r818_7 +#-----| False -> Block 267 +#-----| True -> Block 1026 + +# 820| Block 267 +# 820| r820_1(glval) = VariableAddress[x267] : +# 820| mu820_2(String) = Uninitialized[x267] : &:r820_1 +# 820| r820_3(glval) = FunctionAddress[String] : +# 820| v820_4(void) = Call[String] : func:r820_3, this:r820_1 +# 820| mu820_5(unknown) = ^CallSideEffect : ~m? +# 820| mu820_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r820_1 +# 821| r821_1(glval) = VariableAddress[x267] : +# 821| r821_2(glval) = FunctionAddress[~String] : +# 821| v821_3(void) = Call[~String] : func:r821_2, this:r821_1 +# 821| mu821_4(unknown) = ^CallSideEffect : ~m? +# 821| v821_5(void) = ^IndirectReadSideEffect[-1] : &:r821_1, ~m? +# 821| mu821_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r821_1 +# 821| r821_7(bool) = Constant[0] : +# 821| v821_8(void) = ConditionalBranch : r821_7 +#-----| False -> Block 268 +#-----| True -> Block 1026 + +# 823| Block 268 +# 823| r823_1(glval) = VariableAddress[x268] : +# 823| mu823_2(String) = Uninitialized[x268] : &:r823_1 +# 823| r823_3(glval) = FunctionAddress[String] : +# 823| v823_4(void) = Call[String] : func:r823_3, this:r823_1 +# 823| mu823_5(unknown) = ^CallSideEffect : ~m? +# 823| mu823_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r823_1 +# 824| r824_1(glval) = VariableAddress[x268] : +# 824| r824_2(glval) = FunctionAddress[~String] : +# 824| v824_3(void) = Call[~String] : func:r824_2, this:r824_1 +# 824| mu824_4(unknown) = ^CallSideEffect : ~m? +# 824| v824_5(void) = ^IndirectReadSideEffect[-1] : &:r824_1, ~m? +# 824| mu824_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r824_1 +# 824| r824_7(bool) = Constant[0] : +# 824| v824_8(void) = ConditionalBranch : r824_7 +#-----| False -> Block 269 +#-----| True -> Block 1026 + +# 826| Block 269 +# 826| r826_1(glval) = VariableAddress[x269] : +# 826| mu826_2(String) = Uninitialized[x269] : &:r826_1 +# 826| r826_3(glval) = FunctionAddress[String] : +# 826| v826_4(void) = Call[String] : func:r826_3, this:r826_1 +# 826| mu826_5(unknown) = ^CallSideEffect : ~m? +# 826| mu826_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r826_1 +# 827| r827_1(glval) = VariableAddress[x269] : +# 827| r827_2(glval) = FunctionAddress[~String] : +# 827| v827_3(void) = Call[~String] : func:r827_2, this:r827_1 +# 827| mu827_4(unknown) = ^CallSideEffect : ~m? +# 827| v827_5(void) = ^IndirectReadSideEffect[-1] : &:r827_1, ~m? +# 827| mu827_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r827_1 +# 827| r827_7(bool) = Constant[0] : +# 827| v827_8(void) = ConditionalBranch : r827_7 +#-----| False -> Block 270 +#-----| True -> Block 1026 + +# 829| Block 270 +# 829| r829_1(glval) = VariableAddress[x270] : +# 829| mu829_2(String) = Uninitialized[x270] : &:r829_1 +# 829| r829_3(glval) = FunctionAddress[String] : +# 829| v829_4(void) = Call[String] : func:r829_3, this:r829_1 +# 829| mu829_5(unknown) = ^CallSideEffect : ~m? +# 829| mu829_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r829_1 +# 830| r830_1(glval) = VariableAddress[x270] : +# 830| r830_2(glval) = FunctionAddress[~String] : +# 830| v830_3(void) = Call[~String] : func:r830_2, this:r830_1 +# 830| mu830_4(unknown) = ^CallSideEffect : ~m? +# 830| v830_5(void) = ^IndirectReadSideEffect[-1] : &:r830_1, ~m? +# 830| mu830_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r830_1 +# 830| r830_7(bool) = Constant[0] : +# 830| v830_8(void) = ConditionalBranch : r830_7 +#-----| False -> Block 271 +#-----| True -> Block 1026 + +# 832| Block 271 +# 832| r832_1(glval) = VariableAddress[x271] : +# 832| mu832_2(String) = Uninitialized[x271] : &:r832_1 +# 832| r832_3(glval) = FunctionAddress[String] : +# 832| v832_4(void) = Call[String] : func:r832_3, this:r832_1 +# 832| mu832_5(unknown) = ^CallSideEffect : ~m? +# 832| mu832_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r832_1 +# 833| r833_1(glval) = VariableAddress[x271] : +# 833| r833_2(glval) = FunctionAddress[~String] : +# 833| v833_3(void) = Call[~String] : func:r833_2, this:r833_1 +# 833| mu833_4(unknown) = ^CallSideEffect : ~m? +# 833| v833_5(void) = ^IndirectReadSideEffect[-1] : &:r833_1, ~m? +# 833| mu833_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r833_1 +# 833| r833_7(bool) = Constant[0] : +# 833| v833_8(void) = ConditionalBranch : r833_7 +#-----| False -> Block 272 +#-----| True -> Block 1026 + +# 835| Block 272 +# 835| r835_1(glval) = VariableAddress[x272] : +# 835| mu835_2(String) = Uninitialized[x272] : &:r835_1 +# 835| r835_3(glval) = FunctionAddress[String] : +# 835| v835_4(void) = Call[String] : func:r835_3, this:r835_1 +# 835| mu835_5(unknown) = ^CallSideEffect : ~m? +# 835| mu835_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r835_1 +# 836| r836_1(glval) = VariableAddress[x272] : +# 836| r836_2(glval) = FunctionAddress[~String] : +# 836| v836_3(void) = Call[~String] : func:r836_2, this:r836_1 +# 836| mu836_4(unknown) = ^CallSideEffect : ~m? +# 836| v836_5(void) = ^IndirectReadSideEffect[-1] : &:r836_1, ~m? +# 836| mu836_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r836_1 +# 836| r836_7(bool) = Constant[0] : +# 836| v836_8(void) = ConditionalBranch : r836_7 +#-----| False -> Block 273 +#-----| True -> Block 1026 + +# 838| Block 273 +# 838| r838_1(glval) = VariableAddress[x273] : +# 838| mu838_2(String) = Uninitialized[x273] : &:r838_1 +# 838| r838_3(glval) = FunctionAddress[String] : +# 838| v838_4(void) = Call[String] : func:r838_3, this:r838_1 +# 838| mu838_5(unknown) = ^CallSideEffect : ~m? +# 838| mu838_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r838_1 +# 839| r839_1(glval) = VariableAddress[x273] : +# 839| r839_2(glval) = FunctionAddress[~String] : +# 839| v839_3(void) = Call[~String] : func:r839_2, this:r839_1 +# 839| mu839_4(unknown) = ^CallSideEffect : ~m? +# 839| v839_5(void) = ^IndirectReadSideEffect[-1] : &:r839_1, ~m? +# 839| mu839_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r839_1 +# 839| r839_7(bool) = Constant[0] : +# 839| v839_8(void) = ConditionalBranch : r839_7 +#-----| False -> Block 274 +#-----| True -> Block 1026 + +# 841| Block 274 +# 841| r841_1(glval) = VariableAddress[x274] : +# 841| mu841_2(String) = Uninitialized[x274] : &:r841_1 +# 841| r841_3(glval) = FunctionAddress[String] : +# 841| v841_4(void) = Call[String] : func:r841_3, this:r841_1 +# 841| mu841_5(unknown) = ^CallSideEffect : ~m? +# 841| mu841_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r841_1 +# 842| r842_1(glval) = VariableAddress[x274] : +# 842| r842_2(glval) = FunctionAddress[~String] : +# 842| v842_3(void) = Call[~String] : func:r842_2, this:r842_1 +# 842| mu842_4(unknown) = ^CallSideEffect : ~m? +# 842| v842_5(void) = ^IndirectReadSideEffect[-1] : &:r842_1, ~m? +# 842| mu842_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r842_1 +# 842| r842_7(bool) = Constant[0] : +# 842| v842_8(void) = ConditionalBranch : r842_7 +#-----| False -> Block 275 +#-----| True -> Block 1026 + +# 844| Block 275 +# 844| r844_1(glval) = VariableAddress[x275] : +# 844| mu844_2(String) = Uninitialized[x275] : &:r844_1 +# 844| r844_3(glval) = FunctionAddress[String] : +# 844| v844_4(void) = Call[String] : func:r844_3, this:r844_1 +# 844| mu844_5(unknown) = ^CallSideEffect : ~m? +# 844| mu844_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r844_1 +# 845| r845_1(glval) = VariableAddress[x275] : +# 845| r845_2(glval) = FunctionAddress[~String] : +# 845| v845_3(void) = Call[~String] : func:r845_2, this:r845_1 +# 845| mu845_4(unknown) = ^CallSideEffect : ~m? +# 845| v845_5(void) = ^IndirectReadSideEffect[-1] : &:r845_1, ~m? +# 845| mu845_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r845_1 +# 845| r845_7(bool) = Constant[0] : +# 845| v845_8(void) = ConditionalBranch : r845_7 +#-----| False -> Block 276 +#-----| True -> Block 1026 + +# 847| Block 276 +# 847| r847_1(glval) = VariableAddress[x276] : +# 847| mu847_2(String) = Uninitialized[x276] : &:r847_1 +# 847| r847_3(glval) = FunctionAddress[String] : +# 847| v847_4(void) = Call[String] : func:r847_3, this:r847_1 +# 847| mu847_5(unknown) = ^CallSideEffect : ~m? +# 847| mu847_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r847_1 +# 848| r848_1(glval) = VariableAddress[x276] : +# 848| r848_2(glval) = FunctionAddress[~String] : +# 848| v848_3(void) = Call[~String] : func:r848_2, this:r848_1 +# 848| mu848_4(unknown) = ^CallSideEffect : ~m? +# 848| v848_5(void) = ^IndirectReadSideEffect[-1] : &:r848_1, ~m? +# 848| mu848_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r848_1 +# 848| r848_7(bool) = Constant[0] : +# 848| v848_8(void) = ConditionalBranch : r848_7 +#-----| False -> Block 277 +#-----| True -> Block 1026 + +# 850| Block 277 +# 850| r850_1(glval) = VariableAddress[x277] : +# 850| mu850_2(String) = Uninitialized[x277] : &:r850_1 +# 850| r850_3(glval) = FunctionAddress[String] : +# 850| v850_4(void) = Call[String] : func:r850_3, this:r850_1 +# 850| mu850_5(unknown) = ^CallSideEffect : ~m? +# 850| mu850_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r850_1 +# 851| r851_1(glval) = VariableAddress[x277] : +# 851| r851_2(glval) = FunctionAddress[~String] : +# 851| v851_3(void) = Call[~String] : func:r851_2, this:r851_1 +# 851| mu851_4(unknown) = ^CallSideEffect : ~m? +# 851| v851_5(void) = ^IndirectReadSideEffect[-1] : &:r851_1, ~m? +# 851| mu851_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r851_1 +# 851| r851_7(bool) = Constant[0] : +# 851| v851_8(void) = ConditionalBranch : r851_7 +#-----| False -> Block 278 +#-----| True -> Block 1026 + +# 853| Block 278 +# 853| r853_1(glval) = VariableAddress[x278] : +# 853| mu853_2(String) = Uninitialized[x278] : &:r853_1 +# 853| r853_3(glval) = FunctionAddress[String] : +# 853| v853_4(void) = Call[String] : func:r853_3, this:r853_1 +# 853| mu853_5(unknown) = ^CallSideEffect : ~m? +# 853| mu853_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r853_1 +# 854| r854_1(glval) = VariableAddress[x278] : +# 854| r854_2(glval) = FunctionAddress[~String] : +# 854| v854_3(void) = Call[~String] : func:r854_2, this:r854_1 +# 854| mu854_4(unknown) = ^CallSideEffect : ~m? +# 854| v854_5(void) = ^IndirectReadSideEffect[-1] : &:r854_1, ~m? +# 854| mu854_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r854_1 +# 854| r854_7(bool) = Constant[0] : +# 854| v854_8(void) = ConditionalBranch : r854_7 +#-----| False -> Block 279 +#-----| True -> Block 1026 + +# 856| Block 279 +# 856| r856_1(glval) = VariableAddress[x279] : +# 856| mu856_2(String) = Uninitialized[x279] : &:r856_1 +# 856| r856_3(glval) = FunctionAddress[String] : +# 856| v856_4(void) = Call[String] : func:r856_3, this:r856_1 +# 856| mu856_5(unknown) = ^CallSideEffect : ~m? +# 856| mu856_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r856_1 +# 857| r857_1(glval) = VariableAddress[x279] : +# 857| r857_2(glval) = FunctionAddress[~String] : +# 857| v857_3(void) = Call[~String] : func:r857_2, this:r857_1 +# 857| mu857_4(unknown) = ^CallSideEffect : ~m? +# 857| v857_5(void) = ^IndirectReadSideEffect[-1] : &:r857_1, ~m? +# 857| mu857_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r857_1 +# 857| r857_7(bool) = Constant[0] : +# 857| v857_8(void) = ConditionalBranch : r857_7 +#-----| False -> Block 280 +#-----| True -> Block 1026 + +# 859| Block 280 +# 859| r859_1(glval) = VariableAddress[x280] : +# 859| mu859_2(String) = Uninitialized[x280] : &:r859_1 +# 859| r859_3(glval) = FunctionAddress[String] : +# 859| v859_4(void) = Call[String] : func:r859_3, this:r859_1 +# 859| mu859_5(unknown) = ^CallSideEffect : ~m? +# 859| mu859_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r859_1 +# 860| r860_1(glval) = VariableAddress[x280] : +# 860| r860_2(glval) = FunctionAddress[~String] : +# 860| v860_3(void) = Call[~String] : func:r860_2, this:r860_1 +# 860| mu860_4(unknown) = ^CallSideEffect : ~m? +# 860| v860_5(void) = ^IndirectReadSideEffect[-1] : &:r860_1, ~m? +# 860| mu860_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r860_1 +# 860| r860_7(bool) = Constant[0] : +# 860| v860_8(void) = ConditionalBranch : r860_7 +#-----| False -> Block 281 +#-----| True -> Block 1026 + +# 862| Block 281 +# 862| r862_1(glval) = VariableAddress[x281] : +# 862| mu862_2(String) = Uninitialized[x281] : &:r862_1 +# 862| r862_3(glval) = FunctionAddress[String] : +# 862| v862_4(void) = Call[String] : func:r862_3, this:r862_1 +# 862| mu862_5(unknown) = ^CallSideEffect : ~m? +# 862| mu862_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r862_1 +# 863| r863_1(glval) = VariableAddress[x281] : +# 863| r863_2(glval) = FunctionAddress[~String] : +# 863| v863_3(void) = Call[~String] : func:r863_2, this:r863_1 +# 863| mu863_4(unknown) = ^CallSideEffect : ~m? +# 863| v863_5(void) = ^IndirectReadSideEffect[-1] : &:r863_1, ~m? +# 863| mu863_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r863_1 +# 863| r863_7(bool) = Constant[0] : +# 863| v863_8(void) = ConditionalBranch : r863_7 +#-----| False -> Block 282 +#-----| True -> Block 1026 + +# 865| Block 282 +# 865| r865_1(glval) = VariableAddress[x282] : +# 865| mu865_2(String) = Uninitialized[x282] : &:r865_1 +# 865| r865_3(glval) = FunctionAddress[String] : +# 865| v865_4(void) = Call[String] : func:r865_3, this:r865_1 +# 865| mu865_5(unknown) = ^CallSideEffect : ~m? +# 865| mu865_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r865_1 +# 866| r866_1(glval) = VariableAddress[x282] : +# 866| r866_2(glval) = FunctionAddress[~String] : +# 866| v866_3(void) = Call[~String] : func:r866_2, this:r866_1 +# 866| mu866_4(unknown) = ^CallSideEffect : ~m? +# 866| v866_5(void) = ^IndirectReadSideEffect[-1] : &:r866_1, ~m? +# 866| mu866_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r866_1 +# 866| r866_7(bool) = Constant[0] : +# 866| v866_8(void) = ConditionalBranch : r866_7 +#-----| False -> Block 283 +#-----| True -> Block 1026 + +# 868| Block 283 +# 868| r868_1(glval) = VariableAddress[x283] : +# 868| mu868_2(String) = Uninitialized[x283] : &:r868_1 +# 868| r868_3(glval) = FunctionAddress[String] : +# 868| v868_4(void) = Call[String] : func:r868_3, this:r868_1 +# 868| mu868_5(unknown) = ^CallSideEffect : ~m? +# 868| mu868_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r868_1 +# 869| r869_1(glval) = VariableAddress[x283] : +# 869| r869_2(glval) = FunctionAddress[~String] : +# 869| v869_3(void) = Call[~String] : func:r869_2, this:r869_1 +# 869| mu869_4(unknown) = ^CallSideEffect : ~m? +# 869| v869_5(void) = ^IndirectReadSideEffect[-1] : &:r869_1, ~m? +# 869| mu869_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r869_1 +# 869| r869_7(bool) = Constant[0] : +# 869| v869_8(void) = ConditionalBranch : r869_7 +#-----| False -> Block 284 +#-----| True -> Block 1026 + +# 871| Block 284 +# 871| r871_1(glval) = VariableAddress[x284] : +# 871| mu871_2(String) = Uninitialized[x284] : &:r871_1 +# 871| r871_3(glval) = FunctionAddress[String] : +# 871| v871_4(void) = Call[String] : func:r871_3, this:r871_1 +# 871| mu871_5(unknown) = ^CallSideEffect : ~m? +# 871| mu871_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r871_1 +# 872| r872_1(glval) = VariableAddress[x284] : +# 872| r872_2(glval) = FunctionAddress[~String] : +# 872| v872_3(void) = Call[~String] : func:r872_2, this:r872_1 +# 872| mu872_4(unknown) = ^CallSideEffect : ~m? +# 872| v872_5(void) = ^IndirectReadSideEffect[-1] : &:r872_1, ~m? +# 872| mu872_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r872_1 +# 872| r872_7(bool) = Constant[0] : +# 872| v872_8(void) = ConditionalBranch : r872_7 +#-----| False -> Block 285 +#-----| True -> Block 1026 + +# 874| Block 285 +# 874| r874_1(glval) = VariableAddress[x285] : +# 874| mu874_2(String) = Uninitialized[x285] : &:r874_1 +# 874| r874_3(glval) = FunctionAddress[String] : +# 874| v874_4(void) = Call[String] : func:r874_3, this:r874_1 +# 874| mu874_5(unknown) = ^CallSideEffect : ~m? +# 874| mu874_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r874_1 +# 875| r875_1(glval) = VariableAddress[x285] : +# 875| r875_2(glval) = FunctionAddress[~String] : +# 875| v875_3(void) = Call[~String] : func:r875_2, this:r875_1 +# 875| mu875_4(unknown) = ^CallSideEffect : ~m? +# 875| v875_5(void) = ^IndirectReadSideEffect[-1] : &:r875_1, ~m? +# 875| mu875_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r875_1 +# 875| r875_7(bool) = Constant[0] : +# 875| v875_8(void) = ConditionalBranch : r875_7 +#-----| False -> Block 286 +#-----| True -> Block 1026 + +# 877| Block 286 +# 877| r877_1(glval) = VariableAddress[x286] : +# 877| mu877_2(String) = Uninitialized[x286] : &:r877_1 +# 877| r877_3(glval) = FunctionAddress[String] : +# 877| v877_4(void) = Call[String] : func:r877_3, this:r877_1 +# 877| mu877_5(unknown) = ^CallSideEffect : ~m? +# 877| mu877_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r877_1 +# 878| r878_1(glval) = VariableAddress[x286] : +# 878| r878_2(glval) = FunctionAddress[~String] : +# 878| v878_3(void) = Call[~String] : func:r878_2, this:r878_1 +# 878| mu878_4(unknown) = ^CallSideEffect : ~m? +# 878| v878_5(void) = ^IndirectReadSideEffect[-1] : &:r878_1, ~m? +# 878| mu878_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r878_1 +# 878| r878_7(bool) = Constant[0] : +# 878| v878_8(void) = ConditionalBranch : r878_7 +#-----| False -> Block 287 +#-----| True -> Block 1026 + +# 880| Block 287 +# 880| r880_1(glval) = VariableAddress[x287] : +# 880| mu880_2(String) = Uninitialized[x287] : &:r880_1 +# 880| r880_3(glval) = FunctionAddress[String] : +# 880| v880_4(void) = Call[String] : func:r880_3, this:r880_1 +# 880| mu880_5(unknown) = ^CallSideEffect : ~m? +# 880| mu880_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r880_1 +# 881| r881_1(glval) = VariableAddress[x287] : +# 881| r881_2(glval) = FunctionAddress[~String] : +# 881| v881_3(void) = Call[~String] : func:r881_2, this:r881_1 +# 881| mu881_4(unknown) = ^CallSideEffect : ~m? +# 881| v881_5(void) = ^IndirectReadSideEffect[-1] : &:r881_1, ~m? +# 881| mu881_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r881_1 +# 881| r881_7(bool) = Constant[0] : +# 881| v881_8(void) = ConditionalBranch : r881_7 +#-----| False -> Block 288 +#-----| True -> Block 1026 + +# 883| Block 288 +# 883| r883_1(glval) = VariableAddress[x288] : +# 883| mu883_2(String) = Uninitialized[x288] : &:r883_1 +# 883| r883_3(glval) = FunctionAddress[String] : +# 883| v883_4(void) = Call[String] : func:r883_3, this:r883_1 +# 883| mu883_5(unknown) = ^CallSideEffect : ~m? +# 883| mu883_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r883_1 +# 884| r884_1(glval) = VariableAddress[x288] : +# 884| r884_2(glval) = FunctionAddress[~String] : +# 884| v884_3(void) = Call[~String] : func:r884_2, this:r884_1 +# 884| mu884_4(unknown) = ^CallSideEffect : ~m? +# 884| v884_5(void) = ^IndirectReadSideEffect[-1] : &:r884_1, ~m? +# 884| mu884_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r884_1 +# 884| r884_7(bool) = Constant[0] : +# 884| v884_8(void) = ConditionalBranch : r884_7 +#-----| False -> Block 289 +#-----| True -> Block 1026 + +# 886| Block 289 +# 886| r886_1(glval) = VariableAddress[x289] : +# 886| mu886_2(String) = Uninitialized[x289] : &:r886_1 +# 886| r886_3(glval) = FunctionAddress[String] : +# 886| v886_4(void) = Call[String] : func:r886_3, this:r886_1 +# 886| mu886_5(unknown) = ^CallSideEffect : ~m? +# 886| mu886_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r886_1 +# 887| r887_1(glval) = VariableAddress[x289] : +# 887| r887_2(glval) = FunctionAddress[~String] : +# 887| v887_3(void) = Call[~String] : func:r887_2, this:r887_1 +# 887| mu887_4(unknown) = ^CallSideEffect : ~m? +# 887| v887_5(void) = ^IndirectReadSideEffect[-1] : &:r887_1, ~m? +# 887| mu887_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r887_1 +# 887| r887_7(bool) = Constant[0] : +# 887| v887_8(void) = ConditionalBranch : r887_7 +#-----| False -> Block 290 +#-----| True -> Block 1026 + +# 889| Block 290 +# 889| r889_1(glval) = VariableAddress[x290] : +# 889| mu889_2(String) = Uninitialized[x290] : &:r889_1 +# 889| r889_3(glval) = FunctionAddress[String] : +# 889| v889_4(void) = Call[String] : func:r889_3, this:r889_1 +# 889| mu889_5(unknown) = ^CallSideEffect : ~m? +# 889| mu889_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r889_1 +# 890| r890_1(glval) = VariableAddress[x290] : +# 890| r890_2(glval) = FunctionAddress[~String] : +# 890| v890_3(void) = Call[~String] : func:r890_2, this:r890_1 +# 890| mu890_4(unknown) = ^CallSideEffect : ~m? +# 890| v890_5(void) = ^IndirectReadSideEffect[-1] : &:r890_1, ~m? +# 890| mu890_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r890_1 +# 890| r890_7(bool) = Constant[0] : +# 890| v890_8(void) = ConditionalBranch : r890_7 +#-----| False -> Block 291 +#-----| True -> Block 1026 + +# 892| Block 291 +# 892| r892_1(glval) = VariableAddress[x291] : +# 892| mu892_2(String) = Uninitialized[x291] : &:r892_1 +# 892| r892_3(glval) = FunctionAddress[String] : +# 892| v892_4(void) = Call[String] : func:r892_3, this:r892_1 +# 892| mu892_5(unknown) = ^CallSideEffect : ~m? +# 892| mu892_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r892_1 +# 893| r893_1(glval) = VariableAddress[x291] : +# 893| r893_2(glval) = FunctionAddress[~String] : +# 893| v893_3(void) = Call[~String] : func:r893_2, this:r893_1 +# 893| mu893_4(unknown) = ^CallSideEffect : ~m? +# 893| v893_5(void) = ^IndirectReadSideEffect[-1] : &:r893_1, ~m? +# 893| mu893_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r893_1 +# 893| r893_7(bool) = Constant[0] : +# 893| v893_8(void) = ConditionalBranch : r893_7 +#-----| False -> Block 292 +#-----| True -> Block 1026 + +# 895| Block 292 +# 895| r895_1(glval) = VariableAddress[x292] : +# 895| mu895_2(String) = Uninitialized[x292] : &:r895_1 +# 895| r895_3(glval) = FunctionAddress[String] : +# 895| v895_4(void) = Call[String] : func:r895_3, this:r895_1 +# 895| mu895_5(unknown) = ^CallSideEffect : ~m? +# 895| mu895_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r895_1 +# 896| r896_1(glval) = VariableAddress[x292] : +# 896| r896_2(glval) = FunctionAddress[~String] : +# 896| v896_3(void) = Call[~String] : func:r896_2, this:r896_1 +# 896| mu896_4(unknown) = ^CallSideEffect : ~m? +# 896| v896_5(void) = ^IndirectReadSideEffect[-1] : &:r896_1, ~m? +# 896| mu896_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r896_1 +# 896| r896_7(bool) = Constant[0] : +# 896| v896_8(void) = ConditionalBranch : r896_7 +#-----| False -> Block 293 +#-----| True -> Block 1026 + +# 898| Block 293 +# 898| r898_1(glval) = VariableAddress[x293] : +# 898| mu898_2(String) = Uninitialized[x293] : &:r898_1 +# 898| r898_3(glval) = FunctionAddress[String] : +# 898| v898_4(void) = Call[String] : func:r898_3, this:r898_1 +# 898| mu898_5(unknown) = ^CallSideEffect : ~m? +# 898| mu898_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r898_1 +# 899| r899_1(glval) = VariableAddress[x293] : +# 899| r899_2(glval) = FunctionAddress[~String] : +# 899| v899_3(void) = Call[~String] : func:r899_2, this:r899_1 +# 899| mu899_4(unknown) = ^CallSideEffect : ~m? +# 899| v899_5(void) = ^IndirectReadSideEffect[-1] : &:r899_1, ~m? +# 899| mu899_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r899_1 +# 899| r899_7(bool) = Constant[0] : +# 899| v899_8(void) = ConditionalBranch : r899_7 +#-----| False -> Block 294 +#-----| True -> Block 1026 + +# 901| Block 294 +# 901| r901_1(glval) = VariableAddress[x294] : +# 901| mu901_2(String) = Uninitialized[x294] : &:r901_1 +# 901| r901_3(glval) = FunctionAddress[String] : +# 901| v901_4(void) = Call[String] : func:r901_3, this:r901_1 +# 901| mu901_5(unknown) = ^CallSideEffect : ~m? +# 901| mu901_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r901_1 +# 902| r902_1(glval) = VariableAddress[x294] : +# 902| r902_2(glval) = FunctionAddress[~String] : +# 902| v902_3(void) = Call[~String] : func:r902_2, this:r902_1 +# 902| mu902_4(unknown) = ^CallSideEffect : ~m? +# 902| v902_5(void) = ^IndirectReadSideEffect[-1] : &:r902_1, ~m? +# 902| mu902_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r902_1 +# 902| r902_7(bool) = Constant[0] : +# 902| v902_8(void) = ConditionalBranch : r902_7 +#-----| False -> Block 295 +#-----| True -> Block 1026 + +# 904| Block 295 +# 904| r904_1(glval) = VariableAddress[x295] : +# 904| mu904_2(String) = Uninitialized[x295] : &:r904_1 +# 904| r904_3(glval) = FunctionAddress[String] : +# 904| v904_4(void) = Call[String] : func:r904_3, this:r904_1 +# 904| mu904_5(unknown) = ^CallSideEffect : ~m? +# 904| mu904_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r904_1 +# 905| r905_1(glval) = VariableAddress[x295] : +# 905| r905_2(glval) = FunctionAddress[~String] : +# 905| v905_3(void) = Call[~String] : func:r905_2, this:r905_1 +# 905| mu905_4(unknown) = ^CallSideEffect : ~m? +# 905| v905_5(void) = ^IndirectReadSideEffect[-1] : &:r905_1, ~m? +# 905| mu905_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r905_1 +# 905| r905_7(bool) = Constant[0] : +# 905| v905_8(void) = ConditionalBranch : r905_7 +#-----| False -> Block 296 +#-----| True -> Block 1026 + +# 907| Block 296 +# 907| r907_1(glval) = VariableAddress[x296] : +# 907| mu907_2(String) = Uninitialized[x296] : &:r907_1 +# 907| r907_3(glval) = FunctionAddress[String] : +# 907| v907_4(void) = Call[String] : func:r907_3, this:r907_1 +# 907| mu907_5(unknown) = ^CallSideEffect : ~m? +# 907| mu907_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r907_1 +# 908| r908_1(glval) = VariableAddress[x296] : +# 908| r908_2(glval) = FunctionAddress[~String] : +# 908| v908_3(void) = Call[~String] : func:r908_2, this:r908_1 +# 908| mu908_4(unknown) = ^CallSideEffect : ~m? +# 908| v908_5(void) = ^IndirectReadSideEffect[-1] : &:r908_1, ~m? +# 908| mu908_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r908_1 +# 908| r908_7(bool) = Constant[0] : +# 908| v908_8(void) = ConditionalBranch : r908_7 +#-----| False -> Block 297 +#-----| True -> Block 1026 + +# 910| Block 297 +# 910| r910_1(glval) = VariableAddress[x297] : +# 910| mu910_2(String) = Uninitialized[x297] : &:r910_1 +# 910| r910_3(glval) = FunctionAddress[String] : +# 910| v910_4(void) = Call[String] : func:r910_3, this:r910_1 +# 910| mu910_5(unknown) = ^CallSideEffect : ~m? +# 910| mu910_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r910_1 +# 911| r911_1(glval) = VariableAddress[x297] : +# 911| r911_2(glval) = FunctionAddress[~String] : +# 911| v911_3(void) = Call[~String] : func:r911_2, this:r911_1 +# 911| mu911_4(unknown) = ^CallSideEffect : ~m? +# 911| v911_5(void) = ^IndirectReadSideEffect[-1] : &:r911_1, ~m? +# 911| mu911_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r911_1 +# 911| r911_7(bool) = Constant[0] : +# 911| v911_8(void) = ConditionalBranch : r911_7 +#-----| False -> Block 298 +#-----| True -> Block 1026 + +# 913| Block 298 +# 913| r913_1(glval) = VariableAddress[x298] : +# 913| mu913_2(String) = Uninitialized[x298] : &:r913_1 +# 913| r913_3(glval) = FunctionAddress[String] : +# 913| v913_4(void) = Call[String] : func:r913_3, this:r913_1 +# 913| mu913_5(unknown) = ^CallSideEffect : ~m? +# 913| mu913_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r913_1 +# 914| r914_1(glval) = VariableAddress[x298] : +# 914| r914_2(glval) = FunctionAddress[~String] : +# 914| v914_3(void) = Call[~String] : func:r914_2, this:r914_1 +# 914| mu914_4(unknown) = ^CallSideEffect : ~m? +# 914| v914_5(void) = ^IndirectReadSideEffect[-1] : &:r914_1, ~m? +# 914| mu914_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r914_1 +# 914| r914_7(bool) = Constant[0] : +# 914| v914_8(void) = ConditionalBranch : r914_7 +#-----| False -> Block 299 +#-----| True -> Block 1026 + +# 916| Block 299 +# 916| r916_1(glval) = VariableAddress[x299] : +# 916| mu916_2(String) = Uninitialized[x299] : &:r916_1 +# 916| r916_3(glval) = FunctionAddress[String] : +# 916| v916_4(void) = Call[String] : func:r916_3, this:r916_1 +# 916| mu916_5(unknown) = ^CallSideEffect : ~m? +# 916| mu916_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r916_1 +# 917| r917_1(glval) = VariableAddress[x299] : +# 917| r917_2(glval) = FunctionAddress[~String] : +# 917| v917_3(void) = Call[~String] : func:r917_2, this:r917_1 +# 917| mu917_4(unknown) = ^CallSideEffect : ~m? +# 917| v917_5(void) = ^IndirectReadSideEffect[-1] : &:r917_1, ~m? +# 917| mu917_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r917_1 +# 917| r917_7(bool) = Constant[0] : +# 917| v917_8(void) = ConditionalBranch : r917_7 +#-----| False -> Block 300 +#-----| True -> Block 1026 + +# 919| Block 300 +# 919| r919_1(glval) = VariableAddress[x300] : +# 919| mu919_2(String) = Uninitialized[x300] : &:r919_1 +# 919| r919_3(glval) = FunctionAddress[String] : +# 919| v919_4(void) = Call[String] : func:r919_3, this:r919_1 +# 919| mu919_5(unknown) = ^CallSideEffect : ~m? +# 919| mu919_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r919_1 +# 920| r920_1(glval) = VariableAddress[x300] : +# 920| r920_2(glval) = FunctionAddress[~String] : +# 920| v920_3(void) = Call[~String] : func:r920_2, this:r920_1 +# 920| mu920_4(unknown) = ^CallSideEffect : ~m? +# 920| v920_5(void) = ^IndirectReadSideEffect[-1] : &:r920_1, ~m? +# 920| mu920_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r920_1 +# 920| r920_7(bool) = Constant[0] : +# 920| v920_8(void) = ConditionalBranch : r920_7 +#-----| False -> Block 301 +#-----| True -> Block 1026 + +# 922| Block 301 +# 922| r922_1(glval) = VariableAddress[x301] : +# 922| mu922_2(String) = Uninitialized[x301] : &:r922_1 +# 922| r922_3(glval) = FunctionAddress[String] : +# 922| v922_4(void) = Call[String] : func:r922_3, this:r922_1 +# 922| mu922_5(unknown) = ^CallSideEffect : ~m? +# 922| mu922_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r922_1 +# 923| r923_1(glval) = VariableAddress[x301] : +# 923| r923_2(glval) = FunctionAddress[~String] : +# 923| v923_3(void) = Call[~String] : func:r923_2, this:r923_1 +# 923| mu923_4(unknown) = ^CallSideEffect : ~m? +# 923| v923_5(void) = ^IndirectReadSideEffect[-1] : &:r923_1, ~m? +# 923| mu923_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r923_1 +# 923| r923_7(bool) = Constant[0] : +# 923| v923_8(void) = ConditionalBranch : r923_7 +#-----| False -> Block 302 +#-----| True -> Block 1026 + +# 925| Block 302 +# 925| r925_1(glval) = VariableAddress[x302] : +# 925| mu925_2(String) = Uninitialized[x302] : &:r925_1 +# 925| r925_3(glval) = FunctionAddress[String] : +# 925| v925_4(void) = Call[String] : func:r925_3, this:r925_1 +# 925| mu925_5(unknown) = ^CallSideEffect : ~m? +# 925| mu925_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r925_1 +# 926| r926_1(glval) = VariableAddress[x302] : +# 926| r926_2(glval) = FunctionAddress[~String] : +# 926| v926_3(void) = Call[~String] : func:r926_2, this:r926_1 +# 926| mu926_4(unknown) = ^CallSideEffect : ~m? +# 926| v926_5(void) = ^IndirectReadSideEffect[-1] : &:r926_1, ~m? +# 926| mu926_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r926_1 +# 926| r926_7(bool) = Constant[0] : +# 926| v926_8(void) = ConditionalBranch : r926_7 +#-----| False -> Block 303 +#-----| True -> Block 1026 + +# 928| Block 303 +# 928| r928_1(glval) = VariableAddress[x303] : +# 928| mu928_2(String) = Uninitialized[x303] : &:r928_1 +# 928| r928_3(glval) = FunctionAddress[String] : +# 928| v928_4(void) = Call[String] : func:r928_3, this:r928_1 +# 928| mu928_5(unknown) = ^CallSideEffect : ~m? +# 928| mu928_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r928_1 +# 929| r929_1(glval) = VariableAddress[x303] : +# 929| r929_2(glval) = FunctionAddress[~String] : +# 929| v929_3(void) = Call[~String] : func:r929_2, this:r929_1 +# 929| mu929_4(unknown) = ^CallSideEffect : ~m? +# 929| v929_5(void) = ^IndirectReadSideEffect[-1] : &:r929_1, ~m? +# 929| mu929_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r929_1 +# 929| r929_7(bool) = Constant[0] : +# 929| v929_8(void) = ConditionalBranch : r929_7 +#-----| False -> Block 304 +#-----| True -> Block 1026 + +# 931| Block 304 +# 931| r931_1(glval) = VariableAddress[x304] : +# 931| mu931_2(String) = Uninitialized[x304] : &:r931_1 +# 931| r931_3(glval) = FunctionAddress[String] : +# 931| v931_4(void) = Call[String] : func:r931_3, this:r931_1 +# 931| mu931_5(unknown) = ^CallSideEffect : ~m? +# 931| mu931_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r931_1 +# 932| r932_1(glval) = VariableAddress[x304] : +# 932| r932_2(glval) = FunctionAddress[~String] : +# 932| v932_3(void) = Call[~String] : func:r932_2, this:r932_1 +# 932| mu932_4(unknown) = ^CallSideEffect : ~m? +# 932| v932_5(void) = ^IndirectReadSideEffect[-1] : &:r932_1, ~m? +# 932| mu932_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r932_1 +# 932| r932_7(bool) = Constant[0] : +# 932| v932_8(void) = ConditionalBranch : r932_7 +#-----| False -> Block 305 +#-----| True -> Block 1026 + +# 934| Block 305 +# 934| r934_1(glval) = VariableAddress[x305] : +# 934| mu934_2(String) = Uninitialized[x305] : &:r934_1 +# 934| r934_3(glval) = FunctionAddress[String] : +# 934| v934_4(void) = Call[String] : func:r934_3, this:r934_1 +# 934| mu934_5(unknown) = ^CallSideEffect : ~m? +# 934| mu934_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r934_1 +# 935| r935_1(glval) = VariableAddress[x305] : +# 935| r935_2(glval) = FunctionAddress[~String] : +# 935| v935_3(void) = Call[~String] : func:r935_2, this:r935_1 +# 935| mu935_4(unknown) = ^CallSideEffect : ~m? +# 935| v935_5(void) = ^IndirectReadSideEffect[-1] : &:r935_1, ~m? +# 935| mu935_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r935_1 +# 935| r935_7(bool) = Constant[0] : +# 935| v935_8(void) = ConditionalBranch : r935_7 +#-----| False -> Block 306 +#-----| True -> Block 1026 + +# 937| Block 306 +# 937| r937_1(glval) = VariableAddress[x306] : +# 937| mu937_2(String) = Uninitialized[x306] : &:r937_1 +# 937| r937_3(glval) = FunctionAddress[String] : +# 937| v937_4(void) = Call[String] : func:r937_3, this:r937_1 +# 937| mu937_5(unknown) = ^CallSideEffect : ~m? +# 937| mu937_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r937_1 +# 938| r938_1(glval) = VariableAddress[x306] : +# 938| r938_2(glval) = FunctionAddress[~String] : +# 938| v938_3(void) = Call[~String] : func:r938_2, this:r938_1 +# 938| mu938_4(unknown) = ^CallSideEffect : ~m? +# 938| v938_5(void) = ^IndirectReadSideEffect[-1] : &:r938_1, ~m? +# 938| mu938_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r938_1 +# 938| r938_7(bool) = Constant[0] : +# 938| v938_8(void) = ConditionalBranch : r938_7 +#-----| False -> Block 307 +#-----| True -> Block 1026 + +# 940| Block 307 +# 940| r940_1(glval) = VariableAddress[x307] : +# 940| mu940_2(String) = Uninitialized[x307] : &:r940_1 +# 940| r940_3(glval) = FunctionAddress[String] : +# 940| v940_4(void) = Call[String] : func:r940_3, this:r940_1 +# 940| mu940_5(unknown) = ^CallSideEffect : ~m? +# 940| mu940_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r940_1 +# 941| r941_1(glval) = VariableAddress[x307] : +# 941| r941_2(glval) = FunctionAddress[~String] : +# 941| v941_3(void) = Call[~String] : func:r941_2, this:r941_1 +# 941| mu941_4(unknown) = ^CallSideEffect : ~m? +# 941| v941_5(void) = ^IndirectReadSideEffect[-1] : &:r941_1, ~m? +# 941| mu941_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r941_1 +# 941| r941_7(bool) = Constant[0] : +# 941| v941_8(void) = ConditionalBranch : r941_7 +#-----| False -> Block 308 +#-----| True -> Block 1026 + +# 943| Block 308 +# 943| r943_1(glval) = VariableAddress[x308] : +# 943| mu943_2(String) = Uninitialized[x308] : &:r943_1 +# 943| r943_3(glval) = FunctionAddress[String] : +# 943| v943_4(void) = Call[String] : func:r943_3, this:r943_1 +# 943| mu943_5(unknown) = ^CallSideEffect : ~m? +# 943| mu943_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r943_1 +# 944| r944_1(glval) = VariableAddress[x308] : +# 944| r944_2(glval) = FunctionAddress[~String] : +# 944| v944_3(void) = Call[~String] : func:r944_2, this:r944_1 +# 944| mu944_4(unknown) = ^CallSideEffect : ~m? +# 944| v944_5(void) = ^IndirectReadSideEffect[-1] : &:r944_1, ~m? +# 944| mu944_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r944_1 +# 944| r944_7(bool) = Constant[0] : +# 944| v944_8(void) = ConditionalBranch : r944_7 +#-----| False -> Block 309 +#-----| True -> Block 1026 + +# 946| Block 309 +# 946| r946_1(glval) = VariableAddress[x309] : +# 946| mu946_2(String) = Uninitialized[x309] : &:r946_1 +# 946| r946_3(glval) = FunctionAddress[String] : +# 946| v946_4(void) = Call[String] : func:r946_3, this:r946_1 +# 946| mu946_5(unknown) = ^CallSideEffect : ~m? +# 946| mu946_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r946_1 +# 947| r947_1(glval) = VariableAddress[x309] : +# 947| r947_2(glval) = FunctionAddress[~String] : +# 947| v947_3(void) = Call[~String] : func:r947_2, this:r947_1 +# 947| mu947_4(unknown) = ^CallSideEffect : ~m? +# 947| v947_5(void) = ^IndirectReadSideEffect[-1] : &:r947_1, ~m? +# 947| mu947_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r947_1 +# 947| r947_7(bool) = Constant[0] : +# 947| v947_8(void) = ConditionalBranch : r947_7 +#-----| False -> Block 310 +#-----| True -> Block 1026 + +# 949| Block 310 +# 949| r949_1(glval) = VariableAddress[x310] : +# 949| mu949_2(String) = Uninitialized[x310] : &:r949_1 +# 949| r949_3(glval) = FunctionAddress[String] : +# 949| v949_4(void) = Call[String] : func:r949_3, this:r949_1 +# 949| mu949_5(unknown) = ^CallSideEffect : ~m? +# 949| mu949_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r949_1 +# 950| r950_1(glval) = VariableAddress[x310] : +# 950| r950_2(glval) = FunctionAddress[~String] : +# 950| v950_3(void) = Call[~String] : func:r950_2, this:r950_1 +# 950| mu950_4(unknown) = ^CallSideEffect : ~m? +# 950| v950_5(void) = ^IndirectReadSideEffect[-1] : &:r950_1, ~m? +# 950| mu950_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r950_1 +# 950| r950_7(bool) = Constant[0] : +# 950| v950_8(void) = ConditionalBranch : r950_7 +#-----| False -> Block 311 +#-----| True -> Block 1026 + +# 952| Block 311 +# 952| r952_1(glval) = VariableAddress[x311] : +# 952| mu952_2(String) = Uninitialized[x311] : &:r952_1 +# 952| r952_3(glval) = FunctionAddress[String] : +# 952| v952_4(void) = Call[String] : func:r952_3, this:r952_1 +# 952| mu952_5(unknown) = ^CallSideEffect : ~m? +# 952| mu952_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r952_1 +# 953| r953_1(glval) = VariableAddress[x311] : +# 953| r953_2(glval) = FunctionAddress[~String] : +# 953| v953_3(void) = Call[~String] : func:r953_2, this:r953_1 +# 953| mu953_4(unknown) = ^CallSideEffect : ~m? +# 953| v953_5(void) = ^IndirectReadSideEffect[-1] : &:r953_1, ~m? +# 953| mu953_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r953_1 +# 953| r953_7(bool) = Constant[0] : +# 953| v953_8(void) = ConditionalBranch : r953_7 +#-----| False -> Block 312 +#-----| True -> Block 1026 + +# 955| Block 312 +# 955| r955_1(glval) = VariableAddress[x312] : +# 955| mu955_2(String) = Uninitialized[x312] : &:r955_1 +# 955| r955_3(glval) = FunctionAddress[String] : +# 955| v955_4(void) = Call[String] : func:r955_3, this:r955_1 +# 955| mu955_5(unknown) = ^CallSideEffect : ~m? +# 955| mu955_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r955_1 +# 956| r956_1(glval) = VariableAddress[x312] : +# 956| r956_2(glval) = FunctionAddress[~String] : +# 956| v956_3(void) = Call[~String] : func:r956_2, this:r956_1 +# 956| mu956_4(unknown) = ^CallSideEffect : ~m? +# 956| v956_5(void) = ^IndirectReadSideEffect[-1] : &:r956_1, ~m? +# 956| mu956_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r956_1 +# 956| r956_7(bool) = Constant[0] : +# 956| v956_8(void) = ConditionalBranch : r956_7 +#-----| False -> Block 313 +#-----| True -> Block 1026 + +# 958| Block 313 +# 958| r958_1(glval) = VariableAddress[x313] : +# 958| mu958_2(String) = Uninitialized[x313] : &:r958_1 +# 958| r958_3(glval) = FunctionAddress[String] : +# 958| v958_4(void) = Call[String] : func:r958_3, this:r958_1 +# 958| mu958_5(unknown) = ^CallSideEffect : ~m? +# 958| mu958_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r958_1 +# 959| r959_1(glval) = VariableAddress[x313] : +# 959| r959_2(glval) = FunctionAddress[~String] : +# 959| v959_3(void) = Call[~String] : func:r959_2, this:r959_1 +# 959| mu959_4(unknown) = ^CallSideEffect : ~m? +# 959| v959_5(void) = ^IndirectReadSideEffect[-1] : &:r959_1, ~m? +# 959| mu959_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r959_1 +# 959| r959_7(bool) = Constant[0] : +# 959| v959_8(void) = ConditionalBranch : r959_7 +#-----| False -> Block 314 +#-----| True -> Block 1026 + +# 961| Block 314 +# 961| r961_1(glval) = VariableAddress[x314] : +# 961| mu961_2(String) = Uninitialized[x314] : &:r961_1 +# 961| r961_3(glval) = FunctionAddress[String] : +# 961| v961_4(void) = Call[String] : func:r961_3, this:r961_1 +# 961| mu961_5(unknown) = ^CallSideEffect : ~m? +# 961| mu961_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r961_1 +# 962| r962_1(glval) = VariableAddress[x314] : +# 962| r962_2(glval) = FunctionAddress[~String] : +# 962| v962_3(void) = Call[~String] : func:r962_2, this:r962_1 +# 962| mu962_4(unknown) = ^CallSideEffect : ~m? +# 962| v962_5(void) = ^IndirectReadSideEffect[-1] : &:r962_1, ~m? +# 962| mu962_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r962_1 +# 962| r962_7(bool) = Constant[0] : +# 962| v962_8(void) = ConditionalBranch : r962_7 +#-----| False -> Block 315 +#-----| True -> Block 1026 + +# 964| Block 315 +# 964| r964_1(glval) = VariableAddress[x315] : +# 964| mu964_2(String) = Uninitialized[x315] : &:r964_1 +# 964| r964_3(glval) = FunctionAddress[String] : +# 964| v964_4(void) = Call[String] : func:r964_3, this:r964_1 +# 964| mu964_5(unknown) = ^CallSideEffect : ~m? +# 964| mu964_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r964_1 +# 965| r965_1(glval) = VariableAddress[x315] : +# 965| r965_2(glval) = FunctionAddress[~String] : +# 965| v965_3(void) = Call[~String] : func:r965_2, this:r965_1 +# 965| mu965_4(unknown) = ^CallSideEffect : ~m? +# 965| v965_5(void) = ^IndirectReadSideEffect[-1] : &:r965_1, ~m? +# 965| mu965_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r965_1 +# 965| r965_7(bool) = Constant[0] : +# 965| v965_8(void) = ConditionalBranch : r965_7 +#-----| False -> Block 316 +#-----| True -> Block 1026 + +# 967| Block 316 +# 967| r967_1(glval) = VariableAddress[x316] : +# 967| mu967_2(String) = Uninitialized[x316] : &:r967_1 +# 967| r967_3(glval) = FunctionAddress[String] : +# 967| v967_4(void) = Call[String] : func:r967_3, this:r967_1 +# 967| mu967_5(unknown) = ^CallSideEffect : ~m? +# 967| mu967_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r967_1 +# 968| r968_1(glval) = VariableAddress[x316] : +# 968| r968_2(glval) = FunctionAddress[~String] : +# 968| v968_3(void) = Call[~String] : func:r968_2, this:r968_1 +# 968| mu968_4(unknown) = ^CallSideEffect : ~m? +# 968| v968_5(void) = ^IndirectReadSideEffect[-1] : &:r968_1, ~m? +# 968| mu968_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r968_1 +# 968| r968_7(bool) = Constant[0] : +# 968| v968_8(void) = ConditionalBranch : r968_7 +#-----| False -> Block 317 +#-----| True -> Block 1026 + +# 970| Block 317 +# 970| r970_1(glval) = VariableAddress[x317] : +# 970| mu970_2(String) = Uninitialized[x317] : &:r970_1 +# 970| r970_3(glval) = FunctionAddress[String] : +# 970| v970_4(void) = Call[String] : func:r970_3, this:r970_1 +# 970| mu970_5(unknown) = ^CallSideEffect : ~m? +# 970| mu970_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r970_1 +# 971| r971_1(glval) = VariableAddress[x317] : +# 971| r971_2(glval) = FunctionAddress[~String] : +# 971| v971_3(void) = Call[~String] : func:r971_2, this:r971_1 +# 971| mu971_4(unknown) = ^CallSideEffect : ~m? +# 971| v971_5(void) = ^IndirectReadSideEffect[-1] : &:r971_1, ~m? +# 971| mu971_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r971_1 +# 971| r971_7(bool) = Constant[0] : +# 971| v971_8(void) = ConditionalBranch : r971_7 +#-----| False -> Block 318 +#-----| True -> Block 1026 + +# 973| Block 318 +# 973| r973_1(glval) = VariableAddress[x318] : +# 973| mu973_2(String) = Uninitialized[x318] : &:r973_1 +# 973| r973_3(glval) = FunctionAddress[String] : +# 973| v973_4(void) = Call[String] : func:r973_3, this:r973_1 +# 973| mu973_5(unknown) = ^CallSideEffect : ~m? +# 973| mu973_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r973_1 +# 974| r974_1(glval) = VariableAddress[x318] : +# 974| r974_2(glval) = FunctionAddress[~String] : +# 974| v974_3(void) = Call[~String] : func:r974_2, this:r974_1 +# 974| mu974_4(unknown) = ^CallSideEffect : ~m? +# 974| v974_5(void) = ^IndirectReadSideEffect[-1] : &:r974_1, ~m? +# 974| mu974_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r974_1 +# 974| r974_7(bool) = Constant[0] : +# 974| v974_8(void) = ConditionalBranch : r974_7 +#-----| False -> Block 319 +#-----| True -> Block 1026 + +# 976| Block 319 +# 976| r976_1(glval) = VariableAddress[x319] : +# 976| mu976_2(String) = Uninitialized[x319] : &:r976_1 +# 976| r976_3(glval) = FunctionAddress[String] : +# 976| v976_4(void) = Call[String] : func:r976_3, this:r976_1 +# 976| mu976_5(unknown) = ^CallSideEffect : ~m? +# 976| mu976_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r976_1 +# 977| r977_1(glval) = VariableAddress[x319] : +# 977| r977_2(glval) = FunctionAddress[~String] : +# 977| v977_3(void) = Call[~String] : func:r977_2, this:r977_1 +# 977| mu977_4(unknown) = ^CallSideEffect : ~m? +# 977| v977_5(void) = ^IndirectReadSideEffect[-1] : &:r977_1, ~m? +# 977| mu977_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r977_1 +# 977| r977_7(bool) = Constant[0] : +# 977| v977_8(void) = ConditionalBranch : r977_7 +#-----| False -> Block 320 +#-----| True -> Block 1026 + +# 979| Block 320 +# 979| r979_1(glval) = VariableAddress[x320] : +# 979| mu979_2(String) = Uninitialized[x320] : &:r979_1 +# 979| r979_3(glval) = FunctionAddress[String] : +# 979| v979_4(void) = Call[String] : func:r979_3, this:r979_1 +# 979| mu979_5(unknown) = ^CallSideEffect : ~m? +# 979| mu979_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r979_1 +# 980| r980_1(glval) = VariableAddress[x320] : +# 980| r980_2(glval) = FunctionAddress[~String] : +# 980| v980_3(void) = Call[~String] : func:r980_2, this:r980_1 +# 980| mu980_4(unknown) = ^CallSideEffect : ~m? +# 980| v980_5(void) = ^IndirectReadSideEffect[-1] : &:r980_1, ~m? +# 980| mu980_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r980_1 +# 980| r980_7(bool) = Constant[0] : +# 980| v980_8(void) = ConditionalBranch : r980_7 +#-----| False -> Block 321 +#-----| True -> Block 1026 + +# 982| Block 321 +# 982| r982_1(glval) = VariableAddress[x321] : +# 982| mu982_2(String) = Uninitialized[x321] : &:r982_1 +# 982| r982_3(glval) = FunctionAddress[String] : +# 982| v982_4(void) = Call[String] : func:r982_3, this:r982_1 +# 982| mu982_5(unknown) = ^CallSideEffect : ~m? +# 982| mu982_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r982_1 +# 983| r983_1(glval) = VariableAddress[x321] : +# 983| r983_2(glval) = FunctionAddress[~String] : +# 983| v983_3(void) = Call[~String] : func:r983_2, this:r983_1 +# 983| mu983_4(unknown) = ^CallSideEffect : ~m? +# 983| v983_5(void) = ^IndirectReadSideEffect[-1] : &:r983_1, ~m? +# 983| mu983_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r983_1 +# 983| r983_7(bool) = Constant[0] : +# 983| v983_8(void) = ConditionalBranch : r983_7 +#-----| False -> Block 322 +#-----| True -> Block 1026 + +# 985| Block 322 +# 985| r985_1(glval) = VariableAddress[x322] : +# 985| mu985_2(String) = Uninitialized[x322] : &:r985_1 +# 985| r985_3(glval) = FunctionAddress[String] : +# 985| v985_4(void) = Call[String] : func:r985_3, this:r985_1 +# 985| mu985_5(unknown) = ^CallSideEffect : ~m? +# 985| mu985_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r985_1 +# 986| r986_1(glval) = VariableAddress[x322] : +# 986| r986_2(glval) = FunctionAddress[~String] : +# 986| v986_3(void) = Call[~String] : func:r986_2, this:r986_1 +# 986| mu986_4(unknown) = ^CallSideEffect : ~m? +# 986| v986_5(void) = ^IndirectReadSideEffect[-1] : &:r986_1, ~m? +# 986| mu986_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r986_1 +# 986| r986_7(bool) = Constant[0] : +# 986| v986_8(void) = ConditionalBranch : r986_7 +#-----| False -> Block 323 +#-----| True -> Block 1026 + +# 988| Block 323 +# 988| r988_1(glval) = VariableAddress[x323] : +# 988| mu988_2(String) = Uninitialized[x323] : &:r988_1 +# 988| r988_3(glval) = FunctionAddress[String] : +# 988| v988_4(void) = Call[String] : func:r988_3, this:r988_1 +# 988| mu988_5(unknown) = ^CallSideEffect : ~m? +# 988| mu988_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r988_1 +# 989| r989_1(glval) = VariableAddress[x323] : +# 989| r989_2(glval) = FunctionAddress[~String] : +# 989| v989_3(void) = Call[~String] : func:r989_2, this:r989_1 +# 989| mu989_4(unknown) = ^CallSideEffect : ~m? +# 989| v989_5(void) = ^IndirectReadSideEffect[-1] : &:r989_1, ~m? +# 989| mu989_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r989_1 +# 989| r989_7(bool) = Constant[0] : +# 989| v989_8(void) = ConditionalBranch : r989_7 +#-----| False -> Block 324 +#-----| True -> Block 1026 + +# 991| Block 324 +# 991| r991_1(glval) = VariableAddress[x324] : +# 991| mu991_2(String) = Uninitialized[x324] : &:r991_1 +# 991| r991_3(glval) = FunctionAddress[String] : +# 991| v991_4(void) = Call[String] : func:r991_3, this:r991_1 +# 991| mu991_5(unknown) = ^CallSideEffect : ~m? +# 991| mu991_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r991_1 +# 992| r992_1(glval) = VariableAddress[x324] : +# 992| r992_2(glval) = FunctionAddress[~String] : +# 992| v992_3(void) = Call[~String] : func:r992_2, this:r992_1 +# 992| mu992_4(unknown) = ^CallSideEffect : ~m? +# 992| v992_5(void) = ^IndirectReadSideEffect[-1] : &:r992_1, ~m? +# 992| mu992_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r992_1 +# 992| r992_7(bool) = Constant[0] : +# 992| v992_8(void) = ConditionalBranch : r992_7 +#-----| False -> Block 325 +#-----| True -> Block 1026 + +# 994| Block 325 +# 994| r994_1(glval) = VariableAddress[x325] : +# 994| mu994_2(String) = Uninitialized[x325] : &:r994_1 +# 994| r994_3(glval) = FunctionAddress[String] : +# 994| v994_4(void) = Call[String] : func:r994_3, this:r994_1 +# 994| mu994_5(unknown) = ^CallSideEffect : ~m? +# 994| mu994_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r994_1 +# 995| r995_1(glval) = VariableAddress[x325] : +# 995| r995_2(glval) = FunctionAddress[~String] : +# 995| v995_3(void) = Call[~String] : func:r995_2, this:r995_1 +# 995| mu995_4(unknown) = ^CallSideEffect : ~m? +# 995| v995_5(void) = ^IndirectReadSideEffect[-1] : &:r995_1, ~m? +# 995| mu995_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r995_1 +# 995| r995_7(bool) = Constant[0] : +# 995| v995_8(void) = ConditionalBranch : r995_7 +#-----| False -> Block 326 +#-----| True -> Block 1026 + +# 997| Block 326 +# 997| r997_1(glval) = VariableAddress[x326] : +# 997| mu997_2(String) = Uninitialized[x326] : &:r997_1 +# 997| r997_3(glval) = FunctionAddress[String] : +# 997| v997_4(void) = Call[String] : func:r997_3, this:r997_1 +# 997| mu997_5(unknown) = ^CallSideEffect : ~m? +# 997| mu997_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r997_1 +# 998| r998_1(glval) = VariableAddress[x326] : +# 998| r998_2(glval) = FunctionAddress[~String] : +# 998| v998_3(void) = Call[~String] : func:r998_2, this:r998_1 +# 998| mu998_4(unknown) = ^CallSideEffect : ~m? +# 998| v998_5(void) = ^IndirectReadSideEffect[-1] : &:r998_1, ~m? +# 998| mu998_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r998_1 +# 998| r998_7(bool) = Constant[0] : +# 998| v998_8(void) = ConditionalBranch : r998_7 +#-----| False -> Block 327 +#-----| True -> Block 1026 + +# 1000| Block 327 +# 1000| r1000_1(glval) = VariableAddress[x327] : +# 1000| mu1000_2(String) = Uninitialized[x327] : &:r1000_1 +# 1000| r1000_3(glval) = FunctionAddress[String] : +# 1000| v1000_4(void) = Call[String] : func:r1000_3, this:r1000_1 +# 1000| mu1000_5(unknown) = ^CallSideEffect : ~m? +# 1000| mu1000_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1000_1 +# 1001| r1001_1(glval) = VariableAddress[x327] : +# 1001| r1001_2(glval) = FunctionAddress[~String] : +# 1001| v1001_3(void) = Call[~String] : func:r1001_2, this:r1001_1 +# 1001| mu1001_4(unknown) = ^CallSideEffect : ~m? +# 1001| v1001_5(void) = ^IndirectReadSideEffect[-1] : &:r1001_1, ~m? +# 1001| mu1001_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1001_1 +# 1001| r1001_7(bool) = Constant[0] : +# 1001| v1001_8(void) = ConditionalBranch : r1001_7 +#-----| False -> Block 328 +#-----| True -> Block 1026 + +# 1003| Block 328 +# 1003| r1003_1(glval) = VariableAddress[x328] : +# 1003| mu1003_2(String) = Uninitialized[x328] : &:r1003_1 +# 1003| r1003_3(glval) = FunctionAddress[String] : +# 1003| v1003_4(void) = Call[String] : func:r1003_3, this:r1003_1 +# 1003| mu1003_5(unknown) = ^CallSideEffect : ~m? +# 1003| mu1003_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1003_1 +# 1004| r1004_1(glval) = VariableAddress[x328] : +# 1004| r1004_2(glval) = FunctionAddress[~String] : +# 1004| v1004_3(void) = Call[~String] : func:r1004_2, this:r1004_1 +# 1004| mu1004_4(unknown) = ^CallSideEffect : ~m? +# 1004| v1004_5(void) = ^IndirectReadSideEffect[-1] : &:r1004_1, ~m? +# 1004| mu1004_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1004_1 +# 1004| r1004_7(bool) = Constant[0] : +# 1004| v1004_8(void) = ConditionalBranch : r1004_7 +#-----| False -> Block 329 +#-----| True -> Block 1026 + +# 1006| Block 329 +# 1006| r1006_1(glval) = VariableAddress[x329] : +# 1006| mu1006_2(String) = Uninitialized[x329] : &:r1006_1 +# 1006| r1006_3(glval) = FunctionAddress[String] : +# 1006| v1006_4(void) = Call[String] : func:r1006_3, this:r1006_1 +# 1006| mu1006_5(unknown) = ^CallSideEffect : ~m? +# 1006| mu1006_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1006_1 +# 1007| r1007_1(glval) = VariableAddress[x329] : +# 1007| r1007_2(glval) = FunctionAddress[~String] : +# 1007| v1007_3(void) = Call[~String] : func:r1007_2, this:r1007_1 +# 1007| mu1007_4(unknown) = ^CallSideEffect : ~m? +# 1007| v1007_5(void) = ^IndirectReadSideEffect[-1] : &:r1007_1, ~m? +# 1007| mu1007_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1007_1 +# 1007| r1007_7(bool) = Constant[0] : +# 1007| v1007_8(void) = ConditionalBranch : r1007_7 +#-----| False -> Block 330 +#-----| True -> Block 1026 + +# 1009| Block 330 +# 1009| r1009_1(glval) = VariableAddress[x330] : +# 1009| mu1009_2(String) = Uninitialized[x330] : &:r1009_1 +# 1009| r1009_3(glval) = FunctionAddress[String] : +# 1009| v1009_4(void) = Call[String] : func:r1009_3, this:r1009_1 +# 1009| mu1009_5(unknown) = ^CallSideEffect : ~m? +# 1009| mu1009_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1009_1 +# 1010| r1010_1(glval) = VariableAddress[x330] : +# 1010| r1010_2(glval) = FunctionAddress[~String] : +# 1010| v1010_3(void) = Call[~String] : func:r1010_2, this:r1010_1 +# 1010| mu1010_4(unknown) = ^CallSideEffect : ~m? +# 1010| v1010_5(void) = ^IndirectReadSideEffect[-1] : &:r1010_1, ~m? +# 1010| mu1010_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1010_1 +# 1010| r1010_7(bool) = Constant[0] : +# 1010| v1010_8(void) = ConditionalBranch : r1010_7 +#-----| False -> Block 331 +#-----| True -> Block 1026 + +# 1012| Block 331 +# 1012| r1012_1(glval) = VariableAddress[x331] : +# 1012| mu1012_2(String) = Uninitialized[x331] : &:r1012_1 +# 1012| r1012_3(glval) = FunctionAddress[String] : +# 1012| v1012_4(void) = Call[String] : func:r1012_3, this:r1012_1 +# 1012| mu1012_5(unknown) = ^CallSideEffect : ~m? +# 1012| mu1012_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1012_1 +# 1013| r1013_1(glval) = VariableAddress[x331] : +# 1013| r1013_2(glval) = FunctionAddress[~String] : +# 1013| v1013_3(void) = Call[~String] : func:r1013_2, this:r1013_1 +# 1013| mu1013_4(unknown) = ^CallSideEffect : ~m? +# 1013| v1013_5(void) = ^IndirectReadSideEffect[-1] : &:r1013_1, ~m? +# 1013| mu1013_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1013_1 +# 1013| r1013_7(bool) = Constant[0] : +# 1013| v1013_8(void) = ConditionalBranch : r1013_7 +#-----| False -> Block 332 +#-----| True -> Block 1026 + +# 1015| Block 332 +# 1015| r1015_1(glval) = VariableAddress[x332] : +# 1015| mu1015_2(String) = Uninitialized[x332] : &:r1015_1 +# 1015| r1015_3(glval) = FunctionAddress[String] : +# 1015| v1015_4(void) = Call[String] : func:r1015_3, this:r1015_1 +# 1015| mu1015_5(unknown) = ^CallSideEffect : ~m? +# 1015| mu1015_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1015_1 +# 1016| r1016_1(glval) = VariableAddress[x332] : +# 1016| r1016_2(glval) = FunctionAddress[~String] : +# 1016| v1016_3(void) = Call[~String] : func:r1016_2, this:r1016_1 +# 1016| mu1016_4(unknown) = ^CallSideEffect : ~m? +# 1016| v1016_5(void) = ^IndirectReadSideEffect[-1] : &:r1016_1, ~m? +# 1016| mu1016_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1016_1 +# 1016| r1016_7(bool) = Constant[0] : +# 1016| v1016_8(void) = ConditionalBranch : r1016_7 +#-----| False -> Block 333 +#-----| True -> Block 1026 + +# 1018| Block 333 +# 1018| r1018_1(glval) = VariableAddress[x333] : +# 1018| mu1018_2(String) = Uninitialized[x333] : &:r1018_1 +# 1018| r1018_3(glval) = FunctionAddress[String] : +# 1018| v1018_4(void) = Call[String] : func:r1018_3, this:r1018_1 +# 1018| mu1018_5(unknown) = ^CallSideEffect : ~m? +# 1018| mu1018_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1018_1 +# 1019| r1019_1(glval) = VariableAddress[x333] : +# 1019| r1019_2(glval) = FunctionAddress[~String] : +# 1019| v1019_3(void) = Call[~String] : func:r1019_2, this:r1019_1 +# 1019| mu1019_4(unknown) = ^CallSideEffect : ~m? +# 1019| v1019_5(void) = ^IndirectReadSideEffect[-1] : &:r1019_1, ~m? +# 1019| mu1019_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1019_1 +# 1019| r1019_7(bool) = Constant[0] : +# 1019| v1019_8(void) = ConditionalBranch : r1019_7 +#-----| False -> Block 334 +#-----| True -> Block 1026 + +# 1021| Block 334 +# 1021| r1021_1(glval) = VariableAddress[x334] : +# 1021| mu1021_2(String) = Uninitialized[x334] : &:r1021_1 +# 1021| r1021_3(glval) = FunctionAddress[String] : +# 1021| v1021_4(void) = Call[String] : func:r1021_3, this:r1021_1 +# 1021| mu1021_5(unknown) = ^CallSideEffect : ~m? +# 1021| mu1021_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1021_1 +# 1022| r1022_1(glval) = VariableAddress[x334] : +# 1022| r1022_2(glval) = FunctionAddress[~String] : +# 1022| v1022_3(void) = Call[~String] : func:r1022_2, this:r1022_1 +# 1022| mu1022_4(unknown) = ^CallSideEffect : ~m? +# 1022| v1022_5(void) = ^IndirectReadSideEffect[-1] : &:r1022_1, ~m? +# 1022| mu1022_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1022_1 +# 1022| r1022_7(bool) = Constant[0] : +# 1022| v1022_8(void) = ConditionalBranch : r1022_7 +#-----| False -> Block 335 +#-----| True -> Block 1026 + +# 1024| Block 335 +# 1024| r1024_1(glval) = VariableAddress[x335] : +# 1024| mu1024_2(String) = Uninitialized[x335] : &:r1024_1 +# 1024| r1024_3(glval) = FunctionAddress[String] : +# 1024| v1024_4(void) = Call[String] : func:r1024_3, this:r1024_1 +# 1024| mu1024_5(unknown) = ^CallSideEffect : ~m? +# 1024| mu1024_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1024_1 +# 1025| r1025_1(glval) = VariableAddress[x335] : +# 1025| r1025_2(glval) = FunctionAddress[~String] : +# 1025| v1025_3(void) = Call[~String] : func:r1025_2, this:r1025_1 +# 1025| mu1025_4(unknown) = ^CallSideEffect : ~m? +# 1025| v1025_5(void) = ^IndirectReadSideEffect[-1] : &:r1025_1, ~m? +# 1025| mu1025_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1025_1 +# 1025| r1025_7(bool) = Constant[0] : +# 1025| v1025_8(void) = ConditionalBranch : r1025_7 +#-----| False -> Block 336 +#-----| True -> Block 1026 + +# 1027| Block 336 +# 1027| r1027_1(glval) = VariableAddress[x336] : +# 1027| mu1027_2(String) = Uninitialized[x336] : &:r1027_1 +# 1027| r1027_3(glval) = FunctionAddress[String] : +# 1027| v1027_4(void) = Call[String] : func:r1027_3, this:r1027_1 +# 1027| mu1027_5(unknown) = ^CallSideEffect : ~m? +# 1027| mu1027_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1027_1 +# 1028| r1028_1(glval) = VariableAddress[x336] : +# 1028| r1028_2(glval) = FunctionAddress[~String] : +# 1028| v1028_3(void) = Call[~String] : func:r1028_2, this:r1028_1 +# 1028| mu1028_4(unknown) = ^CallSideEffect : ~m? +# 1028| v1028_5(void) = ^IndirectReadSideEffect[-1] : &:r1028_1, ~m? +# 1028| mu1028_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1028_1 +# 1028| r1028_7(bool) = Constant[0] : +# 1028| v1028_8(void) = ConditionalBranch : r1028_7 +#-----| False -> Block 337 +#-----| True -> Block 1026 + +# 1030| Block 337 +# 1030| r1030_1(glval) = VariableAddress[x337] : +# 1030| mu1030_2(String) = Uninitialized[x337] : &:r1030_1 +# 1030| r1030_3(glval) = FunctionAddress[String] : +# 1030| v1030_4(void) = Call[String] : func:r1030_3, this:r1030_1 +# 1030| mu1030_5(unknown) = ^CallSideEffect : ~m? +# 1030| mu1030_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1030_1 +# 1031| r1031_1(glval) = VariableAddress[x337] : +# 1031| r1031_2(glval) = FunctionAddress[~String] : +# 1031| v1031_3(void) = Call[~String] : func:r1031_2, this:r1031_1 +# 1031| mu1031_4(unknown) = ^CallSideEffect : ~m? +# 1031| v1031_5(void) = ^IndirectReadSideEffect[-1] : &:r1031_1, ~m? +# 1031| mu1031_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1031_1 +# 1031| r1031_7(bool) = Constant[0] : +# 1031| v1031_8(void) = ConditionalBranch : r1031_7 +#-----| False -> Block 338 +#-----| True -> Block 1026 + +# 1033| Block 338 +# 1033| r1033_1(glval) = VariableAddress[x338] : +# 1033| mu1033_2(String) = Uninitialized[x338] : &:r1033_1 +# 1033| r1033_3(glval) = FunctionAddress[String] : +# 1033| v1033_4(void) = Call[String] : func:r1033_3, this:r1033_1 +# 1033| mu1033_5(unknown) = ^CallSideEffect : ~m? +# 1033| mu1033_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1033_1 +# 1034| r1034_1(glval) = VariableAddress[x338] : +# 1034| r1034_2(glval) = FunctionAddress[~String] : +# 1034| v1034_3(void) = Call[~String] : func:r1034_2, this:r1034_1 +# 1034| mu1034_4(unknown) = ^CallSideEffect : ~m? +# 1034| v1034_5(void) = ^IndirectReadSideEffect[-1] : &:r1034_1, ~m? +# 1034| mu1034_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1034_1 +# 1034| r1034_7(bool) = Constant[0] : +# 1034| v1034_8(void) = ConditionalBranch : r1034_7 +#-----| False -> Block 339 +#-----| True -> Block 1026 + +# 1036| Block 339 +# 1036| r1036_1(glval) = VariableAddress[x339] : +# 1036| mu1036_2(String) = Uninitialized[x339] : &:r1036_1 +# 1036| r1036_3(glval) = FunctionAddress[String] : +# 1036| v1036_4(void) = Call[String] : func:r1036_3, this:r1036_1 +# 1036| mu1036_5(unknown) = ^CallSideEffect : ~m? +# 1036| mu1036_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1036_1 +# 1037| r1037_1(glval) = VariableAddress[x339] : +# 1037| r1037_2(glval) = FunctionAddress[~String] : +# 1037| v1037_3(void) = Call[~String] : func:r1037_2, this:r1037_1 +# 1037| mu1037_4(unknown) = ^CallSideEffect : ~m? +# 1037| v1037_5(void) = ^IndirectReadSideEffect[-1] : &:r1037_1, ~m? +# 1037| mu1037_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1037_1 +# 1037| r1037_7(bool) = Constant[0] : +# 1037| v1037_8(void) = ConditionalBranch : r1037_7 +#-----| False -> Block 340 +#-----| True -> Block 1026 + +# 1039| Block 340 +# 1039| r1039_1(glval) = VariableAddress[x340] : +# 1039| mu1039_2(String) = Uninitialized[x340] : &:r1039_1 +# 1039| r1039_3(glval) = FunctionAddress[String] : +# 1039| v1039_4(void) = Call[String] : func:r1039_3, this:r1039_1 +# 1039| mu1039_5(unknown) = ^CallSideEffect : ~m? +# 1039| mu1039_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1039_1 +# 1040| r1040_1(glval) = VariableAddress[x340] : +# 1040| r1040_2(glval) = FunctionAddress[~String] : +# 1040| v1040_3(void) = Call[~String] : func:r1040_2, this:r1040_1 +# 1040| mu1040_4(unknown) = ^CallSideEffect : ~m? +# 1040| v1040_5(void) = ^IndirectReadSideEffect[-1] : &:r1040_1, ~m? +# 1040| mu1040_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1040_1 +# 1040| r1040_7(bool) = Constant[0] : +# 1040| v1040_8(void) = ConditionalBranch : r1040_7 +#-----| False -> Block 341 +#-----| True -> Block 1026 + +# 1042| Block 341 +# 1042| r1042_1(glval) = VariableAddress[x341] : +# 1042| mu1042_2(String) = Uninitialized[x341] : &:r1042_1 +# 1042| r1042_3(glval) = FunctionAddress[String] : +# 1042| v1042_4(void) = Call[String] : func:r1042_3, this:r1042_1 +# 1042| mu1042_5(unknown) = ^CallSideEffect : ~m? +# 1042| mu1042_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1042_1 +# 1043| r1043_1(glval) = VariableAddress[x341] : +# 1043| r1043_2(glval) = FunctionAddress[~String] : +# 1043| v1043_3(void) = Call[~String] : func:r1043_2, this:r1043_1 +# 1043| mu1043_4(unknown) = ^CallSideEffect : ~m? +# 1043| v1043_5(void) = ^IndirectReadSideEffect[-1] : &:r1043_1, ~m? +# 1043| mu1043_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1043_1 +# 1043| r1043_7(bool) = Constant[0] : +# 1043| v1043_8(void) = ConditionalBranch : r1043_7 +#-----| False -> Block 342 +#-----| True -> Block 1026 + +# 1045| Block 342 +# 1045| r1045_1(glval) = VariableAddress[x342] : +# 1045| mu1045_2(String) = Uninitialized[x342] : &:r1045_1 +# 1045| r1045_3(glval) = FunctionAddress[String] : +# 1045| v1045_4(void) = Call[String] : func:r1045_3, this:r1045_1 +# 1045| mu1045_5(unknown) = ^CallSideEffect : ~m? +# 1045| mu1045_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1045_1 +# 1046| r1046_1(glval) = VariableAddress[x342] : +# 1046| r1046_2(glval) = FunctionAddress[~String] : +# 1046| v1046_3(void) = Call[~String] : func:r1046_2, this:r1046_1 +# 1046| mu1046_4(unknown) = ^CallSideEffect : ~m? +# 1046| v1046_5(void) = ^IndirectReadSideEffect[-1] : &:r1046_1, ~m? +# 1046| mu1046_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1046_1 +# 1046| r1046_7(bool) = Constant[0] : +# 1046| v1046_8(void) = ConditionalBranch : r1046_7 +#-----| False -> Block 343 +#-----| True -> Block 1026 + +# 1048| Block 343 +# 1048| r1048_1(glval) = VariableAddress[x343] : +# 1048| mu1048_2(String) = Uninitialized[x343] : &:r1048_1 +# 1048| r1048_3(glval) = FunctionAddress[String] : +# 1048| v1048_4(void) = Call[String] : func:r1048_3, this:r1048_1 +# 1048| mu1048_5(unknown) = ^CallSideEffect : ~m? +# 1048| mu1048_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1048_1 +# 1049| r1049_1(glval) = VariableAddress[x343] : +# 1049| r1049_2(glval) = FunctionAddress[~String] : +# 1049| v1049_3(void) = Call[~String] : func:r1049_2, this:r1049_1 +# 1049| mu1049_4(unknown) = ^CallSideEffect : ~m? +# 1049| v1049_5(void) = ^IndirectReadSideEffect[-1] : &:r1049_1, ~m? +# 1049| mu1049_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1049_1 +# 1049| r1049_7(bool) = Constant[0] : +# 1049| v1049_8(void) = ConditionalBranch : r1049_7 +#-----| False -> Block 344 +#-----| True -> Block 1026 + +# 1051| Block 344 +# 1051| r1051_1(glval) = VariableAddress[x344] : +# 1051| mu1051_2(String) = Uninitialized[x344] : &:r1051_1 +# 1051| r1051_3(glval) = FunctionAddress[String] : +# 1051| v1051_4(void) = Call[String] : func:r1051_3, this:r1051_1 +# 1051| mu1051_5(unknown) = ^CallSideEffect : ~m? +# 1051| mu1051_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1051_1 +# 1052| r1052_1(glval) = VariableAddress[x344] : +# 1052| r1052_2(glval) = FunctionAddress[~String] : +# 1052| v1052_3(void) = Call[~String] : func:r1052_2, this:r1052_1 +# 1052| mu1052_4(unknown) = ^CallSideEffect : ~m? +# 1052| v1052_5(void) = ^IndirectReadSideEffect[-1] : &:r1052_1, ~m? +# 1052| mu1052_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1052_1 +# 1052| r1052_7(bool) = Constant[0] : +# 1052| v1052_8(void) = ConditionalBranch : r1052_7 +#-----| False -> Block 345 +#-----| True -> Block 1026 + +# 1054| Block 345 +# 1054| r1054_1(glval) = VariableAddress[x345] : +# 1054| mu1054_2(String) = Uninitialized[x345] : &:r1054_1 +# 1054| r1054_3(glval) = FunctionAddress[String] : +# 1054| v1054_4(void) = Call[String] : func:r1054_3, this:r1054_1 +# 1054| mu1054_5(unknown) = ^CallSideEffect : ~m? +# 1054| mu1054_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1054_1 +# 1055| r1055_1(glval) = VariableAddress[x345] : +# 1055| r1055_2(glval) = FunctionAddress[~String] : +# 1055| v1055_3(void) = Call[~String] : func:r1055_2, this:r1055_1 +# 1055| mu1055_4(unknown) = ^CallSideEffect : ~m? +# 1055| v1055_5(void) = ^IndirectReadSideEffect[-1] : &:r1055_1, ~m? +# 1055| mu1055_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1055_1 +# 1055| r1055_7(bool) = Constant[0] : +# 1055| v1055_8(void) = ConditionalBranch : r1055_7 +#-----| False -> Block 346 +#-----| True -> Block 1026 + +# 1057| Block 346 +# 1057| r1057_1(glval) = VariableAddress[x346] : +# 1057| mu1057_2(String) = Uninitialized[x346] : &:r1057_1 +# 1057| r1057_3(glval) = FunctionAddress[String] : +# 1057| v1057_4(void) = Call[String] : func:r1057_3, this:r1057_1 +# 1057| mu1057_5(unknown) = ^CallSideEffect : ~m? +# 1057| mu1057_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1057_1 +# 1058| r1058_1(glval) = VariableAddress[x346] : +# 1058| r1058_2(glval) = FunctionAddress[~String] : +# 1058| v1058_3(void) = Call[~String] : func:r1058_2, this:r1058_1 +# 1058| mu1058_4(unknown) = ^CallSideEffect : ~m? +# 1058| v1058_5(void) = ^IndirectReadSideEffect[-1] : &:r1058_1, ~m? +# 1058| mu1058_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1058_1 +# 1058| r1058_7(bool) = Constant[0] : +# 1058| v1058_8(void) = ConditionalBranch : r1058_7 +#-----| False -> Block 347 +#-----| True -> Block 1026 + +# 1060| Block 347 +# 1060| r1060_1(glval) = VariableAddress[x347] : +# 1060| mu1060_2(String) = Uninitialized[x347] : &:r1060_1 +# 1060| r1060_3(glval) = FunctionAddress[String] : +# 1060| v1060_4(void) = Call[String] : func:r1060_3, this:r1060_1 +# 1060| mu1060_5(unknown) = ^CallSideEffect : ~m? +# 1060| mu1060_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1060_1 +# 1061| r1061_1(glval) = VariableAddress[x347] : +# 1061| r1061_2(glval) = FunctionAddress[~String] : +# 1061| v1061_3(void) = Call[~String] : func:r1061_2, this:r1061_1 +# 1061| mu1061_4(unknown) = ^CallSideEffect : ~m? +# 1061| v1061_5(void) = ^IndirectReadSideEffect[-1] : &:r1061_1, ~m? +# 1061| mu1061_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1061_1 +# 1061| r1061_7(bool) = Constant[0] : +# 1061| v1061_8(void) = ConditionalBranch : r1061_7 +#-----| False -> Block 348 +#-----| True -> Block 1026 + +# 1063| Block 348 +# 1063| r1063_1(glval) = VariableAddress[x348] : +# 1063| mu1063_2(String) = Uninitialized[x348] : &:r1063_1 +# 1063| r1063_3(glval) = FunctionAddress[String] : +# 1063| v1063_4(void) = Call[String] : func:r1063_3, this:r1063_1 +# 1063| mu1063_5(unknown) = ^CallSideEffect : ~m? +# 1063| mu1063_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1063_1 +# 1064| r1064_1(glval) = VariableAddress[x348] : +# 1064| r1064_2(glval) = FunctionAddress[~String] : +# 1064| v1064_3(void) = Call[~String] : func:r1064_2, this:r1064_1 +# 1064| mu1064_4(unknown) = ^CallSideEffect : ~m? +# 1064| v1064_5(void) = ^IndirectReadSideEffect[-1] : &:r1064_1, ~m? +# 1064| mu1064_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1064_1 +# 1064| r1064_7(bool) = Constant[0] : +# 1064| v1064_8(void) = ConditionalBranch : r1064_7 +#-----| False -> Block 349 +#-----| True -> Block 1026 + +# 1066| Block 349 +# 1066| r1066_1(glval) = VariableAddress[x349] : +# 1066| mu1066_2(String) = Uninitialized[x349] : &:r1066_1 +# 1066| r1066_3(glval) = FunctionAddress[String] : +# 1066| v1066_4(void) = Call[String] : func:r1066_3, this:r1066_1 +# 1066| mu1066_5(unknown) = ^CallSideEffect : ~m? +# 1066| mu1066_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1066_1 +# 1067| r1067_1(glval) = VariableAddress[x349] : +# 1067| r1067_2(glval) = FunctionAddress[~String] : +# 1067| v1067_3(void) = Call[~String] : func:r1067_2, this:r1067_1 +# 1067| mu1067_4(unknown) = ^CallSideEffect : ~m? +# 1067| v1067_5(void) = ^IndirectReadSideEffect[-1] : &:r1067_1, ~m? +# 1067| mu1067_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1067_1 +# 1067| r1067_7(bool) = Constant[0] : +# 1067| v1067_8(void) = ConditionalBranch : r1067_7 +#-----| False -> Block 350 +#-----| True -> Block 1026 + +# 1069| Block 350 +# 1069| r1069_1(glval) = VariableAddress[x350] : +# 1069| mu1069_2(String) = Uninitialized[x350] : &:r1069_1 +# 1069| r1069_3(glval) = FunctionAddress[String] : +# 1069| v1069_4(void) = Call[String] : func:r1069_3, this:r1069_1 +# 1069| mu1069_5(unknown) = ^CallSideEffect : ~m? +# 1069| mu1069_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1069_1 +# 1070| r1070_1(glval) = VariableAddress[x350] : +# 1070| r1070_2(glval) = FunctionAddress[~String] : +# 1070| v1070_3(void) = Call[~String] : func:r1070_2, this:r1070_1 +# 1070| mu1070_4(unknown) = ^CallSideEffect : ~m? +# 1070| v1070_5(void) = ^IndirectReadSideEffect[-1] : &:r1070_1, ~m? +# 1070| mu1070_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1070_1 +# 1070| r1070_7(bool) = Constant[0] : +# 1070| v1070_8(void) = ConditionalBranch : r1070_7 +#-----| False -> Block 351 +#-----| True -> Block 1026 + +# 1072| Block 351 +# 1072| r1072_1(glval) = VariableAddress[x351] : +# 1072| mu1072_2(String) = Uninitialized[x351] : &:r1072_1 +# 1072| r1072_3(glval) = FunctionAddress[String] : +# 1072| v1072_4(void) = Call[String] : func:r1072_3, this:r1072_1 +# 1072| mu1072_5(unknown) = ^CallSideEffect : ~m? +# 1072| mu1072_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1072_1 +# 1073| r1073_1(glval) = VariableAddress[x351] : +# 1073| r1073_2(glval) = FunctionAddress[~String] : +# 1073| v1073_3(void) = Call[~String] : func:r1073_2, this:r1073_1 +# 1073| mu1073_4(unknown) = ^CallSideEffect : ~m? +# 1073| v1073_5(void) = ^IndirectReadSideEffect[-1] : &:r1073_1, ~m? +# 1073| mu1073_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1073_1 +# 1073| r1073_7(bool) = Constant[0] : +# 1073| v1073_8(void) = ConditionalBranch : r1073_7 +#-----| False -> Block 352 +#-----| True -> Block 1026 + +# 1075| Block 352 +# 1075| r1075_1(glval) = VariableAddress[x352] : +# 1075| mu1075_2(String) = Uninitialized[x352] : &:r1075_1 +# 1075| r1075_3(glval) = FunctionAddress[String] : +# 1075| v1075_4(void) = Call[String] : func:r1075_3, this:r1075_1 +# 1075| mu1075_5(unknown) = ^CallSideEffect : ~m? +# 1075| mu1075_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1075_1 +# 1076| r1076_1(glval) = VariableAddress[x352] : +# 1076| r1076_2(glval) = FunctionAddress[~String] : +# 1076| v1076_3(void) = Call[~String] : func:r1076_2, this:r1076_1 +# 1076| mu1076_4(unknown) = ^CallSideEffect : ~m? +# 1076| v1076_5(void) = ^IndirectReadSideEffect[-1] : &:r1076_1, ~m? +# 1076| mu1076_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1076_1 +# 1076| r1076_7(bool) = Constant[0] : +# 1076| v1076_8(void) = ConditionalBranch : r1076_7 +#-----| False -> Block 353 +#-----| True -> Block 1026 + +# 1078| Block 353 +# 1078| r1078_1(glval) = VariableAddress[x353] : +# 1078| mu1078_2(String) = Uninitialized[x353] : &:r1078_1 +# 1078| r1078_3(glval) = FunctionAddress[String] : +# 1078| v1078_4(void) = Call[String] : func:r1078_3, this:r1078_1 +# 1078| mu1078_5(unknown) = ^CallSideEffect : ~m? +# 1078| mu1078_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1078_1 +# 1079| r1079_1(glval) = VariableAddress[x353] : +# 1079| r1079_2(glval) = FunctionAddress[~String] : +# 1079| v1079_3(void) = Call[~String] : func:r1079_2, this:r1079_1 +# 1079| mu1079_4(unknown) = ^CallSideEffect : ~m? +# 1079| v1079_5(void) = ^IndirectReadSideEffect[-1] : &:r1079_1, ~m? +# 1079| mu1079_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1079_1 +# 1079| r1079_7(bool) = Constant[0] : +# 1079| v1079_8(void) = ConditionalBranch : r1079_7 +#-----| False -> Block 354 +#-----| True -> Block 1026 + +# 1081| Block 354 +# 1081| r1081_1(glval) = VariableAddress[x354] : +# 1081| mu1081_2(String) = Uninitialized[x354] : &:r1081_1 +# 1081| r1081_3(glval) = FunctionAddress[String] : +# 1081| v1081_4(void) = Call[String] : func:r1081_3, this:r1081_1 +# 1081| mu1081_5(unknown) = ^CallSideEffect : ~m? +# 1081| mu1081_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1081_1 +# 1082| r1082_1(glval) = VariableAddress[x354] : +# 1082| r1082_2(glval) = FunctionAddress[~String] : +# 1082| v1082_3(void) = Call[~String] : func:r1082_2, this:r1082_1 +# 1082| mu1082_4(unknown) = ^CallSideEffect : ~m? +# 1082| v1082_5(void) = ^IndirectReadSideEffect[-1] : &:r1082_1, ~m? +# 1082| mu1082_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1082_1 +# 1082| r1082_7(bool) = Constant[0] : +# 1082| v1082_8(void) = ConditionalBranch : r1082_7 +#-----| False -> Block 355 +#-----| True -> Block 1026 + +# 1084| Block 355 +# 1084| r1084_1(glval) = VariableAddress[x355] : +# 1084| mu1084_2(String) = Uninitialized[x355] : &:r1084_1 +# 1084| r1084_3(glval) = FunctionAddress[String] : +# 1084| v1084_4(void) = Call[String] : func:r1084_3, this:r1084_1 +# 1084| mu1084_5(unknown) = ^CallSideEffect : ~m? +# 1084| mu1084_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1084_1 +# 1085| r1085_1(glval) = VariableAddress[x355] : +# 1085| r1085_2(glval) = FunctionAddress[~String] : +# 1085| v1085_3(void) = Call[~String] : func:r1085_2, this:r1085_1 +# 1085| mu1085_4(unknown) = ^CallSideEffect : ~m? +# 1085| v1085_5(void) = ^IndirectReadSideEffect[-1] : &:r1085_1, ~m? +# 1085| mu1085_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1085_1 +# 1085| r1085_7(bool) = Constant[0] : +# 1085| v1085_8(void) = ConditionalBranch : r1085_7 +#-----| False -> Block 356 +#-----| True -> Block 1026 + +# 1087| Block 356 +# 1087| r1087_1(glval) = VariableAddress[x356] : +# 1087| mu1087_2(String) = Uninitialized[x356] : &:r1087_1 +# 1087| r1087_3(glval) = FunctionAddress[String] : +# 1087| v1087_4(void) = Call[String] : func:r1087_3, this:r1087_1 +# 1087| mu1087_5(unknown) = ^CallSideEffect : ~m? +# 1087| mu1087_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1087_1 +# 1088| r1088_1(glval) = VariableAddress[x356] : +# 1088| r1088_2(glval) = FunctionAddress[~String] : +# 1088| v1088_3(void) = Call[~String] : func:r1088_2, this:r1088_1 +# 1088| mu1088_4(unknown) = ^CallSideEffect : ~m? +# 1088| v1088_5(void) = ^IndirectReadSideEffect[-1] : &:r1088_1, ~m? +# 1088| mu1088_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1088_1 +# 1088| r1088_7(bool) = Constant[0] : +# 1088| v1088_8(void) = ConditionalBranch : r1088_7 +#-----| False -> Block 357 +#-----| True -> Block 1026 + +# 1090| Block 357 +# 1090| r1090_1(glval) = VariableAddress[x357] : +# 1090| mu1090_2(String) = Uninitialized[x357] : &:r1090_1 +# 1090| r1090_3(glval) = FunctionAddress[String] : +# 1090| v1090_4(void) = Call[String] : func:r1090_3, this:r1090_1 +# 1090| mu1090_5(unknown) = ^CallSideEffect : ~m? +# 1090| mu1090_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1090_1 +# 1091| r1091_1(glval) = VariableAddress[x357] : +# 1091| r1091_2(glval) = FunctionAddress[~String] : +# 1091| v1091_3(void) = Call[~String] : func:r1091_2, this:r1091_1 +# 1091| mu1091_4(unknown) = ^CallSideEffect : ~m? +# 1091| v1091_5(void) = ^IndirectReadSideEffect[-1] : &:r1091_1, ~m? +# 1091| mu1091_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1091_1 +# 1091| r1091_7(bool) = Constant[0] : +# 1091| v1091_8(void) = ConditionalBranch : r1091_7 +#-----| False -> Block 358 +#-----| True -> Block 1026 + +# 1093| Block 358 +# 1093| r1093_1(glval) = VariableAddress[x358] : +# 1093| mu1093_2(String) = Uninitialized[x358] : &:r1093_1 +# 1093| r1093_3(glval) = FunctionAddress[String] : +# 1093| v1093_4(void) = Call[String] : func:r1093_3, this:r1093_1 +# 1093| mu1093_5(unknown) = ^CallSideEffect : ~m? +# 1093| mu1093_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1093_1 +# 1094| r1094_1(glval) = VariableAddress[x358] : +# 1094| r1094_2(glval) = FunctionAddress[~String] : +# 1094| v1094_3(void) = Call[~String] : func:r1094_2, this:r1094_1 +# 1094| mu1094_4(unknown) = ^CallSideEffect : ~m? +# 1094| v1094_5(void) = ^IndirectReadSideEffect[-1] : &:r1094_1, ~m? +# 1094| mu1094_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1094_1 +# 1094| r1094_7(bool) = Constant[0] : +# 1094| v1094_8(void) = ConditionalBranch : r1094_7 +#-----| False -> Block 359 +#-----| True -> Block 1026 + +# 1096| Block 359 +# 1096| r1096_1(glval) = VariableAddress[x359] : +# 1096| mu1096_2(String) = Uninitialized[x359] : &:r1096_1 +# 1096| r1096_3(glval) = FunctionAddress[String] : +# 1096| v1096_4(void) = Call[String] : func:r1096_3, this:r1096_1 +# 1096| mu1096_5(unknown) = ^CallSideEffect : ~m? +# 1096| mu1096_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1096_1 +# 1097| r1097_1(glval) = VariableAddress[x359] : +# 1097| r1097_2(glval) = FunctionAddress[~String] : +# 1097| v1097_3(void) = Call[~String] : func:r1097_2, this:r1097_1 +# 1097| mu1097_4(unknown) = ^CallSideEffect : ~m? +# 1097| v1097_5(void) = ^IndirectReadSideEffect[-1] : &:r1097_1, ~m? +# 1097| mu1097_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1097_1 +# 1097| r1097_7(bool) = Constant[0] : +# 1097| v1097_8(void) = ConditionalBranch : r1097_7 +#-----| False -> Block 360 +#-----| True -> Block 1026 + +# 1099| Block 360 +# 1099| r1099_1(glval) = VariableAddress[x360] : +# 1099| mu1099_2(String) = Uninitialized[x360] : &:r1099_1 +# 1099| r1099_3(glval) = FunctionAddress[String] : +# 1099| v1099_4(void) = Call[String] : func:r1099_3, this:r1099_1 +# 1099| mu1099_5(unknown) = ^CallSideEffect : ~m? +# 1099| mu1099_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1099_1 +# 1100| r1100_1(glval) = VariableAddress[x360] : +# 1100| r1100_2(glval) = FunctionAddress[~String] : +# 1100| v1100_3(void) = Call[~String] : func:r1100_2, this:r1100_1 +# 1100| mu1100_4(unknown) = ^CallSideEffect : ~m? +# 1100| v1100_5(void) = ^IndirectReadSideEffect[-1] : &:r1100_1, ~m? +# 1100| mu1100_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1100_1 +# 1100| r1100_7(bool) = Constant[0] : +# 1100| v1100_8(void) = ConditionalBranch : r1100_7 +#-----| False -> Block 361 +#-----| True -> Block 1026 + +# 1102| Block 361 +# 1102| r1102_1(glval) = VariableAddress[x361] : +# 1102| mu1102_2(String) = Uninitialized[x361] : &:r1102_1 +# 1102| r1102_3(glval) = FunctionAddress[String] : +# 1102| v1102_4(void) = Call[String] : func:r1102_3, this:r1102_1 +# 1102| mu1102_5(unknown) = ^CallSideEffect : ~m? +# 1102| mu1102_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1102_1 +# 1103| r1103_1(glval) = VariableAddress[x361] : +# 1103| r1103_2(glval) = FunctionAddress[~String] : +# 1103| v1103_3(void) = Call[~String] : func:r1103_2, this:r1103_1 +# 1103| mu1103_4(unknown) = ^CallSideEffect : ~m? +# 1103| v1103_5(void) = ^IndirectReadSideEffect[-1] : &:r1103_1, ~m? +# 1103| mu1103_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1103_1 +# 1103| r1103_7(bool) = Constant[0] : +# 1103| v1103_8(void) = ConditionalBranch : r1103_7 +#-----| False -> Block 362 +#-----| True -> Block 1026 + +# 1105| Block 362 +# 1105| r1105_1(glval) = VariableAddress[x362] : +# 1105| mu1105_2(String) = Uninitialized[x362] : &:r1105_1 +# 1105| r1105_3(glval) = FunctionAddress[String] : +# 1105| v1105_4(void) = Call[String] : func:r1105_3, this:r1105_1 +# 1105| mu1105_5(unknown) = ^CallSideEffect : ~m? +# 1105| mu1105_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1105_1 +# 1106| r1106_1(glval) = VariableAddress[x362] : +# 1106| r1106_2(glval) = FunctionAddress[~String] : +# 1106| v1106_3(void) = Call[~String] : func:r1106_2, this:r1106_1 +# 1106| mu1106_4(unknown) = ^CallSideEffect : ~m? +# 1106| v1106_5(void) = ^IndirectReadSideEffect[-1] : &:r1106_1, ~m? +# 1106| mu1106_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1106_1 +# 1106| r1106_7(bool) = Constant[0] : +# 1106| v1106_8(void) = ConditionalBranch : r1106_7 +#-----| False -> Block 363 +#-----| True -> Block 1026 + +# 1108| Block 363 +# 1108| r1108_1(glval) = VariableAddress[x363] : +# 1108| mu1108_2(String) = Uninitialized[x363] : &:r1108_1 +# 1108| r1108_3(glval) = FunctionAddress[String] : +# 1108| v1108_4(void) = Call[String] : func:r1108_3, this:r1108_1 +# 1108| mu1108_5(unknown) = ^CallSideEffect : ~m? +# 1108| mu1108_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1108_1 +# 1109| r1109_1(glval) = VariableAddress[x363] : +# 1109| r1109_2(glval) = FunctionAddress[~String] : +# 1109| v1109_3(void) = Call[~String] : func:r1109_2, this:r1109_1 +# 1109| mu1109_4(unknown) = ^CallSideEffect : ~m? +# 1109| v1109_5(void) = ^IndirectReadSideEffect[-1] : &:r1109_1, ~m? +# 1109| mu1109_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1109_1 +# 1109| r1109_7(bool) = Constant[0] : +# 1109| v1109_8(void) = ConditionalBranch : r1109_7 +#-----| False -> Block 364 +#-----| True -> Block 1026 + +# 1111| Block 364 +# 1111| r1111_1(glval) = VariableAddress[x364] : +# 1111| mu1111_2(String) = Uninitialized[x364] : &:r1111_1 +# 1111| r1111_3(glval) = FunctionAddress[String] : +# 1111| v1111_4(void) = Call[String] : func:r1111_3, this:r1111_1 +# 1111| mu1111_5(unknown) = ^CallSideEffect : ~m? +# 1111| mu1111_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1111_1 +# 1112| r1112_1(glval) = VariableAddress[x364] : +# 1112| r1112_2(glval) = FunctionAddress[~String] : +# 1112| v1112_3(void) = Call[~String] : func:r1112_2, this:r1112_1 +# 1112| mu1112_4(unknown) = ^CallSideEffect : ~m? +# 1112| v1112_5(void) = ^IndirectReadSideEffect[-1] : &:r1112_1, ~m? +# 1112| mu1112_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1112_1 +# 1112| r1112_7(bool) = Constant[0] : +# 1112| v1112_8(void) = ConditionalBranch : r1112_7 +#-----| False -> Block 365 +#-----| True -> Block 1026 + +# 1114| Block 365 +# 1114| r1114_1(glval) = VariableAddress[x365] : +# 1114| mu1114_2(String) = Uninitialized[x365] : &:r1114_1 +# 1114| r1114_3(glval) = FunctionAddress[String] : +# 1114| v1114_4(void) = Call[String] : func:r1114_3, this:r1114_1 +# 1114| mu1114_5(unknown) = ^CallSideEffect : ~m? +# 1114| mu1114_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1114_1 +# 1115| r1115_1(glval) = VariableAddress[x365] : +# 1115| r1115_2(glval) = FunctionAddress[~String] : +# 1115| v1115_3(void) = Call[~String] : func:r1115_2, this:r1115_1 +# 1115| mu1115_4(unknown) = ^CallSideEffect : ~m? +# 1115| v1115_5(void) = ^IndirectReadSideEffect[-1] : &:r1115_1, ~m? +# 1115| mu1115_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1115_1 +# 1115| r1115_7(bool) = Constant[0] : +# 1115| v1115_8(void) = ConditionalBranch : r1115_7 +#-----| False -> Block 366 +#-----| True -> Block 1026 + +# 1117| Block 366 +# 1117| r1117_1(glval) = VariableAddress[x366] : +# 1117| mu1117_2(String) = Uninitialized[x366] : &:r1117_1 +# 1117| r1117_3(glval) = FunctionAddress[String] : +# 1117| v1117_4(void) = Call[String] : func:r1117_3, this:r1117_1 +# 1117| mu1117_5(unknown) = ^CallSideEffect : ~m? +# 1117| mu1117_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1117_1 +# 1118| r1118_1(glval) = VariableAddress[x366] : +# 1118| r1118_2(glval) = FunctionAddress[~String] : +# 1118| v1118_3(void) = Call[~String] : func:r1118_2, this:r1118_1 +# 1118| mu1118_4(unknown) = ^CallSideEffect : ~m? +# 1118| v1118_5(void) = ^IndirectReadSideEffect[-1] : &:r1118_1, ~m? +# 1118| mu1118_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1118_1 +# 1118| r1118_7(bool) = Constant[0] : +# 1118| v1118_8(void) = ConditionalBranch : r1118_7 +#-----| False -> Block 367 +#-----| True -> Block 1026 + +# 1120| Block 367 +# 1120| r1120_1(glval) = VariableAddress[x367] : +# 1120| mu1120_2(String) = Uninitialized[x367] : &:r1120_1 +# 1120| r1120_3(glval) = FunctionAddress[String] : +# 1120| v1120_4(void) = Call[String] : func:r1120_3, this:r1120_1 +# 1120| mu1120_5(unknown) = ^CallSideEffect : ~m? +# 1120| mu1120_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1120_1 +# 1121| r1121_1(glval) = VariableAddress[x367] : +# 1121| r1121_2(glval) = FunctionAddress[~String] : +# 1121| v1121_3(void) = Call[~String] : func:r1121_2, this:r1121_1 +# 1121| mu1121_4(unknown) = ^CallSideEffect : ~m? +# 1121| v1121_5(void) = ^IndirectReadSideEffect[-1] : &:r1121_1, ~m? +# 1121| mu1121_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1121_1 +# 1121| r1121_7(bool) = Constant[0] : +# 1121| v1121_8(void) = ConditionalBranch : r1121_7 +#-----| False -> Block 368 +#-----| True -> Block 1026 + +# 1123| Block 368 +# 1123| r1123_1(glval) = VariableAddress[x368] : +# 1123| mu1123_2(String) = Uninitialized[x368] : &:r1123_1 +# 1123| r1123_3(glval) = FunctionAddress[String] : +# 1123| v1123_4(void) = Call[String] : func:r1123_3, this:r1123_1 +# 1123| mu1123_5(unknown) = ^CallSideEffect : ~m? +# 1123| mu1123_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1123_1 +# 1124| r1124_1(glval) = VariableAddress[x368] : +# 1124| r1124_2(glval) = FunctionAddress[~String] : +# 1124| v1124_3(void) = Call[~String] : func:r1124_2, this:r1124_1 +# 1124| mu1124_4(unknown) = ^CallSideEffect : ~m? +# 1124| v1124_5(void) = ^IndirectReadSideEffect[-1] : &:r1124_1, ~m? +# 1124| mu1124_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1124_1 +# 1124| r1124_7(bool) = Constant[0] : +# 1124| v1124_8(void) = ConditionalBranch : r1124_7 +#-----| False -> Block 369 +#-----| True -> Block 1026 + +# 1126| Block 369 +# 1126| r1126_1(glval) = VariableAddress[x369] : +# 1126| mu1126_2(String) = Uninitialized[x369] : &:r1126_1 +# 1126| r1126_3(glval) = FunctionAddress[String] : +# 1126| v1126_4(void) = Call[String] : func:r1126_3, this:r1126_1 +# 1126| mu1126_5(unknown) = ^CallSideEffect : ~m? +# 1126| mu1126_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1126_1 +# 1127| r1127_1(glval) = VariableAddress[x369] : +# 1127| r1127_2(glval) = FunctionAddress[~String] : +# 1127| v1127_3(void) = Call[~String] : func:r1127_2, this:r1127_1 +# 1127| mu1127_4(unknown) = ^CallSideEffect : ~m? +# 1127| v1127_5(void) = ^IndirectReadSideEffect[-1] : &:r1127_1, ~m? +# 1127| mu1127_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1127_1 +# 1127| r1127_7(bool) = Constant[0] : +# 1127| v1127_8(void) = ConditionalBranch : r1127_7 +#-----| False -> Block 370 +#-----| True -> Block 1026 + +# 1129| Block 370 +# 1129| r1129_1(glval) = VariableAddress[x370] : +# 1129| mu1129_2(String) = Uninitialized[x370] : &:r1129_1 +# 1129| r1129_3(glval) = FunctionAddress[String] : +# 1129| v1129_4(void) = Call[String] : func:r1129_3, this:r1129_1 +# 1129| mu1129_5(unknown) = ^CallSideEffect : ~m? +# 1129| mu1129_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1129_1 +# 1130| r1130_1(glval) = VariableAddress[x370] : +# 1130| r1130_2(glval) = FunctionAddress[~String] : +# 1130| v1130_3(void) = Call[~String] : func:r1130_2, this:r1130_1 +# 1130| mu1130_4(unknown) = ^CallSideEffect : ~m? +# 1130| v1130_5(void) = ^IndirectReadSideEffect[-1] : &:r1130_1, ~m? +# 1130| mu1130_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1130_1 +# 1130| r1130_7(bool) = Constant[0] : +# 1130| v1130_8(void) = ConditionalBranch : r1130_7 +#-----| False -> Block 371 +#-----| True -> Block 1026 + +# 1132| Block 371 +# 1132| r1132_1(glval) = VariableAddress[x371] : +# 1132| mu1132_2(String) = Uninitialized[x371] : &:r1132_1 +# 1132| r1132_3(glval) = FunctionAddress[String] : +# 1132| v1132_4(void) = Call[String] : func:r1132_3, this:r1132_1 +# 1132| mu1132_5(unknown) = ^CallSideEffect : ~m? +# 1132| mu1132_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1132_1 +# 1133| r1133_1(glval) = VariableAddress[x371] : +# 1133| r1133_2(glval) = FunctionAddress[~String] : +# 1133| v1133_3(void) = Call[~String] : func:r1133_2, this:r1133_1 +# 1133| mu1133_4(unknown) = ^CallSideEffect : ~m? +# 1133| v1133_5(void) = ^IndirectReadSideEffect[-1] : &:r1133_1, ~m? +# 1133| mu1133_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1133_1 +# 1133| r1133_7(bool) = Constant[0] : +# 1133| v1133_8(void) = ConditionalBranch : r1133_7 +#-----| False -> Block 372 +#-----| True -> Block 1026 + +# 1135| Block 372 +# 1135| r1135_1(glval) = VariableAddress[x372] : +# 1135| mu1135_2(String) = Uninitialized[x372] : &:r1135_1 +# 1135| r1135_3(glval) = FunctionAddress[String] : +# 1135| v1135_4(void) = Call[String] : func:r1135_3, this:r1135_1 +# 1135| mu1135_5(unknown) = ^CallSideEffect : ~m? +# 1135| mu1135_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1135_1 +# 1136| r1136_1(glval) = VariableAddress[x372] : +# 1136| r1136_2(glval) = FunctionAddress[~String] : +# 1136| v1136_3(void) = Call[~String] : func:r1136_2, this:r1136_1 +# 1136| mu1136_4(unknown) = ^CallSideEffect : ~m? +# 1136| v1136_5(void) = ^IndirectReadSideEffect[-1] : &:r1136_1, ~m? +# 1136| mu1136_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1136_1 +# 1136| r1136_7(bool) = Constant[0] : +# 1136| v1136_8(void) = ConditionalBranch : r1136_7 +#-----| False -> Block 373 +#-----| True -> Block 1026 + +# 1138| Block 373 +# 1138| r1138_1(glval) = VariableAddress[x373] : +# 1138| mu1138_2(String) = Uninitialized[x373] : &:r1138_1 +# 1138| r1138_3(glval) = FunctionAddress[String] : +# 1138| v1138_4(void) = Call[String] : func:r1138_3, this:r1138_1 +# 1138| mu1138_5(unknown) = ^CallSideEffect : ~m? +# 1138| mu1138_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1138_1 +# 1139| r1139_1(glval) = VariableAddress[x373] : +# 1139| r1139_2(glval) = FunctionAddress[~String] : +# 1139| v1139_3(void) = Call[~String] : func:r1139_2, this:r1139_1 +# 1139| mu1139_4(unknown) = ^CallSideEffect : ~m? +# 1139| v1139_5(void) = ^IndirectReadSideEffect[-1] : &:r1139_1, ~m? +# 1139| mu1139_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1139_1 +# 1139| r1139_7(bool) = Constant[0] : +# 1139| v1139_8(void) = ConditionalBranch : r1139_7 +#-----| False -> Block 374 +#-----| True -> Block 1026 + +# 1141| Block 374 +# 1141| r1141_1(glval) = VariableAddress[x374] : +# 1141| mu1141_2(String) = Uninitialized[x374] : &:r1141_1 +# 1141| r1141_3(glval) = FunctionAddress[String] : +# 1141| v1141_4(void) = Call[String] : func:r1141_3, this:r1141_1 +# 1141| mu1141_5(unknown) = ^CallSideEffect : ~m? +# 1141| mu1141_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1141_1 +# 1142| r1142_1(glval) = VariableAddress[x374] : +# 1142| r1142_2(glval) = FunctionAddress[~String] : +# 1142| v1142_3(void) = Call[~String] : func:r1142_2, this:r1142_1 +# 1142| mu1142_4(unknown) = ^CallSideEffect : ~m? +# 1142| v1142_5(void) = ^IndirectReadSideEffect[-1] : &:r1142_1, ~m? +# 1142| mu1142_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1142_1 +# 1142| r1142_7(bool) = Constant[0] : +# 1142| v1142_8(void) = ConditionalBranch : r1142_7 +#-----| False -> Block 375 +#-----| True -> Block 1026 + +# 1144| Block 375 +# 1144| r1144_1(glval) = VariableAddress[x375] : +# 1144| mu1144_2(String) = Uninitialized[x375] : &:r1144_1 +# 1144| r1144_3(glval) = FunctionAddress[String] : +# 1144| v1144_4(void) = Call[String] : func:r1144_3, this:r1144_1 +# 1144| mu1144_5(unknown) = ^CallSideEffect : ~m? +# 1144| mu1144_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1144_1 +# 1145| r1145_1(glval) = VariableAddress[x375] : +# 1145| r1145_2(glval) = FunctionAddress[~String] : +# 1145| v1145_3(void) = Call[~String] : func:r1145_2, this:r1145_1 +# 1145| mu1145_4(unknown) = ^CallSideEffect : ~m? +# 1145| v1145_5(void) = ^IndirectReadSideEffect[-1] : &:r1145_1, ~m? +# 1145| mu1145_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1145_1 +# 1145| r1145_7(bool) = Constant[0] : +# 1145| v1145_8(void) = ConditionalBranch : r1145_7 +#-----| False -> Block 376 +#-----| True -> Block 1026 + +# 1147| Block 376 +# 1147| r1147_1(glval) = VariableAddress[x376] : +# 1147| mu1147_2(String) = Uninitialized[x376] : &:r1147_1 +# 1147| r1147_3(glval) = FunctionAddress[String] : +# 1147| v1147_4(void) = Call[String] : func:r1147_3, this:r1147_1 +# 1147| mu1147_5(unknown) = ^CallSideEffect : ~m? +# 1147| mu1147_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1147_1 +# 1148| r1148_1(glval) = VariableAddress[x376] : +# 1148| r1148_2(glval) = FunctionAddress[~String] : +# 1148| v1148_3(void) = Call[~String] : func:r1148_2, this:r1148_1 +# 1148| mu1148_4(unknown) = ^CallSideEffect : ~m? +# 1148| v1148_5(void) = ^IndirectReadSideEffect[-1] : &:r1148_1, ~m? +# 1148| mu1148_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1148_1 +# 1148| r1148_7(bool) = Constant[0] : +# 1148| v1148_8(void) = ConditionalBranch : r1148_7 +#-----| False -> Block 377 +#-----| True -> Block 1026 + +# 1150| Block 377 +# 1150| r1150_1(glval) = VariableAddress[x377] : +# 1150| mu1150_2(String) = Uninitialized[x377] : &:r1150_1 +# 1150| r1150_3(glval) = FunctionAddress[String] : +# 1150| v1150_4(void) = Call[String] : func:r1150_3, this:r1150_1 +# 1150| mu1150_5(unknown) = ^CallSideEffect : ~m? +# 1150| mu1150_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1150_1 +# 1151| r1151_1(glval) = VariableAddress[x377] : +# 1151| r1151_2(glval) = FunctionAddress[~String] : +# 1151| v1151_3(void) = Call[~String] : func:r1151_2, this:r1151_1 +# 1151| mu1151_4(unknown) = ^CallSideEffect : ~m? +# 1151| v1151_5(void) = ^IndirectReadSideEffect[-1] : &:r1151_1, ~m? +# 1151| mu1151_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1151_1 +# 1151| r1151_7(bool) = Constant[0] : +# 1151| v1151_8(void) = ConditionalBranch : r1151_7 +#-----| False -> Block 378 +#-----| True -> Block 1026 + +# 1153| Block 378 +# 1153| r1153_1(glval) = VariableAddress[x378] : +# 1153| mu1153_2(String) = Uninitialized[x378] : &:r1153_1 +# 1153| r1153_3(glval) = FunctionAddress[String] : +# 1153| v1153_4(void) = Call[String] : func:r1153_3, this:r1153_1 +# 1153| mu1153_5(unknown) = ^CallSideEffect : ~m? +# 1153| mu1153_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1153_1 +# 1154| r1154_1(glval) = VariableAddress[x378] : +# 1154| r1154_2(glval) = FunctionAddress[~String] : +# 1154| v1154_3(void) = Call[~String] : func:r1154_2, this:r1154_1 +# 1154| mu1154_4(unknown) = ^CallSideEffect : ~m? +# 1154| v1154_5(void) = ^IndirectReadSideEffect[-1] : &:r1154_1, ~m? +# 1154| mu1154_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1154_1 +# 1154| r1154_7(bool) = Constant[0] : +# 1154| v1154_8(void) = ConditionalBranch : r1154_7 +#-----| False -> Block 379 +#-----| True -> Block 1026 + +# 1156| Block 379 +# 1156| r1156_1(glval) = VariableAddress[x379] : +# 1156| mu1156_2(String) = Uninitialized[x379] : &:r1156_1 +# 1156| r1156_3(glval) = FunctionAddress[String] : +# 1156| v1156_4(void) = Call[String] : func:r1156_3, this:r1156_1 +# 1156| mu1156_5(unknown) = ^CallSideEffect : ~m? +# 1156| mu1156_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1156_1 +# 1157| r1157_1(glval) = VariableAddress[x379] : +# 1157| r1157_2(glval) = FunctionAddress[~String] : +# 1157| v1157_3(void) = Call[~String] : func:r1157_2, this:r1157_1 +# 1157| mu1157_4(unknown) = ^CallSideEffect : ~m? +# 1157| v1157_5(void) = ^IndirectReadSideEffect[-1] : &:r1157_1, ~m? +# 1157| mu1157_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1157_1 +# 1157| r1157_7(bool) = Constant[0] : +# 1157| v1157_8(void) = ConditionalBranch : r1157_7 +#-----| False -> Block 380 +#-----| True -> Block 1026 + +# 1159| Block 380 +# 1159| r1159_1(glval) = VariableAddress[x380] : +# 1159| mu1159_2(String) = Uninitialized[x380] : &:r1159_1 +# 1159| r1159_3(glval) = FunctionAddress[String] : +# 1159| v1159_4(void) = Call[String] : func:r1159_3, this:r1159_1 +# 1159| mu1159_5(unknown) = ^CallSideEffect : ~m? +# 1159| mu1159_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1159_1 +# 1160| r1160_1(glval) = VariableAddress[x380] : +# 1160| r1160_2(glval) = FunctionAddress[~String] : +# 1160| v1160_3(void) = Call[~String] : func:r1160_2, this:r1160_1 +# 1160| mu1160_4(unknown) = ^CallSideEffect : ~m? +# 1160| v1160_5(void) = ^IndirectReadSideEffect[-1] : &:r1160_1, ~m? +# 1160| mu1160_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1160_1 +# 1160| r1160_7(bool) = Constant[0] : +# 1160| v1160_8(void) = ConditionalBranch : r1160_7 +#-----| False -> Block 381 +#-----| True -> Block 1026 + +# 1162| Block 381 +# 1162| r1162_1(glval) = VariableAddress[x381] : +# 1162| mu1162_2(String) = Uninitialized[x381] : &:r1162_1 +# 1162| r1162_3(glval) = FunctionAddress[String] : +# 1162| v1162_4(void) = Call[String] : func:r1162_3, this:r1162_1 +# 1162| mu1162_5(unknown) = ^CallSideEffect : ~m? +# 1162| mu1162_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1162_1 +# 1163| r1163_1(glval) = VariableAddress[x381] : +# 1163| r1163_2(glval) = FunctionAddress[~String] : +# 1163| v1163_3(void) = Call[~String] : func:r1163_2, this:r1163_1 +# 1163| mu1163_4(unknown) = ^CallSideEffect : ~m? +# 1163| v1163_5(void) = ^IndirectReadSideEffect[-1] : &:r1163_1, ~m? +# 1163| mu1163_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1163_1 +# 1163| r1163_7(bool) = Constant[0] : +# 1163| v1163_8(void) = ConditionalBranch : r1163_7 +#-----| False -> Block 382 +#-----| True -> Block 1026 + +# 1165| Block 382 +# 1165| r1165_1(glval) = VariableAddress[x382] : +# 1165| mu1165_2(String) = Uninitialized[x382] : &:r1165_1 +# 1165| r1165_3(glval) = FunctionAddress[String] : +# 1165| v1165_4(void) = Call[String] : func:r1165_3, this:r1165_1 +# 1165| mu1165_5(unknown) = ^CallSideEffect : ~m? +# 1165| mu1165_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1165_1 +# 1166| r1166_1(glval) = VariableAddress[x382] : +# 1166| r1166_2(glval) = FunctionAddress[~String] : +# 1166| v1166_3(void) = Call[~String] : func:r1166_2, this:r1166_1 +# 1166| mu1166_4(unknown) = ^CallSideEffect : ~m? +# 1166| v1166_5(void) = ^IndirectReadSideEffect[-1] : &:r1166_1, ~m? +# 1166| mu1166_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1166_1 +# 1166| r1166_7(bool) = Constant[0] : +# 1166| v1166_8(void) = ConditionalBranch : r1166_7 +#-----| False -> Block 383 +#-----| True -> Block 1026 + +# 1168| Block 383 +# 1168| r1168_1(glval) = VariableAddress[x383] : +# 1168| mu1168_2(String) = Uninitialized[x383] : &:r1168_1 +# 1168| r1168_3(glval) = FunctionAddress[String] : +# 1168| v1168_4(void) = Call[String] : func:r1168_3, this:r1168_1 +# 1168| mu1168_5(unknown) = ^CallSideEffect : ~m? +# 1168| mu1168_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1168_1 +# 1169| r1169_1(glval) = VariableAddress[x383] : +# 1169| r1169_2(glval) = FunctionAddress[~String] : +# 1169| v1169_3(void) = Call[~String] : func:r1169_2, this:r1169_1 +# 1169| mu1169_4(unknown) = ^CallSideEffect : ~m? +# 1169| v1169_5(void) = ^IndirectReadSideEffect[-1] : &:r1169_1, ~m? +# 1169| mu1169_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1169_1 +# 1169| r1169_7(bool) = Constant[0] : +# 1169| v1169_8(void) = ConditionalBranch : r1169_7 +#-----| False -> Block 384 +#-----| True -> Block 1026 + +# 1171| Block 384 +# 1171| r1171_1(glval) = VariableAddress[x384] : +# 1171| mu1171_2(String) = Uninitialized[x384] : &:r1171_1 +# 1171| r1171_3(glval) = FunctionAddress[String] : +# 1171| v1171_4(void) = Call[String] : func:r1171_3, this:r1171_1 +# 1171| mu1171_5(unknown) = ^CallSideEffect : ~m? +# 1171| mu1171_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1171_1 +# 1172| r1172_1(glval) = VariableAddress[x384] : +# 1172| r1172_2(glval) = FunctionAddress[~String] : +# 1172| v1172_3(void) = Call[~String] : func:r1172_2, this:r1172_1 +# 1172| mu1172_4(unknown) = ^CallSideEffect : ~m? +# 1172| v1172_5(void) = ^IndirectReadSideEffect[-1] : &:r1172_1, ~m? +# 1172| mu1172_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1172_1 +# 1172| r1172_7(bool) = Constant[0] : +# 1172| v1172_8(void) = ConditionalBranch : r1172_7 +#-----| False -> Block 385 +#-----| True -> Block 1026 + +# 1174| Block 385 +# 1174| r1174_1(glval) = VariableAddress[x385] : +# 1174| mu1174_2(String) = Uninitialized[x385] : &:r1174_1 +# 1174| r1174_3(glval) = FunctionAddress[String] : +# 1174| v1174_4(void) = Call[String] : func:r1174_3, this:r1174_1 +# 1174| mu1174_5(unknown) = ^CallSideEffect : ~m? +# 1174| mu1174_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1174_1 +# 1175| r1175_1(glval) = VariableAddress[x385] : +# 1175| r1175_2(glval) = FunctionAddress[~String] : +# 1175| v1175_3(void) = Call[~String] : func:r1175_2, this:r1175_1 +# 1175| mu1175_4(unknown) = ^CallSideEffect : ~m? +# 1175| v1175_5(void) = ^IndirectReadSideEffect[-1] : &:r1175_1, ~m? +# 1175| mu1175_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1175_1 +# 1175| r1175_7(bool) = Constant[0] : +# 1175| v1175_8(void) = ConditionalBranch : r1175_7 +#-----| False -> Block 386 +#-----| True -> Block 1026 + +# 1177| Block 386 +# 1177| r1177_1(glval) = VariableAddress[x386] : +# 1177| mu1177_2(String) = Uninitialized[x386] : &:r1177_1 +# 1177| r1177_3(glval) = FunctionAddress[String] : +# 1177| v1177_4(void) = Call[String] : func:r1177_3, this:r1177_1 +# 1177| mu1177_5(unknown) = ^CallSideEffect : ~m? +# 1177| mu1177_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1177_1 +# 1178| r1178_1(glval) = VariableAddress[x386] : +# 1178| r1178_2(glval) = FunctionAddress[~String] : +# 1178| v1178_3(void) = Call[~String] : func:r1178_2, this:r1178_1 +# 1178| mu1178_4(unknown) = ^CallSideEffect : ~m? +# 1178| v1178_5(void) = ^IndirectReadSideEffect[-1] : &:r1178_1, ~m? +# 1178| mu1178_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1178_1 +# 1178| r1178_7(bool) = Constant[0] : +# 1178| v1178_8(void) = ConditionalBranch : r1178_7 +#-----| False -> Block 387 +#-----| True -> Block 1026 + +# 1180| Block 387 +# 1180| r1180_1(glval) = VariableAddress[x387] : +# 1180| mu1180_2(String) = Uninitialized[x387] : &:r1180_1 +# 1180| r1180_3(glval) = FunctionAddress[String] : +# 1180| v1180_4(void) = Call[String] : func:r1180_3, this:r1180_1 +# 1180| mu1180_5(unknown) = ^CallSideEffect : ~m? +# 1180| mu1180_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1180_1 +# 1181| r1181_1(glval) = VariableAddress[x387] : +# 1181| r1181_2(glval) = FunctionAddress[~String] : +# 1181| v1181_3(void) = Call[~String] : func:r1181_2, this:r1181_1 +# 1181| mu1181_4(unknown) = ^CallSideEffect : ~m? +# 1181| v1181_5(void) = ^IndirectReadSideEffect[-1] : &:r1181_1, ~m? +# 1181| mu1181_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1181_1 +# 1181| r1181_7(bool) = Constant[0] : +# 1181| v1181_8(void) = ConditionalBranch : r1181_7 +#-----| False -> Block 388 +#-----| True -> Block 1026 + +# 1183| Block 388 +# 1183| r1183_1(glval) = VariableAddress[x388] : +# 1183| mu1183_2(String) = Uninitialized[x388] : &:r1183_1 +# 1183| r1183_3(glval) = FunctionAddress[String] : +# 1183| v1183_4(void) = Call[String] : func:r1183_3, this:r1183_1 +# 1183| mu1183_5(unknown) = ^CallSideEffect : ~m? +# 1183| mu1183_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1183_1 +# 1184| r1184_1(glval) = VariableAddress[x388] : +# 1184| r1184_2(glval) = FunctionAddress[~String] : +# 1184| v1184_3(void) = Call[~String] : func:r1184_2, this:r1184_1 +# 1184| mu1184_4(unknown) = ^CallSideEffect : ~m? +# 1184| v1184_5(void) = ^IndirectReadSideEffect[-1] : &:r1184_1, ~m? +# 1184| mu1184_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1184_1 +# 1184| r1184_7(bool) = Constant[0] : +# 1184| v1184_8(void) = ConditionalBranch : r1184_7 +#-----| False -> Block 389 +#-----| True -> Block 1026 + +# 1186| Block 389 +# 1186| r1186_1(glval) = VariableAddress[x389] : +# 1186| mu1186_2(String) = Uninitialized[x389] : &:r1186_1 +# 1186| r1186_3(glval) = FunctionAddress[String] : +# 1186| v1186_4(void) = Call[String] : func:r1186_3, this:r1186_1 +# 1186| mu1186_5(unknown) = ^CallSideEffect : ~m? +# 1186| mu1186_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1186_1 +# 1187| r1187_1(glval) = VariableAddress[x389] : +# 1187| r1187_2(glval) = FunctionAddress[~String] : +# 1187| v1187_3(void) = Call[~String] : func:r1187_2, this:r1187_1 +# 1187| mu1187_4(unknown) = ^CallSideEffect : ~m? +# 1187| v1187_5(void) = ^IndirectReadSideEffect[-1] : &:r1187_1, ~m? +# 1187| mu1187_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1187_1 +# 1187| r1187_7(bool) = Constant[0] : +# 1187| v1187_8(void) = ConditionalBranch : r1187_7 +#-----| False -> Block 390 +#-----| True -> Block 1026 + +# 1189| Block 390 +# 1189| r1189_1(glval) = VariableAddress[x390] : +# 1189| mu1189_2(String) = Uninitialized[x390] : &:r1189_1 +# 1189| r1189_3(glval) = FunctionAddress[String] : +# 1189| v1189_4(void) = Call[String] : func:r1189_3, this:r1189_1 +# 1189| mu1189_5(unknown) = ^CallSideEffect : ~m? +# 1189| mu1189_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1189_1 +# 1190| r1190_1(glval) = VariableAddress[x390] : +# 1190| r1190_2(glval) = FunctionAddress[~String] : +# 1190| v1190_3(void) = Call[~String] : func:r1190_2, this:r1190_1 +# 1190| mu1190_4(unknown) = ^CallSideEffect : ~m? +# 1190| v1190_5(void) = ^IndirectReadSideEffect[-1] : &:r1190_1, ~m? +# 1190| mu1190_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1190_1 +# 1190| r1190_7(bool) = Constant[0] : +# 1190| v1190_8(void) = ConditionalBranch : r1190_7 +#-----| False -> Block 391 +#-----| True -> Block 1026 + +# 1192| Block 391 +# 1192| r1192_1(glval) = VariableAddress[x391] : +# 1192| mu1192_2(String) = Uninitialized[x391] : &:r1192_1 +# 1192| r1192_3(glval) = FunctionAddress[String] : +# 1192| v1192_4(void) = Call[String] : func:r1192_3, this:r1192_1 +# 1192| mu1192_5(unknown) = ^CallSideEffect : ~m? +# 1192| mu1192_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1192_1 +# 1193| r1193_1(glval) = VariableAddress[x391] : +# 1193| r1193_2(glval) = FunctionAddress[~String] : +# 1193| v1193_3(void) = Call[~String] : func:r1193_2, this:r1193_1 +# 1193| mu1193_4(unknown) = ^CallSideEffect : ~m? +# 1193| v1193_5(void) = ^IndirectReadSideEffect[-1] : &:r1193_1, ~m? +# 1193| mu1193_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1193_1 +# 1193| r1193_7(bool) = Constant[0] : +# 1193| v1193_8(void) = ConditionalBranch : r1193_7 +#-----| False -> Block 392 +#-----| True -> Block 1026 + +# 1195| Block 392 +# 1195| r1195_1(glval) = VariableAddress[x392] : +# 1195| mu1195_2(String) = Uninitialized[x392] : &:r1195_1 +# 1195| r1195_3(glval) = FunctionAddress[String] : +# 1195| v1195_4(void) = Call[String] : func:r1195_3, this:r1195_1 +# 1195| mu1195_5(unknown) = ^CallSideEffect : ~m? +# 1195| mu1195_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1195_1 +# 1196| r1196_1(glval) = VariableAddress[x392] : +# 1196| r1196_2(glval) = FunctionAddress[~String] : +# 1196| v1196_3(void) = Call[~String] : func:r1196_2, this:r1196_1 +# 1196| mu1196_4(unknown) = ^CallSideEffect : ~m? +# 1196| v1196_5(void) = ^IndirectReadSideEffect[-1] : &:r1196_1, ~m? +# 1196| mu1196_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1196_1 +# 1196| r1196_7(bool) = Constant[0] : +# 1196| v1196_8(void) = ConditionalBranch : r1196_7 +#-----| False -> Block 393 +#-----| True -> Block 1026 + +# 1198| Block 393 +# 1198| r1198_1(glval) = VariableAddress[x393] : +# 1198| mu1198_2(String) = Uninitialized[x393] : &:r1198_1 +# 1198| r1198_3(glval) = FunctionAddress[String] : +# 1198| v1198_4(void) = Call[String] : func:r1198_3, this:r1198_1 +# 1198| mu1198_5(unknown) = ^CallSideEffect : ~m? +# 1198| mu1198_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1198_1 +# 1199| r1199_1(glval) = VariableAddress[x393] : +# 1199| r1199_2(glval) = FunctionAddress[~String] : +# 1199| v1199_3(void) = Call[~String] : func:r1199_2, this:r1199_1 +# 1199| mu1199_4(unknown) = ^CallSideEffect : ~m? +# 1199| v1199_5(void) = ^IndirectReadSideEffect[-1] : &:r1199_1, ~m? +# 1199| mu1199_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1199_1 +# 1199| r1199_7(bool) = Constant[0] : +# 1199| v1199_8(void) = ConditionalBranch : r1199_7 +#-----| False -> Block 394 +#-----| True -> Block 1026 + +# 1201| Block 394 +# 1201| r1201_1(glval) = VariableAddress[x394] : +# 1201| mu1201_2(String) = Uninitialized[x394] : &:r1201_1 +# 1201| r1201_3(glval) = FunctionAddress[String] : +# 1201| v1201_4(void) = Call[String] : func:r1201_3, this:r1201_1 +# 1201| mu1201_5(unknown) = ^CallSideEffect : ~m? +# 1201| mu1201_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1201_1 +# 1202| r1202_1(glval) = VariableAddress[x394] : +# 1202| r1202_2(glval) = FunctionAddress[~String] : +# 1202| v1202_3(void) = Call[~String] : func:r1202_2, this:r1202_1 +# 1202| mu1202_4(unknown) = ^CallSideEffect : ~m? +# 1202| v1202_5(void) = ^IndirectReadSideEffect[-1] : &:r1202_1, ~m? +# 1202| mu1202_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1202_1 +# 1202| r1202_7(bool) = Constant[0] : +# 1202| v1202_8(void) = ConditionalBranch : r1202_7 +#-----| False -> Block 395 +#-----| True -> Block 1026 + +# 1204| Block 395 +# 1204| r1204_1(glval) = VariableAddress[x395] : +# 1204| mu1204_2(String) = Uninitialized[x395] : &:r1204_1 +# 1204| r1204_3(glval) = FunctionAddress[String] : +# 1204| v1204_4(void) = Call[String] : func:r1204_3, this:r1204_1 +# 1204| mu1204_5(unknown) = ^CallSideEffect : ~m? +# 1204| mu1204_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1204_1 +# 1205| r1205_1(glval) = VariableAddress[x395] : +# 1205| r1205_2(glval) = FunctionAddress[~String] : +# 1205| v1205_3(void) = Call[~String] : func:r1205_2, this:r1205_1 +# 1205| mu1205_4(unknown) = ^CallSideEffect : ~m? +# 1205| v1205_5(void) = ^IndirectReadSideEffect[-1] : &:r1205_1, ~m? +# 1205| mu1205_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1205_1 +# 1205| r1205_7(bool) = Constant[0] : +# 1205| v1205_8(void) = ConditionalBranch : r1205_7 +#-----| False -> Block 396 +#-----| True -> Block 1026 + +# 1207| Block 396 +# 1207| r1207_1(glval) = VariableAddress[x396] : +# 1207| mu1207_2(String) = Uninitialized[x396] : &:r1207_1 +# 1207| r1207_3(glval) = FunctionAddress[String] : +# 1207| v1207_4(void) = Call[String] : func:r1207_3, this:r1207_1 +# 1207| mu1207_5(unknown) = ^CallSideEffect : ~m? +# 1207| mu1207_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1207_1 +# 1208| r1208_1(glval) = VariableAddress[x396] : +# 1208| r1208_2(glval) = FunctionAddress[~String] : +# 1208| v1208_3(void) = Call[~String] : func:r1208_2, this:r1208_1 +# 1208| mu1208_4(unknown) = ^CallSideEffect : ~m? +# 1208| v1208_5(void) = ^IndirectReadSideEffect[-1] : &:r1208_1, ~m? +# 1208| mu1208_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1208_1 +# 1208| r1208_7(bool) = Constant[0] : +# 1208| v1208_8(void) = ConditionalBranch : r1208_7 +#-----| False -> Block 397 +#-----| True -> Block 1026 + +# 1210| Block 397 +# 1210| r1210_1(glval) = VariableAddress[x397] : +# 1210| mu1210_2(String) = Uninitialized[x397] : &:r1210_1 +# 1210| r1210_3(glval) = FunctionAddress[String] : +# 1210| v1210_4(void) = Call[String] : func:r1210_3, this:r1210_1 +# 1210| mu1210_5(unknown) = ^CallSideEffect : ~m? +# 1210| mu1210_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1210_1 +# 1211| r1211_1(glval) = VariableAddress[x397] : +# 1211| r1211_2(glval) = FunctionAddress[~String] : +# 1211| v1211_3(void) = Call[~String] : func:r1211_2, this:r1211_1 +# 1211| mu1211_4(unknown) = ^CallSideEffect : ~m? +# 1211| v1211_5(void) = ^IndirectReadSideEffect[-1] : &:r1211_1, ~m? +# 1211| mu1211_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1211_1 +# 1211| r1211_7(bool) = Constant[0] : +# 1211| v1211_8(void) = ConditionalBranch : r1211_7 +#-----| False -> Block 398 +#-----| True -> Block 1026 + +# 1213| Block 398 +# 1213| r1213_1(glval) = VariableAddress[x398] : +# 1213| mu1213_2(String) = Uninitialized[x398] : &:r1213_1 +# 1213| r1213_3(glval) = FunctionAddress[String] : +# 1213| v1213_4(void) = Call[String] : func:r1213_3, this:r1213_1 +# 1213| mu1213_5(unknown) = ^CallSideEffect : ~m? +# 1213| mu1213_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1213_1 +# 1214| r1214_1(glval) = VariableAddress[x398] : +# 1214| r1214_2(glval) = FunctionAddress[~String] : +# 1214| v1214_3(void) = Call[~String] : func:r1214_2, this:r1214_1 +# 1214| mu1214_4(unknown) = ^CallSideEffect : ~m? +# 1214| v1214_5(void) = ^IndirectReadSideEffect[-1] : &:r1214_1, ~m? +# 1214| mu1214_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1214_1 +# 1214| r1214_7(bool) = Constant[0] : +# 1214| v1214_8(void) = ConditionalBranch : r1214_7 +#-----| False -> Block 399 +#-----| True -> Block 1026 + +# 1216| Block 399 +# 1216| r1216_1(glval) = VariableAddress[x399] : +# 1216| mu1216_2(String) = Uninitialized[x399] : &:r1216_1 +# 1216| r1216_3(glval) = FunctionAddress[String] : +# 1216| v1216_4(void) = Call[String] : func:r1216_3, this:r1216_1 +# 1216| mu1216_5(unknown) = ^CallSideEffect : ~m? +# 1216| mu1216_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1216_1 +# 1217| r1217_1(glval) = VariableAddress[x399] : +# 1217| r1217_2(glval) = FunctionAddress[~String] : +# 1217| v1217_3(void) = Call[~String] : func:r1217_2, this:r1217_1 +# 1217| mu1217_4(unknown) = ^CallSideEffect : ~m? +# 1217| v1217_5(void) = ^IndirectReadSideEffect[-1] : &:r1217_1, ~m? +# 1217| mu1217_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1217_1 +# 1217| r1217_7(bool) = Constant[0] : +# 1217| v1217_8(void) = ConditionalBranch : r1217_7 +#-----| False -> Block 400 +#-----| True -> Block 1026 + +# 1219| Block 400 +# 1219| r1219_1(glval) = VariableAddress[x400] : +# 1219| mu1219_2(String) = Uninitialized[x400] : &:r1219_1 +# 1219| r1219_3(glval) = FunctionAddress[String] : +# 1219| v1219_4(void) = Call[String] : func:r1219_3, this:r1219_1 +# 1219| mu1219_5(unknown) = ^CallSideEffect : ~m? +# 1219| mu1219_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1219_1 +# 1220| r1220_1(glval) = VariableAddress[x400] : +# 1220| r1220_2(glval) = FunctionAddress[~String] : +# 1220| v1220_3(void) = Call[~String] : func:r1220_2, this:r1220_1 +# 1220| mu1220_4(unknown) = ^CallSideEffect : ~m? +# 1220| v1220_5(void) = ^IndirectReadSideEffect[-1] : &:r1220_1, ~m? +# 1220| mu1220_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1220_1 +# 1220| r1220_7(bool) = Constant[0] : +# 1220| v1220_8(void) = ConditionalBranch : r1220_7 +#-----| False -> Block 401 +#-----| True -> Block 1026 + +# 1222| Block 401 +# 1222| r1222_1(glval) = VariableAddress[x401] : +# 1222| mu1222_2(String) = Uninitialized[x401] : &:r1222_1 +# 1222| r1222_3(glval) = FunctionAddress[String] : +# 1222| v1222_4(void) = Call[String] : func:r1222_3, this:r1222_1 +# 1222| mu1222_5(unknown) = ^CallSideEffect : ~m? +# 1222| mu1222_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1222_1 +# 1223| r1223_1(glval) = VariableAddress[x401] : +# 1223| r1223_2(glval) = FunctionAddress[~String] : +# 1223| v1223_3(void) = Call[~String] : func:r1223_2, this:r1223_1 +# 1223| mu1223_4(unknown) = ^CallSideEffect : ~m? +# 1223| v1223_5(void) = ^IndirectReadSideEffect[-1] : &:r1223_1, ~m? +# 1223| mu1223_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1223_1 +# 1223| r1223_7(bool) = Constant[0] : +# 1223| v1223_8(void) = ConditionalBranch : r1223_7 +#-----| False -> Block 402 +#-----| True -> Block 1026 + +# 1225| Block 402 +# 1225| r1225_1(glval) = VariableAddress[x402] : +# 1225| mu1225_2(String) = Uninitialized[x402] : &:r1225_1 +# 1225| r1225_3(glval) = FunctionAddress[String] : +# 1225| v1225_4(void) = Call[String] : func:r1225_3, this:r1225_1 +# 1225| mu1225_5(unknown) = ^CallSideEffect : ~m? +# 1225| mu1225_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1225_1 +# 1226| r1226_1(glval) = VariableAddress[x402] : +# 1226| r1226_2(glval) = FunctionAddress[~String] : +# 1226| v1226_3(void) = Call[~String] : func:r1226_2, this:r1226_1 +# 1226| mu1226_4(unknown) = ^CallSideEffect : ~m? +# 1226| v1226_5(void) = ^IndirectReadSideEffect[-1] : &:r1226_1, ~m? +# 1226| mu1226_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1226_1 +# 1226| r1226_7(bool) = Constant[0] : +# 1226| v1226_8(void) = ConditionalBranch : r1226_7 +#-----| False -> Block 403 +#-----| True -> Block 1026 + +# 1228| Block 403 +# 1228| r1228_1(glval) = VariableAddress[x403] : +# 1228| mu1228_2(String) = Uninitialized[x403] : &:r1228_1 +# 1228| r1228_3(glval) = FunctionAddress[String] : +# 1228| v1228_4(void) = Call[String] : func:r1228_3, this:r1228_1 +# 1228| mu1228_5(unknown) = ^CallSideEffect : ~m? +# 1228| mu1228_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 +# 1229| r1229_1(glval) = VariableAddress[x403] : +# 1229| r1229_2(glval) = FunctionAddress[~String] : +# 1229| v1229_3(void) = Call[~String] : func:r1229_2, this:r1229_1 +# 1229| mu1229_4(unknown) = ^CallSideEffect : ~m? +# 1229| v1229_5(void) = ^IndirectReadSideEffect[-1] : &:r1229_1, ~m? +# 1229| mu1229_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1229_1 +# 1229| r1229_7(bool) = Constant[0] : +# 1229| v1229_8(void) = ConditionalBranch : r1229_7 +#-----| False -> Block 404 +#-----| True -> Block 1026 + +# 1231| Block 404 +# 1231| r1231_1(glval) = VariableAddress[x404] : +# 1231| mu1231_2(String) = Uninitialized[x404] : &:r1231_1 +# 1231| r1231_3(glval) = FunctionAddress[String] : +# 1231| v1231_4(void) = Call[String] : func:r1231_3, this:r1231_1 +# 1231| mu1231_5(unknown) = ^CallSideEffect : ~m? +# 1231| mu1231_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1231_1 +# 1232| r1232_1(glval) = VariableAddress[x404] : +# 1232| r1232_2(glval) = FunctionAddress[~String] : +# 1232| v1232_3(void) = Call[~String] : func:r1232_2, this:r1232_1 +# 1232| mu1232_4(unknown) = ^CallSideEffect : ~m? +# 1232| v1232_5(void) = ^IndirectReadSideEffect[-1] : &:r1232_1, ~m? +# 1232| mu1232_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1232_1 +# 1232| r1232_7(bool) = Constant[0] : +# 1232| v1232_8(void) = ConditionalBranch : r1232_7 +#-----| False -> Block 405 +#-----| True -> Block 1026 + +# 1234| Block 405 +# 1234| r1234_1(glval) = VariableAddress[x405] : +# 1234| mu1234_2(String) = Uninitialized[x405] : &:r1234_1 +# 1234| r1234_3(glval) = FunctionAddress[String] : +# 1234| v1234_4(void) = Call[String] : func:r1234_3, this:r1234_1 +# 1234| mu1234_5(unknown) = ^CallSideEffect : ~m? +# 1234| mu1234_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1234_1 +# 1235| r1235_1(glval) = VariableAddress[x405] : +# 1235| r1235_2(glval) = FunctionAddress[~String] : +# 1235| v1235_3(void) = Call[~String] : func:r1235_2, this:r1235_1 +# 1235| mu1235_4(unknown) = ^CallSideEffect : ~m? +# 1235| v1235_5(void) = ^IndirectReadSideEffect[-1] : &:r1235_1, ~m? +# 1235| mu1235_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1235_1 +# 1235| r1235_7(bool) = Constant[0] : +# 1235| v1235_8(void) = ConditionalBranch : r1235_7 +#-----| False -> Block 406 +#-----| True -> Block 1026 + +# 1237| Block 406 +# 1237| r1237_1(glval) = VariableAddress[x406] : +# 1237| mu1237_2(String) = Uninitialized[x406] : &:r1237_1 +# 1237| r1237_3(glval) = FunctionAddress[String] : +# 1237| v1237_4(void) = Call[String] : func:r1237_3, this:r1237_1 +# 1237| mu1237_5(unknown) = ^CallSideEffect : ~m? +# 1237| mu1237_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1237_1 +# 1238| r1238_1(glval) = VariableAddress[x406] : +# 1238| r1238_2(glval) = FunctionAddress[~String] : +# 1238| v1238_3(void) = Call[~String] : func:r1238_2, this:r1238_1 +# 1238| mu1238_4(unknown) = ^CallSideEffect : ~m? +# 1238| v1238_5(void) = ^IndirectReadSideEffect[-1] : &:r1238_1, ~m? +# 1238| mu1238_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1238_1 +# 1238| r1238_7(bool) = Constant[0] : +# 1238| v1238_8(void) = ConditionalBranch : r1238_7 +#-----| False -> Block 407 +#-----| True -> Block 1026 + +# 1240| Block 407 +# 1240| r1240_1(glval) = VariableAddress[x407] : +# 1240| mu1240_2(String) = Uninitialized[x407] : &:r1240_1 +# 1240| r1240_3(glval) = FunctionAddress[String] : +# 1240| v1240_4(void) = Call[String] : func:r1240_3, this:r1240_1 +# 1240| mu1240_5(unknown) = ^CallSideEffect : ~m? +# 1240| mu1240_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1240_1 +# 1241| r1241_1(glval) = VariableAddress[x407] : +# 1241| r1241_2(glval) = FunctionAddress[~String] : +# 1241| v1241_3(void) = Call[~String] : func:r1241_2, this:r1241_1 +# 1241| mu1241_4(unknown) = ^CallSideEffect : ~m? +# 1241| v1241_5(void) = ^IndirectReadSideEffect[-1] : &:r1241_1, ~m? +# 1241| mu1241_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1241_1 +# 1241| r1241_7(bool) = Constant[0] : +# 1241| v1241_8(void) = ConditionalBranch : r1241_7 +#-----| False -> Block 408 +#-----| True -> Block 1026 + +# 1243| Block 408 +# 1243| r1243_1(glval) = VariableAddress[x408] : +# 1243| mu1243_2(String) = Uninitialized[x408] : &:r1243_1 +# 1243| r1243_3(glval) = FunctionAddress[String] : +# 1243| v1243_4(void) = Call[String] : func:r1243_3, this:r1243_1 +# 1243| mu1243_5(unknown) = ^CallSideEffect : ~m? +# 1243| mu1243_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1243_1 +# 1244| r1244_1(glval) = VariableAddress[x408] : +# 1244| r1244_2(glval) = FunctionAddress[~String] : +# 1244| v1244_3(void) = Call[~String] : func:r1244_2, this:r1244_1 +# 1244| mu1244_4(unknown) = ^CallSideEffect : ~m? +# 1244| v1244_5(void) = ^IndirectReadSideEffect[-1] : &:r1244_1, ~m? +# 1244| mu1244_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_1 +# 1244| r1244_7(bool) = Constant[0] : +# 1244| v1244_8(void) = ConditionalBranch : r1244_7 +#-----| False -> Block 409 +#-----| True -> Block 1026 + +# 1246| Block 409 +# 1246| r1246_1(glval) = VariableAddress[x409] : +# 1246| mu1246_2(String) = Uninitialized[x409] : &:r1246_1 +# 1246| r1246_3(glval) = FunctionAddress[String] : +# 1246| v1246_4(void) = Call[String] : func:r1246_3, this:r1246_1 +# 1246| mu1246_5(unknown) = ^CallSideEffect : ~m? +# 1246| mu1246_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1246_1 +# 1247| r1247_1(glval) = VariableAddress[x409] : +# 1247| r1247_2(glval) = FunctionAddress[~String] : +# 1247| v1247_3(void) = Call[~String] : func:r1247_2, this:r1247_1 +# 1247| mu1247_4(unknown) = ^CallSideEffect : ~m? +# 1247| v1247_5(void) = ^IndirectReadSideEffect[-1] : &:r1247_1, ~m? +# 1247| mu1247_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1247_1 +# 1247| r1247_7(bool) = Constant[0] : +# 1247| v1247_8(void) = ConditionalBranch : r1247_7 +#-----| False -> Block 410 +#-----| True -> Block 1026 + +# 1249| Block 410 +# 1249| r1249_1(glval) = VariableAddress[x410] : +# 1249| mu1249_2(String) = Uninitialized[x410] : &:r1249_1 +# 1249| r1249_3(glval) = FunctionAddress[String] : +# 1249| v1249_4(void) = Call[String] : func:r1249_3, this:r1249_1 +# 1249| mu1249_5(unknown) = ^CallSideEffect : ~m? +# 1249| mu1249_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1249_1 +# 1250| r1250_1(glval) = VariableAddress[x410] : +# 1250| r1250_2(glval) = FunctionAddress[~String] : +# 1250| v1250_3(void) = Call[~String] : func:r1250_2, this:r1250_1 +# 1250| mu1250_4(unknown) = ^CallSideEffect : ~m? +# 1250| v1250_5(void) = ^IndirectReadSideEffect[-1] : &:r1250_1, ~m? +# 1250| mu1250_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1250_1 +# 1250| r1250_7(bool) = Constant[0] : +# 1250| v1250_8(void) = ConditionalBranch : r1250_7 +#-----| False -> Block 411 +#-----| True -> Block 1026 + +# 1252| Block 411 +# 1252| r1252_1(glval) = VariableAddress[x411] : +# 1252| mu1252_2(String) = Uninitialized[x411] : &:r1252_1 +# 1252| r1252_3(glval) = FunctionAddress[String] : +# 1252| v1252_4(void) = Call[String] : func:r1252_3, this:r1252_1 +# 1252| mu1252_5(unknown) = ^CallSideEffect : ~m? +# 1252| mu1252_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1252_1 +# 1253| r1253_1(glval) = VariableAddress[x411] : +# 1253| r1253_2(glval) = FunctionAddress[~String] : +# 1253| v1253_3(void) = Call[~String] : func:r1253_2, this:r1253_1 +# 1253| mu1253_4(unknown) = ^CallSideEffect : ~m? +# 1253| v1253_5(void) = ^IndirectReadSideEffect[-1] : &:r1253_1, ~m? +# 1253| mu1253_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1253_1 +# 1253| r1253_7(bool) = Constant[0] : +# 1253| v1253_8(void) = ConditionalBranch : r1253_7 +#-----| False -> Block 412 +#-----| True -> Block 1026 + +# 1255| Block 412 +# 1255| r1255_1(glval) = VariableAddress[x412] : +# 1255| mu1255_2(String) = Uninitialized[x412] : &:r1255_1 +# 1255| r1255_3(glval) = FunctionAddress[String] : +# 1255| v1255_4(void) = Call[String] : func:r1255_3, this:r1255_1 +# 1255| mu1255_5(unknown) = ^CallSideEffect : ~m? +# 1255| mu1255_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1255_1 +# 1256| r1256_1(glval) = VariableAddress[x412] : +# 1256| r1256_2(glval) = FunctionAddress[~String] : +# 1256| v1256_3(void) = Call[~String] : func:r1256_2, this:r1256_1 +# 1256| mu1256_4(unknown) = ^CallSideEffect : ~m? +# 1256| v1256_5(void) = ^IndirectReadSideEffect[-1] : &:r1256_1, ~m? +# 1256| mu1256_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1256_1 +# 1256| r1256_7(bool) = Constant[0] : +# 1256| v1256_8(void) = ConditionalBranch : r1256_7 +#-----| False -> Block 413 +#-----| True -> Block 1026 + +# 1258| Block 413 +# 1258| r1258_1(glval) = VariableAddress[x413] : +# 1258| mu1258_2(String) = Uninitialized[x413] : &:r1258_1 +# 1258| r1258_3(glval) = FunctionAddress[String] : +# 1258| v1258_4(void) = Call[String] : func:r1258_3, this:r1258_1 +# 1258| mu1258_5(unknown) = ^CallSideEffect : ~m? +# 1258| mu1258_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1258_1 +# 1259| r1259_1(glval) = VariableAddress[x413] : +# 1259| r1259_2(glval) = FunctionAddress[~String] : +# 1259| v1259_3(void) = Call[~String] : func:r1259_2, this:r1259_1 +# 1259| mu1259_4(unknown) = ^CallSideEffect : ~m? +# 1259| v1259_5(void) = ^IndirectReadSideEffect[-1] : &:r1259_1, ~m? +# 1259| mu1259_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1259_1 +# 1259| r1259_7(bool) = Constant[0] : +# 1259| v1259_8(void) = ConditionalBranch : r1259_7 +#-----| False -> Block 414 +#-----| True -> Block 1026 + +# 1261| Block 414 +# 1261| r1261_1(glval) = VariableAddress[x414] : +# 1261| mu1261_2(String) = Uninitialized[x414] : &:r1261_1 +# 1261| r1261_3(glval) = FunctionAddress[String] : +# 1261| v1261_4(void) = Call[String] : func:r1261_3, this:r1261_1 +# 1261| mu1261_5(unknown) = ^CallSideEffect : ~m? +# 1261| mu1261_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1261_1 +# 1262| r1262_1(glval) = VariableAddress[x414] : +# 1262| r1262_2(glval) = FunctionAddress[~String] : +# 1262| v1262_3(void) = Call[~String] : func:r1262_2, this:r1262_1 +# 1262| mu1262_4(unknown) = ^CallSideEffect : ~m? +# 1262| v1262_5(void) = ^IndirectReadSideEffect[-1] : &:r1262_1, ~m? +# 1262| mu1262_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1262_1 +# 1262| r1262_7(bool) = Constant[0] : +# 1262| v1262_8(void) = ConditionalBranch : r1262_7 +#-----| False -> Block 415 +#-----| True -> Block 1026 + +# 1264| Block 415 +# 1264| r1264_1(glval) = VariableAddress[x415] : +# 1264| mu1264_2(String) = Uninitialized[x415] : &:r1264_1 +# 1264| r1264_3(glval) = FunctionAddress[String] : +# 1264| v1264_4(void) = Call[String] : func:r1264_3, this:r1264_1 +# 1264| mu1264_5(unknown) = ^CallSideEffect : ~m? +# 1264| mu1264_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1264_1 +# 1265| r1265_1(glval) = VariableAddress[x415] : +# 1265| r1265_2(glval) = FunctionAddress[~String] : +# 1265| v1265_3(void) = Call[~String] : func:r1265_2, this:r1265_1 +# 1265| mu1265_4(unknown) = ^CallSideEffect : ~m? +# 1265| v1265_5(void) = ^IndirectReadSideEffect[-1] : &:r1265_1, ~m? +# 1265| mu1265_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1265_1 +# 1265| r1265_7(bool) = Constant[0] : +# 1265| v1265_8(void) = ConditionalBranch : r1265_7 +#-----| False -> Block 416 +#-----| True -> Block 1026 + +# 1267| Block 416 +# 1267| r1267_1(glval) = VariableAddress[x416] : +# 1267| mu1267_2(String) = Uninitialized[x416] : &:r1267_1 +# 1267| r1267_3(glval) = FunctionAddress[String] : +# 1267| v1267_4(void) = Call[String] : func:r1267_3, this:r1267_1 +# 1267| mu1267_5(unknown) = ^CallSideEffect : ~m? +# 1267| mu1267_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1267_1 +# 1268| r1268_1(glval) = VariableAddress[x416] : +# 1268| r1268_2(glval) = FunctionAddress[~String] : +# 1268| v1268_3(void) = Call[~String] : func:r1268_2, this:r1268_1 +# 1268| mu1268_4(unknown) = ^CallSideEffect : ~m? +# 1268| v1268_5(void) = ^IndirectReadSideEffect[-1] : &:r1268_1, ~m? +# 1268| mu1268_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1268_1 +# 1268| r1268_7(bool) = Constant[0] : +# 1268| v1268_8(void) = ConditionalBranch : r1268_7 +#-----| False -> Block 417 +#-----| True -> Block 1026 + +# 1270| Block 417 +# 1270| r1270_1(glval) = VariableAddress[x417] : +# 1270| mu1270_2(String) = Uninitialized[x417] : &:r1270_1 +# 1270| r1270_3(glval) = FunctionAddress[String] : +# 1270| v1270_4(void) = Call[String] : func:r1270_3, this:r1270_1 +# 1270| mu1270_5(unknown) = ^CallSideEffect : ~m? +# 1270| mu1270_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1270_1 +# 1271| r1271_1(glval) = VariableAddress[x417] : +# 1271| r1271_2(glval) = FunctionAddress[~String] : +# 1271| v1271_3(void) = Call[~String] : func:r1271_2, this:r1271_1 +# 1271| mu1271_4(unknown) = ^CallSideEffect : ~m? +# 1271| v1271_5(void) = ^IndirectReadSideEffect[-1] : &:r1271_1, ~m? +# 1271| mu1271_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1271_1 +# 1271| r1271_7(bool) = Constant[0] : +# 1271| v1271_8(void) = ConditionalBranch : r1271_7 +#-----| False -> Block 418 +#-----| True -> Block 1026 + +# 1273| Block 418 +# 1273| r1273_1(glval) = VariableAddress[x418] : +# 1273| mu1273_2(String) = Uninitialized[x418] : &:r1273_1 +# 1273| r1273_3(glval) = FunctionAddress[String] : +# 1273| v1273_4(void) = Call[String] : func:r1273_3, this:r1273_1 +# 1273| mu1273_5(unknown) = ^CallSideEffect : ~m? +# 1273| mu1273_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1273_1 +# 1274| r1274_1(glval) = VariableAddress[x418] : +# 1274| r1274_2(glval) = FunctionAddress[~String] : +# 1274| v1274_3(void) = Call[~String] : func:r1274_2, this:r1274_1 +# 1274| mu1274_4(unknown) = ^CallSideEffect : ~m? +# 1274| v1274_5(void) = ^IndirectReadSideEffect[-1] : &:r1274_1, ~m? +# 1274| mu1274_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1274_1 +# 1274| r1274_7(bool) = Constant[0] : +# 1274| v1274_8(void) = ConditionalBranch : r1274_7 +#-----| False -> Block 419 +#-----| True -> Block 1026 + +# 1276| Block 419 +# 1276| r1276_1(glval) = VariableAddress[x419] : +# 1276| mu1276_2(String) = Uninitialized[x419] : &:r1276_1 +# 1276| r1276_3(glval) = FunctionAddress[String] : +# 1276| v1276_4(void) = Call[String] : func:r1276_3, this:r1276_1 +# 1276| mu1276_5(unknown) = ^CallSideEffect : ~m? +# 1276| mu1276_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1276_1 +# 1277| r1277_1(glval) = VariableAddress[x419] : +# 1277| r1277_2(glval) = FunctionAddress[~String] : +# 1277| v1277_3(void) = Call[~String] : func:r1277_2, this:r1277_1 +# 1277| mu1277_4(unknown) = ^CallSideEffect : ~m? +# 1277| v1277_5(void) = ^IndirectReadSideEffect[-1] : &:r1277_1, ~m? +# 1277| mu1277_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1277_1 +# 1277| r1277_7(bool) = Constant[0] : +# 1277| v1277_8(void) = ConditionalBranch : r1277_7 +#-----| False -> Block 420 +#-----| True -> Block 1026 + +# 1279| Block 420 +# 1279| r1279_1(glval) = VariableAddress[x420] : +# 1279| mu1279_2(String) = Uninitialized[x420] : &:r1279_1 +# 1279| r1279_3(glval) = FunctionAddress[String] : +# 1279| v1279_4(void) = Call[String] : func:r1279_3, this:r1279_1 +# 1279| mu1279_5(unknown) = ^CallSideEffect : ~m? +# 1279| mu1279_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1279_1 +# 1280| r1280_1(glval) = VariableAddress[x420] : +# 1280| r1280_2(glval) = FunctionAddress[~String] : +# 1280| v1280_3(void) = Call[~String] : func:r1280_2, this:r1280_1 +# 1280| mu1280_4(unknown) = ^CallSideEffect : ~m? +# 1280| v1280_5(void) = ^IndirectReadSideEffect[-1] : &:r1280_1, ~m? +# 1280| mu1280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1280_1 +# 1280| r1280_7(bool) = Constant[0] : +# 1280| v1280_8(void) = ConditionalBranch : r1280_7 +#-----| False -> Block 421 +#-----| True -> Block 1026 + +# 1282| Block 421 +# 1282| r1282_1(glval) = VariableAddress[x421] : +# 1282| mu1282_2(String) = Uninitialized[x421] : &:r1282_1 +# 1282| r1282_3(glval) = FunctionAddress[String] : +# 1282| v1282_4(void) = Call[String] : func:r1282_3, this:r1282_1 +# 1282| mu1282_5(unknown) = ^CallSideEffect : ~m? +# 1282| mu1282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1282_1 +# 1283| r1283_1(glval) = VariableAddress[x421] : +# 1283| r1283_2(glval) = FunctionAddress[~String] : +# 1283| v1283_3(void) = Call[~String] : func:r1283_2, this:r1283_1 +# 1283| mu1283_4(unknown) = ^CallSideEffect : ~m? +# 1283| v1283_5(void) = ^IndirectReadSideEffect[-1] : &:r1283_1, ~m? +# 1283| mu1283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1283_1 +# 1283| r1283_7(bool) = Constant[0] : +# 1283| v1283_8(void) = ConditionalBranch : r1283_7 +#-----| False -> Block 422 +#-----| True -> Block 1026 + +# 1285| Block 422 +# 1285| r1285_1(glval) = VariableAddress[x422] : +# 1285| mu1285_2(String) = Uninitialized[x422] : &:r1285_1 +# 1285| r1285_3(glval) = FunctionAddress[String] : +# 1285| v1285_4(void) = Call[String] : func:r1285_3, this:r1285_1 +# 1285| mu1285_5(unknown) = ^CallSideEffect : ~m? +# 1285| mu1285_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1285_1 +# 1286| r1286_1(glval) = VariableAddress[x422] : +# 1286| r1286_2(glval) = FunctionAddress[~String] : +# 1286| v1286_3(void) = Call[~String] : func:r1286_2, this:r1286_1 +# 1286| mu1286_4(unknown) = ^CallSideEffect : ~m? +# 1286| v1286_5(void) = ^IndirectReadSideEffect[-1] : &:r1286_1, ~m? +# 1286| mu1286_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1286_1 +# 1286| r1286_7(bool) = Constant[0] : +# 1286| v1286_8(void) = ConditionalBranch : r1286_7 +#-----| False -> Block 423 +#-----| True -> Block 1026 + +# 1288| Block 423 +# 1288| r1288_1(glval) = VariableAddress[x423] : +# 1288| mu1288_2(String) = Uninitialized[x423] : &:r1288_1 +# 1288| r1288_3(glval) = FunctionAddress[String] : +# 1288| v1288_4(void) = Call[String] : func:r1288_3, this:r1288_1 +# 1288| mu1288_5(unknown) = ^CallSideEffect : ~m? +# 1288| mu1288_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1288_1 +# 1289| r1289_1(glval) = VariableAddress[x423] : +# 1289| r1289_2(glval) = FunctionAddress[~String] : +# 1289| v1289_3(void) = Call[~String] : func:r1289_2, this:r1289_1 +# 1289| mu1289_4(unknown) = ^CallSideEffect : ~m? +# 1289| v1289_5(void) = ^IndirectReadSideEffect[-1] : &:r1289_1, ~m? +# 1289| mu1289_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1289_1 +# 1289| r1289_7(bool) = Constant[0] : +# 1289| v1289_8(void) = ConditionalBranch : r1289_7 +#-----| False -> Block 424 +#-----| True -> Block 1026 + +# 1291| Block 424 +# 1291| r1291_1(glval) = VariableAddress[x424] : +# 1291| mu1291_2(String) = Uninitialized[x424] : &:r1291_1 +# 1291| r1291_3(glval) = FunctionAddress[String] : +# 1291| v1291_4(void) = Call[String] : func:r1291_3, this:r1291_1 +# 1291| mu1291_5(unknown) = ^CallSideEffect : ~m? +# 1291| mu1291_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_1 +# 1292| r1292_1(glval) = VariableAddress[x424] : +# 1292| r1292_2(glval) = FunctionAddress[~String] : +# 1292| v1292_3(void) = Call[~String] : func:r1292_2, this:r1292_1 +# 1292| mu1292_4(unknown) = ^CallSideEffect : ~m? +# 1292| v1292_5(void) = ^IndirectReadSideEffect[-1] : &:r1292_1, ~m? +# 1292| mu1292_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_1 +# 1292| r1292_7(bool) = Constant[0] : +# 1292| v1292_8(void) = ConditionalBranch : r1292_7 +#-----| False -> Block 425 +#-----| True -> Block 1026 + +# 1294| Block 425 +# 1294| r1294_1(glval) = VariableAddress[x425] : +# 1294| mu1294_2(String) = Uninitialized[x425] : &:r1294_1 +# 1294| r1294_3(glval) = FunctionAddress[String] : +# 1294| v1294_4(void) = Call[String] : func:r1294_3, this:r1294_1 +# 1294| mu1294_5(unknown) = ^CallSideEffect : ~m? +# 1294| mu1294_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1294_1 +# 1295| r1295_1(glval) = VariableAddress[x425] : +# 1295| r1295_2(glval) = FunctionAddress[~String] : +# 1295| v1295_3(void) = Call[~String] : func:r1295_2, this:r1295_1 +# 1295| mu1295_4(unknown) = ^CallSideEffect : ~m? +# 1295| v1295_5(void) = ^IndirectReadSideEffect[-1] : &:r1295_1, ~m? +# 1295| mu1295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1295_1 +# 1295| r1295_7(bool) = Constant[0] : +# 1295| v1295_8(void) = ConditionalBranch : r1295_7 +#-----| False -> Block 426 +#-----| True -> Block 1026 + +# 1297| Block 426 +# 1297| r1297_1(glval) = VariableAddress[x426] : +# 1297| mu1297_2(String) = Uninitialized[x426] : &:r1297_1 +# 1297| r1297_3(glval) = FunctionAddress[String] : +# 1297| v1297_4(void) = Call[String] : func:r1297_3, this:r1297_1 +# 1297| mu1297_5(unknown) = ^CallSideEffect : ~m? +# 1297| mu1297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1297_1 +# 1298| r1298_1(glval) = VariableAddress[x426] : +# 1298| r1298_2(glval) = FunctionAddress[~String] : +# 1298| v1298_3(void) = Call[~String] : func:r1298_2, this:r1298_1 +# 1298| mu1298_4(unknown) = ^CallSideEffect : ~m? +# 1298| v1298_5(void) = ^IndirectReadSideEffect[-1] : &:r1298_1, ~m? +# 1298| mu1298_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1298_1 +# 1298| r1298_7(bool) = Constant[0] : +# 1298| v1298_8(void) = ConditionalBranch : r1298_7 +#-----| False -> Block 427 +#-----| True -> Block 1026 + +# 1300| Block 427 +# 1300| r1300_1(glval) = VariableAddress[x427] : +# 1300| mu1300_2(String) = Uninitialized[x427] : &:r1300_1 +# 1300| r1300_3(glval) = FunctionAddress[String] : +# 1300| v1300_4(void) = Call[String] : func:r1300_3, this:r1300_1 +# 1300| mu1300_5(unknown) = ^CallSideEffect : ~m? +# 1300| mu1300_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1300_1 +# 1301| r1301_1(glval) = VariableAddress[x427] : +# 1301| r1301_2(glval) = FunctionAddress[~String] : +# 1301| v1301_3(void) = Call[~String] : func:r1301_2, this:r1301_1 +# 1301| mu1301_4(unknown) = ^CallSideEffect : ~m? +# 1301| v1301_5(void) = ^IndirectReadSideEffect[-1] : &:r1301_1, ~m? +# 1301| mu1301_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1301_1 +# 1301| r1301_7(bool) = Constant[0] : +# 1301| v1301_8(void) = ConditionalBranch : r1301_7 +#-----| False -> Block 428 +#-----| True -> Block 1026 + +# 1303| Block 428 +# 1303| r1303_1(glval) = VariableAddress[x428] : +# 1303| mu1303_2(String) = Uninitialized[x428] : &:r1303_1 +# 1303| r1303_3(glval) = FunctionAddress[String] : +# 1303| v1303_4(void) = Call[String] : func:r1303_3, this:r1303_1 +# 1303| mu1303_5(unknown) = ^CallSideEffect : ~m? +# 1303| mu1303_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1303_1 +# 1304| r1304_1(glval) = VariableAddress[x428] : +# 1304| r1304_2(glval) = FunctionAddress[~String] : +# 1304| v1304_3(void) = Call[~String] : func:r1304_2, this:r1304_1 +# 1304| mu1304_4(unknown) = ^CallSideEffect : ~m? +# 1304| v1304_5(void) = ^IndirectReadSideEffect[-1] : &:r1304_1, ~m? +# 1304| mu1304_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1304_1 +# 1304| r1304_7(bool) = Constant[0] : +# 1304| v1304_8(void) = ConditionalBranch : r1304_7 +#-----| False -> Block 429 +#-----| True -> Block 1026 + +# 1306| Block 429 +# 1306| r1306_1(glval) = VariableAddress[x429] : +# 1306| mu1306_2(String) = Uninitialized[x429] : &:r1306_1 +# 1306| r1306_3(glval) = FunctionAddress[String] : +# 1306| v1306_4(void) = Call[String] : func:r1306_3, this:r1306_1 +# 1306| mu1306_5(unknown) = ^CallSideEffect : ~m? +# 1306| mu1306_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1306_1 +# 1307| r1307_1(glval) = VariableAddress[x429] : +# 1307| r1307_2(glval) = FunctionAddress[~String] : +# 1307| v1307_3(void) = Call[~String] : func:r1307_2, this:r1307_1 +# 1307| mu1307_4(unknown) = ^CallSideEffect : ~m? +# 1307| v1307_5(void) = ^IndirectReadSideEffect[-1] : &:r1307_1, ~m? +# 1307| mu1307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1307_1 +# 1307| r1307_7(bool) = Constant[0] : +# 1307| v1307_8(void) = ConditionalBranch : r1307_7 +#-----| False -> Block 430 +#-----| True -> Block 1026 + +# 1309| Block 430 +# 1309| r1309_1(glval) = VariableAddress[x430] : +# 1309| mu1309_2(String) = Uninitialized[x430] : &:r1309_1 +# 1309| r1309_3(glval) = FunctionAddress[String] : +# 1309| v1309_4(void) = Call[String] : func:r1309_3, this:r1309_1 +# 1309| mu1309_5(unknown) = ^CallSideEffect : ~m? +# 1309| mu1309_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1309_1 +# 1310| r1310_1(glval) = VariableAddress[x430] : +# 1310| r1310_2(glval) = FunctionAddress[~String] : +# 1310| v1310_3(void) = Call[~String] : func:r1310_2, this:r1310_1 +# 1310| mu1310_4(unknown) = ^CallSideEffect : ~m? +# 1310| v1310_5(void) = ^IndirectReadSideEffect[-1] : &:r1310_1, ~m? +# 1310| mu1310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1310_1 +# 1310| r1310_7(bool) = Constant[0] : +# 1310| v1310_8(void) = ConditionalBranch : r1310_7 +#-----| False -> Block 431 +#-----| True -> Block 1026 + +# 1312| Block 431 +# 1312| r1312_1(glval) = VariableAddress[x431] : +# 1312| mu1312_2(String) = Uninitialized[x431] : &:r1312_1 +# 1312| r1312_3(glval) = FunctionAddress[String] : +# 1312| v1312_4(void) = Call[String] : func:r1312_3, this:r1312_1 +# 1312| mu1312_5(unknown) = ^CallSideEffect : ~m? +# 1312| mu1312_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1312_1 +# 1313| r1313_1(glval) = VariableAddress[x431] : +# 1313| r1313_2(glval) = FunctionAddress[~String] : +# 1313| v1313_3(void) = Call[~String] : func:r1313_2, this:r1313_1 +# 1313| mu1313_4(unknown) = ^CallSideEffect : ~m? +# 1313| v1313_5(void) = ^IndirectReadSideEffect[-1] : &:r1313_1, ~m? +# 1313| mu1313_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1313_1 +# 1313| r1313_7(bool) = Constant[0] : +# 1313| v1313_8(void) = ConditionalBranch : r1313_7 +#-----| False -> Block 432 +#-----| True -> Block 1026 + +# 1315| Block 432 +# 1315| r1315_1(glval) = VariableAddress[x432] : +# 1315| mu1315_2(String) = Uninitialized[x432] : &:r1315_1 +# 1315| r1315_3(glval) = FunctionAddress[String] : +# 1315| v1315_4(void) = Call[String] : func:r1315_3, this:r1315_1 +# 1315| mu1315_5(unknown) = ^CallSideEffect : ~m? +# 1315| mu1315_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1315_1 +# 1316| r1316_1(glval) = VariableAddress[x432] : +# 1316| r1316_2(glval) = FunctionAddress[~String] : +# 1316| v1316_3(void) = Call[~String] : func:r1316_2, this:r1316_1 +# 1316| mu1316_4(unknown) = ^CallSideEffect : ~m? +# 1316| v1316_5(void) = ^IndirectReadSideEffect[-1] : &:r1316_1, ~m? +# 1316| mu1316_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1316_1 +# 1316| r1316_7(bool) = Constant[0] : +# 1316| v1316_8(void) = ConditionalBranch : r1316_7 +#-----| False -> Block 433 +#-----| True -> Block 1026 + +# 1318| Block 433 +# 1318| r1318_1(glval) = VariableAddress[x433] : +# 1318| mu1318_2(String) = Uninitialized[x433] : &:r1318_1 +# 1318| r1318_3(glval) = FunctionAddress[String] : +# 1318| v1318_4(void) = Call[String] : func:r1318_3, this:r1318_1 +# 1318| mu1318_5(unknown) = ^CallSideEffect : ~m? +# 1318| mu1318_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1318_1 +# 1319| r1319_1(glval) = VariableAddress[x433] : +# 1319| r1319_2(glval) = FunctionAddress[~String] : +# 1319| v1319_3(void) = Call[~String] : func:r1319_2, this:r1319_1 +# 1319| mu1319_4(unknown) = ^CallSideEffect : ~m? +# 1319| v1319_5(void) = ^IndirectReadSideEffect[-1] : &:r1319_1, ~m? +# 1319| mu1319_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1319_1 +# 1319| r1319_7(bool) = Constant[0] : +# 1319| v1319_8(void) = ConditionalBranch : r1319_7 +#-----| False -> Block 434 +#-----| True -> Block 1026 + +# 1321| Block 434 +# 1321| r1321_1(glval) = VariableAddress[x434] : +# 1321| mu1321_2(String) = Uninitialized[x434] : &:r1321_1 +# 1321| r1321_3(glval) = FunctionAddress[String] : +# 1321| v1321_4(void) = Call[String] : func:r1321_3, this:r1321_1 +# 1321| mu1321_5(unknown) = ^CallSideEffect : ~m? +# 1321| mu1321_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1321_1 +# 1322| r1322_1(glval) = VariableAddress[x434] : +# 1322| r1322_2(glval) = FunctionAddress[~String] : +# 1322| v1322_3(void) = Call[~String] : func:r1322_2, this:r1322_1 +# 1322| mu1322_4(unknown) = ^CallSideEffect : ~m? +# 1322| v1322_5(void) = ^IndirectReadSideEffect[-1] : &:r1322_1, ~m? +# 1322| mu1322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1322_1 +# 1322| r1322_7(bool) = Constant[0] : +# 1322| v1322_8(void) = ConditionalBranch : r1322_7 +#-----| False -> Block 435 +#-----| True -> Block 1026 + +# 1324| Block 435 +# 1324| r1324_1(glval) = VariableAddress[x435] : +# 1324| mu1324_2(String) = Uninitialized[x435] : &:r1324_1 +# 1324| r1324_3(glval) = FunctionAddress[String] : +# 1324| v1324_4(void) = Call[String] : func:r1324_3, this:r1324_1 +# 1324| mu1324_5(unknown) = ^CallSideEffect : ~m? +# 1324| mu1324_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1324_1 +# 1325| r1325_1(glval) = VariableAddress[x435] : +# 1325| r1325_2(glval) = FunctionAddress[~String] : +# 1325| v1325_3(void) = Call[~String] : func:r1325_2, this:r1325_1 +# 1325| mu1325_4(unknown) = ^CallSideEffect : ~m? +# 1325| v1325_5(void) = ^IndirectReadSideEffect[-1] : &:r1325_1, ~m? +# 1325| mu1325_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1325_1 +# 1325| r1325_7(bool) = Constant[0] : +# 1325| v1325_8(void) = ConditionalBranch : r1325_7 +#-----| False -> Block 436 +#-----| True -> Block 1026 + +# 1327| Block 436 +# 1327| r1327_1(glval) = VariableAddress[x436] : +# 1327| mu1327_2(String) = Uninitialized[x436] : &:r1327_1 +# 1327| r1327_3(glval) = FunctionAddress[String] : +# 1327| v1327_4(void) = Call[String] : func:r1327_3, this:r1327_1 +# 1327| mu1327_5(unknown) = ^CallSideEffect : ~m? +# 1327| mu1327_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1327_1 +# 1328| r1328_1(glval) = VariableAddress[x436] : +# 1328| r1328_2(glval) = FunctionAddress[~String] : +# 1328| v1328_3(void) = Call[~String] : func:r1328_2, this:r1328_1 +# 1328| mu1328_4(unknown) = ^CallSideEffect : ~m? +# 1328| v1328_5(void) = ^IndirectReadSideEffect[-1] : &:r1328_1, ~m? +# 1328| mu1328_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1328_1 +# 1328| r1328_7(bool) = Constant[0] : +# 1328| v1328_8(void) = ConditionalBranch : r1328_7 +#-----| False -> Block 437 +#-----| True -> Block 1026 + +# 1330| Block 437 +# 1330| r1330_1(glval) = VariableAddress[x437] : +# 1330| mu1330_2(String) = Uninitialized[x437] : &:r1330_1 +# 1330| r1330_3(glval) = FunctionAddress[String] : +# 1330| v1330_4(void) = Call[String] : func:r1330_3, this:r1330_1 +# 1330| mu1330_5(unknown) = ^CallSideEffect : ~m? +# 1330| mu1330_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1330_1 +# 1331| r1331_1(glval) = VariableAddress[x437] : +# 1331| r1331_2(glval) = FunctionAddress[~String] : +# 1331| v1331_3(void) = Call[~String] : func:r1331_2, this:r1331_1 +# 1331| mu1331_4(unknown) = ^CallSideEffect : ~m? +# 1331| v1331_5(void) = ^IndirectReadSideEffect[-1] : &:r1331_1, ~m? +# 1331| mu1331_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1331_1 +# 1331| r1331_7(bool) = Constant[0] : +# 1331| v1331_8(void) = ConditionalBranch : r1331_7 +#-----| False -> Block 438 +#-----| True -> Block 1026 + +# 1333| Block 438 +# 1333| r1333_1(glval) = VariableAddress[x438] : +# 1333| mu1333_2(String) = Uninitialized[x438] : &:r1333_1 +# 1333| r1333_3(glval) = FunctionAddress[String] : +# 1333| v1333_4(void) = Call[String] : func:r1333_3, this:r1333_1 +# 1333| mu1333_5(unknown) = ^CallSideEffect : ~m? +# 1333| mu1333_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1333_1 +# 1334| r1334_1(glval) = VariableAddress[x438] : +# 1334| r1334_2(glval) = FunctionAddress[~String] : +# 1334| v1334_3(void) = Call[~String] : func:r1334_2, this:r1334_1 +# 1334| mu1334_4(unknown) = ^CallSideEffect : ~m? +# 1334| v1334_5(void) = ^IndirectReadSideEffect[-1] : &:r1334_1, ~m? +# 1334| mu1334_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1334_1 +# 1334| r1334_7(bool) = Constant[0] : +# 1334| v1334_8(void) = ConditionalBranch : r1334_7 +#-----| False -> Block 439 +#-----| True -> Block 1026 + +# 1336| Block 439 +# 1336| r1336_1(glval) = VariableAddress[x439] : +# 1336| mu1336_2(String) = Uninitialized[x439] : &:r1336_1 +# 1336| r1336_3(glval) = FunctionAddress[String] : +# 1336| v1336_4(void) = Call[String] : func:r1336_3, this:r1336_1 +# 1336| mu1336_5(unknown) = ^CallSideEffect : ~m? +# 1336| mu1336_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1336_1 +# 1337| r1337_1(glval) = VariableAddress[x439] : +# 1337| r1337_2(glval) = FunctionAddress[~String] : +# 1337| v1337_3(void) = Call[~String] : func:r1337_2, this:r1337_1 +# 1337| mu1337_4(unknown) = ^CallSideEffect : ~m? +# 1337| v1337_5(void) = ^IndirectReadSideEffect[-1] : &:r1337_1, ~m? +# 1337| mu1337_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1337_1 +# 1337| r1337_7(bool) = Constant[0] : +# 1337| v1337_8(void) = ConditionalBranch : r1337_7 +#-----| False -> Block 440 +#-----| True -> Block 1026 + +# 1339| Block 440 +# 1339| r1339_1(glval) = VariableAddress[x440] : +# 1339| mu1339_2(String) = Uninitialized[x440] : &:r1339_1 +# 1339| r1339_3(glval) = FunctionAddress[String] : +# 1339| v1339_4(void) = Call[String] : func:r1339_3, this:r1339_1 +# 1339| mu1339_5(unknown) = ^CallSideEffect : ~m? +# 1339| mu1339_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1339_1 +# 1340| r1340_1(glval) = VariableAddress[x440] : +# 1340| r1340_2(glval) = FunctionAddress[~String] : +# 1340| v1340_3(void) = Call[~String] : func:r1340_2, this:r1340_1 +# 1340| mu1340_4(unknown) = ^CallSideEffect : ~m? +# 1340| v1340_5(void) = ^IndirectReadSideEffect[-1] : &:r1340_1, ~m? +# 1340| mu1340_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1340_1 +# 1340| r1340_7(bool) = Constant[0] : +# 1340| v1340_8(void) = ConditionalBranch : r1340_7 +#-----| False -> Block 441 +#-----| True -> Block 1026 + +# 1342| Block 441 +# 1342| r1342_1(glval) = VariableAddress[x441] : +# 1342| mu1342_2(String) = Uninitialized[x441] : &:r1342_1 +# 1342| r1342_3(glval) = FunctionAddress[String] : +# 1342| v1342_4(void) = Call[String] : func:r1342_3, this:r1342_1 +# 1342| mu1342_5(unknown) = ^CallSideEffect : ~m? +# 1342| mu1342_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1342_1 +# 1343| r1343_1(glval) = VariableAddress[x441] : +# 1343| r1343_2(glval) = FunctionAddress[~String] : +# 1343| v1343_3(void) = Call[~String] : func:r1343_2, this:r1343_1 +# 1343| mu1343_4(unknown) = ^CallSideEffect : ~m? +# 1343| v1343_5(void) = ^IndirectReadSideEffect[-1] : &:r1343_1, ~m? +# 1343| mu1343_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1343_1 +# 1343| r1343_7(bool) = Constant[0] : +# 1343| v1343_8(void) = ConditionalBranch : r1343_7 +#-----| False -> Block 442 +#-----| True -> Block 1026 + +# 1345| Block 442 +# 1345| r1345_1(glval) = VariableAddress[x442] : +# 1345| mu1345_2(String) = Uninitialized[x442] : &:r1345_1 +# 1345| r1345_3(glval) = FunctionAddress[String] : +# 1345| v1345_4(void) = Call[String] : func:r1345_3, this:r1345_1 +# 1345| mu1345_5(unknown) = ^CallSideEffect : ~m? +# 1345| mu1345_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1345_1 +# 1346| r1346_1(glval) = VariableAddress[x442] : +# 1346| r1346_2(glval) = FunctionAddress[~String] : +# 1346| v1346_3(void) = Call[~String] : func:r1346_2, this:r1346_1 +# 1346| mu1346_4(unknown) = ^CallSideEffect : ~m? +# 1346| v1346_5(void) = ^IndirectReadSideEffect[-1] : &:r1346_1, ~m? +# 1346| mu1346_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1346_1 +# 1346| r1346_7(bool) = Constant[0] : +# 1346| v1346_8(void) = ConditionalBranch : r1346_7 +#-----| False -> Block 443 +#-----| True -> Block 1026 + +# 1348| Block 443 +# 1348| r1348_1(glval) = VariableAddress[x443] : +# 1348| mu1348_2(String) = Uninitialized[x443] : &:r1348_1 +# 1348| r1348_3(glval) = FunctionAddress[String] : +# 1348| v1348_4(void) = Call[String] : func:r1348_3, this:r1348_1 +# 1348| mu1348_5(unknown) = ^CallSideEffect : ~m? +# 1348| mu1348_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1348_1 +# 1349| r1349_1(glval) = VariableAddress[x443] : +# 1349| r1349_2(glval) = FunctionAddress[~String] : +# 1349| v1349_3(void) = Call[~String] : func:r1349_2, this:r1349_1 +# 1349| mu1349_4(unknown) = ^CallSideEffect : ~m? +# 1349| v1349_5(void) = ^IndirectReadSideEffect[-1] : &:r1349_1, ~m? +# 1349| mu1349_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1349_1 +# 1349| r1349_7(bool) = Constant[0] : +# 1349| v1349_8(void) = ConditionalBranch : r1349_7 +#-----| False -> Block 444 +#-----| True -> Block 1026 + +# 1351| Block 444 +# 1351| r1351_1(glval) = VariableAddress[x444] : +# 1351| mu1351_2(String) = Uninitialized[x444] : &:r1351_1 +# 1351| r1351_3(glval) = FunctionAddress[String] : +# 1351| v1351_4(void) = Call[String] : func:r1351_3, this:r1351_1 +# 1351| mu1351_5(unknown) = ^CallSideEffect : ~m? +# 1351| mu1351_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1351_1 +# 1352| r1352_1(glval) = VariableAddress[x444] : +# 1352| r1352_2(glval) = FunctionAddress[~String] : +# 1352| v1352_3(void) = Call[~String] : func:r1352_2, this:r1352_1 +# 1352| mu1352_4(unknown) = ^CallSideEffect : ~m? +# 1352| v1352_5(void) = ^IndirectReadSideEffect[-1] : &:r1352_1, ~m? +# 1352| mu1352_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1352_1 +# 1352| r1352_7(bool) = Constant[0] : +# 1352| v1352_8(void) = ConditionalBranch : r1352_7 +#-----| False -> Block 445 +#-----| True -> Block 1026 + +# 1354| Block 445 +# 1354| r1354_1(glval) = VariableAddress[x445] : +# 1354| mu1354_2(String) = Uninitialized[x445] : &:r1354_1 +# 1354| r1354_3(glval) = FunctionAddress[String] : +# 1354| v1354_4(void) = Call[String] : func:r1354_3, this:r1354_1 +# 1354| mu1354_5(unknown) = ^CallSideEffect : ~m? +# 1354| mu1354_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1354_1 +# 1355| r1355_1(glval) = VariableAddress[x445] : +# 1355| r1355_2(glval) = FunctionAddress[~String] : +# 1355| v1355_3(void) = Call[~String] : func:r1355_2, this:r1355_1 +# 1355| mu1355_4(unknown) = ^CallSideEffect : ~m? +# 1355| v1355_5(void) = ^IndirectReadSideEffect[-1] : &:r1355_1, ~m? +# 1355| mu1355_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1355_1 +# 1355| r1355_7(bool) = Constant[0] : +# 1355| v1355_8(void) = ConditionalBranch : r1355_7 +#-----| False -> Block 446 +#-----| True -> Block 1026 + +# 1357| Block 446 +# 1357| r1357_1(glval) = VariableAddress[x446] : +# 1357| mu1357_2(String) = Uninitialized[x446] : &:r1357_1 +# 1357| r1357_3(glval) = FunctionAddress[String] : +# 1357| v1357_4(void) = Call[String] : func:r1357_3, this:r1357_1 +# 1357| mu1357_5(unknown) = ^CallSideEffect : ~m? +# 1357| mu1357_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1357_1 +# 1358| r1358_1(glval) = VariableAddress[x446] : +# 1358| r1358_2(glval) = FunctionAddress[~String] : +# 1358| v1358_3(void) = Call[~String] : func:r1358_2, this:r1358_1 +# 1358| mu1358_4(unknown) = ^CallSideEffect : ~m? +# 1358| v1358_5(void) = ^IndirectReadSideEffect[-1] : &:r1358_1, ~m? +# 1358| mu1358_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1358_1 +# 1358| r1358_7(bool) = Constant[0] : +# 1358| v1358_8(void) = ConditionalBranch : r1358_7 +#-----| False -> Block 447 +#-----| True -> Block 1026 + +# 1360| Block 447 +# 1360| r1360_1(glval) = VariableAddress[x447] : +# 1360| mu1360_2(String) = Uninitialized[x447] : &:r1360_1 +# 1360| r1360_3(glval) = FunctionAddress[String] : +# 1360| v1360_4(void) = Call[String] : func:r1360_3, this:r1360_1 +# 1360| mu1360_5(unknown) = ^CallSideEffect : ~m? +# 1360| mu1360_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1360_1 +# 1361| r1361_1(glval) = VariableAddress[x447] : +# 1361| r1361_2(glval) = FunctionAddress[~String] : +# 1361| v1361_3(void) = Call[~String] : func:r1361_2, this:r1361_1 +# 1361| mu1361_4(unknown) = ^CallSideEffect : ~m? +# 1361| v1361_5(void) = ^IndirectReadSideEffect[-1] : &:r1361_1, ~m? +# 1361| mu1361_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1361_1 +# 1361| r1361_7(bool) = Constant[0] : +# 1361| v1361_8(void) = ConditionalBranch : r1361_7 +#-----| False -> Block 448 +#-----| True -> Block 1026 + +# 1363| Block 448 +# 1363| r1363_1(glval) = VariableAddress[x448] : +# 1363| mu1363_2(String) = Uninitialized[x448] : &:r1363_1 +# 1363| r1363_3(glval) = FunctionAddress[String] : +# 1363| v1363_4(void) = Call[String] : func:r1363_3, this:r1363_1 +# 1363| mu1363_5(unknown) = ^CallSideEffect : ~m? +# 1363| mu1363_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1363_1 +# 1364| r1364_1(glval) = VariableAddress[x448] : +# 1364| r1364_2(glval) = FunctionAddress[~String] : +# 1364| v1364_3(void) = Call[~String] : func:r1364_2, this:r1364_1 +# 1364| mu1364_4(unknown) = ^CallSideEffect : ~m? +# 1364| v1364_5(void) = ^IndirectReadSideEffect[-1] : &:r1364_1, ~m? +# 1364| mu1364_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1364_1 +# 1364| r1364_7(bool) = Constant[0] : +# 1364| v1364_8(void) = ConditionalBranch : r1364_7 +#-----| False -> Block 449 +#-----| True -> Block 1026 + +# 1366| Block 449 +# 1366| r1366_1(glval) = VariableAddress[x449] : +# 1366| mu1366_2(String) = Uninitialized[x449] : &:r1366_1 +# 1366| r1366_3(glval) = FunctionAddress[String] : +# 1366| v1366_4(void) = Call[String] : func:r1366_3, this:r1366_1 +# 1366| mu1366_5(unknown) = ^CallSideEffect : ~m? +# 1366| mu1366_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1366_1 +# 1367| r1367_1(glval) = VariableAddress[x449] : +# 1367| r1367_2(glval) = FunctionAddress[~String] : +# 1367| v1367_3(void) = Call[~String] : func:r1367_2, this:r1367_1 +# 1367| mu1367_4(unknown) = ^CallSideEffect : ~m? +# 1367| v1367_5(void) = ^IndirectReadSideEffect[-1] : &:r1367_1, ~m? +# 1367| mu1367_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1367_1 +# 1367| r1367_7(bool) = Constant[0] : +# 1367| v1367_8(void) = ConditionalBranch : r1367_7 +#-----| False -> Block 450 +#-----| True -> Block 1026 + +# 1369| Block 450 +# 1369| r1369_1(glval) = VariableAddress[x450] : +# 1369| mu1369_2(String) = Uninitialized[x450] : &:r1369_1 +# 1369| r1369_3(glval) = FunctionAddress[String] : +# 1369| v1369_4(void) = Call[String] : func:r1369_3, this:r1369_1 +# 1369| mu1369_5(unknown) = ^CallSideEffect : ~m? +# 1369| mu1369_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1369_1 +# 1370| r1370_1(glval) = VariableAddress[x450] : +# 1370| r1370_2(glval) = FunctionAddress[~String] : +# 1370| v1370_3(void) = Call[~String] : func:r1370_2, this:r1370_1 +# 1370| mu1370_4(unknown) = ^CallSideEffect : ~m? +# 1370| v1370_5(void) = ^IndirectReadSideEffect[-1] : &:r1370_1, ~m? +# 1370| mu1370_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1370_1 +# 1370| r1370_7(bool) = Constant[0] : +# 1370| v1370_8(void) = ConditionalBranch : r1370_7 +#-----| False -> Block 451 +#-----| True -> Block 1026 + +# 1372| Block 451 +# 1372| r1372_1(glval) = VariableAddress[x451] : +# 1372| mu1372_2(String) = Uninitialized[x451] : &:r1372_1 +# 1372| r1372_3(glval) = FunctionAddress[String] : +# 1372| v1372_4(void) = Call[String] : func:r1372_3, this:r1372_1 +# 1372| mu1372_5(unknown) = ^CallSideEffect : ~m? +# 1372| mu1372_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1372_1 +# 1373| r1373_1(glval) = VariableAddress[x451] : +# 1373| r1373_2(glval) = FunctionAddress[~String] : +# 1373| v1373_3(void) = Call[~String] : func:r1373_2, this:r1373_1 +# 1373| mu1373_4(unknown) = ^CallSideEffect : ~m? +# 1373| v1373_5(void) = ^IndirectReadSideEffect[-1] : &:r1373_1, ~m? +# 1373| mu1373_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1373_1 +# 1373| r1373_7(bool) = Constant[0] : +# 1373| v1373_8(void) = ConditionalBranch : r1373_7 +#-----| False -> Block 452 +#-----| True -> Block 1026 + +# 1375| Block 452 +# 1375| r1375_1(glval) = VariableAddress[x452] : +# 1375| mu1375_2(String) = Uninitialized[x452] : &:r1375_1 +# 1375| r1375_3(glval) = FunctionAddress[String] : +# 1375| v1375_4(void) = Call[String] : func:r1375_3, this:r1375_1 +# 1375| mu1375_5(unknown) = ^CallSideEffect : ~m? +# 1375| mu1375_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1375_1 +# 1376| r1376_1(glval) = VariableAddress[x452] : +# 1376| r1376_2(glval) = FunctionAddress[~String] : +# 1376| v1376_3(void) = Call[~String] : func:r1376_2, this:r1376_1 +# 1376| mu1376_4(unknown) = ^CallSideEffect : ~m? +# 1376| v1376_5(void) = ^IndirectReadSideEffect[-1] : &:r1376_1, ~m? +# 1376| mu1376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1376| r1376_7(bool) = Constant[0] : +# 1376| v1376_8(void) = ConditionalBranch : r1376_7 +#-----| False -> Block 453 +#-----| True -> Block 1026 + +# 1378| Block 453 +# 1378| r1378_1(glval) = VariableAddress[x453] : +# 1378| mu1378_2(String) = Uninitialized[x453] : &:r1378_1 +# 1378| r1378_3(glval) = FunctionAddress[String] : +# 1378| v1378_4(void) = Call[String] : func:r1378_3, this:r1378_1 +# 1378| mu1378_5(unknown) = ^CallSideEffect : ~m? +# 1378| mu1378_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1379| r1379_1(glval) = VariableAddress[x453] : +# 1379| r1379_2(glval) = FunctionAddress[~String] : +# 1379| v1379_3(void) = Call[~String] : func:r1379_2, this:r1379_1 +# 1379| mu1379_4(unknown) = ^CallSideEffect : ~m? +# 1379| v1379_5(void) = ^IndirectReadSideEffect[-1] : &:r1379_1, ~m? +# 1379| mu1379_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1379_1 +# 1379| r1379_7(bool) = Constant[0] : +# 1379| v1379_8(void) = ConditionalBranch : r1379_7 +#-----| False -> Block 454 +#-----| True -> Block 1026 + +# 1381| Block 454 +# 1381| r1381_1(glval) = VariableAddress[x454] : +# 1381| mu1381_2(String) = Uninitialized[x454] : &:r1381_1 +# 1381| r1381_3(glval) = FunctionAddress[String] : +# 1381| v1381_4(void) = Call[String] : func:r1381_3, this:r1381_1 +# 1381| mu1381_5(unknown) = ^CallSideEffect : ~m? +# 1381| mu1381_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1381_1 +# 1382| r1382_1(glval) = VariableAddress[x454] : +# 1382| r1382_2(glval) = FunctionAddress[~String] : +# 1382| v1382_3(void) = Call[~String] : func:r1382_2, this:r1382_1 +# 1382| mu1382_4(unknown) = ^CallSideEffect : ~m? +# 1382| v1382_5(void) = ^IndirectReadSideEffect[-1] : &:r1382_1, ~m? +# 1382| mu1382_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1382_1 +# 1382| r1382_7(bool) = Constant[0] : +# 1382| v1382_8(void) = ConditionalBranch : r1382_7 +#-----| False -> Block 455 +#-----| True -> Block 1026 + +# 1384| Block 455 +# 1384| r1384_1(glval) = VariableAddress[x455] : +# 1384| mu1384_2(String) = Uninitialized[x455] : &:r1384_1 +# 1384| r1384_3(glval) = FunctionAddress[String] : +# 1384| v1384_4(void) = Call[String] : func:r1384_3, this:r1384_1 +# 1384| mu1384_5(unknown) = ^CallSideEffect : ~m? +# 1384| mu1384_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1384_1 +# 1385| r1385_1(glval) = VariableAddress[x455] : +# 1385| r1385_2(glval) = FunctionAddress[~String] : +# 1385| v1385_3(void) = Call[~String] : func:r1385_2, this:r1385_1 +# 1385| mu1385_4(unknown) = ^CallSideEffect : ~m? +# 1385| v1385_5(void) = ^IndirectReadSideEffect[-1] : &:r1385_1, ~m? +# 1385| mu1385_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1385_1 +# 1385| r1385_7(bool) = Constant[0] : +# 1385| v1385_8(void) = ConditionalBranch : r1385_7 +#-----| False -> Block 456 +#-----| True -> Block 1026 + +# 1387| Block 456 +# 1387| r1387_1(glval) = VariableAddress[x456] : +# 1387| mu1387_2(String) = Uninitialized[x456] : &:r1387_1 +# 1387| r1387_3(glval) = FunctionAddress[String] : +# 1387| v1387_4(void) = Call[String] : func:r1387_3, this:r1387_1 +# 1387| mu1387_5(unknown) = ^CallSideEffect : ~m? +# 1387| mu1387_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1387_1 +# 1388| r1388_1(glval) = VariableAddress[x456] : +# 1388| r1388_2(glval) = FunctionAddress[~String] : +# 1388| v1388_3(void) = Call[~String] : func:r1388_2, this:r1388_1 +# 1388| mu1388_4(unknown) = ^CallSideEffect : ~m? +# 1388| v1388_5(void) = ^IndirectReadSideEffect[-1] : &:r1388_1, ~m? +# 1388| mu1388_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1388_1 +# 1388| r1388_7(bool) = Constant[0] : +# 1388| v1388_8(void) = ConditionalBranch : r1388_7 +#-----| False -> Block 457 +#-----| True -> Block 1026 + +# 1390| Block 457 +# 1390| r1390_1(glval) = VariableAddress[x457] : +# 1390| mu1390_2(String) = Uninitialized[x457] : &:r1390_1 +# 1390| r1390_3(glval) = FunctionAddress[String] : +# 1390| v1390_4(void) = Call[String] : func:r1390_3, this:r1390_1 +# 1390| mu1390_5(unknown) = ^CallSideEffect : ~m? +# 1390| mu1390_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1390_1 +# 1391| r1391_1(glval) = VariableAddress[x457] : +# 1391| r1391_2(glval) = FunctionAddress[~String] : +# 1391| v1391_3(void) = Call[~String] : func:r1391_2, this:r1391_1 +# 1391| mu1391_4(unknown) = ^CallSideEffect : ~m? +# 1391| v1391_5(void) = ^IndirectReadSideEffect[-1] : &:r1391_1, ~m? +# 1391| mu1391_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1391_1 +# 1391| r1391_7(bool) = Constant[0] : +# 1391| v1391_8(void) = ConditionalBranch : r1391_7 +#-----| False -> Block 458 +#-----| True -> Block 1026 + +# 1393| Block 458 +# 1393| r1393_1(glval) = VariableAddress[x458] : +# 1393| mu1393_2(String) = Uninitialized[x458] : &:r1393_1 +# 1393| r1393_3(glval) = FunctionAddress[String] : +# 1393| v1393_4(void) = Call[String] : func:r1393_3, this:r1393_1 +# 1393| mu1393_5(unknown) = ^CallSideEffect : ~m? +# 1393| mu1393_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1393_1 +# 1394| r1394_1(glval) = VariableAddress[x458] : +# 1394| r1394_2(glval) = FunctionAddress[~String] : +# 1394| v1394_3(void) = Call[~String] : func:r1394_2, this:r1394_1 +# 1394| mu1394_4(unknown) = ^CallSideEffect : ~m? +# 1394| v1394_5(void) = ^IndirectReadSideEffect[-1] : &:r1394_1, ~m? +# 1394| mu1394_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1394_1 +# 1394| r1394_7(bool) = Constant[0] : +# 1394| v1394_8(void) = ConditionalBranch : r1394_7 +#-----| False -> Block 459 +#-----| True -> Block 1026 + +# 1396| Block 459 +# 1396| r1396_1(glval) = VariableAddress[x459] : +# 1396| mu1396_2(String) = Uninitialized[x459] : &:r1396_1 +# 1396| r1396_3(glval) = FunctionAddress[String] : +# 1396| v1396_4(void) = Call[String] : func:r1396_3, this:r1396_1 +# 1396| mu1396_5(unknown) = ^CallSideEffect : ~m? +# 1396| mu1396_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1396_1 +# 1397| r1397_1(glval) = VariableAddress[x459] : +# 1397| r1397_2(glval) = FunctionAddress[~String] : +# 1397| v1397_3(void) = Call[~String] : func:r1397_2, this:r1397_1 +# 1397| mu1397_4(unknown) = ^CallSideEffect : ~m? +# 1397| v1397_5(void) = ^IndirectReadSideEffect[-1] : &:r1397_1, ~m? +# 1397| mu1397_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1397_1 +# 1397| r1397_7(bool) = Constant[0] : +# 1397| v1397_8(void) = ConditionalBranch : r1397_7 +#-----| False -> Block 460 +#-----| True -> Block 1026 + +# 1399| Block 460 +# 1399| r1399_1(glval) = VariableAddress[x460] : +# 1399| mu1399_2(String) = Uninitialized[x460] : &:r1399_1 +# 1399| r1399_3(glval) = FunctionAddress[String] : +# 1399| v1399_4(void) = Call[String] : func:r1399_3, this:r1399_1 +# 1399| mu1399_5(unknown) = ^CallSideEffect : ~m? +# 1399| mu1399_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 +# 1400| r1400_1(glval) = VariableAddress[x460] : +# 1400| r1400_2(glval) = FunctionAddress[~String] : +# 1400| v1400_3(void) = Call[~String] : func:r1400_2, this:r1400_1 +# 1400| mu1400_4(unknown) = ^CallSideEffect : ~m? +# 1400| v1400_5(void) = ^IndirectReadSideEffect[-1] : &:r1400_1, ~m? +# 1400| mu1400_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1400_1 +# 1400| r1400_7(bool) = Constant[0] : +# 1400| v1400_8(void) = ConditionalBranch : r1400_7 +#-----| False -> Block 461 +#-----| True -> Block 1026 + +# 1402| Block 461 +# 1402| r1402_1(glval) = VariableAddress[x461] : +# 1402| mu1402_2(String) = Uninitialized[x461] : &:r1402_1 +# 1402| r1402_3(glval) = FunctionAddress[String] : +# 1402| v1402_4(void) = Call[String] : func:r1402_3, this:r1402_1 +# 1402| mu1402_5(unknown) = ^CallSideEffect : ~m? +# 1402| mu1402_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1402_1 +# 1403| r1403_1(glval) = VariableAddress[x461] : +# 1403| r1403_2(glval) = FunctionAddress[~String] : +# 1403| v1403_3(void) = Call[~String] : func:r1403_2, this:r1403_1 +# 1403| mu1403_4(unknown) = ^CallSideEffect : ~m? +# 1403| v1403_5(void) = ^IndirectReadSideEffect[-1] : &:r1403_1, ~m? +# 1403| mu1403_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1403_1 +# 1403| r1403_7(bool) = Constant[0] : +# 1403| v1403_8(void) = ConditionalBranch : r1403_7 +#-----| False -> Block 462 +#-----| True -> Block 1026 + +# 1405| Block 462 +# 1405| r1405_1(glval) = VariableAddress[x462] : +# 1405| mu1405_2(String) = Uninitialized[x462] : &:r1405_1 +# 1405| r1405_3(glval) = FunctionAddress[String] : +# 1405| v1405_4(void) = Call[String] : func:r1405_3, this:r1405_1 +# 1405| mu1405_5(unknown) = ^CallSideEffect : ~m? +# 1405| mu1405_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1405_1 +# 1406| r1406_1(glval) = VariableAddress[x462] : +# 1406| r1406_2(glval) = FunctionAddress[~String] : +# 1406| v1406_3(void) = Call[~String] : func:r1406_2, this:r1406_1 +# 1406| mu1406_4(unknown) = ^CallSideEffect : ~m? +# 1406| v1406_5(void) = ^IndirectReadSideEffect[-1] : &:r1406_1, ~m? +# 1406| mu1406_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1406_1 +# 1406| r1406_7(bool) = Constant[0] : +# 1406| v1406_8(void) = ConditionalBranch : r1406_7 +#-----| False -> Block 463 +#-----| True -> Block 1026 + +# 1408| Block 463 +# 1408| r1408_1(glval) = VariableAddress[x463] : +# 1408| mu1408_2(String) = Uninitialized[x463] : &:r1408_1 +# 1408| r1408_3(glval) = FunctionAddress[String] : +# 1408| v1408_4(void) = Call[String] : func:r1408_3, this:r1408_1 +# 1408| mu1408_5(unknown) = ^CallSideEffect : ~m? +# 1408| mu1408_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1408_1 +# 1409| r1409_1(glval) = VariableAddress[x463] : +# 1409| r1409_2(glval) = FunctionAddress[~String] : +# 1409| v1409_3(void) = Call[~String] : func:r1409_2, this:r1409_1 +# 1409| mu1409_4(unknown) = ^CallSideEffect : ~m? +# 1409| v1409_5(void) = ^IndirectReadSideEffect[-1] : &:r1409_1, ~m? +# 1409| mu1409_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1409_1 +# 1409| r1409_7(bool) = Constant[0] : +# 1409| v1409_8(void) = ConditionalBranch : r1409_7 +#-----| False -> Block 464 +#-----| True -> Block 1026 + +# 1411| Block 464 +# 1411| r1411_1(glval) = VariableAddress[x464] : +# 1411| mu1411_2(String) = Uninitialized[x464] : &:r1411_1 +# 1411| r1411_3(glval) = FunctionAddress[String] : +# 1411| v1411_4(void) = Call[String] : func:r1411_3, this:r1411_1 +# 1411| mu1411_5(unknown) = ^CallSideEffect : ~m? +# 1411| mu1411_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1411_1 +# 1412| r1412_1(glval) = VariableAddress[x464] : +# 1412| r1412_2(glval) = FunctionAddress[~String] : +# 1412| v1412_3(void) = Call[~String] : func:r1412_2, this:r1412_1 +# 1412| mu1412_4(unknown) = ^CallSideEffect : ~m? +# 1412| v1412_5(void) = ^IndirectReadSideEffect[-1] : &:r1412_1, ~m? +# 1412| mu1412_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1412_1 +# 1412| r1412_7(bool) = Constant[0] : +# 1412| v1412_8(void) = ConditionalBranch : r1412_7 +#-----| False -> Block 465 +#-----| True -> Block 1026 + +# 1414| Block 465 +# 1414| r1414_1(glval) = VariableAddress[x465] : +# 1414| mu1414_2(String) = Uninitialized[x465] : &:r1414_1 +# 1414| r1414_3(glval) = FunctionAddress[String] : +# 1414| v1414_4(void) = Call[String] : func:r1414_3, this:r1414_1 +# 1414| mu1414_5(unknown) = ^CallSideEffect : ~m? +# 1414| mu1414_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1414_1 +# 1415| r1415_1(glval) = VariableAddress[x465] : +# 1415| r1415_2(glval) = FunctionAddress[~String] : +# 1415| v1415_3(void) = Call[~String] : func:r1415_2, this:r1415_1 +# 1415| mu1415_4(unknown) = ^CallSideEffect : ~m? +# 1415| v1415_5(void) = ^IndirectReadSideEffect[-1] : &:r1415_1, ~m? +# 1415| mu1415_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1415_1 +# 1415| r1415_7(bool) = Constant[0] : +# 1415| v1415_8(void) = ConditionalBranch : r1415_7 +#-----| False -> Block 466 +#-----| True -> Block 1026 + +# 1417| Block 466 +# 1417| r1417_1(glval) = VariableAddress[x466] : +# 1417| mu1417_2(String) = Uninitialized[x466] : &:r1417_1 +# 1417| r1417_3(glval) = FunctionAddress[String] : +# 1417| v1417_4(void) = Call[String] : func:r1417_3, this:r1417_1 +# 1417| mu1417_5(unknown) = ^CallSideEffect : ~m? +# 1417| mu1417_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1417_1 +# 1418| r1418_1(glval) = VariableAddress[x466] : +# 1418| r1418_2(glval) = FunctionAddress[~String] : +# 1418| v1418_3(void) = Call[~String] : func:r1418_2, this:r1418_1 +# 1418| mu1418_4(unknown) = ^CallSideEffect : ~m? +# 1418| v1418_5(void) = ^IndirectReadSideEffect[-1] : &:r1418_1, ~m? +# 1418| mu1418_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1418_1 +# 1418| r1418_7(bool) = Constant[0] : +# 1418| v1418_8(void) = ConditionalBranch : r1418_7 +#-----| False -> Block 467 +#-----| True -> Block 1026 + +# 1420| Block 467 +# 1420| r1420_1(glval) = VariableAddress[x467] : +# 1420| mu1420_2(String) = Uninitialized[x467] : &:r1420_1 +# 1420| r1420_3(glval) = FunctionAddress[String] : +# 1420| v1420_4(void) = Call[String] : func:r1420_3, this:r1420_1 +# 1420| mu1420_5(unknown) = ^CallSideEffect : ~m? +# 1420| mu1420_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_1 +# 1421| r1421_1(glval) = VariableAddress[x467] : +# 1421| r1421_2(glval) = FunctionAddress[~String] : +# 1421| v1421_3(void) = Call[~String] : func:r1421_2, this:r1421_1 +# 1421| mu1421_4(unknown) = ^CallSideEffect : ~m? +# 1421| v1421_5(void) = ^IndirectReadSideEffect[-1] : &:r1421_1, ~m? +# 1421| mu1421_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_1 +# 1421| r1421_7(bool) = Constant[0] : +# 1421| v1421_8(void) = ConditionalBranch : r1421_7 +#-----| False -> Block 468 +#-----| True -> Block 1026 + +# 1423| Block 468 +# 1423| r1423_1(glval) = VariableAddress[x468] : +# 1423| mu1423_2(String) = Uninitialized[x468] : &:r1423_1 +# 1423| r1423_3(glval) = FunctionAddress[String] : +# 1423| v1423_4(void) = Call[String] : func:r1423_3, this:r1423_1 +# 1423| mu1423_5(unknown) = ^CallSideEffect : ~m? +# 1423| mu1423_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_1 +# 1424| r1424_1(glval) = VariableAddress[x468] : +# 1424| r1424_2(glval) = FunctionAddress[~String] : +# 1424| v1424_3(void) = Call[~String] : func:r1424_2, this:r1424_1 +# 1424| mu1424_4(unknown) = ^CallSideEffect : ~m? +# 1424| v1424_5(void) = ^IndirectReadSideEffect[-1] : &:r1424_1, ~m? +# 1424| mu1424_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_1 +# 1424| r1424_7(bool) = Constant[0] : +# 1424| v1424_8(void) = ConditionalBranch : r1424_7 +#-----| False -> Block 469 +#-----| True -> Block 1026 + +# 1426| Block 469 +# 1426| r1426_1(glval) = VariableAddress[x469] : +# 1426| mu1426_2(String) = Uninitialized[x469] : &:r1426_1 +# 1426| r1426_3(glval) = FunctionAddress[String] : +# 1426| v1426_4(void) = Call[String] : func:r1426_3, this:r1426_1 +# 1426| mu1426_5(unknown) = ^CallSideEffect : ~m? +# 1426| mu1426_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_1 +# 1427| r1427_1(glval) = VariableAddress[x469] : +# 1427| r1427_2(glval) = FunctionAddress[~String] : +# 1427| v1427_3(void) = Call[~String] : func:r1427_2, this:r1427_1 +# 1427| mu1427_4(unknown) = ^CallSideEffect : ~m? +# 1427| v1427_5(void) = ^IndirectReadSideEffect[-1] : &:r1427_1, ~m? +# 1427| mu1427_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1427_1 +# 1427| r1427_7(bool) = Constant[0] : +# 1427| v1427_8(void) = ConditionalBranch : r1427_7 +#-----| False -> Block 470 +#-----| True -> Block 1026 + +# 1429| Block 470 +# 1429| r1429_1(glval) = VariableAddress[x470] : +# 1429| mu1429_2(String) = Uninitialized[x470] : &:r1429_1 +# 1429| r1429_3(glval) = FunctionAddress[String] : +# 1429| v1429_4(void) = Call[String] : func:r1429_3, this:r1429_1 +# 1429| mu1429_5(unknown) = ^CallSideEffect : ~m? +# 1429| mu1429_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1429_1 +# 1430| r1430_1(glval) = VariableAddress[x470] : +# 1430| r1430_2(glval) = FunctionAddress[~String] : +# 1430| v1430_3(void) = Call[~String] : func:r1430_2, this:r1430_1 +# 1430| mu1430_4(unknown) = ^CallSideEffect : ~m? +# 1430| v1430_5(void) = ^IndirectReadSideEffect[-1] : &:r1430_1, ~m? +# 1430| mu1430_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1430_1 +# 1430| r1430_7(bool) = Constant[0] : +# 1430| v1430_8(void) = ConditionalBranch : r1430_7 +#-----| False -> Block 471 +#-----| True -> Block 1026 + +# 1432| Block 471 +# 1432| r1432_1(glval) = VariableAddress[x471] : +# 1432| mu1432_2(String) = Uninitialized[x471] : &:r1432_1 +# 1432| r1432_3(glval) = FunctionAddress[String] : +# 1432| v1432_4(void) = Call[String] : func:r1432_3, this:r1432_1 +# 1432| mu1432_5(unknown) = ^CallSideEffect : ~m? +# 1432| mu1432_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1432_1 +# 1433| r1433_1(glval) = VariableAddress[x471] : +# 1433| r1433_2(glval) = FunctionAddress[~String] : +# 1433| v1433_3(void) = Call[~String] : func:r1433_2, this:r1433_1 +# 1433| mu1433_4(unknown) = ^CallSideEffect : ~m? +# 1433| v1433_5(void) = ^IndirectReadSideEffect[-1] : &:r1433_1, ~m? +# 1433| mu1433_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1433_1 +# 1433| r1433_7(bool) = Constant[0] : +# 1433| v1433_8(void) = ConditionalBranch : r1433_7 +#-----| False -> Block 472 +#-----| True -> Block 1026 + +# 1435| Block 472 +# 1435| r1435_1(glval) = VariableAddress[x472] : +# 1435| mu1435_2(String) = Uninitialized[x472] : &:r1435_1 +# 1435| r1435_3(glval) = FunctionAddress[String] : +# 1435| v1435_4(void) = Call[String] : func:r1435_3, this:r1435_1 +# 1435| mu1435_5(unknown) = ^CallSideEffect : ~m? +# 1435| mu1435_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 +# 1436| r1436_1(glval) = VariableAddress[x472] : +# 1436| r1436_2(glval) = FunctionAddress[~String] : +# 1436| v1436_3(void) = Call[~String] : func:r1436_2, this:r1436_1 +# 1436| mu1436_4(unknown) = ^CallSideEffect : ~m? +# 1436| v1436_5(void) = ^IndirectReadSideEffect[-1] : &:r1436_1, ~m? +# 1436| mu1436_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1436_1 +# 1436| r1436_7(bool) = Constant[0] : +# 1436| v1436_8(void) = ConditionalBranch : r1436_7 +#-----| False -> Block 473 +#-----| True -> Block 1026 + +# 1438| Block 473 +# 1438| r1438_1(glval) = VariableAddress[x473] : +# 1438| mu1438_2(String) = Uninitialized[x473] : &:r1438_1 +# 1438| r1438_3(glval) = FunctionAddress[String] : +# 1438| v1438_4(void) = Call[String] : func:r1438_3, this:r1438_1 +# 1438| mu1438_5(unknown) = ^CallSideEffect : ~m? +# 1438| mu1438_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1438_1 +# 1439| r1439_1(glval) = VariableAddress[x473] : +# 1439| r1439_2(glval) = FunctionAddress[~String] : +# 1439| v1439_3(void) = Call[~String] : func:r1439_2, this:r1439_1 +# 1439| mu1439_4(unknown) = ^CallSideEffect : ~m? +# 1439| v1439_5(void) = ^IndirectReadSideEffect[-1] : &:r1439_1, ~m? +# 1439| mu1439_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1439_1 +# 1439| r1439_7(bool) = Constant[0] : +# 1439| v1439_8(void) = ConditionalBranch : r1439_7 +#-----| False -> Block 474 +#-----| True -> Block 1026 + +# 1441| Block 474 +# 1441| r1441_1(glval) = VariableAddress[x474] : +# 1441| mu1441_2(String) = Uninitialized[x474] : &:r1441_1 +# 1441| r1441_3(glval) = FunctionAddress[String] : +# 1441| v1441_4(void) = Call[String] : func:r1441_3, this:r1441_1 +# 1441| mu1441_5(unknown) = ^CallSideEffect : ~m? +# 1441| mu1441_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1441_1 +# 1442| r1442_1(glval) = VariableAddress[x474] : +# 1442| r1442_2(glval) = FunctionAddress[~String] : +# 1442| v1442_3(void) = Call[~String] : func:r1442_2, this:r1442_1 +# 1442| mu1442_4(unknown) = ^CallSideEffect : ~m? +# 1442| v1442_5(void) = ^IndirectReadSideEffect[-1] : &:r1442_1, ~m? +# 1442| mu1442_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1442_1 +# 1442| r1442_7(bool) = Constant[0] : +# 1442| v1442_8(void) = ConditionalBranch : r1442_7 +#-----| False -> Block 475 +#-----| True -> Block 1026 + +# 1444| Block 475 +# 1444| r1444_1(glval) = VariableAddress[x475] : +# 1444| mu1444_2(String) = Uninitialized[x475] : &:r1444_1 +# 1444| r1444_3(glval) = FunctionAddress[String] : +# 1444| v1444_4(void) = Call[String] : func:r1444_3, this:r1444_1 +# 1444| mu1444_5(unknown) = ^CallSideEffect : ~m? +# 1444| mu1444_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1444_1 +# 1445| r1445_1(glval) = VariableAddress[x475] : +# 1445| r1445_2(glval) = FunctionAddress[~String] : +# 1445| v1445_3(void) = Call[~String] : func:r1445_2, this:r1445_1 +# 1445| mu1445_4(unknown) = ^CallSideEffect : ~m? +# 1445| v1445_5(void) = ^IndirectReadSideEffect[-1] : &:r1445_1, ~m? +# 1445| mu1445_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1445_1 +# 1445| r1445_7(bool) = Constant[0] : +# 1445| v1445_8(void) = ConditionalBranch : r1445_7 +#-----| False -> Block 476 +#-----| True -> Block 1026 + +# 1447| Block 476 +# 1447| r1447_1(glval) = VariableAddress[x476] : +# 1447| mu1447_2(String) = Uninitialized[x476] : &:r1447_1 +# 1447| r1447_3(glval) = FunctionAddress[String] : +# 1447| v1447_4(void) = Call[String] : func:r1447_3, this:r1447_1 +# 1447| mu1447_5(unknown) = ^CallSideEffect : ~m? +# 1447| mu1447_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1448| r1448_1(glval) = VariableAddress[x476] : +# 1448| r1448_2(glval) = FunctionAddress[~String] : +# 1448| v1448_3(void) = Call[~String] : func:r1448_2, this:r1448_1 +# 1448| mu1448_4(unknown) = ^CallSideEffect : ~m? +# 1448| v1448_5(void) = ^IndirectReadSideEffect[-1] : &:r1448_1, ~m? +# 1448| mu1448_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1448| r1448_7(bool) = Constant[0] : +# 1448| v1448_8(void) = ConditionalBranch : r1448_7 +#-----| False -> Block 477 +#-----| True -> Block 1026 + +# 1450| Block 477 +# 1450| r1450_1(glval) = VariableAddress[x477] : +# 1450| mu1450_2(String) = Uninitialized[x477] : &:r1450_1 +# 1450| r1450_3(glval) = FunctionAddress[String] : +# 1450| v1450_4(void) = Call[String] : func:r1450_3, this:r1450_1 +# 1450| mu1450_5(unknown) = ^CallSideEffect : ~m? +# 1450| mu1450_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1450_1 +# 1451| r1451_1(glval) = VariableAddress[x477] : +# 1451| r1451_2(glval) = FunctionAddress[~String] : +# 1451| v1451_3(void) = Call[~String] : func:r1451_2, this:r1451_1 +# 1451| mu1451_4(unknown) = ^CallSideEffect : ~m? +# 1451| v1451_5(void) = ^IndirectReadSideEffect[-1] : &:r1451_1, ~m? +# 1451| mu1451_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1451_1 +# 1451| r1451_7(bool) = Constant[0] : +# 1451| v1451_8(void) = ConditionalBranch : r1451_7 +#-----| False -> Block 478 +#-----| True -> Block 1026 + +# 1453| Block 478 +# 1453| r1453_1(glval) = VariableAddress[x478] : +# 1453| mu1453_2(String) = Uninitialized[x478] : &:r1453_1 +# 1453| r1453_3(glval) = FunctionAddress[String] : +# 1453| v1453_4(void) = Call[String] : func:r1453_3, this:r1453_1 +# 1453| mu1453_5(unknown) = ^CallSideEffect : ~m? +# 1453| mu1453_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1453_1 +# 1454| r1454_1(glval) = VariableAddress[x478] : +# 1454| r1454_2(glval) = FunctionAddress[~String] : +# 1454| v1454_3(void) = Call[~String] : func:r1454_2, this:r1454_1 +# 1454| mu1454_4(unknown) = ^CallSideEffect : ~m? +# 1454| v1454_5(void) = ^IndirectReadSideEffect[-1] : &:r1454_1, ~m? +# 1454| mu1454_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1454_1 +# 1454| r1454_7(bool) = Constant[0] : +# 1454| v1454_8(void) = ConditionalBranch : r1454_7 +#-----| False -> Block 479 +#-----| True -> Block 1026 + +# 1456| Block 479 +# 1456| r1456_1(glval) = VariableAddress[x479] : +# 1456| mu1456_2(String) = Uninitialized[x479] : &:r1456_1 +# 1456| r1456_3(glval) = FunctionAddress[String] : +# 1456| v1456_4(void) = Call[String] : func:r1456_3, this:r1456_1 +# 1456| mu1456_5(unknown) = ^CallSideEffect : ~m? +# 1456| mu1456_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1456_1 +# 1457| r1457_1(glval) = VariableAddress[x479] : +# 1457| r1457_2(glval) = FunctionAddress[~String] : +# 1457| v1457_3(void) = Call[~String] : func:r1457_2, this:r1457_1 +# 1457| mu1457_4(unknown) = ^CallSideEffect : ~m? +# 1457| v1457_5(void) = ^IndirectReadSideEffect[-1] : &:r1457_1, ~m? +# 1457| mu1457_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1457_1 +# 1457| r1457_7(bool) = Constant[0] : +# 1457| v1457_8(void) = ConditionalBranch : r1457_7 +#-----| False -> Block 480 +#-----| True -> Block 1026 + +# 1459| Block 480 +# 1459| r1459_1(glval) = VariableAddress[x480] : +# 1459| mu1459_2(String) = Uninitialized[x480] : &:r1459_1 +# 1459| r1459_3(glval) = FunctionAddress[String] : +# 1459| v1459_4(void) = Call[String] : func:r1459_3, this:r1459_1 +# 1459| mu1459_5(unknown) = ^CallSideEffect : ~m? +# 1459| mu1459_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1459_1 +# 1460| r1460_1(glval) = VariableAddress[x480] : +# 1460| r1460_2(glval) = FunctionAddress[~String] : +# 1460| v1460_3(void) = Call[~String] : func:r1460_2, this:r1460_1 +# 1460| mu1460_4(unknown) = ^CallSideEffect : ~m? +# 1460| v1460_5(void) = ^IndirectReadSideEffect[-1] : &:r1460_1, ~m? +# 1460| mu1460_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1460_1 +# 1460| r1460_7(bool) = Constant[0] : +# 1460| v1460_8(void) = ConditionalBranch : r1460_7 +#-----| False -> Block 481 +#-----| True -> Block 1026 + +# 1462| Block 481 +# 1462| r1462_1(glval) = VariableAddress[x481] : +# 1462| mu1462_2(String) = Uninitialized[x481] : &:r1462_1 +# 1462| r1462_3(glval) = FunctionAddress[String] : +# 1462| v1462_4(void) = Call[String] : func:r1462_3, this:r1462_1 +# 1462| mu1462_5(unknown) = ^CallSideEffect : ~m? +# 1462| mu1462_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1462_1 +# 1463| r1463_1(glval) = VariableAddress[x481] : +# 1463| r1463_2(glval) = FunctionAddress[~String] : +# 1463| v1463_3(void) = Call[~String] : func:r1463_2, this:r1463_1 +# 1463| mu1463_4(unknown) = ^CallSideEffect : ~m? +# 1463| v1463_5(void) = ^IndirectReadSideEffect[-1] : &:r1463_1, ~m? +# 1463| mu1463_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1463_1 +# 1463| r1463_7(bool) = Constant[0] : +# 1463| v1463_8(void) = ConditionalBranch : r1463_7 +#-----| False -> Block 482 +#-----| True -> Block 1026 + +# 1465| Block 482 +# 1465| r1465_1(glval) = VariableAddress[x482] : +# 1465| mu1465_2(String) = Uninitialized[x482] : &:r1465_1 +# 1465| r1465_3(glval) = FunctionAddress[String] : +# 1465| v1465_4(void) = Call[String] : func:r1465_3, this:r1465_1 +# 1465| mu1465_5(unknown) = ^CallSideEffect : ~m? +# 1465| mu1465_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1465_1 +# 1466| r1466_1(glval) = VariableAddress[x482] : +# 1466| r1466_2(glval) = FunctionAddress[~String] : +# 1466| v1466_3(void) = Call[~String] : func:r1466_2, this:r1466_1 +# 1466| mu1466_4(unknown) = ^CallSideEffect : ~m? +# 1466| v1466_5(void) = ^IndirectReadSideEffect[-1] : &:r1466_1, ~m? +# 1466| mu1466_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1466_1 +# 1466| r1466_7(bool) = Constant[0] : +# 1466| v1466_8(void) = ConditionalBranch : r1466_7 +#-----| False -> Block 483 +#-----| True -> Block 1026 + +# 1468| Block 483 +# 1468| r1468_1(glval) = VariableAddress[x483] : +# 1468| mu1468_2(String) = Uninitialized[x483] : &:r1468_1 +# 1468| r1468_3(glval) = FunctionAddress[String] : +# 1468| v1468_4(void) = Call[String] : func:r1468_3, this:r1468_1 +# 1468| mu1468_5(unknown) = ^CallSideEffect : ~m? +# 1468| mu1468_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1468_1 +# 1469| r1469_1(glval) = VariableAddress[x483] : +# 1469| r1469_2(glval) = FunctionAddress[~String] : +# 1469| v1469_3(void) = Call[~String] : func:r1469_2, this:r1469_1 +# 1469| mu1469_4(unknown) = ^CallSideEffect : ~m? +# 1469| v1469_5(void) = ^IndirectReadSideEffect[-1] : &:r1469_1, ~m? +# 1469| mu1469_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1469_1 +# 1469| r1469_7(bool) = Constant[0] : +# 1469| v1469_8(void) = ConditionalBranch : r1469_7 +#-----| False -> Block 484 +#-----| True -> Block 1026 + +# 1471| Block 484 +# 1471| r1471_1(glval) = VariableAddress[x484] : +# 1471| mu1471_2(String) = Uninitialized[x484] : &:r1471_1 +# 1471| r1471_3(glval) = FunctionAddress[String] : +# 1471| v1471_4(void) = Call[String] : func:r1471_3, this:r1471_1 +# 1471| mu1471_5(unknown) = ^CallSideEffect : ~m? +# 1471| mu1471_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1471_1 +# 1472| r1472_1(glval) = VariableAddress[x484] : +# 1472| r1472_2(glval) = FunctionAddress[~String] : +# 1472| v1472_3(void) = Call[~String] : func:r1472_2, this:r1472_1 +# 1472| mu1472_4(unknown) = ^CallSideEffect : ~m? +# 1472| v1472_5(void) = ^IndirectReadSideEffect[-1] : &:r1472_1, ~m? +# 1472| mu1472_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1472_1 +# 1472| r1472_7(bool) = Constant[0] : +# 1472| v1472_8(void) = ConditionalBranch : r1472_7 +#-----| False -> Block 485 +#-----| True -> Block 1026 + +# 1474| Block 485 +# 1474| r1474_1(glval) = VariableAddress[x485] : +# 1474| mu1474_2(String) = Uninitialized[x485] : &:r1474_1 +# 1474| r1474_3(glval) = FunctionAddress[String] : +# 1474| v1474_4(void) = Call[String] : func:r1474_3, this:r1474_1 +# 1474| mu1474_5(unknown) = ^CallSideEffect : ~m? +# 1474| mu1474_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1474_1 +# 1475| r1475_1(glval) = VariableAddress[x485] : +# 1475| r1475_2(glval) = FunctionAddress[~String] : +# 1475| v1475_3(void) = Call[~String] : func:r1475_2, this:r1475_1 +# 1475| mu1475_4(unknown) = ^CallSideEffect : ~m? +# 1475| v1475_5(void) = ^IndirectReadSideEffect[-1] : &:r1475_1, ~m? +# 1475| mu1475_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1475_1 +# 1475| r1475_7(bool) = Constant[0] : +# 1475| v1475_8(void) = ConditionalBranch : r1475_7 +#-----| False -> Block 486 +#-----| True -> Block 1026 + +# 1477| Block 486 +# 1477| r1477_1(glval) = VariableAddress[x486] : +# 1477| mu1477_2(String) = Uninitialized[x486] : &:r1477_1 +# 1477| r1477_3(glval) = FunctionAddress[String] : +# 1477| v1477_4(void) = Call[String] : func:r1477_3, this:r1477_1 +# 1477| mu1477_5(unknown) = ^CallSideEffect : ~m? +# 1477| mu1477_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1477_1 +# 1478| r1478_1(glval) = VariableAddress[x486] : +# 1478| r1478_2(glval) = FunctionAddress[~String] : +# 1478| v1478_3(void) = Call[~String] : func:r1478_2, this:r1478_1 +# 1478| mu1478_4(unknown) = ^CallSideEffect : ~m? +# 1478| v1478_5(void) = ^IndirectReadSideEffect[-1] : &:r1478_1, ~m? +# 1478| mu1478_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1478_1 +# 1478| r1478_7(bool) = Constant[0] : +# 1478| v1478_8(void) = ConditionalBranch : r1478_7 +#-----| False -> Block 487 +#-----| True -> Block 1026 + +# 1480| Block 487 +# 1480| r1480_1(glval) = VariableAddress[x487] : +# 1480| mu1480_2(String) = Uninitialized[x487] : &:r1480_1 +# 1480| r1480_3(glval) = FunctionAddress[String] : +# 1480| v1480_4(void) = Call[String] : func:r1480_3, this:r1480_1 +# 1480| mu1480_5(unknown) = ^CallSideEffect : ~m? +# 1480| mu1480_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1480_1 +# 1481| r1481_1(glval) = VariableAddress[x487] : +# 1481| r1481_2(glval) = FunctionAddress[~String] : +# 1481| v1481_3(void) = Call[~String] : func:r1481_2, this:r1481_1 +# 1481| mu1481_4(unknown) = ^CallSideEffect : ~m? +# 1481| v1481_5(void) = ^IndirectReadSideEffect[-1] : &:r1481_1, ~m? +# 1481| mu1481_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1481_1 +# 1481| r1481_7(bool) = Constant[0] : +# 1481| v1481_8(void) = ConditionalBranch : r1481_7 +#-----| False -> Block 488 +#-----| True -> Block 1026 + +# 1483| Block 488 +# 1483| r1483_1(glval) = VariableAddress[x488] : +# 1483| mu1483_2(String) = Uninitialized[x488] : &:r1483_1 +# 1483| r1483_3(glval) = FunctionAddress[String] : +# 1483| v1483_4(void) = Call[String] : func:r1483_3, this:r1483_1 +# 1483| mu1483_5(unknown) = ^CallSideEffect : ~m? +# 1483| mu1483_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1483_1 +# 1484| r1484_1(glval) = VariableAddress[x488] : +# 1484| r1484_2(glval) = FunctionAddress[~String] : +# 1484| v1484_3(void) = Call[~String] : func:r1484_2, this:r1484_1 +# 1484| mu1484_4(unknown) = ^CallSideEffect : ~m? +# 1484| v1484_5(void) = ^IndirectReadSideEffect[-1] : &:r1484_1, ~m? +# 1484| mu1484_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1484_1 +# 1484| r1484_7(bool) = Constant[0] : +# 1484| v1484_8(void) = ConditionalBranch : r1484_7 +#-----| False -> Block 489 +#-----| True -> Block 1026 + +# 1486| Block 489 +# 1486| r1486_1(glval) = VariableAddress[x489] : +# 1486| mu1486_2(String) = Uninitialized[x489] : &:r1486_1 +# 1486| r1486_3(glval) = FunctionAddress[String] : +# 1486| v1486_4(void) = Call[String] : func:r1486_3, this:r1486_1 +# 1486| mu1486_5(unknown) = ^CallSideEffect : ~m? +# 1486| mu1486_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1486_1 +# 1487| r1487_1(glval) = VariableAddress[x489] : +# 1487| r1487_2(glval) = FunctionAddress[~String] : +# 1487| v1487_3(void) = Call[~String] : func:r1487_2, this:r1487_1 +# 1487| mu1487_4(unknown) = ^CallSideEffect : ~m? +# 1487| v1487_5(void) = ^IndirectReadSideEffect[-1] : &:r1487_1, ~m? +# 1487| mu1487_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1487_1 +# 1487| r1487_7(bool) = Constant[0] : +# 1487| v1487_8(void) = ConditionalBranch : r1487_7 +#-----| False -> Block 490 +#-----| True -> Block 1026 + +# 1489| Block 490 +# 1489| r1489_1(glval) = VariableAddress[x490] : +# 1489| mu1489_2(String) = Uninitialized[x490] : &:r1489_1 +# 1489| r1489_3(glval) = FunctionAddress[String] : +# 1489| v1489_4(void) = Call[String] : func:r1489_3, this:r1489_1 +# 1489| mu1489_5(unknown) = ^CallSideEffect : ~m? +# 1489| mu1489_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1489_1 +# 1490| r1490_1(glval) = VariableAddress[x490] : +# 1490| r1490_2(glval) = FunctionAddress[~String] : +# 1490| v1490_3(void) = Call[~String] : func:r1490_2, this:r1490_1 +# 1490| mu1490_4(unknown) = ^CallSideEffect : ~m? +# 1490| v1490_5(void) = ^IndirectReadSideEffect[-1] : &:r1490_1, ~m? +# 1490| mu1490_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1490_1 +# 1490| r1490_7(bool) = Constant[0] : +# 1490| v1490_8(void) = ConditionalBranch : r1490_7 +#-----| False -> Block 491 +#-----| True -> Block 1026 + +# 1492| Block 491 +# 1492| r1492_1(glval) = VariableAddress[x491] : +# 1492| mu1492_2(String) = Uninitialized[x491] : &:r1492_1 +# 1492| r1492_3(glval) = FunctionAddress[String] : +# 1492| v1492_4(void) = Call[String] : func:r1492_3, this:r1492_1 +# 1492| mu1492_5(unknown) = ^CallSideEffect : ~m? +# 1492| mu1492_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1492_1 +# 1493| r1493_1(glval) = VariableAddress[x491] : +# 1493| r1493_2(glval) = FunctionAddress[~String] : +# 1493| v1493_3(void) = Call[~String] : func:r1493_2, this:r1493_1 +# 1493| mu1493_4(unknown) = ^CallSideEffect : ~m? +# 1493| v1493_5(void) = ^IndirectReadSideEffect[-1] : &:r1493_1, ~m? +# 1493| mu1493_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1493_1 +# 1493| r1493_7(bool) = Constant[0] : +# 1493| v1493_8(void) = ConditionalBranch : r1493_7 +#-----| False -> Block 492 +#-----| True -> Block 1026 + +# 1495| Block 492 +# 1495| r1495_1(glval) = VariableAddress[x492] : +# 1495| mu1495_2(String) = Uninitialized[x492] : &:r1495_1 +# 1495| r1495_3(glval) = FunctionAddress[String] : +# 1495| v1495_4(void) = Call[String] : func:r1495_3, this:r1495_1 +# 1495| mu1495_5(unknown) = ^CallSideEffect : ~m? +# 1495| mu1495_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1495_1 +# 1496| r1496_1(glval) = VariableAddress[x492] : +# 1496| r1496_2(glval) = FunctionAddress[~String] : +# 1496| v1496_3(void) = Call[~String] : func:r1496_2, this:r1496_1 +# 1496| mu1496_4(unknown) = ^CallSideEffect : ~m? +# 1496| v1496_5(void) = ^IndirectReadSideEffect[-1] : &:r1496_1, ~m? +# 1496| mu1496_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1496_1 +# 1496| r1496_7(bool) = Constant[0] : +# 1496| v1496_8(void) = ConditionalBranch : r1496_7 +#-----| False -> Block 493 +#-----| True -> Block 1026 + +# 1498| Block 493 +# 1498| r1498_1(glval) = VariableAddress[x493] : +# 1498| mu1498_2(String) = Uninitialized[x493] : &:r1498_1 +# 1498| r1498_3(glval) = FunctionAddress[String] : +# 1498| v1498_4(void) = Call[String] : func:r1498_3, this:r1498_1 +# 1498| mu1498_5(unknown) = ^CallSideEffect : ~m? +# 1498| mu1498_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1498_1 +# 1499| r1499_1(glval) = VariableAddress[x493] : +# 1499| r1499_2(glval) = FunctionAddress[~String] : +# 1499| v1499_3(void) = Call[~String] : func:r1499_2, this:r1499_1 +# 1499| mu1499_4(unknown) = ^CallSideEffect : ~m? +# 1499| v1499_5(void) = ^IndirectReadSideEffect[-1] : &:r1499_1, ~m? +# 1499| mu1499_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1499_1 +# 1499| r1499_7(bool) = Constant[0] : +# 1499| v1499_8(void) = ConditionalBranch : r1499_7 +#-----| False -> Block 494 +#-----| True -> Block 1026 + +# 1501| Block 494 +# 1501| r1501_1(glval) = VariableAddress[x494] : +# 1501| mu1501_2(String) = Uninitialized[x494] : &:r1501_1 +# 1501| r1501_3(glval) = FunctionAddress[String] : +# 1501| v1501_4(void) = Call[String] : func:r1501_3, this:r1501_1 +# 1501| mu1501_5(unknown) = ^CallSideEffect : ~m? +# 1501| mu1501_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1501_1 +# 1502| r1502_1(glval) = VariableAddress[x494] : +# 1502| r1502_2(glval) = FunctionAddress[~String] : +# 1502| v1502_3(void) = Call[~String] : func:r1502_2, this:r1502_1 +# 1502| mu1502_4(unknown) = ^CallSideEffect : ~m? +# 1502| v1502_5(void) = ^IndirectReadSideEffect[-1] : &:r1502_1, ~m? +# 1502| mu1502_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1502_1 +# 1502| r1502_7(bool) = Constant[0] : +# 1502| v1502_8(void) = ConditionalBranch : r1502_7 +#-----| False -> Block 495 +#-----| True -> Block 1026 + +# 1504| Block 495 +# 1504| r1504_1(glval) = VariableAddress[x495] : +# 1504| mu1504_2(String) = Uninitialized[x495] : &:r1504_1 +# 1504| r1504_3(glval) = FunctionAddress[String] : +# 1504| v1504_4(void) = Call[String] : func:r1504_3, this:r1504_1 +# 1504| mu1504_5(unknown) = ^CallSideEffect : ~m? +# 1504| mu1504_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1504_1 +# 1505| r1505_1(glval) = VariableAddress[x495] : +# 1505| r1505_2(glval) = FunctionAddress[~String] : +# 1505| v1505_3(void) = Call[~String] : func:r1505_2, this:r1505_1 +# 1505| mu1505_4(unknown) = ^CallSideEffect : ~m? +# 1505| v1505_5(void) = ^IndirectReadSideEffect[-1] : &:r1505_1, ~m? +# 1505| mu1505_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1505_1 +# 1505| r1505_7(bool) = Constant[0] : +# 1505| v1505_8(void) = ConditionalBranch : r1505_7 +#-----| False -> Block 496 +#-----| True -> Block 1026 + +# 1507| Block 496 +# 1507| r1507_1(glval) = VariableAddress[x496] : +# 1507| mu1507_2(String) = Uninitialized[x496] : &:r1507_1 +# 1507| r1507_3(glval) = FunctionAddress[String] : +# 1507| v1507_4(void) = Call[String] : func:r1507_3, this:r1507_1 +# 1507| mu1507_5(unknown) = ^CallSideEffect : ~m? +# 1507| mu1507_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1507_1 +# 1508| r1508_1(glval) = VariableAddress[x496] : +# 1508| r1508_2(glval) = FunctionAddress[~String] : +# 1508| v1508_3(void) = Call[~String] : func:r1508_2, this:r1508_1 +# 1508| mu1508_4(unknown) = ^CallSideEffect : ~m? +# 1508| v1508_5(void) = ^IndirectReadSideEffect[-1] : &:r1508_1, ~m? +# 1508| mu1508_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1508_1 +# 1508| r1508_7(bool) = Constant[0] : +# 1508| v1508_8(void) = ConditionalBranch : r1508_7 +#-----| False -> Block 497 +#-----| True -> Block 1026 + +# 1510| Block 497 +# 1510| r1510_1(glval) = VariableAddress[x497] : +# 1510| mu1510_2(String) = Uninitialized[x497] : &:r1510_1 +# 1510| r1510_3(glval) = FunctionAddress[String] : +# 1510| v1510_4(void) = Call[String] : func:r1510_3, this:r1510_1 +# 1510| mu1510_5(unknown) = ^CallSideEffect : ~m? +# 1510| mu1510_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1510_1 +# 1511| r1511_1(glval) = VariableAddress[x497] : +# 1511| r1511_2(glval) = FunctionAddress[~String] : +# 1511| v1511_3(void) = Call[~String] : func:r1511_2, this:r1511_1 +# 1511| mu1511_4(unknown) = ^CallSideEffect : ~m? +# 1511| v1511_5(void) = ^IndirectReadSideEffect[-1] : &:r1511_1, ~m? +# 1511| mu1511_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1511_1 +# 1511| r1511_7(bool) = Constant[0] : +# 1511| v1511_8(void) = ConditionalBranch : r1511_7 +#-----| False -> Block 498 +#-----| True -> Block 1026 + +# 1513| Block 498 +# 1513| r1513_1(glval) = VariableAddress[x498] : +# 1513| mu1513_2(String) = Uninitialized[x498] : &:r1513_1 +# 1513| r1513_3(glval) = FunctionAddress[String] : +# 1513| v1513_4(void) = Call[String] : func:r1513_3, this:r1513_1 +# 1513| mu1513_5(unknown) = ^CallSideEffect : ~m? +# 1513| mu1513_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1513_1 +# 1514| r1514_1(glval) = VariableAddress[x498] : +# 1514| r1514_2(glval) = FunctionAddress[~String] : +# 1514| v1514_3(void) = Call[~String] : func:r1514_2, this:r1514_1 +# 1514| mu1514_4(unknown) = ^CallSideEffect : ~m? +# 1514| v1514_5(void) = ^IndirectReadSideEffect[-1] : &:r1514_1, ~m? +# 1514| mu1514_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1514_1 +# 1514| r1514_7(bool) = Constant[0] : +# 1514| v1514_8(void) = ConditionalBranch : r1514_7 +#-----| False -> Block 499 +#-----| True -> Block 1026 + +# 1516| Block 499 +# 1516| r1516_1(glval) = VariableAddress[x499] : +# 1516| mu1516_2(String) = Uninitialized[x499] : &:r1516_1 +# 1516| r1516_3(glval) = FunctionAddress[String] : +# 1516| v1516_4(void) = Call[String] : func:r1516_3, this:r1516_1 +# 1516| mu1516_5(unknown) = ^CallSideEffect : ~m? +# 1516| mu1516_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1516_1 +# 1517| r1517_1(glval) = VariableAddress[x499] : +# 1517| r1517_2(glval) = FunctionAddress[~String] : +# 1517| v1517_3(void) = Call[~String] : func:r1517_2, this:r1517_1 +# 1517| mu1517_4(unknown) = ^CallSideEffect : ~m? +# 1517| v1517_5(void) = ^IndirectReadSideEffect[-1] : &:r1517_1, ~m? +# 1517| mu1517_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1517_1 +# 1517| r1517_7(bool) = Constant[0] : +# 1517| v1517_8(void) = ConditionalBranch : r1517_7 +#-----| False -> Block 500 +#-----| True -> Block 1026 + +# 1519| Block 500 +# 1519| r1519_1(glval) = VariableAddress[x500] : +# 1519| mu1519_2(String) = Uninitialized[x500] : &:r1519_1 +# 1519| r1519_3(glval) = FunctionAddress[String] : +# 1519| v1519_4(void) = Call[String] : func:r1519_3, this:r1519_1 +# 1519| mu1519_5(unknown) = ^CallSideEffect : ~m? +# 1519| mu1519_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1519_1 +# 1520| r1520_1(glval) = VariableAddress[x500] : +# 1520| r1520_2(glval) = FunctionAddress[~String] : +# 1520| v1520_3(void) = Call[~String] : func:r1520_2, this:r1520_1 +# 1520| mu1520_4(unknown) = ^CallSideEffect : ~m? +# 1520| v1520_5(void) = ^IndirectReadSideEffect[-1] : &:r1520_1, ~m? +# 1520| mu1520_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1520_1 +# 1520| r1520_7(bool) = Constant[0] : +# 1520| v1520_8(void) = ConditionalBranch : r1520_7 +#-----| False -> Block 501 +#-----| True -> Block 1026 + +# 1522| Block 501 +# 1522| r1522_1(glval) = VariableAddress[x501] : +# 1522| mu1522_2(String) = Uninitialized[x501] : &:r1522_1 +# 1522| r1522_3(glval) = FunctionAddress[String] : +# 1522| v1522_4(void) = Call[String] : func:r1522_3, this:r1522_1 +# 1522| mu1522_5(unknown) = ^CallSideEffect : ~m? +# 1522| mu1522_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1522_1 +# 1523| r1523_1(glval) = VariableAddress[x501] : +# 1523| r1523_2(glval) = FunctionAddress[~String] : +# 1523| v1523_3(void) = Call[~String] : func:r1523_2, this:r1523_1 +# 1523| mu1523_4(unknown) = ^CallSideEffect : ~m? +# 1523| v1523_5(void) = ^IndirectReadSideEffect[-1] : &:r1523_1, ~m? +# 1523| mu1523_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1523_1 +# 1523| r1523_7(bool) = Constant[0] : +# 1523| v1523_8(void) = ConditionalBranch : r1523_7 +#-----| False -> Block 502 +#-----| True -> Block 1026 + +# 1525| Block 502 +# 1525| r1525_1(glval) = VariableAddress[x502] : +# 1525| mu1525_2(String) = Uninitialized[x502] : &:r1525_1 +# 1525| r1525_3(glval) = FunctionAddress[String] : +# 1525| v1525_4(void) = Call[String] : func:r1525_3, this:r1525_1 +# 1525| mu1525_5(unknown) = ^CallSideEffect : ~m? +# 1525| mu1525_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1525_1 +# 1526| r1526_1(glval) = VariableAddress[x502] : +# 1526| r1526_2(glval) = FunctionAddress[~String] : +# 1526| v1526_3(void) = Call[~String] : func:r1526_2, this:r1526_1 +# 1526| mu1526_4(unknown) = ^CallSideEffect : ~m? +# 1526| v1526_5(void) = ^IndirectReadSideEffect[-1] : &:r1526_1, ~m? +# 1526| mu1526_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1526_1 +# 1526| r1526_7(bool) = Constant[0] : +# 1526| v1526_8(void) = ConditionalBranch : r1526_7 +#-----| False -> Block 503 +#-----| True -> Block 1026 + +# 1528| Block 503 +# 1528| r1528_1(glval) = VariableAddress[x503] : +# 1528| mu1528_2(String) = Uninitialized[x503] : &:r1528_1 +# 1528| r1528_3(glval) = FunctionAddress[String] : +# 1528| v1528_4(void) = Call[String] : func:r1528_3, this:r1528_1 +# 1528| mu1528_5(unknown) = ^CallSideEffect : ~m? +# 1528| mu1528_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1528_1 +# 1529| r1529_1(glval) = VariableAddress[x503] : +# 1529| r1529_2(glval) = FunctionAddress[~String] : +# 1529| v1529_3(void) = Call[~String] : func:r1529_2, this:r1529_1 +# 1529| mu1529_4(unknown) = ^CallSideEffect : ~m? +# 1529| v1529_5(void) = ^IndirectReadSideEffect[-1] : &:r1529_1, ~m? +# 1529| mu1529_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1529_1 +# 1529| r1529_7(bool) = Constant[0] : +# 1529| v1529_8(void) = ConditionalBranch : r1529_7 +#-----| False -> Block 504 +#-----| True -> Block 1026 + +# 1531| Block 504 +# 1531| r1531_1(glval) = VariableAddress[x504] : +# 1531| mu1531_2(String) = Uninitialized[x504] : &:r1531_1 +# 1531| r1531_3(glval) = FunctionAddress[String] : +# 1531| v1531_4(void) = Call[String] : func:r1531_3, this:r1531_1 +# 1531| mu1531_5(unknown) = ^CallSideEffect : ~m? +# 1531| mu1531_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1531_1 +# 1532| r1532_1(glval) = VariableAddress[x504] : +# 1532| r1532_2(glval) = FunctionAddress[~String] : +# 1532| v1532_3(void) = Call[~String] : func:r1532_2, this:r1532_1 +# 1532| mu1532_4(unknown) = ^CallSideEffect : ~m? +# 1532| v1532_5(void) = ^IndirectReadSideEffect[-1] : &:r1532_1, ~m? +# 1532| mu1532_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1532_1 +# 1532| r1532_7(bool) = Constant[0] : +# 1532| v1532_8(void) = ConditionalBranch : r1532_7 +#-----| False -> Block 505 +#-----| True -> Block 1026 + +# 1534| Block 505 +# 1534| r1534_1(glval) = VariableAddress[x505] : +# 1534| mu1534_2(String) = Uninitialized[x505] : &:r1534_1 +# 1534| r1534_3(glval) = FunctionAddress[String] : +# 1534| v1534_4(void) = Call[String] : func:r1534_3, this:r1534_1 +# 1534| mu1534_5(unknown) = ^CallSideEffect : ~m? +# 1534| mu1534_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1534_1 +# 1535| r1535_1(glval) = VariableAddress[x505] : +# 1535| r1535_2(glval) = FunctionAddress[~String] : +# 1535| v1535_3(void) = Call[~String] : func:r1535_2, this:r1535_1 +# 1535| mu1535_4(unknown) = ^CallSideEffect : ~m? +# 1535| v1535_5(void) = ^IndirectReadSideEffect[-1] : &:r1535_1, ~m? +# 1535| mu1535_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1535_1 +# 1535| r1535_7(bool) = Constant[0] : +# 1535| v1535_8(void) = ConditionalBranch : r1535_7 +#-----| False -> Block 506 +#-----| True -> Block 1026 + +# 1537| Block 506 +# 1537| r1537_1(glval) = VariableAddress[x506] : +# 1537| mu1537_2(String) = Uninitialized[x506] : &:r1537_1 +# 1537| r1537_3(glval) = FunctionAddress[String] : +# 1537| v1537_4(void) = Call[String] : func:r1537_3, this:r1537_1 +# 1537| mu1537_5(unknown) = ^CallSideEffect : ~m? +# 1537| mu1537_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1537_1 +# 1538| r1538_1(glval) = VariableAddress[x506] : +# 1538| r1538_2(glval) = FunctionAddress[~String] : +# 1538| v1538_3(void) = Call[~String] : func:r1538_2, this:r1538_1 +# 1538| mu1538_4(unknown) = ^CallSideEffect : ~m? +# 1538| v1538_5(void) = ^IndirectReadSideEffect[-1] : &:r1538_1, ~m? +# 1538| mu1538_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1538_1 +# 1538| r1538_7(bool) = Constant[0] : +# 1538| v1538_8(void) = ConditionalBranch : r1538_7 +#-----| False -> Block 507 +#-----| True -> Block 1026 + +# 1540| Block 507 +# 1540| r1540_1(glval) = VariableAddress[x507] : +# 1540| mu1540_2(String) = Uninitialized[x507] : &:r1540_1 +# 1540| r1540_3(glval) = FunctionAddress[String] : +# 1540| v1540_4(void) = Call[String] : func:r1540_3, this:r1540_1 +# 1540| mu1540_5(unknown) = ^CallSideEffect : ~m? +# 1540| mu1540_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1540_1 +# 1541| r1541_1(glval) = VariableAddress[x507] : +# 1541| r1541_2(glval) = FunctionAddress[~String] : +# 1541| v1541_3(void) = Call[~String] : func:r1541_2, this:r1541_1 +# 1541| mu1541_4(unknown) = ^CallSideEffect : ~m? +# 1541| v1541_5(void) = ^IndirectReadSideEffect[-1] : &:r1541_1, ~m? +# 1541| mu1541_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1541_1 +# 1541| r1541_7(bool) = Constant[0] : +# 1541| v1541_8(void) = ConditionalBranch : r1541_7 +#-----| False -> Block 508 +#-----| True -> Block 1026 + +# 1543| Block 508 +# 1543| r1543_1(glval) = VariableAddress[x508] : +# 1543| mu1543_2(String) = Uninitialized[x508] : &:r1543_1 +# 1543| r1543_3(glval) = FunctionAddress[String] : +# 1543| v1543_4(void) = Call[String] : func:r1543_3, this:r1543_1 +# 1543| mu1543_5(unknown) = ^CallSideEffect : ~m? +# 1543| mu1543_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1543_1 +# 1544| r1544_1(glval) = VariableAddress[x508] : +# 1544| r1544_2(glval) = FunctionAddress[~String] : +# 1544| v1544_3(void) = Call[~String] : func:r1544_2, this:r1544_1 +# 1544| mu1544_4(unknown) = ^CallSideEffect : ~m? +# 1544| v1544_5(void) = ^IndirectReadSideEffect[-1] : &:r1544_1, ~m? +# 1544| mu1544_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1544_1 +# 1544| r1544_7(bool) = Constant[0] : +# 1544| v1544_8(void) = ConditionalBranch : r1544_7 +#-----| False -> Block 509 +#-----| True -> Block 1026 + +# 1546| Block 509 +# 1546| r1546_1(glval) = VariableAddress[x509] : +# 1546| mu1546_2(String) = Uninitialized[x509] : &:r1546_1 +# 1546| r1546_3(glval) = FunctionAddress[String] : +# 1546| v1546_4(void) = Call[String] : func:r1546_3, this:r1546_1 +# 1546| mu1546_5(unknown) = ^CallSideEffect : ~m? +# 1546| mu1546_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1546_1 +# 1547| r1547_1(glval) = VariableAddress[x509] : +# 1547| r1547_2(glval) = FunctionAddress[~String] : +# 1547| v1547_3(void) = Call[~String] : func:r1547_2, this:r1547_1 +# 1547| mu1547_4(unknown) = ^CallSideEffect : ~m? +# 1547| v1547_5(void) = ^IndirectReadSideEffect[-1] : &:r1547_1, ~m? +# 1547| mu1547_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1547_1 +# 1547| r1547_7(bool) = Constant[0] : +# 1547| v1547_8(void) = ConditionalBranch : r1547_7 +#-----| False -> Block 510 +#-----| True -> Block 1026 + +# 1549| Block 510 +# 1549| r1549_1(glval) = VariableAddress[x510] : +# 1549| mu1549_2(String) = Uninitialized[x510] : &:r1549_1 +# 1549| r1549_3(glval) = FunctionAddress[String] : +# 1549| v1549_4(void) = Call[String] : func:r1549_3, this:r1549_1 +# 1549| mu1549_5(unknown) = ^CallSideEffect : ~m? +# 1549| mu1549_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 +# 1550| r1550_1(glval) = VariableAddress[x510] : +# 1550| r1550_2(glval) = FunctionAddress[~String] : +# 1550| v1550_3(void) = Call[~String] : func:r1550_2, this:r1550_1 +# 1550| mu1550_4(unknown) = ^CallSideEffect : ~m? +# 1550| v1550_5(void) = ^IndirectReadSideEffect[-1] : &:r1550_1, ~m? +# 1550| mu1550_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1550_1 +# 1550| r1550_7(bool) = Constant[0] : +# 1550| v1550_8(void) = ConditionalBranch : r1550_7 +#-----| False -> Block 511 +#-----| True -> Block 1026 + +# 1552| Block 511 +# 1552| r1552_1(glval) = VariableAddress[x511] : +# 1552| mu1552_2(String) = Uninitialized[x511] : &:r1552_1 +# 1552| r1552_3(glval) = FunctionAddress[String] : +# 1552| v1552_4(void) = Call[String] : func:r1552_3, this:r1552_1 +# 1552| mu1552_5(unknown) = ^CallSideEffect : ~m? +# 1552| mu1552_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1552_1 +# 1553| r1553_1(glval) = VariableAddress[x511] : +# 1553| r1553_2(glval) = FunctionAddress[~String] : +# 1553| v1553_3(void) = Call[~String] : func:r1553_2, this:r1553_1 +# 1553| mu1553_4(unknown) = ^CallSideEffect : ~m? +# 1553| v1553_5(void) = ^IndirectReadSideEffect[-1] : &:r1553_1, ~m? +# 1553| mu1553_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1553_1 +# 1553| r1553_7(bool) = Constant[0] : +# 1553| v1553_8(void) = ConditionalBranch : r1553_7 +#-----| False -> Block 512 +#-----| True -> Block 1026 + +# 1555| Block 512 +# 1555| r1555_1(glval) = VariableAddress[x512] : +# 1555| mu1555_2(String) = Uninitialized[x512] : &:r1555_1 +# 1555| r1555_3(glval) = FunctionAddress[String] : +# 1555| v1555_4(void) = Call[String] : func:r1555_3, this:r1555_1 +# 1555| mu1555_5(unknown) = ^CallSideEffect : ~m? +# 1555| mu1555_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1555_1 +# 1556| r1556_1(glval) = VariableAddress[x512] : +# 1556| r1556_2(glval) = FunctionAddress[~String] : +# 1556| v1556_3(void) = Call[~String] : func:r1556_2, this:r1556_1 +# 1556| mu1556_4(unknown) = ^CallSideEffect : ~m? +# 1556| v1556_5(void) = ^IndirectReadSideEffect[-1] : &:r1556_1, ~m? +# 1556| mu1556_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1556_1 +# 1556| r1556_7(bool) = Constant[0] : +# 1556| v1556_8(void) = ConditionalBranch : r1556_7 +#-----| False -> Block 513 +#-----| True -> Block 1026 + +# 1558| Block 513 +# 1558| r1558_1(glval) = VariableAddress[x513] : +# 1558| mu1558_2(String) = Uninitialized[x513] : &:r1558_1 +# 1558| r1558_3(glval) = FunctionAddress[String] : +# 1558| v1558_4(void) = Call[String] : func:r1558_3, this:r1558_1 +# 1558| mu1558_5(unknown) = ^CallSideEffect : ~m? +# 1558| mu1558_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1558_1 +# 1559| r1559_1(glval) = VariableAddress[x513] : +# 1559| r1559_2(glval) = FunctionAddress[~String] : +# 1559| v1559_3(void) = Call[~String] : func:r1559_2, this:r1559_1 +# 1559| mu1559_4(unknown) = ^CallSideEffect : ~m? +# 1559| v1559_5(void) = ^IndirectReadSideEffect[-1] : &:r1559_1, ~m? +# 1559| mu1559_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1559_1 +# 1559| r1559_7(bool) = Constant[0] : +# 1559| v1559_8(void) = ConditionalBranch : r1559_7 +#-----| False -> Block 514 +#-----| True -> Block 1026 + +# 1561| Block 514 +# 1561| r1561_1(glval) = VariableAddress[x514] : +# 1561| mu1561_2(String) = Uninitialized[x514] : &:r1561_1 +# 1561| r1561_3(glval) = FunctionAddress[String] : +# 1561| v1561_4(void) = Call[String] : func:r1561_3, this:r1561_1 +# 1561| mu1561_5(unknown) = ^CallSideEffect : ~m? +# 1561| mu1561_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1561_1 +# 1562| r1562_1(glval) = VariableAddress[x514] : +# 1562| r1562_2(glval) = FunctionAddress[~String] : +# 1562| v1562_3(void) = Call[~String] : func:r1562_2, this:r1562_1 +# 1562| mu1562_4(unknown) = ^CallSideEffect : ~m? +# 1562| v1562_5(void) = ^IndirectReadSideEffect[-1] : &:r1562_1, ~m? +# 1562| mu1562_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1562_1 +# 1562| r1562_7(bool) = Constant[0] : +# 1562| v1562_8(void) = ConditionalBranch : r1562_7 +#-----| False -> Block 515 +#-----| True -> Block 1026 + +# 1564| Block 515 +# 1564| r1564_1(glval) = VariableAddress[x515] : +# 1564| mu1564_2(String) = Uninitialized[x515] : &:r1564_1 +# 1564| r1564_3(glval) = FunctionAddress[String] : +# 1564| v1564_4(void) = Call[String] : func:r1564_3, this:r1564_1 +# 1564| mu1564_5(unknown) = ^CallSideEffect : ~m? +# 1564| mu1564_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1564_1 +# 1565| r1565_1(glval) = VariableAddress[x515] : +# 1565| r1565_2(glval) = FunctionAddress[~String] : +# 1565| v1565_3(void) = Call[~String] : func:r1565_2, this:r1565_1 +# 1565| mu1565_4(unknown) = ^CallSideEffect : ~m? +# 1565| v1565_5(void) = ^IndirectReadSideEffect[-1] : &:r1565_1, ~m? +# 1565| mu1565_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1565_1 +# 1565| r1565_7(bool) = Constant[0] : +# 1565| v1565_8(void) = ConditionalBranch : r1565_7 +#-----| False -> Block 516 +#-----| True -> Block 1026 + +# 1567| Block 516 +# 1567| r1567_1(glval) = VariableAddress[x516] : +# 1567| mu1567_2(String) = Uninitialized[x516] : &:r1567_1 +# 1567| r1567_3(glval) = FunctionAddress[String] : +# 1567| v1567_4(void) = Call[String] : func:r1567_3, this:r1567_1 +# 1567| mu1567_5(unknown) = ^CallSideEffect : ~m? +# 1567| mu1567_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1567_1 +# 1568| r1568_1(glval) = VariableAddress[x516] : +# 1568| r1568_2(glval) = FunctionAddress[~String] : +# 1568| v1568_3(void) = Call[~String] : func:r1568_2, this:r1568_1 +# 1568| mu1568_4(unknown) = ^CallSideEffect : ~m? +# 1568| v1568_5(void) = ^IndirectReadSideEffect[-1] : &:r1568_1, ~m? +# 1568| mu1568_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1568_1 +# 1568| r1568_7(bool) = Constant[0] : +# 1568| v1568_8(void) = ConditionalBranch : r1568_7 +#-----| False -> Block 517 +#-----| True -> Block 1026 + +# 1570| Block 517 +# 1570| r1570_1(glval) = VariableAddress[x517] : +# 1570| mu1570_2(String) = Uninitialized[x517] : &:r1570_1 +# 1570| r1570_3(glval) = FunctionAddress[String] : +# 1570| v1570_4(void) = Call[String] : func:r1570_3, this:r1570_1 +# 1570| mu1570_5(unknown) = ^CallSideEffect : ~m? +# 1570| mu1570_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1570_1 +# 1571| r1571_1(glval) = VariableAddress[x517] : +# 1571| r1571_2(glval) = FunctionAddress[~String] : +# 1571| v1571_3(void) = Call[~String] : func:r1571_2, this:r1571_1 +# 1571| mu1571_4(unknown) = ^CallSideEffect : ~m? +# 1571| v1571_5(void) = ^IndirectReadSideEffect[-1] : &:r1571_1, ~m? +# 1571| mu1571_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1571_1 +# 1571| r1571_7(bool) = Constant[0] : +# 1571| v1571_8(void) = ConditionalBranch : r1571_7 +#-----| False -> Block 518 +#-----| True -> Block 1026 + +# 1573| Block 518 +# 1573| r1573_1(glval) = VariableAddress[x518] : +# 1573| mu1573_2(String) = Uninitialized[x518] : &:r1573_1 +# 1573| r1573_3(glval) = FunctionAddress[String] : +# 1573| v1573_4(void) = Call[String] : func:r1573_3, this:r1573_1 +# 1573| mu1573_5(unknown) = ^CallSideEffect : ~m? +# 1573| mu1573_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1573_1 +# 1574| r1574_1(glval) = VariableAddress[x518] : +# 1574| r1574_2(glval) = FunctionAddress[~String] : +# 1574| v1574_3(void) = Call[~String] : func:r1574_2, this:r1574_1 +# 1574| mu1574_4(unknown) = ^CallSideEffect : ~m? +# 1574| v1574_5(void) = ^IndirectReadSideEffect[-1] : &:r1574_1, ~m? +# 1574| mu1574_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1574_1 +# 1574| r1574_7(bool) = Constant[0] : +# 1574| v1574_8(void) = ConditionalBranch : r1574_7 +#-----| False -> Block 519 +#-----| True -> Block 1026 + +# 1576| Block 519 +# 1576| r1576_1(glval) = VariableAddress[x519] : +# 1576| mu1576_2(String) = Uninitialized[x519] : &:r1576_1 +# 1576| r1576_3(glval) = FunctionAddress[String] : +# 1576| v1576_4(void) = Call[String] : func:r1576_3, this:r1576_1 +# 1576| mu1576_5(unknown) = ^CallSideEffect : ~m? +# 1576| mu1576_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1576_1 +# 1577| r1577_1(glval) = VariableAddress[x519] : +# 1577| r1577_2(glval) = FunctionAddress[~String] : +# 1577| v1577_3(void) = Call[~String] : func:r1577_2, this:r1577_1 +# 1577| mu1577_4(unknown) = ^CallSideEffect : ~m? +# 1577| v1577_5(void) = ^IndirectReadSideEffect[-1] : &:r1577_1, ~m? +# 1577| mu1577_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1577_1 +# 1577| r1577_7(bool) = Constant[0] : +# 1577| v1577_8(void) = ConditionalBranch : r1577_7 +#-----| False -> Block 520 +#-----| True -> Block 1026 + +# 1579| Block 520 +# 1579| r1579_1(glval) = VariableAddress[x520] : +# 1579| mu1579_2(String) = Uninitialized[x520] : &:r1579_1 +# 1579| r1579_3(glval) = FunctionAddress[String] : +# 1579| v1579_4(void) = Call[String] : func:r1579_3, this:r1579_1 +# 1579| mu1579_5(unknown) = ^CallSideEffect : ~m? +# 1579| mu1579_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1579_1 +# 1580| r1580_1(glval) = VariableAddress[x520] : +# 1580| r1580_2(glval) = FunctionAddress[~String] : +# 1580| v1580_3(void) = Call[~String] : func:r1580_2, this:r1580_1 +# 1580| mu1580_4(unknown) = ^CallSideEffect : ~m? +# 1580| v1580_5(void) = ^IndirectReadSideEffect[-1] : &:r1580_1, ~m? +# 1580| mu1580_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1580_1 +# 1580| r1580_7(bool) = Constant[0] : +# 1580| v1580_8(void) = ConditionalBranch : r1580_7 +#-----| False -> Block 521 +#-----| True -> Block 1026 + +# 1582| Block 521 +# 1582| r1582_1(glval) = VariableAddress[x521] : +# 1582| mu1582_2(String) = Uninitialized[x521] : &:r1582_1 +# 1582| r1582_3(glval) = FunctionAddress[String] : +# 1582| v1582_4(void) = Call[String] : func:r1582_3, this:r1582_1 +# 1582| mu1582_5(unknown) = ^CallSideEffect : ~m? +# 1582| mu1582_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1582_1 +# 1583| r1583_1(glval) = VariableAddress[x521] : +# 1583| r1583_2(glval) = FunctionAddress[~String] : +# 1583| v1583_3(void) = Call[~String] : func:r1583_2, this:r1583_1 +# 1583| mu1583_4(unknown) = ^CallSideEffect : ~m? +# 1583| v1583_5(void) = ^IndirectReadSideEffect[-1] : &:r1583_1, ~m? +# 1583| mu1583_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1583_1 +# 1583| r1583_7(bool) = Constant[0] : +# 1583| v1583_8(void) = ConditionalBranch : r1583_7 +#-----| False -> Block 522 +#-----| True -> Block 1026 + +# 1585| Block 522 +# 1585| r1585_1(glval) = VariableAddress[x522] : +# 1585| mu1585_2(String) = Uninitialized[x522] : &:r1585_1 +# 1585| r1585_3(glval) = FunctionAddress[String] : +# 1585| v1585_4(void) = Call[String] : func:r1585_3, this:r1585_1 +# 1585| mu1585_5(unknown) = ^CallSideEffect : ~m? +# 1585| mu1585_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1585_1 +# 1586| r1586_1(glval) = VariableAddress[x522] : +# 1586| r1586_2(glval) = FunctionAddress[~String] : +# 1586| v1586_3(void) = Call[~String] : func:r1586_2, this:r1586_1 +# 1586| mu1586_4(unknown) = ^CallSideEffect : ~m? +# 1586| v1586_5(void) = ^IndirectReadSideEffect[-1] : &:r1586_1, ~m? +# 1586| mu1586_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1586_1 +# 1586| r1586_7(bool) = Constant[0] : +# 1586| v1586_8(void) = ConditionalBranch : r1586_7 +#-----| False -> Block 523 +#-----| True -> Block 1026 + +# 1588| Block 523 +# 1588| r1588_1(glval) = VariableAddress[x523] : +# 1588| mu1588_2(String) = Uninitialized[x523] : &:r1588_1 +# 1588| r1588_3(glval) = FunctionAddress[String] : +# 1588| v1588_4(void) = Call[String] : func:r1588_3, this:r1588_1 +# 1588| mu1588_5(unknown) = ^CallSideEffect : ~m? +# 1588| mu1588_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1588_1 +# 1589| r1589_1(glval) = VariableAddress[x523] : +# 1589| r1589_2(glval) = FunctionAddress[~String] : +# 1589| v1589_3(void) = Call[~String] : func:r1589_2, this:r1589_1 +# 1589| mu1589_4(unknown) = ^CallSideEffect : ~m? +# 1589| v1589_5(void) = ^IndirectReadSideEffect[-1] : &:r1589_1, ~m? +# 1589| mu1589_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1589_1 +# 1589| r1589_7(bool) = Constant[0] : +# 1589| v1589_8(void) = ConditionalBranch : r1589_7 +#-----| False -> Block 524 +#-----| True -> Block 1026 + +# 1591| Block 524 +# 1591| r1591_1(glval) = VariableAddress[x524] : +# 1591| mu1591_2(String) = Uninitialized[x524] : &:r1591_1 +# 1591| r1591_3(glval) = FunctionAddress[String] : +# 1591| v1591_4(void) = Call[String] : func:r1591_3, this:r1591_1 +# 1591| mu1591_5(unknown) = ^CallSideEffect : ~m? +# 1591| mu1591_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1591_1 +# 1592| r1592_1(glval) = VariableAddress[x524] : +# 1592| r1592_2(glval) = FunctionAddress[~String] : +# 1592| v1592_3(void) = Call[~String] : func:r1592_2, this:r1592_1 +# 1592| mu1592_4(unknown) = ^CallSideEffect : ~m? +# 1592| v1592_5(void) = ^IndirectReadSideEffect[-1] : &:r1592_1, ~m? +# 1592| mu1592_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1592_1 +# 1592| r1592_7(bool) = Constant[0] : +# 1592| v1592_8(void) = ConditionalBranch : r1592_7 +#-----| False -> Block 525 +#-----| True -> Block 1026 + +# 1594| Block 525 +# 1594| r1594_1(glval) = VariableAddress[x525] : +# 1594| mu1594_2(String) = Uninitialized[x525] : &:r1594_1 +# 1594| r1594_3(glval) = FunctionAddress[String] : +# 1594| v1594_4(void) = Call[String] : func:r1594_3, this:r1594_1 +# 1594| mu1594_5(unknown) = ^CallSideEffect : ~m? +# 1594| mu1594_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1594_1 +# 1595| r1595_1(glval) = VariableAddress[x525] : +# 1595| r1595_2(glval) = FunctionAddress[~String] : +# 1595| v1595_3(void) = Call[~String] : func:r1595_2, this:r1595_1 +# 1595| mu1595_4(unknown) = ^CallSideEffect : ~m? +# 1595| v1595_5(void) = ^IndirectReadSideEffect[-1] : &:r1595_1, ~m? +# 1595| mu1595_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1595_1 +# 1595| r1595_7(bool) = Constant[0] : +# 1595| v1595_8(void) = ConditionalBranch : r1595_7 +#-----| False -> Block 526 +#-----| True -> Block 1026 + +# 1597| Block 526 +# 1597| r1597_1(glval) = VariableAddress[x526] : +# 1597| mu1597_2(String) = Uninitialized[x526] : &:r1597_1 +# 1597| r1597_3(glval) = FunctionAddress[String] : +# 1597| v1597_4(void) = Call[String] : func:r1597_3, this:r1597_1 +# 1597| mu1597_5(unknown) = ^CallSideEffect : ~m? +# 1597| mu1597_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1597_1 +# 1598| r1598_1(glval) = VariableAddress[x526] : +# 1598| r1598_2(glval) = FunctionAddress[~String] : +# 1598| v1598_3(void) = Call[~String] : func:r1598_2, this:r1598_1 +# 1598| mu1598_4(unknown) = ^CallSideEffect : ~m? +# 1598| v1598_5(void) = ^IndirectReadSideEffect[-1] : &:r1598_1, ~m? +# 1598| mu1598_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1598_1 +# 1598| r1598_7(bool) = Constant[0] : +# 1598| v1598_8(void) = ConditionalBranch : r1598_7 +#-----| False -> Block 527 +#-----| True -> Block 1026 + +# 1600| Block 527 +# 1600| r1600_1(glval) = VariableAddress[x527] : +# 1600| mu1600_2(String) = Uninitialized[x527] : &:r1600_1 +# 1600| r1600_3(glval) = FunctionAddress[String] : +# 1600| v1600_4(void) = Call[String] : func:r1600_3, this:r1600_1 +# 1600| mu1600_5(unknown) = ^CallSideEffect : ~m? +# 1600| mu1600_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1600_1 +# 1601| r1601_1(glval) = VariableAddress[x527] : +# 1601| r1601_2(glval) = FunctionAddress[~String] : +# 1601| v1601_3(void) = Call[~String] : func:r1601_2, this:r1601_1 +# 1601| mu1601_4(unknown) = ^CallSideEffect : ~m? +# 1601| v1601_5(void) = ^IndirectReadSideEffect[-1] : &:r1601_1, ~m? +# 1601| mu1601_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1601_1 +# 1601| r1601_7(bool) = Constant[0] : +# 1601| v1601_8(void) = ConditionalBranch : r1601_7 +#-----| False -> Block 528 +#-----| True -> Block 1026 + +# 1603| Block 528 +# 1603| r1603_1(glval) = VariableAddress[x528] : +# 1603| mu1603_2(String) = Uninitialized[x528] : &:r1603_1 +# 1603| r1603_3(glval) = FunctionAddress[String] : +# 1603| v1603_4(void) = Call[String] : func:r1603_3, this:r1603_1 +# 1603| mu1603_5(unknown) = ^CallSideEffect : ~m? +# 1603| mu1603_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1603_1 +# 1604| r1604_1(glval) = VariableAddress[x528] : +# 1604| r1604_2(glval) = FunctionAddress[~String] : +# 1604| v1604_3(void) = Call[~String] : func:r1604_2, this:r1604_1 +# 1604| mu1604_4(unknown) = ^CallSideEffect : ~m? +# 1604| v1604_5(void) = ^IndirectReadSideEffect[-1] : &:r1604_1, ~m? +# 1604| mu1604_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1604_1 +# 1604| r1604_7(bool) = Constant[0] : +# 1604| v1604_8(void) = ConditionalBranch : r1604_7 +#-----| False -> Block 529 +#-----| True -> Block 1026 + +# 1606| Block 529 +# 1606| r1606_1(glval) = VariableAddress[x529] : +# 1606| mu1606_2(String) = Uninitialized[x529] : &:r1606_1 +# 1606| r1606_3(glval) = FunctionAddress[String] : +# 1606| v1606_4(void) = Call[String] : func:r1606_3, this:r1606_1 +# 1606| mu1606_5(unknown) = ^CallSideEffect : ~m? +# 1606| mu1606_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1606_1 +# 1607| r1607_1(glval) = VariableAddress[x529] : +# 1607| r1607_2(glval) = FunctionAddress[~String] : +# 1607| v1607_3(void) = Call[~String] : func:r1607_2, this:r1607_1 +# 1607| mu1607_4(unknown) = ^CallSideEffect : ~m? +# 1607| v1607_5(void) = ^IndirectReadSideEffect[-1] : &:r1607_1, ~m? +# 1607| mu1607_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1607_1 +# 1607| r1607_7(bool) = Constant[0] : +# 1607| v1607_8(void) = ConditionalBranch : r1607_7 +#-----| False -> Block 530 +#-----| True -> Block 1026 + +# 1609| Block 530 +# 1609| r1609_1(glval) = VariableAddress[x530] : +# 1609| mu1609_2(String) = Uninitialized[x530] : &:r1609_1 +# 1609| r1609_3(glval) = FunctionAddress[String] : +# 1609| v1609_4(void) = Call[String] : func:r1609_3, this:r1609_1 +# 1609| mu1609_5(unknown) = ^CallSideEffect : ~m? +# 1609| mu1609_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1609_1 +# 1610| r1610_1(glval) = VariableAddress[x530] : +# 1610| r1610_2(glval) = FunctionAddress[~String] : +# 1610| v1610_3(void) = Call[~String] : func:r1610_2, this:r1610_1 +# 1610| mu1610_4(unknown) = ^CallSideEffect : ~m? +# 1610| v1610_5(void) = ^IndirectReadSideEffect[-1] : &:r1610_1, ~m? +# 1610| mu1610_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1610_1 +# 1610| r1610_7(bool) = Constant[0] : +# 1610| v1610_8(void) = ConditionalBranch : r1610_7 +#-----| False -> Block 531 +#-----| True -> Block 1026 + +# 1612| Block 531 +# 1612| r1612_1(glval) = VariableAddress[x531] : +# 1612| mu1612_2(String) = Uninitialized[x531] : &:r1612_1 +# 1612| r1612_3(glval) = FunctionAddress[String] : +# 1612| v1612_4(void) = Call[String] : func:r1612_3, this:r1612_1 +# 1612| mu1612_5(unknown) = ^CallSideEffect : ~m? +# 1612| mu1612_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1612_1 +# 1613| r1613_1(glval) = VariableAddress[x531] : +# 1613| r1613_2(glval) = FunctionAddress[~String] : +# 1613| v1613_3(void) = Call[~String] : func:r1613_2, this:r1613_1 +# 1613| mu1613_4(unknown) = ^CallSideEffect : ~m? +# 1613| v1613_5(void) = ^IndirectReadSideEffect[-1] : &:r1613_1, ~m? +# 1613| mu1613_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1613_1 +# 1613| r1613_7(bool) = Constant[0] : +# 1613| v1613_8(void) = ConditionalBranch : r1613_7 +#-----| False -> Block 532 +#-----| True -> Block 1026 + +# 1615| Block 532 +# 1615| r1615_1(glval) = VariableAddress[x532] : +# 1615| mu1615_2(String) = Uninitialized[x532] : &:r1615_1 +# 1615| r1615_3(glval) = FunctionAddress[String] : +# 1615| v1615_4(void) = Call[String] : func:r1615_3, this:r1615_1 +# 1615| mu1615_5(unknown) = ^CallSideEffect : ~m? +# 1615| mu1615_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1615_1 +# 1616| r1616_1(glval) = VariableAddress[x532] : +# 1616| r1616_2(glval) = FunctionAddress[~String] : +# 1616| v1616_3(void) = Call[~String] : func:r1616_2, this:r1616_1 +# 1616| mu1616_4(unknown) = ^CallSideEffect : ~m? +# 1616| v1616_5(void) = ^IndirectReadSideEffect[-1] : &:r1616_1, ~m? +# 1616| mu1616_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1616_1 +# 1616| r1616_7(bool) = Constant[0] : +# 1616| v1616_8(void) = ConditionalBranch : r1616_7 +#-----| False -> Block 533 +#-----| True -> Block 1026 + +# 1618| Block 533 +# 1618| r1618_1(glval) = VariableAddress[x533] : +# 1618| mu1618_2(String) = Uninitialized[x533] : &:r1618_1 +# 1618| r1618_3(glval) = FunctionAddress[String] : +# 1618| v1618_4(void) = Call[String] : func:r1618_3, this:r1618_1 +# 1618| mu1618_5(unknown) = ^CallSideEffect : ~m? +# 1618| mu1618_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1618_1 +# 1619| r1619_1(glval) = VariableAddress[x533] : +# 1619| r1619_2(glval) = FunctionAddress[~String] : +# 1619| v1619_3(void) = Call[~String] : func:r1619_2, this:r1619_1 +# 1619| mu1619_4(unknown) = ^CallSideEffect : ~m? +# 1619| v1619_5(void) = ^IndirectReadSideEffect[-1] : &:r1619_1, ~m? +# 1619| mu1619_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1619_1 +# 1619| r1619_7(bool) = Constant[0] : +# 1619| v1619_8(void) = ConditionalBranch : r1619_7 +#-----| False -> Block 534 +#-----| True -> Block 1026 + +# 1621| Block 534 +# 1621| r1621_1(glval) = VariableAddress[x534] : +# 1621| mu1621_2(String) = Uninitialized[x534] : &:r1621_1 +# 1621| r1621_3(glval) = FunctionAddress[String] : +# 1621| v1621_4(void) = Call[String] : func:r1621_3, this:r1621_1 +# 1621| mu1621_5(unknown) = ^CallSideEffect : ~m? +# 1621| mu1621_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1621_1 +# 1622| r1622_1(glval) = VariableAddress[x534] : +# 1622| r1622_2(glval) = FunctionAddress[~String] : +# 1622| v1622_3(void) = Call[~String] : func:r1622_2, this:r1622_1 +# 1622| mu1622_4(unknown) = ^CallSideEffect : ~m? +# 1622| v1622_5(void) = ^IndirectReadSideEffect[-1] : &:r1622_1, ~m? +# 1622| mu1622_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1622_1 +# 1622| r1622_7(bool) = Constant[0] : +# 1622| v1622_8(void) = ConditionalBranch : r1622_7 +#-----| False -> Block 535 +#-----| True -> Block 1026 + +# 1624| Block 535 +# 1624| r1624_1(glval) = VariableAddress[x535] : +# 1624| mu1624_2(String) = Uninitialized[x535] : &:r1624_1 +# 1624| r1624_3(glval) = FunctionAddress[String] : +# 1624| v1624_4(void) = Call[String] : func:r1624_3, this:r1624_1 +# 1624| mu1624_5(unknown) = ^CallSideEffect : ~m? +# 1624| mu1624_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1624_1 +# 1625| r1625_1(glval) = VariableAddress[x535] : +# 1625| r1625_2(glval) = FunctionAddress[~String] : +# 1625| v1625_3(void) = Call[~String] : func:r1625_2, this:r1625_1 +# 1625| mu1625_4(unknown) = ^CallSideEffect : ~m? +# 1625| v1625_5(void) = ^IndirectReadSideEffect[-1] : &:r1625_1, ~m? +# 1625| mu1625_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1625_1 +# 1625| r1625_7(bool) = Constant[0] : +# 1625| v1625_8(void) = ConditionalBranch : r1625_7 +#-----| False -> Block 536 +#-----| True -> Block 1026 + +# 1627| Block 536 +# 1627| r1627_1(glval) = VariableAddress[x536] : +# 1627| mu1627_2(String) = Uninitialized[x536] : &:r1627_1 +# 1627| r1627_3(glval) = FunctionAddress[String] : +# 1627| v1627_4(void) = Call[String] : func:r1627_3, this:r1627_1 +# 1627| mu1627_5(unknown) = ^CallSideEffect : ~m? +# 1627| mu1627_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1627_1 +# 1628| r1628_1(glval) = VariableAddress[x536] : +# 1628| r1628_2(glval) = FunctionAddress[~String] : +# 1628| v1628_3(void) = Call[~String] : func:r1628_2, this:r1628_1 +# 1628| mu1628_4(unknown) = ^CallSideEffect : ~m? +# 1628| v1628_5(void) = ^IndirectReadSideEffect[-1] : &:r1628_1, ~m? +# 1628| mu1628_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1628_1 +# 1628| r1628_7(bool) = Constant[0] : +# 1628| v1628_8(void) = ConditionalBranch : r1628_7 +#-----| False -> Block 537 +#-----| True -> Block 1026 + +# 1630| Block 537 +# 1630| r1630_1(glval) = VariableAddress[x537] : +# 1630| mu1630_2(String) = Uninitialized[x537] : &:r1630_1 +# 1630| r1630_3(glval) = FunctionAddress[String] : +# 1630| v1630_4(void) = Call[String] : func:r1630_3, this:r1630_1 +# 1630| mu1630_5(unknown) = ^CallSideEffect : ~m? +# 1630| mu1630_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1630_1 +# 1631| r1631_1(glval) = VariableAddress[x537] : +# 1631| r1631_2(glval) = FunctionAddress[~String] : +# 1631| v1631_3(void) = Call[~String] : func:r1631_2, this:r1631_1 +# 1631| mu1631_4(unknown) = ^CallSideEffect : ~m? +# 1631| v1631_5(void) = ^IndirectReadSideEffect[-1] : &:r1631_1, ~m? +# 1631| mu1631_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1631_1 +# 1631| r1631_7(bool) = Constant[0] : +# 1631| v1631_8(void) = ConditionalBranch : r1631_7 +#-----| False -> Block 538 +#-----| True -> Block 1026 + +# 1633| Block 538 +# 1633| r1633_1(glval) = VariableAddress[x538] : +# 1633| mu1633_2(String) = Uninitialized[x538] : &:r1633_1 +# 1633| r1633_3(glval) = FunctionAddress[String] : +# 1633| v1633_4(void) = Call[String] : func:r1633_3, this:r1633_1 +# 1633| mu1633_5(unknown) = ^CallSideEffect : ~m? +# 1633| mu1633_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1633_1 +# 1634| r1634_1(glval) = VariableAddress[x538] : +# 1634| r1634_2(glval) = FunctionAddress[~String] : +# 1634| v1634_3(void) = Call[~String] : func:r1634_2, this:r1634_1 +# 1634| mu1634_4(unknown) = ^CallSideEffect : ~m? +# 1634| v1634_5(void) = ^IndirectReadSideEffect[-1] : &:r1634_1, ~m? +# 1634| mu1634_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1634_1 +# 1634| r1634_7(bool) = Constant[0] : +# 1634| v1634_8(void) = ConditionalBranch : r1634_7 +#-----| False -> Block 539 +#-----| True -> Block 1026 + +# 1636| Block 539 +# 1636| r1636_1(glval) = VariableAddress[x539] : +# 1636| mu1636_2(String) = Uninitialized[x539] : &:r1636_1 +# 1636| r1636_3(glval) = FunctionAddress[String] : +# 1636| v1636_4(void) = Call[String] : func:r1636_3, this:r1636_1 +# 1636| mu1636_5(unknown) = ^CallSideEffect : ~m? +# 1636| mu1636_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1636_1 +# 1637| r1637_1(glval) = VariableAddress[x539] : +# 1637| r1637_2(glval) = FunctionAddress[~String] : +# 1637| v1637_3(void) = Call[~String] : func:r1637_2, this:r1637_1 +# 1637| mu1637_4(unknown) = ^CallSideEffect : ~m? +# 1637| v1637_5(void) = ^IndirectReadSideEffect[-1] : &:r1637_1, ~m? +# 1637| mu1637_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1637_1 +# 1637| r1637_7(bool) = Constant[0] : +# 1637| v1637_8(void) = ConditionalBranch : r1637_7 +#-----| False -> Block 540 +#-----| True -> Block 1026 + +# 1639| Block 540 +# 1639| r1639_1(glval) = VariableAddress[x540] : +# 1639| mu1639_2(String) = Uninitialized[x540] : &:r1639_1 +# 1639| r1639_3(glval) = FunctionAddress[String] : +# 1639| v1639_4(void) = Call[String] : func:r1639_3, this:r1639_1 +# 1639| mu1639_5(unknown) = ^CallSideEffect : ~m? +# 1639| mu1639_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1639_1 +# 1640| r1640_1(glval) = VariableAddress[x540] : +# 1640| r1640_2(glval) = FunctionAddress[~String] : +# 1640| v1640_3(void) = Call[~String] : func:r1640_2, this:r1640_1 +# 1640| mu1640_4(unknown) = ^CallSideEffect : ~m? +# 1640| v1640_5(void) = ^IndirectReadSideEffect[-1] : &:r1640_1, ~m? +# 1640| mu1640_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1640_1 +# 1640| r1640_7(bool) = Constant[0] : +# 1640| v1640_8(void) = ConditionalBranch : r1640_7 +#-----| False -> Block 541 +#-----| True -> Block 1026 + +# 1642| Block 541 +# 1642| r1642_1(glval) = VariableAddress[x541] : +# 1642| mu1642_2(String) = Uninitialized[x541] : &:r1642_1 +# 1642| r1642_3(glval) = FunctionAddress[String] : +# 1642| v1642_4(void) = Call[String] : func:r1642_3, this:r1642_1 +# 1642| mu1642_5(unknown) = ^CallSideEffect : ~m? +# 1642| mu1642_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1642_1 +# 1643| r1643_1(glval) = VariableAddress[x541] : +# 1643| r1643_2(glval) = FunctionAddress[~String] : +# 1643| v1643_3(void) = Call[~String] : func:r1643_2, this:r1643_1 +# 1643| mu1643_4(unknown) = ^CallSideEffect : ~m? +# 1643| v1643_5(void) = ^IndirectReadSideEffect[-1] : &:r1643_1, ~m? +# 1643| mu1643_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1643_1 +# 1643| r1643_7(bool) = Constant[0] : +# 1643| v1643_8(void) = ConditionalBranch : r1643_7 +#-----| False -> Block 542 +#-----| True -> Block 1026 + +# 1645| Block 542 +# 1645| r1645_1(glval) = VariableAddress[x542] : +# 1645| mu1645_2(String) = Uninitialized[x542] : &:r1645_1 +# 1645| r1645_3(glval) = FunctionAddress[String] : +# 1645| v1645_4(void) = Call[String] : func:r1645_3, this:r1645_1 +# 1645| mu1645_5(unknown) = ^CallSideEffect : ~m? +# 1645| mu1645_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1645_1 +# 1646| r1646_1(glval) = VariableAddress[x542] : +# 1646| r1646_2(glval) = FunctionAddress[~String] : +# 1646| v1646_3(void) = Call[~String] : func:r1646_2, this:r1646_1 +# 1646| mu1646_4(unknown) = ^CallSideEffect : ~m? +# 1646| v1646_5(void) = ^IndirectReadSideEffect[-1] : &:r1646_1, ~m? +# 1646| mu1646_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1646_1 +# 1646| r1646_7(bool) = Constant[0] : +# 1646| v1646_8(void) = ConditionalBranch : r1646_7 +#-----| False -> Block 543 +#-----| True -> Block 1026 + +# 1648| Block 543 +# 1648| r1648_1(glval) = VariableAddress[x543] : +# 1648| mu1648_2(String) = Uninitialized[x543] : &:r1648_1 +# 1648| r1648_3(glval) = FunctionAddress[String] : +# 1648| v1648_4(void) = Call[String] : func:r1648_3, this:r1648_1 +# 1648| mu1648_5(unknown) = ^CallSideEffect : ~m? +# 1648| mu1648_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1648_1 +# 1649| r1649_1(glval) = VariableAddress[x543] : +# 1649| r1649_2(glval) = FunctionAddress[~String] : +# 1649| v1649_3(void) = Call[~String] : func:r1649_2, this:r1649_1 +# 1649| mu1649_4(unknown) = ^CallSideEffect : ~m? +# 1649| v1649_5(void) = ^IndirectReadSideEffect[-1] : &:r1649_1, ~m? +# 1649| mu1649_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1649_1 +# 1649| r1649_7(bool) = Constant[0] : +# 1649| v1649_8(void) = ConditionalBranch : r1649_7 +#-----| False -> Block 544 +#-----| True -> Block 1026 + +# 1651| Block 544 +# 1651| r1651_1(glval) = VariableAddress[x544] : +# 1651| mu1651_2(String) = Uninitialized[x544] : &:r1651_1 +# 1651| r1651_3(glval) = FunctionAddress[String] : +# 1651| v1651_4(void) = Call[String] : func:r1651_3, this:r1651_1 +# 1651| mu1651_5(unknown) = ^CallSideEffect : ~m? +# 1651| mu1651_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1651_1 +# 1652| r1652_1(glval) = VariableAddress[x544] : +# 1652| r1652_2(glval) = FunctionAddress[~String] : +# 1652| v1652_3(void) = Call[~String] : func:r1652_2, this:r1652_1 +# 1652| mu1652_4(unknown) = ^CallSideEffect : ~m? +# 1652| v1652_5(void) = ^IndirectReadSideEffect[-1] : &:r1652_1, ~m? +# 1652| mu1652_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1652_1 +# 1652| r1652_7(bool) = Constant[0] : +# 1652| v1652_8(void) = ConditionalBranch : r1652_7 +#-----| False -> Block 545 +#-----| True -> Block 1026 + +# 1654| Block 545 +# 1654| r1654_1(glval) = VariableAddress[x545] : +# 1654| mu1654_2(String) = Uninitialized[x545] : &:r1654_1 +# 1654| r1654_3(glval) = FunctionAddress[String] : +# 1654| v1654_4(void) = Call[String] : func:r1654_3, this:r1654_1 +# 1654| mu1654_5(unknown) = ^CallSideEffect : ~m? +# 1654| mu1654_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1654_1 +# 1655| r1655_1(glval) = VariableAddress[x545] : +# 1655| r1655_2(glval) = FunctionAddress[~String] : +# 1655| v1655_3(void) = Call[~String] : func:r1655_2, this:r1655_1 +# 1655| mu1655_4(unknown) = ^CallSideEffect : ~m? +# 1655| v1655_5(void) = ^IndirectReadSideEffect[-1] : &:r1655_1, ~m? +# 1655| mu1655_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1655_1 +# 1655| r1655_7(bool) = Constant[0] : +# 1655| v1655_8(void) = ConditionalBranch : r1655_7 +#-----| False -> Block 546 +#-----| True -> Block 1026 + +# 1657| Block 546 +# 1657| r1657_1(glval) = VariableAddress[x546] : +# 1657| mu1657_2(String) = Uninitialized[x546] : &:r1657_1 +# 1657| r1657_3(glval) = FunctionAddress[String] : +# 1657| v1657_4(void) = Call[String] : func:r1657_3, this:r1657_1 +# 1657| mu1657_5(unknown) = ^CallSideEffect : ~m? +# 1657| mu1657_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1657_1 +# 1658| r1658_1(glval) = VariableAddress[x546] : +# 1658| r1658_2(glval) = FunctionAddress[~String] : +# 1658| v1658_3(void) = Call[~String] : func:r1658_2, this:r1658_1 +# 1658| mu1658_4(unknown) = ^CallSideEffect : ~m? +# 1658| v1658_5(void) = ^IndirectReadSideEffect[-1] : &:r1658_1, ~m? +# 1658| mu1658_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1658_1 +# 1658| r1658_7(bool) = Constant[0] : +# 1658| v1658_8(void) = ConditionalBranch : r1658_7 +#-----| False -> Block 547 +#-----| True -> Block 1026 + +# 1660| Block 547 +# 1660| r1660_1(glval) = VariableAddress[x547] : +# 1660| mu1660_2(String) = Uninitialized[x547] : &:r1660_1 +# 1660| r1660_3(glval) = FunctionAddress[String] : +# 1660| v1660_4(void) = Call[String] : func:r1660_3, this:r1660_1 +# 1660| mu1660_5(unknown) = ^CallSideEffect : ~m? +# 1660| mu1660_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1660_1 +# 1661| r1661_1(glval) = VariableAddress[x547] : +# 1661| r1661_2(glval) = FunctionAddress[~String] : +# 1661| v1661_3(void) = Call[~String] : func:r1661_2, this:r1661_1 +# 1661| mu1661_4(unknown) = ^CallSideEffect : ~m? +# 1661| v1661_5(void) = ^IndirectReadSideEffect[-1] : &:r1661_1, ~m? +# 1661| mu1661_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1661_1 +# 1661| r1661_7(bool) = Constant[0] : +# 1661| v1661_8(void) = ConditionalBranch : r1661_7 +#-----| False -> Block 548 +#-----| True -> Block 1026 + +# 1663| Block 548 +# 1663| r1663_1(glval) = VariableAddress[x548] : +# 1663| mu1663_2(String) = Uninitialized[x548] : &:r1663_1 +# 1663| r1663_3(glval) = FunctionAddress[String] : +# 1663| v1663_4(void) = Call[String] : func:r1663_3, this:r1663_1 +# 1663| mu1663_5(unknown) = ^CallSideEffect : ~m? +# 1663| mu1663_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1663_1 +# 1664| r1664_1(glval) = VariableAddress[x548] : +# 1664| r1664_2(glval) = FunctionAddress[~String] : +# 1664| v1664_3(void) = Call[~String] : func:r1664_2, this:r1664_1 +# 1664| mu1664_4(unknown) = ^CallSideEffect : ~m? +# 1664| v1664_5(void) = ^IndirectReadSideEffect[-1] : &:r1664_1, ~m? +# 1664| mu1664_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1664_1 +# 1664| r1664_7(bool) = Constant[0] : +# 1664| v1664_8(void) = ConditionalBranch : r1664_7 +#-----| False -> Block 549 +#-----| True -> Block 1026 + +# 1666| Block 549 +# 1666| r1666_1(glval) = VariableAddress[x549] : +# 1666| mu1666_2(String) = Uninitialized[x549] : &:r1666_1 +# 1666| r1666_3(glval) = FunctionAddress[String] : +# 1666| v1666_4(void) = Call[String] : func:r1666_3, this:r1666_1 +# 1666| mu1666_5(unknown) = ^CallSideEffect : ~m? +# 1666| mu1666_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1666_1 +# 1667| r1667_1(glval) = VariableAddress[x549] : +# 1667| r1667_2(glval) = FunctionAddress[~String] : +# 1667| v1667_3(void) = Call[~String] : func:r1667_2, this:r1667_1 +# 1667| mu1667_4(unknown) = ^CallSideEffect : ~m? +# 1667| v1667_5(void) = ^IndirectReadSideEffect[-1] : &:r1667_1, ~m? +# 1667| mu1667_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1667_1 +# 1667| r1667_7(bool) = Constant[0] : +# 1667| v1667_8(void) = ConditionalBranch : r1667_7 +#-----| False -> Block 550 +#-----| True -> Block 1026 + +# 1669| Block 550 +# 1669| r1669_1(glval) = VariableAddress[x550] : +# 1669| mu1669_2(String) = Uninitialized[x550] : &:r1669_1 +# 1669| r1669_3(glval) = FunctionAddress[String] : +# 1669| v1669_4(void) = Call[String] : func:r1669_3, this:r1669_1 +# 1669| mu1669_5(unknown) = ^CallSideEffect : ~m? +# 1669| mu1669_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1669_1 +# 1670| r1670_1(glval) = VariableAddress[x550] : +# 1670| r1670_2(glval) = FunctionAddress[~String] : +# 1670| v1670_3(void) = Call[~String] : func:r1670_2, this:r1670_1 +# 1670| mu1670_4(unknown) = ^CallSideEffect : ~m? +# 1670| v1670_5(void) = ^IndirectReadSideEffect[-1] : &:r1670_1, ~m? +# 1670| mu1670_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1670_1 +# 1670| r1670_7(bool) = Constant[0] : +# 1670| v1670_8(void) = ConditionalBranch : r1670_7 +#-----| False -> Block 551 +#-----| True -> Block 1026 + +# 1672| Block 551 +# 1672| r1672_1(glval) = VariableAddress[x551] : +# 1672| mu1672_2(String) = Uninitialized[x551] : &:r1672_1 +# 1672| r1672_3(glval) = FunctionAddress[String] : +# 1672| v1672_4(void) = Call[String] : func:r1672_3, this:r1672_1 +# 1672| mu1672_5(unknown) = ^CallSideEffect : ~m? +# 1672| mu1672_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1672_1 +# 1673| r1673_1(glval) = VariableAddress[x551] : +# 1673| r1673_2(glval) = FunctionAddress[~String] : +# 1673| v1673_3(void) = Call[~String] : func:r1673_2, this:r1673_1 +# 1673| mu1673_4(unknown) = ^CallSideEffect : ~m? +# 1673| v1673_5(void) = ^IndirectReadSideEffect[-1] : &:r1673_1, ~m? +# 1673| mu1673_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1673_1 +# 1673| r1673_7(bool) = Constant[0] : +# 1673| v1673_8(void) = ConditionalBranch : r1673_7 +#-----| False -> Block 552 +#-----| True -> Block 1026 + +# 1675| Block 552 +# 1675| r1675_1(glval) = VariableAddress[x552] : +# 1675| mu1675_2(String) = Uninitialized[x552] : &:r1675_1 +# 1675| r1675_3(glval) = FunctionAddress[String] : +# 1675| v1675_4(void) = Call[String] : func:r1675_3, this:r1675_1 +# 1675| mu1675_5(unknown) = ^CallSideEffect : ~m? +# 1675| mu1675_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1675_1 +# 1676| r1676_1(glval) = VariableAddress[x552] : +# 1676| r1676_2(glval) = FunctionAddress[~String] : +# 1676| v1676_3(void) = Call[~String] : func:r1676_2, this:r1676_1 +# 1676| mu1676_4(unknown) = ^CallSideEffect : ~m? +# 1676| v1676_5(void) = ^IndirectReadSideEffect[-1] : &:r1676_1, ~m? +# 1676| mu1676_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1676_1 +# 1676| r1676_7(bool) = Constant[0] : +# 1676| v1676_8(void) = ConditionalBranch : r1676_7 +#-----| False -> Block 553 +#-----| True -> Block 1026 + +# 1678| Block 553 +# 1678| r1678_1(glval) = VariableAddress[x553] : +# 1678| mu1678_2(String) = Uninitialized[x553] : &:r1678_1 +# 1678| r1678_3(glval) = FunctionAddress[String] : +# 1678| v1678_4(void) = Call[String] : func:r1678_3, this:r1678_1 +# 1678| mu1678_5(unknown) = ^CallSideEffect : ~m? +# 1678| mu1678_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1678_1 +# 1679| r1679_1(glval) = VariableAddress[x553] : +# 1679| r1679_2(glval) = FunctionAddress[~String] : +# 1679| v1679_3(void) = Call[~String] : func:r1679_2, this:r1679_1 +# 1679| mu1679_4(unknown) = ^CallSideEffect : ~m? +# 1679| v1679_5(void) = ^IndirectReadSideEffect[-1] : &:r1679_1, ~m? +# 1679| mu1679_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1679_1 +# 1679| r1679_7(bool) = Constant[0] : +# 1679| v1679_8(void) = ConditionalBranch : r1679_7 +#-----| False -> Block 554 +#-----| True -> Block 1026 + +# 1681| Block 554 +# 1681| r1681_1(glval) = VariableAddress[x554] : +# 1681| mu1681_2(String) = Uninitialized[x554] : &:r1681_1 +# 1681| r1681_3(glval) = FunctionAddress[String] : +# 1681| v1681_4(void) = Call[String] : func:r1681_3, this:r1681_1 +# 1681| mu1681_5(unknown) = ^CallSideEffect : ~m? +# 1681| mu1681_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1681_1 +# 1682| r1682_1(glval) = VariableAddress[x554] : +# 1682| r1682_2(glval) = FunctionAddress[~String] : +# 1682| v1682_3(void) = Call[~String] : func:r1682_2, this:r1682_1 +# 1682| mu1682_4(unknown) = ^CallSideEffect : ~m? +# 1682| v1682_5(void) = ^IndirectReadSideEffect[-1] : &:r1682_1, ~m? +# 1682| mu1682_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1682_1 +# 1682| r1682_7(bool) = Constant[0] : +# 1682| v1682_8(void) = ConditionalBranch : r1682_7 +#-----| False -> Block 555 +#-----| True -> Block 1026 + +# 1684| Block 555 +# 1684| r1684_1(glval) = VariableAddress[x555] : +# 1684| mu1684_2(String) = Uninitialized[x555] : &:r1684_1 +# 1684| r1684_3(glval) = FunctionAddress[String] : +# 1684| v1684_4(void) = Call[String] : func:r1684_3, this:r1684_1 +# 1684| mu1684_5(unknown) = ^CallSideEffect : ~m? +# 1684| mu1684_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1684_1 +# 1685| r1685_1(glval) = VariableAddress[x555] : +# 1685| r1685_2(glval) = FunctionAddress[~String] : +# 1685| v1685_3(void) = Call[~String] : func:r1685_2, this:r1685_1 +# 1685| mu1685_4(unknown) = ^CallSideEffect : ~m? +# 1685| v1685_5(void) = ^IndirectReadSideEffect[-1] : &:r1685_1, ~m? +# 1685| mu1685_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1685_1 +# 1685| r1685_7(bool) = Constant[0] : +# 1685| v1685_8(void) = ConditionalBranch : r1685_7 +#-----| False -> Block 556 +#-----| True -> Block 1026 + +# 1687| Block 556 +# 1687| r1687_1(glval) = VariableAddress[x556] : +# 1687| mu1687_2(String) = Uninitialized[x556] : &:r1687_1 +# 1687| r1687_3(glval) = FunctionAddress[String] : +# 1687| v1687_4(void) = Call[String] : func:r1687_3, this:r1687_1 +# 1687| mu1687_5(unknown) = ^CallSideEffect : ~m? +# 1687| mu1687_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1687_1 +# 1688| r1688_1(glval) = VariableAddress[x556] : +# 1688| r1688_2(glval) = FunctionAddress[~String] : +# 1688| v1688_3(void) = Call[~String] : func:r1688_2, this:r1688_1 +# 1688| mu1688_4(unknown) = ^CallSideEffect : ~m? +# 1688| v1688_5(void) = ^IndirectReadSideEffect[-1] : &:r1688_1, ~m? +# 1688| mu1688_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1688_1 +# 1688| r1688_7(bool) = Constant[0] : +# 1688| v1688_8(void) = ConditionalBranch : r1688_7 +#-----| False -> Block 557 +#-----| True -> Block 1026 + +# 1690| Block 557 +# 1690| r1690_1(glval) = VariableAddress[x557] : +# 1690| mu1690_2(String) = Uninitialized[x557] : &:r1690_1 +# 1690| r1690_3(glval) = FunctionAddress[String] : +# 1690| v1690_4(void) = Call[String] : func:r1690_3, this:r1690_1 +# 1690| mu1690_5(unknown) = ^CallSideEffect : ~m? +# 1690| mu1690_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1690_1 +# 1691| r1691_1(glval) = VariableAddress[x557] : +# 1691| r1691_2(glval) = FunctionAddress[~String] : +# 1691| v1691_3(void) = Call[~String] : func:r1691_2, this:r1691_1 +# 1691| mu1691_4(unknown) = ^CallSideEffect : ~m? +# 1691| v1691_5(void) = ^IndirectReadSideEffect[-1] : &:r1691_1, ~m? +# 1691| mu1691_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1691_1 +# 1691| r1691_7(bool) = Constant[0] : +# 1691| v1691_8(void) = ConditionalBranch : r1691_7 +#-----| False -> Block 558 +#-----| True -> Block 1026 + +# 1693| Block 558 +# 1693| r1693_1(glval) = VariableAddress[x558] : +# 1693| mu1693_2(String) = Uninitialized[x558] : &:r1693_1 +# 1693| r1693_3(glval) = FunctionAddress[String] : +# 1693| v1693_4(void) = Call[String] : func:r1693_3, this:r1693_1 +# 1693| mu1693_5(unknown) = ^CallSideEffect : ~m? +# 1693| mu1693_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1693_1 +# 1694| r1694_1(glval) = VariableAddress[x558] : +# 1694| r1694_2(glval) = FunctionAddress[~String] : +# 1694| v1694_3(void) = Call[~String] : func:r1694_2, this:r1694_1 +# 1694| mu1694_4(unknown) = ^CallSideEffect : ~m? +# 1694| v1694_5(void) = ^IndirectReadSideEffect[-1] : &:r1694_1, ~m? +# 1694| mu1694_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1694_1 +# 1694| r1694_7(bool) = Constant[0] : +# 1694| v1694_8(void) = ConditionalBranch : r1694_7 +#-----| False -> Block 559 +#-----| True -> Block 1026 + +# 1696| Block 559 +# 1696| r1696_1(glval) = VariableAddress[x559] : +# 1696| mu1696_2(String) = Uninitialized[x559] : &:r1696_1 +# 1696| r1696_3(glval) = FunctionAddress[String] : +# 1696| v1696_4(void) = Call[String] : func:r1696_3, this:r1696_1 +# 1696| mu1696_5(unknown) = ^CallSideEffect : ~m? +# 1696| mu1696_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1696_1 +# 1697| r1697_1(glval) = VariableAddress[x559] : +# 1697| r1697_2(glval) = FunctionAddress[~String] : +# 1697| v1697_3(void) = Call[~String] : func:r1697_2, this:r1697_1 +# 1697| mu1697_4(unknown) = ^CallSideEffect : ~m? +# 1697| v1697_5(void) = ^IndirectReadSideEffect[-1] : &:r1697_1, ~m? +# 1697| mu1697_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1697_1 +# 1697| r1697_7(bool) = Constant[0] : +# 1697| v1697_8(void) = ConditionalBranch : r1697_7 +#-----| False -> Block 560 +#-----| True -> Block 1026 + +# 1699| Block 560 +# 1699| r1699_1(glval) = VariableAddress[x560] : +# 1699| mu1699_2(String) = Uninitialized[x560] : &:r1699_1 +# 1699| r1699_3(glval) = FunctionAddress[String] : +# 1699| v1699_4(void) = Call[String] : func:r1699_3, this:r1699_1 +# 1699| mu1699_5(unknown) = ^CallSideEffect : ~m? +# 1699| mu1699_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1699_1 +# 1700| r1700_1(glval) = VariableAddress[x560] : +# 1700| r1700_2(glval) = FunctionAddress[~String] : +# 1700| v1700_3(void) = Call[~String] : func:r1700_2, this:r1700_1 +# 1700| mu1700_4(unknown) = ^CallSideEffect : ~m? +# 1700| v1700_5(void) = ^IndirectReadSideEffect[-1] : &:r1700_1, ~m? +# 1700| mu1700_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1700_1 +# 1700| r1700_7(bool) = Constant[0] : +# 1700| v1700_8(void) = ConditionalBranch : r1700_7 +#-----| False -> Block 561 +#-----| True -> Block 1026 + +# 1702| Block 561 +# 1702| r1702_1(glval) = VariableAddress[x561] : +# 1702| mu1702_2(String) = Uninitialized[x561] : &:r1702_1 +# 1702| r1702_3(glval) = FunctionAddress[String] : +# 1702| v1702_4(void) = Call[String] : func:r1702_3, this:r1702_1 +# 1702| mu1702_5(unknown) = ^CallSideEffect : ~m? +# 1702| mu1702_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1702_1 +# 1703| r1703_1(glval) = VariableAddress[x561] : +# 1703| r1703_2(glval) = FunctionAddress[~String] : +# 1703| v1703_3(void) = Call[~String] : func:r1703_2, this:r1703_1 +# 1703| mu1703_4(unknown) = ^CallSideEffect : ~m? +# 1703| v1703_5(void) = ^IndirectReadSideEffect[-1] : &:r1703_1, ~m? +# 1703| mu1703_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1703_1 +# 1703| r1703_7(bool) = Constant[0] : +# 1703| v1703_8(void) = ConditionalBranch : r1703_7 +#-----| False -> Block 562 +#-----| True -> Block 1026 + +# 1705| Block 562 +# 1705| r1705_1(glval) = VariableAddress[x562] : +# 1705| mu1705_2(String) = Uninitialized[x562] : &:r1705_1 +# 1705| r1705_3(glval) = FunctionAddress[String] : +# 1705| v1705_4(void) = Call[String] : func:r1705_3, this:r1705_1 +# 1705| mu1705_5(unknown) = ^CallSideEffect : ~m? +# 1705| mu1705_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1705_1 +# 1706| r1706_1(glval) = VariableAddress[x562] : +# 1706| r1706_2(glval) = FunctionAddress[~String] : +# 1706| v1706_3(void) = Call[~String] : func:r1706_2, this:r1706_1 +# 1706| mu1706_4(unknown) = ^CallSideEffect : ~m? +# 1706| v1706_5(void) = ^IndirectReadSideEffect[-1] : &:r1706_1, ~m? +# 1706| mu1706_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1706_1 +# 1706| r1706_7(bool) = Constant[0] : +# 1706| v1706_8(void) = ConditionalBranch : r1706_7 +#-----| False -> Block 563 +#-----| True -> Block 1026 + +# 1708| Block 563 +# 1708| r1708_1(glval) = VariableAddress[x563] : +# 1708| mu1708_2(String) = Uninitialized[x563] : &:r1708_1 +# 1708| r1708_3(glval) = FunctionAddress[String] : +# 1708| v1708_4(void) = Call[String] : func:r1708_3, this:r1708_1 +# 1708| mu1708_5(unknown) = ^CallSideEffect : ~m? +# 1708| mu1708_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1708_1 +# 1709| r1709_1(glval) = VariableAddress[x563] : +# 1709| r1709_2(glval) = FunctionAddress[~String] : +# 1709| v1709_3(void) = Call[~String] : func:r1709_2, this:r1709_1 +# 1709| mu1709_4(unknown) = ^CallSideEffect : ~m? +# 1709| v1709_5(void) = ^IndirectReadSideEffect[-1] : &:r1709_1, ~m? +# 1709| mu1709_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1709_1 +# 1709| r1709_7(bool) = Constant[0] : +# 1709| v1709_8(void) = ConditionalBranch : r1709_7 +#-----| False -> Block 564 +#-----| True -> Block 1026 + +# 1711| Block 564 +# 1711| r1711_1(glval) = VariableAddress[x564] : +# 1711| mu1711_2(String) = Uninitialized[x564] : &:r1711_1 +# 1711| r1711_3(glval) = FunctionAddress[String] : +# 1711| v1711_4(void) = Call[String] : func:r1711_3, this:r1711_1 +# 1711| mu1711_5(unknown) = ^CallSideEffect : ~m? +# 1711| mu1711_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1711_1 +# 1712| r1712_1(glval) = VariableAddress[x564] : +# 1712| r1712_2(glval) = FunctionAddress[~String] : +# 1712| v1712_3(void) = Call[~String] : func:r1712_2, this:r1712_1 +# 1712| mu1712_4(unknown) = ^CallSideEffect : ~m? +# 1712| v1712_5(void) = ^IndirectReadSideEffect[-1] : &:r1712_1, ~m? +# 1712| mu1712_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1712_1 +# 1712| r1712_7(bool) = Constant[0] : +# 1712| v1712_8(void) = ConditionalBranch : r1712_7 +#-----| False -> Block 565 +#-----| True -> Block 1026 + +# 1714| Block 565 +# 1714| r1714_1(glval) = VariableAddress[x565] : +# 1714| mu1714_2(String) = Uninitialized[x565] : &:r1714_1 +# 1714| r1714_3(glval) = FunctionAddress[String] : +# 1714| v1714_4(void) = Call[String] : func:r1714_3, this:r1714_1 +# 1714| mu1714_5(unknown) = ^CallSideEffect : ~m? +# 1714| mu1714_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1714_1 +# 1715| r1715_1(glval) = VariableAddress[x565] : +# 1715| r1715_2(glval) = FunctionAddress[~String] : +# 1715| v1715_3(void) = Call[~String] : func:r1715_2, this:r1715_1 +# 1715| mu1715_4(unknown) = ^CallSideEffect : ~m? +# 1715| v1715_5(void) = ^IndirectReadSideEffect[-1] : &:r1715_1, ~m? +# 1715| mu1715_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1715_1 +# 1715| r1715_7(bool) = Constant[0] : +# 1715| v1715_8(void) = ConditionalBranch : r1715_7 +#-----| False -> Block 566 +#-----| True -> Block 1026 + +# 1717| Block 566 +# 1717| r1717_1(glval) = VariableAddress[x566] : +# 1717| mu1717_2(String) = Uninitialized[x566] : &:r1717_1 +# 1717| r1717_3(glval) = FunctionAddress[String] : +# 1717| v1717_4(void) = Call[String] : func:r1717_3, this:r1717_1 +# 1717| mu1717_5(unknown) = ^CallSideEffect : ~m? +# 1717| mu1717_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1717_1 +# 1718| r1718_1(glval) = VariableAddress[x566] : +# 1718| r1718_2(glval) = FunctionAddress[~String] : +# 1718| v1718_3(void) = Call[~String] : func:r1718_2, this:r1718_1 +# 1718| mu1718_4(unknown) = ^CallSideEffect : ~m? +# 1718| v1718_5(void) = ^IndirectReadSideEffect[-1] : &:r1718_1, ~m? +# 1718| mu1718_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1718_1 +# 1718| r1718_7(bool) = Constant[0] : +# 1718| v1718_8(void) = ConditionalBranch : r1718_7 +#-----| False -> Block 567 +#-----| True -> Block 1026 + +# 1720| Block 567 +# 1720| r1720_1(glval) = VariableAddress[x567] : +# 1720| mu1720_2(String) = Uninitialized[x567] : &:r1720_1 +# 1720| r1720_3(glval) = FunctionAddress[String] : +# 1720| v1720_4(void) = Call[String] : func:r1720_3, this:r1720_1 +# 1720| mu1720_5(unknown) = ^CallSideEffect : ~m? +# 1720| mu1720_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1720_1 +# 1721| r1721_1(glval) = VariableAddress[x567] : +# 1721| r1721_2(glval) = FunctionAddress[~String] : +# 1721| v1721_3(void) = Call[~String] : func:r1721_2, this:r1721_1 +# 1721| mu1721_4(unknown) = ^CallSideEffect : ~m? +# 1721| v1721_5(void) = ^IndirectReadSideEffect[-1] : &:r1721_1, ~m? +# 1721| mu1721_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1721_1 +# 1721| r1721_7(bool) = Constant[0] : +# 1721| v1721_8(void) = ConditionalBranch : r1721_7 +#-----| False -> Block 568 +#-----| True -> Block 1026 + +# 1723| Block 568 +# 1723| r1723_1(glval) = VariableAddress[x568] : +# 1723| mu1723_2(String) = Uninitialized[x568] : &:r1723_1 +# 1723| r1723_3(glval) = FunctionAddress[String] : +# 1723| v1723_4(void) = Call[String] : func:r1723_3, this:r1723_1 +# 1723| mu1723_5(unknown) = ^CallSideEffect : ~m? +# 1723| mu1723_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1723_1 +# 1724| r1724_1(glval) = VariableAddress[x568] : +# 1724| r1724_2(glval) = FunctionAddress[~String] : +# 1724| v1724_3(void) = Call[~String] : func:r1724_2, this:r1724_1 +# 1724| mu1724_4(unknown) = ^CallSideEffect : ~m? +# 1724| v1724_5(void) = ^IndirectReadSideEffect[-1] : &:r1724_1, ~m? +# 1724| mu1724_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1724_1 +# 1724| r1724_7(bool) = Constant[0] : +# 1724| v1724_8(void) = ConditionalBranch : r1724_7 +#-----| False -> Block 569 +#-----| True -> Block 1026 + +# 1726| Block 569 +# 1726| r1726_1(glval) = VariableAddress[x569] : +# 1726| mu1726_2(String) = Uninitialized[x569] : &:r1726_1 +# 1726| r1726_3(glval) = FunctionAddress[String] : +# 1726| v1726_4(void) = Call[String] : func:r1726_3, this:r1726_1 +# 1726| mu1726_5(unknown) = ^CallSideEffect : ~m? +# 1726| mu1726_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1726_1 +# 1727| r1727_1(glval) = VariableAddress[x569] : +# 1727| r1727_2(glval) = FunctionAddress[~String] : +# 1727| v1727_3(void) = Call[~String] : func:r1727_2, this:r1727_1 +# 1727| mu1727_4(unknown) = ^CallSideEffect : ~m? +# 1727| v1727_5(void) = ^IndirectReadSideEffect[-1] : &:r1727_1, ~m? +# 1727| mu1727_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1727_1 +# 1727| r1727_7(bool) = Constant[0] : +# 1727| v1727_8(void) = ConditionalBranch : r1727_7 +#-----| False -> Block 570 +#-----| True -> Block 1026 + +# 1729| Block 570 +# 1729| r1729_1(glval) = VariableAddress[x570] : +# 1729| mu1729_2(String) = Uninitialized[x570] : &:r1729_1 +# 1729| r1729_3(glval) = FunctionAddress[String] : +# 1729| v1729_4(void) = Call[String] : func:r1729_3, this:r1729_1 +# 1729| mu1729_5(unknown) = ^CallSideEffect : ~m? +# 1729| mu1729_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1729_1 +# 1730| r1730_1(glval) = VariableAddress[x570] : +# 1730| r1730_2(glval) = FunctionAddress[~String] : +# 1730| v1730_3(void) = Call[~String] : func:r1730_2, this:r1730_1 +# 1730| mu1730_4(unknown) = ^CallSideEffect : ~m? +# 1730| v1730_5(void) = ^IndirectReadSideEffect[-1] : &:r1730_1, ~m? +# 1730| mu1730_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1730_1 +# 1730| r1730_7(bool) = Constant[0] : +# 1730| v1730_8(void) = ConditionalBranch : r1730_7 +#-----| False -> Block 571 +#-----| True -> Block 1026 + +# 1732| Block 571 +# 1732| r1732_1(glval) = VariableAddress[x571] : +# 1732| mu1732_2(String) = Uninitialized[x571] : &:r1732_1 +# 1732| r1732_3(glval) = FunctionAddress[String] : +# 1732| v1732_4(void) = Call[String] : func:r1732_3, this:r1732_1 +# 1732| mu1732_5(unknown) = ^CallSideEffect : ~m? +# 1732| mu1732_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1732_1 +# 1733| r1733_1(glval) = VariableAddress[x571] : +# 1733| r1733_2(glval) = FunctionAddress[~String] : +# 1733| v1733_3(void) = Call[~String] : func:r1733_2, this:r1733_1 +# 1733| mu1733_4(unknown) = ^CallSideEffect : ~m? +# 1733| v1733_5(void) = ^IndirectReadSideEffect[-1] : &:r1733_1, ~m? +# 1733| mu1733_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1733_1 +# 1733| r1733_7(bool) = Constant[0] : +# 1733| v1733_8(void) = ConditionalBranch : r1733_7 +#-----| False -> Block 572 +#-----| True -> Block 1026 + +# 1735| Block 572 +# 1735| r1735_1(glval) = VariableAddress[x572] : +# 1735| mu1735_2(String) = Uninitialized[x572] : &:r1735_1 +# 1735| r1735_3(glval) = FunctionAddress[String] : +# 1735| v1735_4(void) = Call[String] : func:r1735_3, this:r1735_1 +# 1735| mu1735_5(unknown) = ^CallSideEffect : ~m? +# 1735| mu1735_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 +# 1736| r1736_1(glval) = VariableAddress[x572] : +# 1736| r1736_2(glval) = FunctionAddress[~String] : +# 1736| v1736_3(void) = Call[~String] : func:r1736_2, this:r1736_1 +# 1736| mu1736_4(unknown) = ^CallSideEffect : ~m? +# 1736| v1736_5(void) = ^IndirectReadSideEffect[-1] : &:r1736_1, ~m? +# 1736| mu1736_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1736_1 +# 1736| r1736_7(bool) = Constant[0] : +# 1736| v1736_8(void) = ConditionalBranch : r1736_7 +#-----| False -> Block 573 +#-----| True -> Block 1026 + +# 1738| Block 573 +# 1738| r1738_1(glval) = VariableAddress[x573] : +# 1738| mu1738_2(String) = Uninitialized[x573] : &:r1738_1 +# 1738| r1738_3(glval) = FunctionAddress[String] : +# 1738| v1738_4(void) = Call[String] : func:r1738_3, this:r1738_1 +# 1738| mu1738_5(unknown) = ^CallSideEffect : ~m? +# 1738| mu1738_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1738_1 +# 1739| r1739_1(glval) = VariableAddress[x573] : +# 1739| r1739_2(glval) = FunctionAddress[~String] : +# 1739| v1739_3(void) = Call[~String] : func:r1739_2, this:r1739_1 +# 1739| mu1739_4(unknown) = ^CallSideEffect : ~m? +# 1739| v1739_5(void) = ^IndirectReadSideEffect[-1] : &:r1739_1, ~m? +# 1739| mu1739_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1739_1 +# 1739| r1739_7(bool) = Constant[0] : +# 1739| v1739_8(void) = ConditionalBranch : r1739_7 +#-----| False -> Block 574 +#-----| True -> Block 1026 + +# 1741| Block 574 +# 1741| r1741_1(glval) = VariableAddress[x574] : +# 1741| mu1741_2(String) = Uninitialized[x574] : &:r1741_1 +# 1741| r1741_3(glval) = FunctionAddress[String] : +# 1741| v1741_4(void) = Call[String] : func:r1741_3, this:r1741_1 +# 1741| mu1741_5(unknown) = ^CallSideEffect : ~m? +# 1741| mu1741_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1741_1 +# 1742| r1742_1(glval) = VariableAddress[x574] : +# 1742| r1742_2(glval) = FunctionAddress[~String] : +# 1742| v1742_3(void) = Call[~String] : func:r1742_2, this:r1742_1 +# 1742| mu1742_4(unknown) = ^CallSideEffect : ~m? +# 1742| v1742_5(void) = ^IndirectReadSideEffect[-1] : &:r1742_1, ~m? +# 1742| mu1742_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1742_1 +# 1742| r1742_7(bool) = Constant[0] : +# 1742| v1742_8(void) = ConditionalBranch : r1742_7 +#-----| False -> Block 575 +#-----| True -> Block 1026 + +# 1744| Block 575 +# 1744| r1744_1(glval) = VariableAddress[x575] : +# 1744| mu1744_2(String) = Uninitialized[x575] : &:r1744_1 +# 1744| r1744_3(glval) = FunctionAddress[String] : +# 1744| v1744_4(void) = Call[String] : func:r1744_3, this:r1744_1 +# 1744| mu1744_5(unknown) = ^CallSideEffect : ~m? +# 1744| mu1744_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1744_1 +# 1745| r1745_1(glval) = VariableAddress[x575] : +# 1745| r1745_2(glval) = FunctionAddress[~String] : +# 1745| v1745_3(void) = Call[~String] : func:r1745_2, this:r1745_1 +# 1745| mu1745_4(unknown) = ^CallSideEffect : ~m? +# 1745| v1745_5(void) = ^IndirectReadSideEffect[-1] : &:r1745_1, ~m? +# 1745| mu1745_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1745_1 +# 1745| r1745_7(bool) = Constant[0] : +# 1745| v1745_8(void) = ConditionalBranch : r1745_7 +#-----| False -> Block 576 +#-----| True -> Block 1026 + +# 1747| Block 576 +# 1747| r1747_1(glval) = VariableAddress[x576] : +# 1747| mu1747_2(String) = Uninitialized[x576] : &:r1747_1 +# 1747| r1747_3(glval) = FunctionAddress[String] : +# 1747| v1747_4(void) = Call[String] : func:r1747_3, this:r1747_1 +# 1747| mu1747_5(unknown) = ^CallSideEffect : ~m? +# 1747| mu1747_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1747_1 +# 1748| r1748_1(glval) = VariableAddress[x576] : +# 1748| r1748_2(glval) = FunctionAddress[~String] : +# 1748| v1748_3(void) = Call[~String] : func:r1748_2, this:r1748_1 +# 1748| mu1748_4(unknown) = ^CallSideEffect : ~m? +# 1748| v1748_5(void) = ^IndirectReadSideEffect[-1] : &:r1748_1, ~m? +# 1748| mu1748_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1748_1 +# 1748| r1748_7(bool) = Constant[0] : +# 1748| v1748_8(void) = ConditionalBranch : r1748_7 +#-----| False -> Block 577 +#-----| True -> Block 1026 + +# 1750| Block 577 +# 1750| r1750_1(glval) = VariableAddress[x577] : +# 1750| mu1750_2(String) = Uninitialized[x577] : &:r1750_1 +# 1750| r1750_3(glval) = FunctionAddress[String] : +# 1750| v1750_4(void) = Call[String] : func:r1750_3, this:r1750_1 +# 1750| mu1750_5(unknown) = ^CallSideEffect : ~m? +# 1750| mu1750_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1750_1 +# 1751| r1751_1(glval) = VariableAddress[x577] : +# 1751| r1751_2(glval) = FunctionAddress[~String] : +# 1751| v1751_3(void) = Call[~String] : func:r1751_2, this:r1751_1 +# 1751| mu1751_4(unknown) = ^CallSideEffect : ~m? +# 1751| v1751_5(void) = ^IndirectReadSideEffect[-1] : &:r1751_1, ~m? +# 1751| mu1751_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1751_1 +# 1751| r1751_7(bool) = Constant[0] : +# 1751| v1751_8(void) = ConditionalBranch : r1751_7 +#-----| False -> Block 578 +#-----| True -> Block 1026 + +# 1753| Block 578 +# 1753| r1753_1(glval) = VariableAddress[x578] : +# 1753| mu1753_2(String) = Uninitialized[x578] : &:r1753_1 +# 1753| r1753_3(glval) = FunctionAddress[String] : +# 1753| v1753_4(void) = Call[String] : func:r1753_3, this:r1753_1 +# 1753| mu1753_5(unknown) = ^CallSideEffect : ~m? +# 1753| mu1753_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1753_1 +# 1754| r1754_1(glval) = VariableAddress[x578] : +# 1754| r1754_2(glval) = FunctionAddress[~String] : +# 1754| v1754_3(void) = Call[~String] : func:r1754_2, this:r1754_1 +# 1754| mu1754_4(unknown) = ^CallSideEffect : ~m? +# 1754| v1754_5(void) = ^IndirectReadSideEffect[-1] : &:r1754_1, ~m? +# 1754| mu1754_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1754_1 +# 1754| r1754_7(bool) = Constant[0] : +# 1754| v1754_8(void) = ConditionalBranch : r1754_7 +#-----| False -> Block 579 +#-----| True -> Block 1026 + +# 1756| Block 579 +# 1756| r1756_1(glval) = VariableAddress[x579] : +# 1756| mu1756_2(String) = Uninitialized[x579] : &:r1756_1 +# 1756| r1756_3(glval) = FunctionAddress[String] : +# 1756| v1756_4(void) = Call[String] : func:r1756_3, this:r1756_1 +# 1756| mu1756_5(unknown) = ^CallSideEffect : ~m? +# 1756| mu1756_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1756_1 +# 1757| r1757_1(glval) = VariableAddress[x579] : +# 1757| r1757_2(glval) = FunctionAddress[~String] : +# 1757| v1757_3(void) = Call[~String] : func:r1757_2, this:r1757_1 +# 1757| mu1757_4(unknown) = ^CallSideEffect : ~m? +# 1757| v1757_5(void) = ^IndirectReadSideEffect[-1] : &:r1757_1, ~m? +# 1757| mu1757_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1757_1 +# 1757| r1757_7(bool) = Constant[0] : +# 1757| v1757_8(void) = ConditionalBranch : r1757_7 +#-----| False -> Block 580 +#-----| True -> Block 1026 + +# 1759| Block 580 +# 1759| r1759_1(glval) = VariableAddress[x580] : +# 1759| mu1759_2(String) = Uninitialized[x580] : &:r1759_1 +# 1759| r1759_3(glval) = FunctionAddress[String] : +# 1759| v1759_4(void) = Call[String] : func:r1759_3, this:r1759_1 +# 1759| mu1759_5(unknown) = ^CallSideEffect : ~m? +# 1759| mu1759_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1759_1 +# 1760| r1760_1(glval) = VariableAddress[x580] : +# 1760| r1760_2(glval) = FunctionAddress[~String] : +# 1760| v1760_3(void) = Call[~String] : func:r1760_2, this:r1760_1 +# 1760| mu1760_4(unknown) = ^CallSideEffect : ~m? +# 1760| v1760_5(void) = ^IndirectReadSideEffect[-1] : &:r1760_1, ~m? +# 1760| mu1760_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1760_1 +# 1760| r1760_7(bool) = Constant[0] : +# 1760| v1760_8(void) = ConditionalBranch : r1760_7 +#-----| False -> Block 581 +#-----| True -> Block 1026 + +# 1762| Block 581 +# 1762| r1762_1(glval) = VariableAddress[x581] : +# 1762| mu1762_2(String) = Uninitialized[x581] : &:r1762_1 +# 1762| r1762_3(glval) = FunctionAddress[String] : +# 1762| v1762_4(void) = Call[String] : func:r1762_3, this:r1762_1 +# 1762| mu1762_5(unknown) = ^CallSideEffect : ~m? +# 1762| mu1762_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1762_1 +# 1763| r1763_1(glval) = VariableAddress[x581] : +# 1763| r1763_2(glval) = FunctionAddress[~String] : +# 1763| v1763_3(void) = Call[~String] : func:r1763_2, this:r1763_1 +# 1763| mu1763_4(unknown) = ^CallSideEffect : ~m? +# 1763| v1763_5(void) = ^IndirectReadSideEffect[-1] : &:r1763_1, ~m? +# 1763| mu1763_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1763_1 +# 1763| r1763_7(bool) = Constant[0] : +# 1763| v1763_8(void) = ConditionalBranch : r1763_7 +#-----| False -> Block 582 +#-----| True -> Block 1026 + +# 1765| Block 582 +# 1765| r1765_1(glval) = VariableAddress[x582] : +# 1765| mu1765_2(String) = Uninitialized[x582] : &:r1765_1 +# 1765| r1765_3(glval) = FunctionAddress[String] : +# 1765| v1765_4(void) = Call[String] : func:r1765_3, this:r1765_1 +# 1765| mu1765_5(unknown) = ^CallSideEffect : ~m? +# 1765| mu1765_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1765_1 +# 1766| r1766_1(glval) = VariableAddress[x582] : +# 1766| r1766_2(glval) = FunctionAddress[~String] : +# 1766| v1766_3(void) = Call[~String] : func:r1766_2, this:r1766_1 +# 1766| mu1766_4(unknown) = ^CallSideEffect : ~m? +# 1766| v1766_5(void) = ^IndirectReadSideEffect[-1] : &:r1766_1, ~m? +# 1766| mu1766_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1766_1 +# 1766| r1766_7(bool) = Constant[0] : +# 1766| v1766_8(void) = ConditionalBranch : r1766_7 +#-----| False -> Block 583 +#-----| True -> Block 1026 + +# 1768| Block 583 +# 1768| r1768_1(glval) = VariableAddress[x583] : +# 1768| mu1768_2(String) = Uninitialized[x583] : &:r1768_1 +# 1768| r1768_3(glval) = FunctionAddress[String] : +# 1768| v1768_4(void) = Call[String] : func:r1768_3, this:r1768_1 +# 1768| mu1768_5(unknown) = ^CallSideEffect : ~m? +# 1768| mu1768_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1768_1 +# 1769| r1769_1(glval) = VariableAddress[x583] : +# 1769| r1769_2(glval) = FunctionAddress[~String] : +# 1769| v1769_3(void) = Call[~String] : func:r1769_2, this:r1769_1 +# 1769| mu1769_4(unknown) = ^CallSideEffect : ~m? +# 1769| v1769_5(void) = ^IndirectReadSideEffect[-1] : &:r1769_1, ~m? +# 1769| mu1769_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1769_1 +# 1769| r1769_7(bool) = Constant[0] : +# 1769| v1769_8(void) = ConditionalBranch : r1769_7 +#-----| False -> Block 584 +#-----| True -> Block 1026 + +# 1771| Block 584 +# 1771| r1771_1(glval) = VariableAddress[x584] : +# 1771| mu1771_2(String) = Uninitialized[x584] : &:r1771_1 +# 1771| r1771_3(glval) = FunctionAddress[String] : +# 1771| v1771_4(void) = Call[String] : func:r1771_3, this:r1771_1 +# 1771| mu1771_5(unknown) = ^CallSideEffect : ~m? +# 1771| mu1771_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1771_1 +# 1772| r1772_1(glval) = VariableAddress[x584] : +# 1772| r1772_2(glval) = FunctionAddress[~String] : +# 1772| v1772_3(void) = Call[~String] : func:r1772_2, this:r1772_1 +# 1772| mu1772_4(unknown) = ^CallSideEffect : ~m? +# 1772| v1772_5(void) = ^IndirectReadSideEffect[-1] : &:r1772_1, ~m? +# 1772| mu1772_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1772_1 +# 1772| r1772_7(bool) = Constant[0] : +# 1772| v1772_8(void) = ConditionalBranch : r1772_7 +#-----| False -> Block 585 +#-----| True -> Block 1026 + +# 1774| Block 585 +# 1774| r1774_1(glval) = VariableAddress[x585] : +# 1774| mu1774_2(String) = Uninitialized[x585] : &:r1774_1 +# 1774| r1774_3(glval) = FunctionAddress[String] : +# 1774| v1774_4(void) = Call[String] : func:r1774_3, this:r1774_1 +# 1774| mu1774_5(unknown) = ^CallSideEffect : ~m? +# 1774| mu1774_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1774_1 +# 1775| r1775_1(glval) = VariableAddress[x585] : +# 1775| r1775_2(glval) = FunctionAddress[~String] : +# 1775| v1775_3(void) = Call[~String] : func:r1775_2, this:r1775_1 +# 1775| mu1775_4(unknown) = ^CallSideEffect : ~m? +# 1775| v1775_5(void) = ^IndirectReadSideEffect[-1] : &:r1775_1, ~m? +# 1775| mu1775_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1775_1 +# 1775| r1775_7(bool) = Constant[0] : +# 1775| v1775_8(void) = ConditionalBranch : r1775_7 +#-----| False -> Block 586 +#-----| True -> Block 1026 + +# 1777| Block 586 +# 1777| r1777_1(glval) = VariableAddress[x586] : +# 1777| mu1777_2(String) = Uninitialized[x586] : &:r1777_1 +# 1777| r1777_3(glval) = FunctionAddress[String] : +# 1777| v1777_4(void) = Call[String] : func:r1777_3, this:r1777_1 +# 1777| mu1777_5(unknown) = ^CallSideEffect : ~m? +# 1777| mu1777_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1777_1 +# 1778| r1778_1(glval) = VariableAddress[x586] : +# 1778| r1778_2(glval) = FunctionAddress[~String] : +# 1778| v1778_3(void) = Call[~String] : func:r1778_2, this:r1778_1 +# 1778| mu1778_4(unknown) = ^CallSideEffect : ~m? +# 1778| v1778_5(void) = ^IndirectReadSideEffect[-1] : &:r1778_1, ~m? +# 1778| mu1778_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1778_1 +# 1778| r1778_7(bool) = Constant[0] : +# 1778| v1778_8(void) = ConditionalBranch : r1778_7 +#-----| False -> Block 587 +#-----| True -> Block 1026 + +# 1780| Block 587 +# 1780| r1780_1(glval) = VariableAddress[x587] : +# 1780| mu1780_2(String) = Uninitialized[x587] : &:r1780_1 +# 1780| r1780_3(glval) = FunctionAddress[String] : +# 1780| v1780_4(void) = Call[String] : func:r1780_3, this:r1780_1 +# 1780| mu1780_5(unknown) = ^CallSideEffect : ~m? +# 1780| mu1780_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1780_1 +# 1781| r1781_1(glval) = VariableAddress[x587] : +# 1781| r1781_2(glval) = FunctionAddress[~String] : +# 1781| v1781_3(void) = Call[~String] : func:r1781_2, this:r1781_1 +# 1781| mu1781_4(unknown) = ^CallSideEffect : ~m? +# 1781| v1781_5(void) = ^IndirectReadSideEffect[-1] : &:r1781_1, ~m? +# 1781| mu1781_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1781_1 +# 1781| r1781_7(bool) = Constant[0] : +# 1781| v1781_8(void) = ConditionalBranch : r1781_7 +#-----| False -> Block 588 +#-----| True -> Block 1026 + +# 1783| Block 588 +# 1783| r1783_1(glval) = VariableAddress[x588] : +# 1783| mu1783_2(String) = Uninitialized[x588] : &:r1783_1 +# 1783| r1783_3(glval) = FunctionAddress[String] : +# 1783| v1783_4(void) = Call[String] : func:r1783_3, this:r1783_1 +# 1783| mu1783_5(unknown) = ^CallSideEffect : ~m? +# 1783| mu1783_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1783_1 +# 1784| r1784_1(glval) = VariableAddress[x588] : +# 1784| r1784_2(glval) = FunctionAddress[~String] : +# 1784| v1784_3(void) = Call[~String] : func:r1784_2, this:r1784_1 +# 1784| mu1784_4(unknown) = ^CallSideEffect : ~m? +# 1784| v1784_5(void) = ^IndirectReadSideEffect[-1] : &:r1784_1, ~m? +# 1784| mu1784_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1784_1 +# 1784| r1784_7(bool) = Constant[0] : +# 1784| v1784_8(void) = ConditionalBranch : r1784_7 +#-----| False -> Block 589 +#-----| True -> Block 1026 + +# 1786| Block 589 +# 1786| r1786_1(glval) = VariableAddress[x589] : +# 1786| mu1786_2(String) = Uninitialized[x589] : &:r1786_1 +# 1786| r1786_3(glval) = FunctionAddress[String] : +# 1786| v1786_4(void) = Call[String] : func:r1786_3, this:r1786_1 +# 1786| mu1786_5(unknown) = ^CallSideEffect : ~m? +# 1786| mu1786_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1786_1 +# 1787| r1787_1(glval) = VariableAddress[x589] : +# 1787| r1787_2(glval) = FunctionAddress[~String] : +# 1787| v1787_3(void) = Call[~String] : func:r1787_2, this:r1787_1 +# 1787| mu1787_4(unknown) = ^CallSideEffect : ~m? +# 1787| v1787_5(void) = ^IndirectReadSideEffect[-1] : &:r1787_1, ~m? +# 1787| mu1787_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1787_1 +# 1787| r1787_7(bool) = Constant[0] : +# 1787| v1787_8(void) = ConditionalBranch : r1787_7 +#-----| False -> Block 590 +#-----| True -> Block 1026 + +# 1789| Block 590 +# 1789| r1789_1(glval) = VariableAddress[x590] : +# 1789| mu1789_2(String) = Uninitialized[x590] : &:r1789_1 +# 1789| r1789_3(glval) = FunctionAddress[String] : +# 1789| v1789_4(void) = Call[String] : func:r1789_3, this:r1789_1 +# 1789| mu1789_5(unknown) = ^CallSideEffect : ~m? +# 1789| mu1789_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1789_1 +# 1790| r1790_1(glval) = VariableAddress[x590] : +# 1790| r1790_2(glval) = FunctionAddress[~String] : +# 1790| v1790_3(void) = Call[~String] : func:r1790_2, this:r1790_1 +# 1790| mu1790_4(unknown) = ^CallSideEffect : ~m? +# 1790| v1790_5(void) = ^IndirectReadSideEffect[-1] : &:r1790_1, ~m? +# 1790| mu1790_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1790_1 +# 1790| r1790_7(bool) = Constant[0] : +# 1790| v1790_8(void) = ConditionalBranch : r1790_7 +#-----| False -> Block 591 +#-----| True -> Block 1026 + +# 1792| Block 591 +# 1792| r1792_1(glval) = VariableAddress[x591] : +# 1792| mu1792_2(String) = Uninitialized[x591] : &:r1792_1 +# 1792| r1792_3(glval) = FunctionAddress[String] : +# 1792| v1792_4(void) = Call[String] : func:r1792_3, this:r1792_1 +# 1792| mu1792_5(unknown) = ^CallSideEffect : ~m? +# 1792| mu1792_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1792_1 +# 1793| r1793_1(glval) = VariableAddress[x591] : +# 1793| r1793_2(glval) = FunctionAddress[~String] : +# 1793| v1793_3(void) = Call[~String] : func:r1793_2, this:r1793_1 +# 1793| mu1793_4(unknown) = ^CallSideEffect : ~m? +# 1793| v1793_5(void) = ^IndirectReadSideEffect[-1] : &:r1793_1, ~m? +# 1793| mu1793_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1793_1 +# 1793| r1793_7(bool) = Constant[0] : +# 1793| v1793_8(void) = ConditionalBranch : r1793_7 +#-----| False -> Block 592 +#-----| True -> Block 1026 + +# 1795| Block 592 +# 1795| r1795_1(glval) = VariableAddress[x592] : +# 1795| mu1795_2(String) = Uninitialized[x592] : &:r1795_1 +# 1795| r1795_3(glval) = FunctionAddress[String] : +# 1795| v1795_4(void) = Call[String] : func:r1795_3, this:r1795_1 +# 1795| mu1795_5(unknown) = ^CallSideEffect : ~m? +# 1795| mu1795_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1795_1 +# 1796| r1796_1(glval) = VariableAddress[x592] : +# 1796| r1796_2(glval) = FunctionAddress[~String] : +# 1796| v1796_3(void) = Call[~String] : func:r1796_2, this:r1796_1 +# 1796| mu1796_4(unknown) = ^CallSideEffect : ~m? +# 1796| v1796_5(void) = ^IndirectReadSideEffect[-1] : &:r1796_1, ~m? +# 1796| mu1796_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1796_1 +# 1796| r1796_7(bool) = Constant[0] : +# 1796| v1796_8(void) = ConditionalBranch : r1796_7 +#-----| False -> Block 593 +#-----| True -> Block 1026 + +# 1798| Block 593 +# 1798| r1798_1(glval) = VariableAddress[x593] : +# 1798| mu1798_2(String) = Uninitialized[x593] : &:r1798_1 +# 1798| r1798_3(glval) = FunctionAddress[String] : +# 1798| v1798_4(void) = Call[String] : func:r1798_3, this:r1798_1 +# 1798| mu1798_5(unknown) = ^CallSideEffect : ~m? +# 1798| mu1798_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1798_1 +# 1799| r1799_1(glval) = VariableAddress[x593] : +# 1799| r1799_2(glval) = FunctionAddress[~String] : +# 1799| v1799_3(void) = Call[~String] : func:r1799_2, this:r1799_1 +# 1799| mu1799_4(unknown) = ^CallSideEffect : ~m? +# 1799| v1799_5(void) = ^IndirectReadSideEffect[-1] : &:r1799_1, ~m? +# 1799| mu1799_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1799_1 +# 1799| r1799_7(bool) = Constant[0] : +# 1799| v1799_8(void) = ConditionalBranch : r1799_7 +#-----| False -> Block 594 +#-----| True -> Block 1026 + +# 1801| Block 594 +# 1801| r1801_1(glval) = VariableAddress[x594] : +# 1801| mu1801_2(String) = Uninitialized[x594] : &:r1801_1 +# 1801| r1801_3(glval) = FunctionAddress[String] : +# 1801| v1801_4(void) = Call[String] : func:r1801_3, this:r1801_1 +# 1801| mu1801_5(unknown) = ^CallSideEffect : ~m? +# 1801| mu1801_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1801_1 +# 1802| r1802_1(glval) = VariableAddress[x594] : +# 1802| r1802_2(glval) = FunctionAddress[~String] : +# 1802| v1802_3(void) = Call[~String] : func:r1802_2, this:r1802_1 +# 1802| mu1802_4(unknown) = ^CallSideEffect : ~m? +# 1802| v1802_5(void) = ^IndirectReadSideEffect[-1] : &:r1802_1, ~m? +# 1802| mu1802_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 +# 1802| r1802_7(bool) = Constant[0] : +# 1802| v1802_8(void) = ConditionalBranch : r1802_7 +#-----| False -> Block 595 +#-----| True -> Block 1026 + +# 1804| Block 595 +# 1804| r1804_1(glval) = VariableAddress[x595] : +# 1804| mu1804_2(String) = Uninitialized[x595] : &:r1804_1 +# 1804| r1804_3(glval) = FunctionAddress[String] : +# 1804| v1804_4(void) = Call[String] : func:r1804_3, this:r1804_1 +# 1804| mu1804_5(unknown) = ^CallSideEffect : ~m? +# 1804| mu1804_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1804_1 +# 1805| r1805_1(glval) = VariableAddress[x595] : +# 1805| r1805_2(glval) = FunctionAddress[~String] : +# 1805| v1805_3(void) = Call[~String] : func:r1805_2, this:r1805_1 +# 1805| mu1805_4(unknown) = ^CallSideEffect : ~m? +# 1805| v1805_5(void) = ^IndirectReadSideEffect[-1] : &:r1805_1, ~m? +# 1805| mu1805_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1805_1 +# 1805| r1805_7(bool) = Constant[0] : +# 1805| v1805_8(void) = ConditionalBranch : r1805_7 +#-----| False -> Block 596 +#-----| True -> Block 1026 + +# 1807| Block 596 +# 1807| r1807_1(glval) = VariableAddress[x596] : +# 1807| mu1807_2(String) = Uninitialized[x596] : &:r1807_1 +# 1807| r1807_3(glval) = FunctionAddress[String] : +# 1807| v1807_4(void) = Call[String] : func:r1807_3, this:r1807_1 +# 1807| mu1807_5(unknown) = ^CallSideEffect : ~m? +# 1807| mu1807_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1807_1 +# 1808| r1808_1(glval) = VariableAddress[x596] : +# 1808| r1808_2(glval) = FunctionAddress[~String] : +# 1808| v1808_3(void) = Call[~String] : func:r1808_2, this:r1808_1 +# 1808| mu1808_4(unknown) = ^CallSideEffect : ~m? +# 1808| v1808_5(void) = ^IndirectReadSideEffect[-1] : &:r1808_1, ~m? +# 1808| mu1808_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1808_1 +# 1808| r1808_7(bool) = Constant[0] : +# 1808| v1808_8(void) = ConditionalBranch : r1808_7 +#-----| False -> Block 597 +#-----| True -> Block 1026 + +# 1810| Block 597 +# 1810| r1810_1(glval) = VariableAddress[x597] : +# 1810| mu1810_2(String) = Uninitialized[x597] : &:r1810_1 +# 1810| r1810_3(glval) = FunctionAddress[String] : +# 1810| v1810_4(void) = Call[String] : func:r1810_3, this:r1810_1 +# 1810| mu1810_5(unknown) = ^CallSideEffect : ~m? +# 1810| mu1810_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1810_1 +# 1811| r1811_1(glval) = VariableAddress[x597] : +# 1811| r1811_2(glval) = FunctionAddress[~String] : +# 1811| v1811_3(void) = Call[~String] : func:r1811_2, this:r1811_1 +# 1811| mu1811_4(unknown) = ^CallSideEffect : ~m? +# 1811| v1811_5(void) = ^IndirectReadSideEffect[-1] : &:r1811_1, ~m? +# 1811| mu1811_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1811_1 +# 1811| r1811_7(bool) = Constant[0] : +# 1811| v1811_8(void) = ConditionalBranch : r1811_7 +#-----| False -> Block 598 +#-----| True -> Block 1026 + +# 1813| Block 598 +# 1813| r1813_1(glval) = VariableAddress[x598] : +# 1813| mu1813_2(String) = Uninitialized[x598] : &:r1813_1 +# 1813| r1813_3(glval) = FunctionAddress[String] : +# 1813| v1813_4(void) = Call[String] : func:r1813_3, this:r1813_1 +# 1813| mu1813_5(unknown) = ^CallSideEffect : ~m? +# 1813| mu1813_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1813_1 +# 1814| r1814_1(glval) = VariableAddress[x598] : +# 1814| r1814_2(glval) = FunctionAddress[~String] : +# 1814| v1814_3(void) = Call[~String] : func:r1814_2, this:r1814_1 +# 1814| mu1814_4(unknown) = ^CallSideEffect : ~m? +# 1814| v1814_5(void) = ^IndirectReadSideEffect[-1] : &:r1814_1, ~m? +# 1814| mu1814_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1814_1 +# 1814| r1814_7(bool) = Constant[0] : +# 1814| v1814_8(void) = ConditionalBranch : r1814_7 +#-----| False -> Block 599 +#-----| True -> Block 1026 + +# 1816| Block 599 +# 1816| r1816_1(glval) = VariableAddress[x599] : +# 1816| mu1816_2(String) = Uninitialized[x599] : &:r1816_1 +# 1816| r1816_3(glval) = FunctionAddress[String] : +# 1816| v1816_4(void) = Call[String] : func:r1816_3, this:r1816_1 +# 1816| mu1816_5(unknown) = ^CallSideEffect : ~m? +# 1816| mu1816_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1816_1 +# 1817| r1817_1(glval) = VariableAddress[x599] : +# 1817| r1817_2(glval) = FunctionAddress[~String] : +# 1817| v1817_3(void) = Call[~String] : func:r1817_2, this:r1817_1 +# 1817| mu1817_4(unknown) = ^CallSideEffect : ~m? +# 1817| v1817_5(void) = ^IndirectReadSideEffect[-1] : &:r1817_1, ~m? +# 1817| mu1817_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1817_1 +# 1817| r1817_7(bool) = Constant[0] : +# 1817| v1817_8(void) = ConditionalBranch : r1817_7 +#-----| False -> Block 600 +#-----| True -> Block 1026 + +# 1819| Block 600 +# 1819| r1819_1(glval) = VariableAddress[x600] : +# 1819| mu1819_2(String) = Uninitialized[x600] : &:r1819_1 +# 1819| r1819_3(glval) = FunctionAddress[String] : +# 1819| v1819_4(void) = Call[String] : func:r1819_3, this:r1819_1 +# 1819| mu1819_5(unknown) = ^CallSideEffect : ~m? +# 1819| mu1819_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1819_1 +# 1820| r1820_1(glval) = VariableAddress[x600] : +# 1820| r1820_2(glval) = FunctionAddress[~String] : +# 1820| v1820_3(void) = Call[~String] : func:r1820_2, this:r1820_1 +# 1820| mu1820_4(unknown) = ^CallSideEffect : ~m? +# 1820| v1820_5(void) = ^IndirectReadSideEffect[-1] : &:r1820_1, ~m? +# 1820| mu1820_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1820_1 +# 1820| r1820_7(bool) = Constant[0] : +# 1820| v1820_8(void) = ConditionalBranch : r1820_7 +#-----| False -> Block 601 +#-----| True -> Block 1026 + +# 1822| Block 601 +# 1822| r1822_1(glval) = VariableAddress[x601] : +# 1822| mu1822_2(String) = Uninitialized[x601] : &:r1822_1 +# 1822| r1822_3(glval) = FunctionAddress[String] : +# 1822| v1822_4(void) = Call[String] : func:r1822_3, this:r1822_1 +# 1822| mu1822_5(unknown) = ^CallSideEffect : ~m? +# 1822| mu1822_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1822_1 +# 1823| r1823_1(glval) = VariableAddress[x601] : +# 1823| r1823_2(glval) = FunctionAddress[~String] : +# 1823| v1823_3(void) = Call[~String] : func:r1823_2, this:r1823_1 +# 1823| mu1823_4(unknown) = ^CallSideEffect : ~m? +# 1823| v1823_5(void) = ^IndirectReadSideEffect[-1] : &:r1823_1, ~m? +# 1823| mu1823_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1823_1 +# 1823| r1823_7(bool) = Constant[0] : +# 1823| v1823_8(void) = ConditionalBranch : r1823_7 +#-----| False -> Block 602 +#-----| True -> Block 1026 + +# 1825| Block 602 +# 1825| r1825_1(glval) = VariableAddress[x602] : +# 1825| mu1825_2(String) = Uninitialized[x602] : &:r1825_1 +# 1825| r1825_3(glval) = FunctionAddress[String] : +# 1825| v1825_4(void) = Call[String] : func:r1825_3, this:r1825_1 +# 1825| mu1825_5(unknown) = ^CallSideEffect : ~m? +# 1825| mu1825_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1825_1 +# 1826| r1826_1(glval) = VariableAddress[x602] : +# 1826| r1826_2(glval) = FunctionAddress[~String] : +# 1826| v1826_3(void) = Call[~String] : func:r1826_2, this:r1826_1 +# 1826| mu1826_4(unknown) = ^CallSideEffect : ~m? +# 1826| v1826_5(void) = ^IndirectReadSideEffect[-1] : &:r1826_1, ~m? +# 1826| mu1826_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1826_1 +# 1826| r1826_7(bool) = Constant[0] : +# 1826| v1826_8(void) = ConditionalBranch : r1826_7 +#-----| False -> Block 603 +#-----| True -> Block 1026 + +# 1828| Block 603 +# 1828| r1828_1(glval) = VariableAddress[x603] : +# 1828| mu1828_2(String) = Uninitialized[x603] : &:r1828_1 +# 1828| r1828_3(glval) = FunctionAddress[String] : +# 1828| v1828_4(void) = Call[String] : func:r1828_3, this:r1828_1 +# 1828| mu1828_5(unknown) = ^CallSideEffect : ~m? +# 1828| mu1828_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1828_1 +# 1829| r1829_1(glval) = VariableAddress[x603] : +# 1829| r1829_2(glval) = FunctionAddress[~String] : +# 1829| v1829_3(void) = Call[~String] : func:r1829_2, this:r1829_1 +# 1829| mu1829_4(unknown) = ^CallSideEffect : ~m? +# 1829| v1829_5(void) = ^IndirectReadSideEffect[-1] : &:r1829_1, ~m? +# 1829| mu1829_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1829_1 +# 1829| r1829_7(bool) = Constant[0] : +# 1829| v1829_8(void) = ConditionalBranch : r1829_7 +#-----| False -> Block 604 +#-----| True -> Block 1026 + +# 1831| Block 604 +# 1831| r1831_1(glval) = VariableAddress[x604] : +# 1831| mu1831_2(String) = Uninitialized[x604] : &:r1831_1 +# 1831| r1831_3(glval) = FunctionAddress[String] : +# 1831| v1831_4(void) = Call[String] : func:r1831_3, this:r1831_1 +# 1831| mu1831_5(unknown) = ^CallSideEffect : ~m? +# 1831| mu1831_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1831_1 +# 1832| r1832_1(glval) = VariableAddress[x604] : +# 1832| r1832_2(glval) = FunctionAddress[~String] : +# 1832| v1832_3(void) = Call[~String] : func:r1832_2, this:r1832_1 +# 1832| mu1832_4(unknown) = ^CallSideEffect : ~m? +# 1832| v1832_5(void) = ^IndirectReadSideEffect[-1] : &:r1832_1, ~m? +# 1832| mu1832_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1832_1 +# 1832| r1832_7(bool) = Constant[0] : +# 1832| v1832_8(void) = ConditionalBranch : r1832_7 +#-----| False -> Block 605 +#-----| True -> Block 1026 + +# 1834| Block 605 +# 1834| r1834_1(glval) = VariableAddress[x605] : +# 1834| mu1834_2(String) = Uninitialized[x605] : &:r1834_1 +# 1834| r1834_3(glval) = FunctionAddress[String] : +# 1834| v1834_4(void) = Call[String] : func:r1834_3, this:r1834_1 +# 1834| mu1834_5(unknown) = ^CallSideEffect : ~m? +# 1834| mu1834_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1834_1 +# 1835| r1835_1(glval) = VariableAddress[x605] : +# 1835| r1835_2(glval) = FunctionAddress[~String] : +# 1835| v1835_3(void) = Call[~String] : func:r1835_2, this:r1835_1 +# 1835| mu1835_4(unknown) = ^CallSideEffect : ~m? +# 1835| v1835_5(void) = ^IndirectReadSideEffect[-1] : &:r1835_1, ~m? +# 1835| mu1835_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1835_1 +# 1835| r1835_7(bool) = Constant[0] : +# 1835| v1835_8(void) = ConditionalBranch : r1835_7 +#-----| False -> Block 606 +#-----| True -> Block 1026 + +# 1837| Block 606 +# 1837| r1837_1(glval) = VariableAddress[x606] : +# 1837| mu1837_2(String) = Uninitialized[x606] : &:r1837_1 +# 1837| r1837_3(glval) = FunctionAddress[String] : +# 1837| v1837_4(void) = Call[String] : func:r1837_3, this:r1837_1 +# 1837| mu1837_5(unknown) = ^CallSideEffect : ~m? +# 1837| mu1837_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1837_1 +# 1838| r1838_1(glval) = VariableAddress[x606] : +# 1838| r1838_2(glval) = FunctionAddress[~String] : +# 1838| v1838_3(void) = Call[~String] : func:r1838_2, this:r1838_1 +# 1838| mu1838_4(unknown) = ^CallSideEffect : ~m? +# 1838| v1838_5(void) = ^IndirectReadSideEffect[-1] : &:r1838_1, ~m? +# 1838| mu1838_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1838_1 +# 1838| r1838_7(bool) = Constant[0] : +# 1838| v1838_8(void) = ConditionalBranch : r1838_7 +#-----| False -> Block 607 +#-----| True -> Block 1026 + +# 1840| Block 607 +# 1840| r1840_1(glval) = VariableAddress[x607] : +# 1840| mu1840_2(String) = Uninitialized[x607] : &:r1840_1 +# 1840| r1840_3(glval) = FunctionAddress[String] : +# 1840| v1840_4(void) = Call[String] : func:r1840_3, this:r1840_1 +# 1840| mu1840_5(unknown) = ^CallSideEffect : ~m? +# 1840| mu1840_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1840_1 +# 1841| r1841_1(glval) = VariableAddress[x607] : +# 1841| r1841_2(glval) = FunctionAddress[~String] : +# 1841| v1841_3(void) = Call[~String] : func:r1841_2, this:r1841_1 +# 1841| mu1841_4(unknown) = ^CallSideEffect : ~m? +# 1841| v1841_5(void) = ^IndirectReadSideEffect[-1] : &:r1841_1, ~m? +# 1841| mu1841_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1841_1 +# 1841| r1841_7(bool) = Constant[0] : +# 1841| v1841_8(void) = ConditionalBranch : r1841_7 +#-----| False -> Block 608 +#-----| True -> Block 1026 + +# 1843| Block 608 +# 1843| r1843_1(glval) = VariableAddress[x608] : +# 1843| mu1843_2(String) = Uninitialized[x608] : &:r1843_1 +# 1843| r1843_3(glval) = FunctionAddress[String] : +# 1843| v1843_4(void) = Call[String] : func:r1843_3, this:r1843_1 +# 1843| mu1843_5(unknown) = ^CallSideEffect : ~m? +# 1843| mu1843_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1843_1 +# 1844| r1844_1(glval) = VariableAddress[x608] : +# 1844| r1844_2(glval) = FunctionAddress[~String] : +# 1844| v1844_3(void) = Call[~String] : func:r1844_2, this:r1844_1 +# 1844| mu1844_4(unknown) = ^CallSideEffect : ~m? +# 1844| v1844_5(void) = ^IndirectReadSideEffect[-1] : &:r1844_1, ~m? +# 1844| mu1844_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1844_1 +# 1844| r1844_7(bool) = Constant[0] : +# 1844| v1844_8(void) = ConditionalBranch : r1844_7 +#-----| False -> Block 609 +#-----| True -> Block 1026 + +# 1846| Block 609 +# 1846| r1846_1(glval) = VariableAddress[x609] : +# 1846| mu1846_2(String) = Uninitialized[x609] : &:r1846_1 +# 1846| r1846_3(glval) = FunctionAddress[String] : +# 1846| v1846_4(void) = Call[String] : func:r1846_3, this:r1846_1 +# 1846| mu1846_5(unknown) = ^CallSideEffect : ~m? +# 1846| mu1846_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1846_1 +# 1847| r1847_1(glval) = VariableAddress[x609] : +# 1847| r1847_2(glval) = FunctionAddress[~String] : +# 1847| v1847_3(void) = Call[~String] : func:r1847_2, this:r1847_1 +# 1847| mu1847_4(unknown) = ^CallSideEffect : ~m? +# 1847| v1847_5(void) = ^IndirectReadSideEffect[-1] : &:r1847_1, ~m? +# 1847| mu1847_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1847_1 +# 1847| r1847_7(bool) = Constant[0] : +# 1847| v1847_8(void) = ConditionalBranch : r1847_7 +#-----| False -> Block 610 +#-----| True -> Block 1026 + +# 1849| Block 610 +# 1849| r1849_1(glval) = VariableAddress[x610] : +# 1849| mu1849_2(String) = Uninitialized[x610] : &:r1849_1 +# 1849| r1849_3(glval) = FunctionAddress[String] : +# 1849| v1849_4(void) = Call[String] : func:r1849_3, this:r1849_1 +# 1849| mu1849_5(unknown) = ^CallSideEffect : ~m? +# 1849| mu1849_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1849_1 +# 1850| r1850_1(glval) = VariableAddress[x610] : +# 1850| r1850_2(glval) = FunctionAddress[~String] : +# 1850| v1850_3(void) = Call[~String] : func:r1850_2, this:r1850_1 +# 1850| mu1850_4(unknown) = ^CallSideEffect : ~m? +# 1850| v1850_5(void) = ^IndirectReadSideEffect[-1] : &:r1850_1, ~m? +# 1850| mu1850_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1850_1 +# 1850| r1850_7(bool) = Constant[0] : +# 1850| v1850_8(void) = ConditionalBranch : r1850_7 +#-----| False -> Block 611 +#-----| True -> Block 1026 + +# 1852| Block 611 +# 1852| r1852_1(glval) = VariableAddress[x611] : +# 1852| mu1852_2(String) = Uninitialized[x611] : &:r1852_1 +# 1852| r1852_3(glval) = FunctionAddress[String] : +# 1852| v1852_4(void) = Call[String] : func:r1852_3, this:r1852_1 +# 1852| mu1852_5(unknown) = ^CallSideEffect : ~m? +# 1852| mu1852_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1852_1 +# 1853| r1853_1(glval) = VariableAddress[x611] : +# 1853| r1853_2(glval) = FunctionAddress[~String] : +# 1853| v1853_3(void) = Call[~String] : func:r1853_2, this:r1853_1 +# 1853| mu1853_4(unknown) = ^CallSideEffect : ~m? +# 1853| v1853_5(void) = ^IndirectReadSideEffect[-1] : &:r1853_1, ~m? +# 1853| mu1853_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1853_1 +# 1853| r1853_7(bool) = Constant[0] : +# 1853| v1853_8(void) = ConditionalBranch : r1853_7 +#-----| False -> Block 612 +#-----| True -> Block 1026 + +# 1855| Block 612 +# 1855| r1855_1(glval) = VariableAddress[x612] : +# 1855| mu1855_2(String) = Uninitialized[x612] : &:r1855_1 +# 1855| r1855_3(glval) = FunctionAddress[String] : +# 1855| v1855_4(void) = Call[String] : func:r1855_3, this:r1855_1 +# 1855| mu1855_5(unknown) = ^CallSideEffect : ~m? +# 1855| mu1855_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1855_1 +# 1856| r1856_1(glval) = VariableAddress[x612] : +# 1856| r1856_2(glval) = FunctionAddress[~String] : +# 1856| v1856_3(void) = Call[~String] : func:r1856_2, this:r1856_1 +# 1856| mu1856_4(unknown) = ^CallSideEffect : ~m? +# 1856| v1856_5(void) = ^IndirectReadSideEffect[-1] : &:r1856_1, ~m? +# 1856| mu1856_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1856_1 +# 1856| r1856_7(bool) = Constant[0] : +# 1856| v1856_8(void) = ConditionalBranch : r1856_7 +#-----| False -> Block 613 +#-----| True -> Block 1026 + +# 1858| Block 613 +# 1858| r1858_1(glval) = VariableAddress[x613] : +# 1858| mu1858_2(String) = Uninitialized[x613] : &:r1858_1 +# 1858| r1858_3(glval) = FunctionAddress[String] : +# 1858| v1858_4(void) = Call[String] : func:r1858_3, this:r1858_1 +# 1858| mu1858_5(unknown) = ^CallSideEffect : ~m? +# 1858| mu1858_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1858_1 +# 1859| r1859_1(glval) = VariableAddress[x613] : +# 1859| r1859_2(glval) = FunctionAddress[~String] : +# 1859| v1859_3(void) = Call[~String] : func:r1859_2, this:r1859_1 +# 1859| mu1859_4(unknown) = ^CallSideEffect : ~m? +# 1859| v1859_5(void) = ^IndirectReadSideEffect[-1] : &:r1859_1, ~m? +# 1859| mu1859_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1859_1 +# 1859| r1859_7(bool) = Constant[0] : +# 1859| v1859_8(void) = ConditionalBranch : r1859_7 +#-----| False -> Block 614 +#-----| True -> Block 1026 + +# 1861| Block 614 +# 1861| r1861_1(glval) = VariableAddress[x614] : +# 1861| mu1861_2(String) = Uninitialized[x614] : &:r1861_1 +# 1861| r1861_3(glval) = FunctionAddress[String] : +# 1861| v1861_4(void) = Call[String] : func:r1861_3, this:r1861_1 +# 1861| mu1861_5(unknown) = ^CallSideEffect : ~m? +# 1861| mu1861_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1861_1 +# 1862| r1862_1(glval) = VariableAddress[x614] : +# 1862| r1862_2(glval) = FunctionAddress[~String] : +# 1862| v1862_3(void) = Call[~String] : func:r1862_2, this:r1862_1 +# 1862| mu1862_4(unknown) = ^CallSideEffect : ~m? +# 1862| v1862_5(void) = ^IndirectReadSideEffect[-1] : &:r1862_1, ~m? +# 1862| mu1862_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1862_1 +# 1862| r1862_7(bool) = Constant[0] : +# 1862| v1862_8(void) = ConditionalBranch : r1862_7 +#-----| False -> Block 615 +#-----| True -> Block 1026 + +# 1864| Block 615 +# 1864| r1864_1(glval) = VariableAddress[x615] : +# 1864| mu1864_2(String) = Uninitialized[x615] : &:r1864_1 +# 1864| r1864_3(glval) = FunctionAddress[String] : +# 1864| v1864_4(void) = Call[String] : func:r1864_3, this:r1864_1 +# 1864| mu1864_5(unknown) = ^CallSideEffect : ~m? +# 1864| mu1864_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1864_1 +# 1865| r1865_1(glval) = VariableAddress[x615] : +# 1865| r1865_2(glval) = FunctionAddress[~String] : +# 1865| v1865_3(void) = Call[~String] : func:r1865_2, this:r1865_1 +# 1865| mu1865_4(unknown) = ^CallSideEffect : ~m? +# 1865| v1865_5(void) = ^IndirectReadSideEffect[-1] : &:r1865_1, ~m? +# 1865| mu1865_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1865_1 +# 1865| r1865_7(bool) = Constant[0] : +# 1865| v1865_8(void) = ConditionalBranch : r1865_7 +#-----| False -> Block 616 +#-----| True -> Block 1026 + +# 1867| Block 616 +# 1867| r1867_1(glval) = VariableAddress[x616] : +# 1867| mu1867_2(String) = Uninitialized[x616] : &:r1867_1 +# 1867| r1867_3(glval) = FunctionAddress[String] : +# 1867| v1867_4(void) = Call[String] : func:r1867_3, this:r1867_1 +# 1867| mu1867_5(unknown) = ^CallSideEffect : ~m? +# 1867| mu1867_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1867_1 +# 1868| r1868_1(glval) = VariableAddress[x616] : +# 1868| r1868_2(glval) = FunctionAddress[~String] : +# 1868| v1868_3(void) = Call[~String] : func:r1868_2, this:r1868_1 +# 1868| mu1868_4(unknown) = ^CallSideEffect : ~m? +# 1868| v1868_5(void) = ^IndirectReadSideEffect[-1] : &:r1868_1, ~m? +# 1868| mu1868_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1868_1 +# 1868| r1868_7(bool) = Constant[0] : +# 1868| v1868_8(void) = ConditionalBranch : r1868_7 +#-----| False -> Block 617 +#-----| True -> Block 1026 + +# 1870| Block 617 +# 1870| r1870_1(glval) = VariableAddress[x617] : +# 1870| mu1870_2(String) = Uninitialized[x617] : &:r1870_1 +# 1870| r1870_3(glval) = FunctionAddress[String] : +# 1870| v1870_4(void) = Call[String] : func:r1870_3, this:r1870_1 +# 1870| mu1870_5(unknown) = ^CallSideEffect : ~m? +# 1870| mu1870_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1870_1 +# 1871| r1871_1(glval) = VariableAddress[x617] : +# 1871| r1871_2(glval) = FunctionAddress[~String] : +# 1871| v1871_3(void) = Call[~String] : func:r1871_2, this:r1871_1 +# 1871| mu1871_4(unknown) = ^CallSideEffect : ~m? +# 1871| v1871_5(void) = ^IndirectReadSideEffect[-1] : &:r1871_1, ~m? +# 1871| mu1871_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1871_1 +# 1871| r1871_7(bool) = Constant[0] : +# 1871| v1871_8(void) = ConditionalBranch : r1871_7 +#-----| False -> Block 618 +#-----| True -> Block 1026 + +# 1873| Block 618 +# 1873| r1873_1(glval) = VariableAddress[x618] : +# 1873| mu1873_2(String) = Uninitialized[x618] : &:r1873_1 +# 1873| r1873_3(glval) = FunctionAddress[String] : +# 1873| v1873_4(void) = Call[String] : func:r1873_3, this:r1873_1 +# 1873| mu1873_5(unknown) = ^CallSideEffect : ~m? +# 1873| mu1873_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1873_1 +# 1874| r1874_1(glval) = VariableAddress[x618] : +# 1874| r1874_2(glval) = FunctionAddress[~String] : +# 1874| v1874_3(void) = Call[~String] : func:r1874_2, this:r1874_1 +# 1874| mu1874_4(unknown) = ^CallSideEffect : ~m? +# 1874| v1874_5(void) = ^IndirectReadSideEffect[-1] : &:r1874_1, ~m? +# 1874| mu1874_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1874_1 +# 1874| r1874_7(bool) = Constant[0] : +# 1874| v1874_8(void) = ConditionalBranch : r1874_7 +#-----| False -> Block 619 +#-----| True -> Block 1026 + +# 1876| Block 619 +# 1876| r1876_1(glval) = VariableAddress[x619] : +# 1876| mu1876_2(String) = Uninitialized[x619] : &:r1876_1 +# 1876| r1876_3(glval) = FunctionAddress[String] : +# 1876| v1876_4(void) = Call[String] : func:r1876_3, this:r1876_1 +# 1876| mu1876_5(unknown) = ^CallSideEffect : ~m? +# 1876| mu1876_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1876_1 +# 1877| r1877_1(glval) = VariableAddress[x619] : +# 1877| r1877_2(glval) = FunctionAddress[~String] : +# 1877| v1877_3(void) = Call[~String] : func:r1877_2, this:r1877_1 +# 1877| mu1877_4(unknown) = ^CallSideEffect : ~m? +# 1877| v1877_5(void) = ^IndirectReadSideEffect[-1] : &:r1877_1, ~m? +# 1877| mu1877_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1877_1 +# 1877| r1877_7(bool) = Constant[0] : +# 1877| v1877_8(void) = ConditionalBranch : r1877_7 +#-----| False -> Block 620 +#-----| True -> Block 1026 + +# 1879| Block 620 +# 1879| r1879_1(glval) = VariableAddress[x620] : +# 1879| mu1879_2(String) = Uninitialized[x620] : &:r1879_1 +# 1879| r1879_3(glval) = FunctionAddress[String] : +# 1879| v1879_4(void) = Call[String] : func:r1879_3, this:r1879_1 +# 1879| mu1879_5(unknown) = ^CallSideEffect : ~m? +# 1879| mu1879_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1879_1 +# 1880| r1880_1(glval) = VariableAddress[x620] : +# 1880| r1880_2(glval) = FunctionAddress[~String] : +# 1880| v1880_3(void) = Call[~String] : func:r1880_2, this:r1880_1 +# 1880| mu1880_4(unknown) = ^CallSideEffect : ~m? +# 1880| v1880_5(void) = ^IndirectReadSideEffect[-1] : &:r1880_1, ~m? +# 1880| mu1880_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1880_1 +# 1880| r1880_7(bool) = Constant[0] : +# 1880| v1880_8(void) = ConditionalBranch : r1880_7 +#-----| False -> Block 621 +#-----| True -> Block 1026 + +# 1882| Block 621 +# 1882| r1882_1(glval) = VariableAddress[x621] : +# 1882| mu1882_2(String) = Uninitialized[x621] : &:r1882_1 +# 1882| r1882_3(glval) = FunctionAddress[String] : +# 1882| v1882_4(void) = Call[String] : func:r1882_3, this:r1882_1 +# 1882| mu1882_5(unknown) = ^CallSideEffect : ~m? +# 1882| mu1882_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1882_1 +# 1883| r1883_1(glval) = VariableAddress[x621] : +# 1883| r1883_2(glval) = FunctionAddress[~String] : +# 1883| v1883_3(void) = Call[~String] : func:r1883_2, this:r1883_1 +# 1883| mu1883_4(unknown) = ^CallSideEffect : ~m? +# 1883| v1883_5(void) = ^IndirectReadSideEffect[-1] : &:r1883_1, ~m? +# 1883| mu1883_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1883_1 +# 1883| r1883_7(bool) = Constant[0] : +# 1883| v1883_8(void) = ConditionalBranch : r1883_7 +#-----| False -> Block 622 +#-----| True -> Block 1026 + +# 1885| Block 622 +# 1885| r1885_1(glval) = VariableAddress[x622] : +# 1885| mu1885_2(String) = Uninitialized[x622] : &:r1885_1 +# 1885| r1885_3(glval) = FunctionAddress[String] : +# 1885| v1885_4(void) = Call[String] : func:r1885_3, this:r1885_1 +# 1885| mu1885_5(unknown) = ^CallSideEffect : ~m? +# 1885| mu1885_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1885_1 +# 1886| r1886_1(glval) = VariableAddress[x622] : +# 1886| r1886_2(glval) = FunctionAddress[~String] : +# 1886| v1886_3(void) = Call[~String] : func:r1886_2, this:r1886_1 +# 1886| mu1886_4(unknown) = ^CallSideEffect : ~m? +# 1886| v1886_5(void) = ^IndirectReadSideEffect[-1] : &:r1886_1, ~m? +# 1886| mu1886_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1886_1 +# 1886| r1886_7(bool) = Constant[0] : +# 1886| v1886_8(void) = ConditionalBranch : r1886_7 +#-----| False -> Block 623 +#-----| True -> Block 1026 + +# 1888| Block 623 +# 1888| r1888_1(glval) = VariableAddress[x623] : +# 1888| mu1888_2(String) = Uninitialized[x623] : &:r1888_1 +# 1888| r1888_3(glval) = FunctionAddress[String] : +# 1888| v1888_4(void) = Call[String] : func:r1888_3, this:r1888_1 +# 1888| mu1888_5(unknown) = ^CallSideEffect : ~m? +# 1888| mu1888_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1888_1 +# 1889| r1889_1(glval) = VariableAddress[x623] : +# 1889| r1889_2(glval) = FunctionAddress[~String] : +# 1889| v1889_3(void) = Call[~String] : func:r1889_2, this:r1889_1 +# 1889| mu1889_4(unknown) = ^CallSideEffect : ~m? +# 1889| v1889_5(void) = ^IndirectReadSideEffect[-1] : &:r1889_1, ~m? +# 1889| mu1889_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1889_1 +# 1889| r1889_7(bool) = Constant[0] : +# 1889| v1889_8(void) = ConditionalBranch : r1889_7 +#-----| False -> Block 624 +#-----| True -> Block 1026 + +# 1891| Block 624 +# 1891| r1891_1(glval) = VariableAddress[x624] : +# 1891| mu1891_2(String) = Uninitialized[x624] : &:r1891_1 +# 1891| r1891_3(glval) = FunctionAddress[String] : +# 1891| v1891_4(void) = Call[String] : func:r1891_3, this:r1891_1 +# 1891| mu1891_5(unknown) = ^CallSideEffect : ~m? +# 1891| mu1891_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1891_1 +# 1892| r1892_1(glval) = VariableAddress[x624] : +# 1892| r1892_2(glval) = FunctionAddress[~String] : +# 1892| v1892_3(void) = Call[~String] : func:r1892_2, this:r1892_1 +# 1892| mu1892_4(unknown) = ^CallSideEffect : ~m? +# 1892| v1892_5(void) = ^IndirectReadSideEffect[-1] : &:r1892_1, ~m? +# 1892| mu1892_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1892_1 +# 1892| r1892_7(bool) = Constant[0] : +# 1892| v1892_8(void) = ConditionalBranch : r1892_7 +#-----| False -> Block 625 +#-----| True -> Block 1026 + +# 1894| Block 625 +# 1894| r1894_1(glval) = VariableAddress[x625] : +# 1894| mu1894_2(String) = Uninitialized[x625] : &:r1894_1 +# 1894| r1894_3(glval) = FunctionAddress[String] : +# 1894| v1894_4(void) = Call[String] : func:r1894_3, this:r1894_1 +# 1894| mu1894_5(unknown) = ^CallSideEffect : ~m? +# 1894| mu1894_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 +# 1895| r1895_1(glval) = VariableAddress[x625] : +# 1895| r1895_2(glval) = FunctionAddress[~String] : +# 1895| v1895_3(void) = Call[~String] : func:r1895_2, this:r1895_1 +# 1895| mu1895_4(unknown) = ^CallSideEffect : ~m? +# 1895| v1895_5(void) = ^IndirectReadSideEffect[-1] : &:r1895_1, ~m? +# 1895| mu1895_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1895_1 +# 1895| r1895_7(bool) = Constant[0] : +# 1895| v1895_8(void) = ConditionalBranch : r1895_7 +#-----| False -> Block 626 +#-----| True -> Block 1026 + +# 1897| Block 626 +# 1897| r1897_1(glval) = VariableAddress[x626] : +# 1897| mu1897_2(String) = Uninitialized[x626] : &:r1897_1 +# 1897| r1897_3(glval) = FunctionAddress[String] : +# 1897| v1897_4(void) = Call[String] : func:r1897_3, this:r1897_1 +# 1897| mu1897_5(unknown) = ^CallSideEffect : ~m? +# 1897| mu1897_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1897_1 +# 1898| r1898_1(glval) = VariableAddress[x626] : +# 1898| r1898_2(glval) = FunctionAddress[~String] : +# 1898| v1898_3(void) = Call[~String] : func:r1898_2, this:r1898_1 +# 1898| mu1898_4(unknown) = ^CallSideEffect : ~m? +# 1898| v1898_5(void) = ^IndirectReadSideEffect[-1] : &:r1898_1, ~m? +# 1898| mu1898_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1898_1 +# 1898| r1898_7(bool) = Constant[0] : +# 1898| v1898_8(void) = ConditionalBranch : r1898_7 +#-----| False -> Block 627 +#-----| True -> Block 1026 + +# 1900| Block 627 +# 1900| r1900_1(glval) = VariableAddress[x627] : +# 1900| mu1900_2(String) = Uninitialized[x627] : &:r1900_1 +# 1900| r1900_3(glval) = FunctionAddress[String] : +# 1900| v1900_4(void) = Call[String] : func:r1900_3, this:r1900_1 +# 1900| mu1900_5(unknown) = ^CallSideEffect : ~m? +# 1900| mu1900_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1900_1 +# 1901| r1901_1(glval) = VariableAddress[x627] : +# 1901| r1901_2(glval) = FunctionAddress[~String] : +# 1901| v1901_3(void) = Call[~String] : func:r1901_2, this:r1901_1 +# 1901| mu1901_4(unknown) = ^CallSideEffect : ~m? +# 1901| v1901_5(void) = ^IndirectReadSideEffect[-1] : &:r1901_1, ~m? +# 1901| mu1901_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1901_1 +# 1901| r1901_7(bool) = Constant[0] : +# 1901| v1901_8(void) = ConditionalBranch : r1901_7 +#-----| False -> Block 628 +#-----| True -> Block 1026 + +# 1903| Block 628 +# 1903| r1903_1(glval) = VariableAddress[x628] : +# 1903| mu1903_2(String) = Uninitialized[x628] : &:r1903_1 +# 1903| r1903_3(glval) = FunctionAddress[String] : +# 1903| v1903_4(void) = Call[String] : func:r1903_3, this:r1903_1 +# 1903| mu1903_5(unknown) = ^CallSideEffect : ~m? +# 1903| mu1903_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1903_1 +# 1904| r1904_1(glval) = VariableAddress[x628] : +# 1904| r1904_2(glval) = FunctionAddress[~String] : +# 1904| v1904_3(void) = Call[~String] : func:r1904_2, this:r1904_1 +# 1904| mu1904_4(unknown) = ^CallSideEffect : ~m? +# 1904| v1904_5(void) = ^IndirectReadSideEffect[-1] : &:r1904_1, ~m? +# 1904| mu1904_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1904_1 +# 1904| r1904_7(bool) = Constant[0] : +# 1904| v1904_8(void) = ConditionalBranch : r1904_7 +#-----| False -> Block 629 +#-----| True -> Block 1026 + +# 1906| Block 629 +# 1906| r1906_1(glval) = VariableAddress[x629] : +# 1906| mu1906_2(String) = Uninitialized[x629] : &:r1906_1 +# 1906| r1906_3(glval) = FunctionAddress[String] : +# 1906| v1906_4(void) = Call[String] : func:r1906_3, this:r1906_1 +# 1906| mu1906_5(unknown) = ^CallSideEffect : ~m? +# 1906| mu1906_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1906_1 +# 1907| r1907_1(glval) = VariableAddress[x629] : +# 1907| r1907_2(glval) = FunctionAddress[~String] : +# 1907| v1907_3(void) = Call[~String] : func:r1907_2, this:r1907_1 +# 1907| mu1907_4(unknown) = ^CallSideEffect : ~m? +# 1907| v1907_5(void) = ^IndirectReadSideEffect[-1] : &:r1907_1, ~m? +# 1907| mu1907_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1907_1 +# 1907| r1907_7(bool) = Constant[0] : +# 1907| v1907_8(void) = ConditionalBranch : r1907_7 +#-----| False -> Block 630 +#-----| True -> Block 1026 + +# 1909| Block 630 +# 1909| r1909_1(glval) = VariableAddress[x630] : +# 1909| mu1909_2(String) = Uninitialized[x630] : &:r1909_1 +# 1909| r1909_3(glval) = FunctionAddress[String] : +# 1909| v1909_4(void) = Call[String] : func:r1909_3, this:r1909_1 +# 1909| mu1909_5(unknown) = ^CallSideEffect : ~m? +# 1909| mu1909_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1909_1 +# 1910| r1910_1(glval) = VariableAddress[x630] : +# 1910| r1910_2(glval) = FunctionAddress[~String] : +# 1910| v1910_3(void) = Call[~String] : func:r1910_2, this:r1910_1 +# 1910| mu1910_4(unknown) = ^CallSideEffect : ~m? +# 1910| v1910_5(void) = ^IndirectReadSideEffect[-1] : &:r1910_1, ~m? +# 1910| mu1910_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1910_1 +# 1910| r1910_7(bool) = Constant[0] : +# 1910| v1910_8(void) = ConditionalBranch : r1910_7 +#-----| False -> Block 631 +#-----| True -> Block 1026 + +# 1912| Block 631 +# 1912| r1912_1(glval) = VariableAddress[x631] : +# 1912| mu1912_2(String) = Uninitialized[x631] : &:r1912_1 +# 1912| r1912_3(glval) = FunctionAddress[String] : +# 1912| v1912_4(void) = Call[String] : func:r1912_3, this:r1912_1 +# 1912| mu1912_5(unknown) = ^CallSideEffect : ~m? +# 1912| mu1912_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1912_1 +# 1913| r1913_1(glval) = VariableAddress[x631] : +# 1913| r1913_2(glval) = FunctionAddress[~String] : +# 1913| v1913_3(void) = Call[~String] : func:r1913_2, this:r1913_1 +# 1913| mu1913_4(unknown) = ^CallSideEffect : ~m? +# 1913| v1913_5(void) = ^IndirectReadSideEffect[-1] : &:r1913_1, ~m? +# 1913| mu1913_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1913_1 +# 1913| r1913_7(bool) = Constant[0] : +# 1913| v1913_8(void) = ConditionalBranch : r1913_7 +#-----| False -> Block 632 +#-----| True -> Block 1026 + +# 1915| Block 632 +# 1915| r1915_1(glval) = VariableAddress[x632] : +# 1915| mu1915_2(String) = Uninitialized[x632] : &:r1915_1 +# 1915| r1915_3(glval) = FunctionAddress[String] : +# 1915| v1915_4(void) = Call[String] : func:r1915_3, this:r1915_1 +# 1915| mu1915_5(unknown) = ^CallSideEffect : ~m? +# 1915| mu1915_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1915_1 +# 1916| r1916_1(glval) = VariableAddress[x632] : +# 1916| r1916_2(glval) = FunctionAddress[~String] : +# 1916| v1916_3(void) = Call[~String] : func:r1916_2, this:r1916_1 +# 1916| mu1916_4(unknown) = ^CallSideEffect : ~m? +# 1916| v1916_5(void) = ^IndirectReadSideEffect[-1] : &:r1916_1, ~m? +# 1916| mu1916_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1916_1 +# 1916| r1916_7(bool) = Constant[0] : +# 1916| v1916_8(void) = ConditionalBranch : r1916_7 +#-----| False -> Block 633 +#-----| True -> Block 1026 + +# 1918| Block 633 +# 1918| r1918_1(glval) = VariableAddress[x633] : +# 1918| mu1918_2(String) = Uninitialized[x633] : &:r1918_1 +# 1918| r1918_3(glval) = FunctionAddress[String] : +# 1918| v1918_4(void) = Call[String] : func:r1918_3, this:r1918_1 +# 1918| mu1918_5(unknown) = ^CallSideEffect : ~m? +# 1918| mu1918_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1918_1 +# 1919| r1919_1(glval) = VariableAddress[x633] : +# 1919| r1919_2(glval) = FunctionAddress[~String] : +# 1919| v1919_3(void) = Call[~String] : func:r1919_2, this:r1919_1 +# 1919| mu1919_4(unknown) = ^CallSideEffect : ~m? +# 1919| v1919_5(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, ~m? +# 1919| mu1919_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 +# 1919| r1919_7(bool) = Constant[0] : +# 1919| v1919_8(void) = ConditionalBranch : r1919_7 +#-----| False -> Block 634 +#-----| True -> Block 1026 + +# 1921| Block 634 +# 1921| r1921_1(glval) = VariableAddress[x634] : +# 1921| mu1921_2(String) = Uninitialized[x634] : &:r1921_1 +# 1921| r1921_3(glval) = FunctionAddress[String] : +# 1921| v1921_4(void) = Call[String] : func:r1921_3, this:r1921_1 +# 1921| mu1921_5(unknown) = ^CallSideEffect : ~m? +# 1921| mu1921_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 +# 1922| r1922_1(glval) = VariableAddress[x634] : +# 1922| r1922_2(glval) = FunctionAddress[~String] : +# 1922| v1922_3(void) = Call[~String] : func:r1922_2, this:r1922_1 +# 1922| mu1922_4(unknown) = ^CallSideEffect : ~m? +# 1922| v1922_5(void) = ^IndirectReadSideEffect[-1] : &:r1922_1, ~m? +# 1922| mu1922_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1922_1 +# 1922| r1922_7(bool) = Constant[0] : +# 1922| v1922_8(void) = ConditionalBranch : r1922_7 +#-----| False -> Block 635 +#-----| True -> Block 1026 + +# 1924| Block 635 +# 1924| r1924_1(glval) = VariableAddress[x635] : +# 1924| mu1924_2(String) = Uninitialized[x635] : &:r1924_1 +# 1924| r1924_3(glval) = FunctionAddress[String] : +# 1924| v1924_4(void) = Call[String] : func:r1924_3, this:r1924_1 +# 1924| mu1924_5(unknown) = ^CallSideEffect : ~m? +# 1924| mu1924_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1924_1 +# 1925| r1925_1(glval) = VariableAddress[x635] : +# 1925| r1925_2(glval) = FunctionAddress[~String] : +# 1925| v1925_3(void) = Call[~String] : func:r1925_2, this:r1925_1 +# 1925| mu1925_4(unknown) = ^CallSideEffect : ~m? +# 1925| v1925_5(void) = ^IndirectReadSideEffect[-1] : &:r1925_1, ~m? +# 1925| mu1925_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1925_1 +# 1925| r1925_7(bool) = Constant[0] : +# 1925| v1925_8(void) = ConditionalBranch : r1925_7 +#-----| False -> Block 636 +#-----| True -> Block 1026 + +# 1927| Block 636 +# 1927| r1927_1(glval) = VariableAddress[x636] : +# 1927| mu1927_2(String) = Uninitialized[x636] : &:r1927_1 +# 1927| r1927_3(glval) = FunctionAddress[String] : +# 1927| v1927_4(void) = Call[String] : func:r1927_3, this:r1927_1 +# 1927| mu1927_5(unknown) = ^CallSideEffect : ~m? +# 1927| mu1927_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1927_1 +# 1928| r1928_1(glval) = VariableAddress[x636] : +# 1928| r1928_2(glval) = FunctionAddress[~String] : +# 1928| v1928_3(void) = Call[~String] : func:r1928_2, this:r1928_1 +# 1928| mu1928_4(unknown) = ^CallSideEffect : ~m? +# 1928| v1928_5(void) = ^IndirectReadSideEffect[-1] : &:r1928_1, ~m? +# 1928| mu1928_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1928_1 +# 1928| r1928_7(bool) = Constant[0] : +# 1928| v1928_8(void) = ConditionalBranch : r1928_7 +#-----| False -> Block 637 +#-----| True -> Block 1026 + +# 1930| Block 637 +# 1930| r1930_1(glval) = VariableAddress[x637] : +# 1930| mu1930_2(String) = Uninitialized[x637] : &:r1930_1 +# 1930| r1930_3(glval) = FunctionAddress[String] : +# 1930| v1930_4(void) = Call[String] : func:r1930_3, this:r1930_1 +# 1930| mu1930_5(unknown) = ^CallSideEffect : ~m? +# 1930| mu1930_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1930_1 +# 1931| r1931_1(glval) = VariableAddress[x637] : +# 1931| r1931_2(glval) = FunctionAddress[~String] : +# 1931| v1931_3(void) = Call[~String] : func:r1931_2, this:r1931_1 +# 1931| mu1931_4(unknown) = ^CallSideEffect : ~m? +# 1931| v1931_5(void) = ^IndirectReadSideEffect[-1] : &:r1931_1, ~m? +# 1931| mu1931_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1931_1 +# 1931| r1931_7(bool) = Constant[0] : +# 1931| v1931_8(void) = ConditionalBranch : r1931_7 +#-----| False -> Block 638 +#-----| True -> Block 1026 + +# 1933| Block 638 +# 1933| r1933_1(glval) = VariableAddress[x638] : +# 1933| mu1933_2(String) = Uninitialized[x638] : &:r1933_1 +# 1933| r1933_3(glval) = FunctionAddress[String] : +# 1933| v1933_4(void) = Call[String] : func:r1933_3, this:r1933_1 +# 1933| mu1933_5(unknown) = ^CallSideEffect : ~m? +# 1933| mu1933_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1933_1 +# 1934| r1934_1(glval) = VariableAddress[x638] : +# 1934| r1934_2(glval) = FunctionAddress[~String] : +# 1934| v1934_3(void) = Call[~String] : func:r1934_2, this:r1934_1 +# 1934| mu1934_4(unknown) = ^CallSideEffect : ~m? +# 1934| v1934_5(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, ~m? +# 1934| mu1934_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 +# 1934| r1934_7(bool) = Constant[0] : +# 1934| v1934_8(void) = ConditionalBranch : r1934_7 +#-----| False -> Block 639 +#-----| True -> Block 1026 + +# 1936| Block 639 +# 1936| r1936_1(glval) = VariableAddress[x639] : +# 1936| mu1936_2(String) = Uninitialized[x639] : &:r1936_1 +# 1936| r1936_3(glval) = FunctionAddress[String] : +# 1936| v1936_4(void) = Call[String] : func:r1936_3, this:r1936_1 +# 1936| mu1936_5(unknown) = ^CallSideEffect : ~m? +# 1936| mu1936_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1936_1 +# 1937| r1937_1(glval) = VariableAddress[x639] : +# 1937| r1937_2(glval) = FunctionAddress[~String] : +# 1937| v1937_3(void) = Call[~String] : func:r1937_2, this:r1937_1 +# 1937| mu1937_4(unknown) = ^CallSideEffect : ~m? +# 1937| v1937_5(void) = ^IndirectReadSideEffect[-1] : &:r1937_1, ~m? +# 1937| mu1937_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1937_1 +# 1937| r1937_7(bool) = Constant[0] : +# 1937| v1937_8(void) = ConditionalBranch : r1937_7 +#-----| False -> Block 640 +#-----| True -> Block 1026 + +# 1939| Block 640 +# 1939| r1939_1(glval) = VariableAddress[x640] : +# 1939| mu1939_2(String) = Uninitialized[x640] : &:r1939_1 +# 1939| r1939_3(glval) = FunctionAddress[String] : +# 1939| v1939_4(void) = Call[String] : func:r1939_3, this:r1939_1 +# 1939| mu1939_5(unknown) = ^CallSideEffect : ~m? +# 1939| mu1939_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1939_1 +# 1940| r1940_1(glval) = VariableAddress[x640] : +# 1940| r1940_2(glval) = FunctionAddress[~String] : +# 1940| v1940_3(void) = Call[~String] : func:r1940_2, this:r1940_1 +# 1940| mu1940_4(unknown) = ^CallSideEffect : ~m? +# 1940| v1940_5(void) = ^IndirectReadSideEffect[-1] : &:r1940_1, ~m? +# 1940| mu1940_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1940_1 +# 1940| r1940_7(bool) = Constant[0] : +# 1940| v1940_8(void) = ConditionalBranch : r1940_7 +#-----| False -> Block 641 +#-----| True -> Block 1026 + +# 1942| Block 641 +# 1942| r1942_1(glval) = VariableAddress[x641] : +# 1942| mu1942_2(String) = Uninitialized[x641] : &:r1942_1 +# 1942| r1942_3(glval) = FunctionAddress[String] : +# 1942| v1942_4(void) = Call[String] : func:r1942_3, this:r1942_1 +# 1942| mu1942_5(unknown) = ^CallSideEffect : ~m? +# 1942| mu1942_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1942_1 +# 1943| r1943_1(glval) = VariableAddress[x641] : +# 1943| r1943_2(glval) = FunctionAddress[~String] : +# 1943| v1943_3(void) = Call[~String] : func:r1943_2, this:r1943_1 +# 1943| mu1943_4(unknown) = ^CallSideEffect : ~m? +# 1943| v1943_5(void) = ^IndirectReadSideEffect[-1] : &:r1943_1, ~m? +# 1943| mu1943_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1943_1 +# 1943| r1943_7(bool) = Constant[0] : +# 1943| v1943_8(void) = ConditionalBranch : r1943_7 +#-----| False -> Block 642 +#-----| True -> Block 1026 + +# 1945| Block 642 +# 1945| r1945_1(glval) = VariableAddress[x642] : +# 1945| mu1945_2(String) = Uninitialized[x642] : &:r1945_1 +# 1945| r1945_3(glval) = FunctionAddress[String] : +# 1945| v1945_4(void) = Call[String] : func:r1945_3, this:r1945_1 +# 1945| mu1945_5(unknown) = ^CallSideEffect : ~m? +# 1945| mu1945_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1945_1 +# 1946| r1946_1(glval) = VariableAddress[x642] : +# 1946| r1946_2(glval) = FunctionAddress[~String] : +# 1946| v1946_3(void) = Call[~String] : func:r1946_2, this:r1946_1 +# 1946| mu1946_4(unknown) = ^CallSideEffect : ~m? +# 1946| v1946_5(void) = ^IndirectReadSideEffect[-1] : &:r1946_1, ~m? +# 1946| mu1946_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1946_1 +# 1946| r1946_7(bool) = Constant[0] : +# 1946| v1946_8(void) = ConditionalBranch : r1946_7 +#-----| False -> Block 643 +#-----| True -> Block 1026 + +# 1948| Block 643 +# 1948| r1948_1(glval) = VariableAddress[x643] : +# 1948| mu1948_2(String) = Uninitialized[x643] : &:r1948_1 +# 1948| r1948_3(glval) = FunctionAddress[String] : +# 1948| v1948_4(void) = Call[String] : func:r1948_3, this:r1948_1 +# 1948| mu1948_5(unknown) = ^CallSideEffect : ~m? +# 1948| mu1948_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1948_1 +# 1949| r1949_1(glval) = VariableAddress[x643] : +# 1949| r1949_2(glval) = FunctionAddress[~String] : +# 1949| v1949_3(void) = Call[~String] : func:r1949_2, this:r1949_1 +# 1949| mu1949_4(unknown) = ^CallSideEffect : ~m? +# 1949| v1949_5(void) = ^IndirectReadSideEffect[-1] : &:r1949_1, ~m? +# 1949| mu1949_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1949_1 +# 1949| r1949_7(bool) = Constant[0] : +# 1949| v1949_8(void) = ConditionalBranch : r1949_7 +#-----| False -> Block 644 +#-----| True -> Block 1026 + +# 1951| Block 644 +# 1951| r1951_1(glval) = VariableAddress[x644] : +# 1951| mu1951_2(String) = Uninitialized[x644] : &:r1951_1 +# 1951| r1951_3(glval) = FunctionAddress[String] : +# 1951| v1951_4(void) = Call[String] : func:r1951_3, this:r1951_1 +# 1951| mu1951_5(unknown) = ^CallSideEffect : ~m? +# 1951| mu1951_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1951_1 +# 1952| r1952_1(glval) = VariableAddress[x644] : +# 1952| r1952_2(glval) = FunctionAddress[~String] : +# 1952| v1952_3(void) = Call[~String] : func:r1952_2, this:r1952_1 +# 1952| mu1952_4(unknown) = ^CallSideEffect : ~m? +# 1952| v1952_5(void) = ^IndirectReadSideEffect[-1] : &:r1952_1, ~m? +# 1952| mu1952_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1952_1 +# 1952| r1952_7(bool) = Constant[0] : +# 1952| v1952_8(void) = ConditionalBranch : r1952_7 +#-----| False -> Block 645 +#-----| True -> Block 1026 + +# 1954| Block 645 +# 1954| r1954_1(glval) = VariableAddress[x645] : +# 1954| mu1954_2(String) = Uninitialized[x645] : &:r1954_1 +# 1954| r1954_3(glval) = FunctionAddress[String] : +# 1954| v1954_4(void) = Call[String] : func:r1954_3, this:r1954_1 +# 1954| mu1954_5(unknown) = ^CallSideEffect : ~m? +# 1954| mu1954_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1954_1 +# 1955| r1955_1(glval) = VariableAddress[x645] : +# 1955| r1955_2(glval) = FunctionAddress[~String] : +# 1955| v1955_3(void) = Call[~String] : func:r1955_2, this:r1955_1 +# 1955| mu1955_4(unknown) = ^CallSideEffect : ~m? +# 1955| v1955_5(void) = ^IndirectReadSideEffect[-1] : &:r1955_1, ~m? +# 1955| mu1955_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1955_1 +# 1955| r1955_7(bool) = Constant[0] : +# 1955| v1955_8(void) = ConditionalBranch : r1955_7 +#-----| False -> Block 646 +#-----| True -> Block 1026 + +# 1957| Block 646 +# 1957| r1957_1(glval) = VariableAddress[x646] : +# 1957| mu1957_2(String) = Uninitialized[x646] : &:r1957_1 +# 1957| r1957_3(glval) = FunctionAddress[String] : +# 1957| v1957_4(void) = Call[String] : func:r1957_3, this:r1957_1 +# 1957| mu1957_5(unknown) = ^CallSideEffect : ~m? +# 1957| mu1957_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1957_1 +# 1958| r1958_1(glval) = VariableAddress[x646] : +# 1958| r1958_2(glval) = FunctionAddress[~String] : +# 1958| v1958_3(void) = Call[~String] : func:r1958_2, this:r1958_1 +# 1958| mu1958_4(unknown) = ^CallSideEffect : ~m? +# 1958| v1958_5(void) = ^IndirectReadSideEffect[-1] : &:r1958_1, ~m? +# 1958| mu1958_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1958_1 +# 1958| r1958_7(bool) = Constant[0] : +# 1958| v1958_8(void) = ConditionalBranch : r1958_7 +#-----| False -> Block 647 +#-----| True -> Block 1026 + +# 1960| Block 647 +# 1960| r1960_1(glval) = VariableAddress[x647] : +# 1960| mu1960_2(String) = Uninitialized[x647] : &:r1960_1 +# 1960| r1960_3(glval) = FunctionAddress[String] : +# 1960| v1960_4(void) = Call[String] : func:r1960_3, this:r1960_1 +# 1960| mu1960_5(unknown) = ^CallSideEffect : ~m? +# 1960| mu1960_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1960_1 +# 1961| r1961_1(glval) = VariableAddress[x647] : +# 1961| r1961_2(glval) = FunctionAddress[~String] : +# 1961| v1961_3(void) = Call[~String] : func:r1961_2, this:r1961_1 +# 1961| mu1961_4(unknown) = ^CallSideEffect : ~m? +# 1961| v1961_5(void) = ^IndirectReadSideEffect[-1] : &:r1961_1, ~m? +# 1961| mu1961_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1961_1 +# 1961| r1961_7(bool) = Constant[0] : +# 1961| v1961_8(void) = ConditionalBranch : r1961_7 +#-----| False -> Block 648 +#-----| True -> Block 1026 + +# 1963| Block 648 +# 1963| r1963_1(glval) = VariableAddress[x648] : +# 1963| mu1963_2(String) = Uninitialized[x648] : &:r1963_1 +# 1963| r1963_3(glval) = FunctionAddress[String] : +# 1963| v1963_4(void) = Call[String] : func:r1963_3, this:r1963_1 +# 1963| mu1963_5(unknown) = ^CallSideEffect : ~m? +# 1963| mu1963_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1963_1 +# 1964| r1964_1(glval) = VariableAddress[x648] : +# 1964| r1964_2(glval) = FunctionAddress[~String] : +# 1964| v1964_3(void) = Call[~String] : func:r1964_2, this:r1964_1 +# 1964| mu1964_4(unknown) = ^CallSideEffect : ~m? +# 1964| v1964_5(void) = ^IndirectReadSideEffect[-1] : &:r1964_1, ~m? +# 1964| mu1964_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1964_1 +# 1964| r1964_7(bool) = Constant[0] : +# 1964| v1964_8(void) = ConditionalBranch : r1964_7 +#-----| False -> Block 649 +#-----| True -> Block 1026 + +# 1966| Block 649 +# 1966| r1966_1(glval) = VariableAddress[x649] : +# 1966| mu1966_2(String) = Uninitialized[x649] : &:r1966_1 +# 1966| r1966_3(glval) = FunctionAddress[String] : +# 1966| v1966_4(void) = Call[String] : func:r1966_3, this:r1966_1 +# 1966| mu1966_5(unknown) = ^CallSideEffect : ~m? +# 1966| mu1966_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1966_1 +# 1967| r1967_1(glval) = VariableAddress[x649] : +# 1967| r1967_2(glval) = FunctionAddress[~String] : +# 1967| v1967_3(void) = Call[~String] : func:r1967_2, this:r1967_1 +# 1967| mu1967_4(unknown) = ^CallSideEffect : ~m? +# 1967| v1967_5(void) = ^IndirectReadSideEffect[-1] : &:r1967_1, ~m? +# 1967| mu1967_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1967_1 +# 1967| r1967_7(bool) = Constant[0] : +# 1967| v1967_8(void) = ConditionalBranch : r1967_7 +#-----| False -> Block 650 +#-----| True -> Block 1026 + +# 1969| Block 650 +# 1969| r1969_1(glval) = VariableAddress[x650] : +# 1969| mu1969_2(String) = Uninitialized[x650] : &:r1969_1 +# 1969| r1969_3(glval) = FunctionAddress[String] : +# 1969| v1969_4(void) = Call[String] : func:r1969_3, this:r1969_1 +# 1969| mu1969_5(unknown) = ^CallSideEffect : ~m? +# 1969| mu1969_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1969_1 +# 1970| r1970_1(glval) = VariableAddress[x650] : +# 1970| r1970_2(glval) = FunctionAddress[~String] : +# 1970| v1970_3(void) = Call[~String] : func:r1970_2, this:r1970_1 +# 1970| mu1970_4(unknown) = ^CallSideEffect : ~m? +# 1970| v1970_5(void) = ^IndirectReadSideEffect[-1] : &:r1970_1, ~m? +# 1970| mu1970_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1970_1 +# 1970| r1970_7(bool) = Constant[0] : +# 1970| v1970_8(void) = ConditionalBranch : r1970_7 +#-----| False -> Block 651 +#-----| True -> Block 1026 + +# 1972| Block 651 +# 1972| r1972_1(glval) = VariableAddress[x651] : +# 1972| mu1972_2(String) = Uninitialized[x651] : &:r1972_1 +# 1972| r1972_3(glval) = FunctionAddress[String] : +# 1972| v1972_4(void) = Call[String] : func:r1972_3, this:r1972_1 +# 1972| mu1972_5(unknown) = ^CallSideEffect : ~m? +# 1972| mu1972_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1972_1 +# 1973| r1973_1(glval) = VariableAddress[x651] : +# 1973| r1973_2(glval) = FunctionAddress[~String] : +# 1973| v1973_3(void) = Call[~String] : func:r1973_2, this:r1973_1 +# 1973| mu1973_4(unknown) = ^CallSideEffect : ~m? +# 1973| v1973_5(void) = ^IndirectReadSideEffect[-1] : &:r1973_1, ~m? +# 1973| mu1973_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1973_1 +# 1973| r1973_7(bool) = Constant[0] : +# 1973| v1973_8(void) = ConditionalBranch : r1973_7 +#-----| False -> Block 652 +#-----| True -> Block 1026 + +# 1975| Block 652 +# 1975| r1975_1(glval) = VariableAddress[x652] : +# 1975| mu1975_2(String) = Uninitialized[x652] : &:r1975_1 +# 1975| r1975_3(glval) = FunctionAddress[String] : +# 1975| v1975_4(void) = Call[String] : func:r1975_3, this:r1975_1 +# 1975| mu1975_5(unknown) = ^CallSideEffect : ~m? +# 1975| mu1975_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1975_1 +# 1976| r1976_1(glval) = VariableAddress[x652] : +# 1976| r1976_2(glval) = FunctionAddress[~String] : +# 1976| v1976_3(void) = Call[~String] : func:r1976_2, this:r1976_1 +# 1976| mu1976_4(unknown) = ^CallSideEffect : ~m? +# 1976| v1976_5(void) = ^IndirectReadSideEffect[-1] : &:r1976_1, ~m? +# 1976| mu1976_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1976_1 +# 1976| r1976_7(bool) = Constant[0] : +# 1976| v1976_8(void) = ConditionalBranch : r1976_7 +#-----| False -> Block 653 +#-----| True -> Block 1026 + +# 1978| Block 653 +# 1978| r1978_1(glval) = VariableAddress[x653] : +# 1978| mu1978_2(String) = Uninitialized[x653] : &:r1978_1 +# 1978| r1978_3(glval) = FunctionAddress[String] : +# 1978| v1978_4(void) = Call[String] : func:r1978_3, this:r1978_1 +# 1978| mu1978_5(unknown) = ^CallSideEffect : ~m? +# 1978| mu1978_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1978_1 +# 1979| r1979_1(glval) = VariableAddress[x653] : +# 1979| r1979_2(glval) = FunctionAddress[~String] : +# 1979| v1979_3(void) = Call[~String] : func:r1979_2, this:r1979_1 +# 1979| mu1979_4(unknown) = ^CallSideEffect : ~m? +# 1979| v1979_5(void) = ^IndirectReadSideEffect[-1] : &:r1979_1, ~m? +# 1979| mu1979_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1979_1 +# 1979| r1979_7(bool) = Constant[0] : +# 1979| v1979_8(void) = ConditionalBranch : r1979_7 +#-----| False -> Block 654 +#-----| True -> Block 1026 + +# 1981| Block 654 +# 1981| r1981_1(glval) = VariableAddress[x654] : +# 1981| mu1981_2(String) = Uninitialized[x654] : &:r1981_1 +# 1981| r1981_3(glval) = FunctionAddress[String] : +# 1981| v1981_4(void) = Call[String] : func:r1981_3, this:r1981_1 +# 1981| mu1981_5(unknown) = ^CallSideEffect : ~m? +# 1981| mu1981_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1981_1 +# 1982| r1982_1(glval) = VariableAddress[x654] : +# 1982| r1982_2(glval) = FunctionAddress[~String] : +# 1982| v1982_3(void) = Call[~String] : func:r1982_2, this:r1982_1 +# 1982| mu1982_4(unknown) = ^CallSideEffect : ~m? +# 1982| v1982_5(void) = ^IndirectReadSideEffect[-1] : &:r1982_1, ~m? +# 1982| mu1982_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1982_1 +# 1982| r1982_7(bool) = Constant[0] : +# 1982| v1982_8(void) = ConditionalBranch : r1982_7 +#-----| False -> Block 655 +#-----| True -> Block 1026 + +# 1984| Block 655 +# 1984| r1984_1(glval) = VariableAddress[x655] : +# 1984| mu1984_2(String) = Uninitialized[x655] : &:r1984_1 +# 1984| r1984_3(glval) = FunctionAddress[String] : +# 1984| v1984_4(void) = Call[String] : func:r1984_3, this:r1984_1 +# 1984| mu1984_5(unknown) = ^CallSideEffect : ~m? +# 1984| mu1984_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1984_1 +# 1985| r1985_1(glval) = VariableAddress[x655] : +# 1985| r1985_2(glval) = FunctionAddress[~String] : +# 1985| v1985_3(void) = Call[~String] : func:r1985_2, this:r1985_1 +# 1985| mu1985_4(unknown) = ^CallSideEffect : ~m? +# 1985| v1985_5(void) = ^IndirectReadSideEffect[-1] : &:r1985_1, ~m? +# 1985| mu1985_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1985_1 +# 1985| r1985_7(bool) = Constant[0] : +# 1985| v1985_8(void) = ConditionalBranch : r1985_7 +#-----| False -> Block 656 +#-----| True -> Block 1026 + +# 1987| Block 656 +# 1987| r1987_1(glval) = VariableAddress[x656] : +# 1987| mu1987_2(String) = Uninitialized[x656] : &:r1987_1 +# 1987| r1987_3(glval) = FunctionAddress[String] : +# 1987| v1987_4(void) = Call[String] : func:r1987_3, this:r1987_1 +# 1987| mu1987_5(unknown) = ^CallSideEffect : ~m? +# 1987| mu1987_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1987_1 +# 1988| r1988_1(glval) = VariableAddress[x656] : +# 1988| r1988_2(glval) = FunctionAddress[~String] : +# 1988| v1988_3(void) = Call[~String] : func:r1988_2, this:r1988_1 +# 1988| mu1988_4(unknown) = ^CallSideEffect : ~m? +# 1988| v1988_5(void) = ^IndirectReadSideEffect[-1] : &:r1988_1, ~m? +# 1988| mu1988_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1988_1 +# 1988| r1988_7(bool) = Constant[0] : +# 1988| v1988_8(void) = ConditionalBranch : r1988_7 +#-----| False -> Block 657 +#-----| True -> Block 1026 + +# 1990| Block 657 +# 1990| r1990_1(glval) = VariableAddress[x657] : +# 1990| mu1990_2(String) = Uninitialized[x657] : &:r1990_1 +# 1990| r1990_3(glval) = FunctionAddress[String] : +# 1990| v1990_4(void) = Call[String] : func:r1990_3, this:r1990_1 +# 1990| mu1990_5(unknown) = ^CallSideEffect : ~m? +# 1990| mu1990_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1990_1 +# 1991| r1991_1(glval) = VariableAddress[x657] : +# 1991| r1991_2(glval) = FunctionAddress[~String] : +# 1991| v1991_3(void) = Call[~String] : func:r1991_2, this:r1991_1 +# 1991| mu1991_4(unknown) = ^CallSideEffect : ~m? +# 1991| v1991_5(void) = ^IndirectReadSideEffect[-1] : &:r1991_1, ~m? +# 1991| mu1991_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1991_1 +# 1991| r1991_7(bool) = Constant[0] : +# 1991| v1991_8(void) = ConditionalBranch : r1991_7 +#-----| False -> Block 658 +#-----| True -> Block 1026 + +# 1993| Block 658 +# 1993| r1993_1(glval) = VariableAddress[x658] : +# 1993| mu1993_2(String) = Uninitialized[x658] : &:r1993_1 +# 1993| r1993_3(glval) = FunctionAddress[String] : +# 1993| v1993_4(void) = Call[String] : func:r1993_3, this:r1993_1 +# 1993| mu1993_5(unknown) = ^CallSideEffect : ~m? +# 1993| mu1993_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1993_1 +# 1994| r1994_1(glval) = VariableAddress[x658] : +# 1994| r1994_2(glval) = FunctionAddress[~String] : +# 1994| v1994_3(void) = Call[~String] : func:r1994_2, this:r1994_1 +# 1994| mu1994_4(unknown) = ^CallSideEffect : ~m? +# 1994| v1994_5(void) = ^IndirectReadSideEffect[-1] : &:r1994_1, ~m? +# 1994| mu1994_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1994_1 +# 1994| r1994_7(bool) = Constant[0] : +# 1994| v1994_8(void) = ConditionalBranch : r1994_7 +#-----| False -> Block 659 +#-----| True -> Block 1026 + +# 1996| Block 659 +# 1996| r1996_1(glval) = VariableAddress[x659] : +# 1996| mu1996_2(String) = Uninitialized[x659] : &:r1996_1 +# 1996| r1996_3(glval) = FunctionAddress[String] : +# 1996| v1996_4(void) = Call[String] : func:r1996_3, this:r1996_1 +# 1996| mu1996_5(unknown) = ^CallSideEffect : ~m? +# 1996| mu1996_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1996_1 +# 1997| r1997_1(glval) = VariableAddress[x659] : +# 1997| r1997_2(glval) = FunctionAddress[~String] : +# 1997| v1997_3(void) = Call[~String] : func:r1997_2, this:r1997_1 +# 1997| mu1997_4(unknown) = ^CallSideEffect : ~m? +# 1997| v1997_5(void) = ^IndirectReadSideEffect[-1] : &:r1997_1, ~m? +# 1997| mu1997_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1997_1 +# 1997| r1997_7(bool) = Constant[0] : +# 1997| v1997_8(void) = ConditionalBranch : r1997_7 +#-----| False -> Block 660 +#-----| True -> Block 1026 + +# 1999| Block 660 +# 1999| r1999_1(glval) = VariableAddress[x660] : +# 1999| mu1999_2(String) = Uninitialized[x660] : &:r1999_1 +# 1999| r1999_3(glval) = FunctionAddress[String] : +# 1999| v1999_4(void) = Call[String] : func:r1999_3, this:r1999_1 +# 1999| mu1999_5(unknown) = ^CallSideEffect : ~m? +# 1999| mu1999_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1999_1 +# 2000| r2000_1(glval) = VariableAddress[x660] : +# 2000| r2000_2(glval) = FunctionAddress[~String] : +# 2000| v2000_3(void) = Call[~String] : func:r2000_2, this:r2000_1 +# 2000| mu2000_4(unknown) = ^CallSideEffect : ~m? +# 2000| v2000_5(void) = ^IndirectReadSideEffect[-1] : &:r2000_1, ~m? +# 2000| mu2000_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2000_1 +# 2000| r2000_7(bool) = Constant[0] : +# 2000| v2000_8(void) = ConditionalBranch : r2000_7 +#-----| False -> Block 661 +#-----| True -> Block 1026 + +# 2002| Block 661 +# 2002| r2002_1(glval) = VariableAddress[x661] : +# 2002| mu2002_2(String) = Uninitialized[x661] : &:r2002_1 +# 2002| r2002_3(glval) = FunctionAddress[String] : +# 2002| v2002_4(void) = Call[String] : func:r2002_3, this:r2002_1 +# 2002| mu2002_5(unknown) = ^CallSideEffect : ~m? +# 2002| mu2002_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2002_1 +# 2003| r2003_1(glval) = VariableAddress[x661] : +# 2003| r2003_2(glval) = FunctionAddress[~String] : +# 2003| v2003_3(void) = Call[~String] : func:r2003_2, this:r2003_1 +# 2003| mu2003_4(unknown) = ^CallSideEffect : ~m? +# 2003| v2003_5(void) = ^IndirectReadSideEffect[-1] : &:r2003_1, ~m? +# 2003| mu2003_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2003_1 +# 2003| r2003_7(bool) = Constant[0] : +# 2003| v2003_8(void) = ConditionalBranch : r2003_7 +#-----| False -> Block 662 +#-----| True -> Block 1026 + +# 2005| Block 662 +# 2005| r2005_1(glval) = VariableAddress[x662] : +# 2005| mu2005_2(String) = Uninitialized[x662] : &:r2005_1 +# 2005| r2005_3(glval) = FunctionAddress[String] : +# 2005| v2005_4(void) = Call[String] : func:r2005_3, this:r2005_1 +# 2005| mu2005_5(unknown) = ^CallSideEffect : ~m? +# 2005| mu2005_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2005_1 +# 2006| r2006_1(glval) = VariableAddress[x662] : +# 2006| r2006_2(glval) = FunctionAddress[~String] : +# 2006| v2006_3(void) = Call[~String] : func:r2006_2, this:r2006_1 +# 2006| mu2006_4(unknown) = ^CallSideEffect : ~m? +# 2006| v2006_5(void) = ^IndirectReadSideEffect[-1] : &:r2006_1, ~m? +# 2006| mu2006_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2006_1 +# 2006| r2006_7(bool) = Constant[0] : +# 2006| v2006_8(void) = ConditionalBranch : r2006_7 +#-----| False -> Block 663 +#-----| True -> Block 1026 + +# 2008| Block 663 +# 2008| r2008_1(glval) = VariableAddress[x663] : +# 2008| mu2008_2(String) = Uninitialized[x663] : &:r2008_1 +# 2008| r2008_3(glval) = FunctionAddress[String] : +# 2008| v2008_4(void) = Call[String] : func:r2008_3, this:r2008_1 +# 2008| mu2008_5(unknown) = ^CallSideEffect : ~m? +# 2008| mu2008_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2008_1 +# 2009| r2009_1(glval) = VariableAddress[x663] : +# 2009| r2009_2(glval) = FunctionAddress[~String] : +# 2009| v2009_3(void) = Call[~String] : func:r2009_2, this:r2009_1 +# 2009| mu2009_4(unknown) = ^CallSideEffect : ~m? +# 2009| v2009_5(void) = ^IndirectReadSideEffect[-1] : &:r2009_1, ~m? +# 2009| mu2009_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2009_1 +# 2009| r2009_7(bool) = Constant[0] : +# 2009| v2009_8(void) = ConditionalBranch : r2009_7 +#-----| False -> Block 664 +#-----| True -> Block 1026 + +# 2011| Block 664 +# 2011| r2011_1(glval) = VariableAddress[x664] : +# 2011| mu2011_2(String) = Uninitialized[x664] : &:r2011_1 +# 2011| r2011_3(glval) = FunctionAddress[String] : +# 2011| v2011_4(void) = Call[String] : func:r2011_3, this:r2011_1 +# 2011| mu2011_5(unknown) = ^CallSideEffect : ~m? +# 2011| mu2011_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2011_1 +# 2012| r2012_1(glval) = VariableAddress[x664] : +# 2012| r2012_2(glval) = FunctionAddress[~String] : +# 2012| v2012_3(void) = Call[~String] : func:r2012_2, this:r2012_1 +# 2012| mu2012_4(unknown) = ^CallSideEffect : ~m? +# 2012| v2012_5(void) = ^IndirectReadSideEffect[-1] : &:r2012_1, ~m? +# 2012| mu2012_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2012_1 +# 2012| r2012_7(bool) = Constant[0] : +# 2012| v2012_8(void) = ConditionalBranch : r2012_7 +#-----| False -> Block 665 +#-----| True -> Block 1026 + +# 2014| Block 665 +# 2014| r2014_1(glval) = VariableAddress[x665] : +# 2014| mu2014_2(String) = Uninitialized[x665] : &:r2014_1 +# 2014| r2014_3(glval) = FunctionAddress[String] : +# 2014| v2014_4(void) = Call[String] : func:r2014_3, this:r2014_1 +# 2014| mu2014_5(unknown) = ^CallSideEffect : ~m? +# 2014| mu2014_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2014_1 +# 2015| r2015_1(glval) = VariableAddress[x665] : +# 2015| r2015_2(glval) = FunctionAddress[~String] : +# 2015| v2015_3(void) = Call[~String] : func:r2015_2, this:r2015_1 +# 2015| mu2015_4(unknown) = ^CallSideEffect : ~m? +# 2015| v2015_5(void) = ^IndirectReadSideEffect[-1] : &:r2015_1, ~m? +# 2015| mu2015_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2015_1 +# 2015| r2015_7(bool) = Constant[0] : +# 2015| v2015_8(void) = ConditionalBranch : r2015_7 +#-----| False -> Block 666 +#-----| True -> Block 1026 + +# 2017| Block 666 +# 2017| r2017_1(glval) = VariableAddress[x666] : +# 2017| mu2017_2(String) = Uninitialized[x666] : &:r2017_1 +# 2017| r2017_3(glval) = FunctionAddress[String] : +# 2017| v2017_4(void) = Call[String] : func:r2017_3, this:r2017_1 +# 2017| mu2017_5(unknown) = ^CallSideEffect : ~m? +# 2017| mu2017_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2017_1 +# 2018| r2018_1(glval) = VariableAddress[x666] : +# 2018| r2018_2(glval) = FunctionAddress[~String] : +# 2018| v2018_3(void) = Call[~String] : func:r2018_2, this:r2018_1 +# 2018| mu2018_4(unknown) = ^CallSideEffect : ~m? +# 2018| v2018_5(void) = ^IndirectReadSideEffect[-1] : &:r2018_1, ~m? +# 2018| mu2018_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2018_1 +# 2018| r2018_7(bool) = Constant[0] : +# 2018| v2018_8(void) = ConditionalBranch : r2018_7 +#-----| False -> Block 667 +#-----| True -> Block 1026 + +# 2020| Block 667 +# 2020| r2020_1(glval) = VariableAddress[x667] : +# 2020| mu2020_2(String) = Uninitialized[x667] : &:r2020_1 +# 2020| r2020_3(glval) = FunctionAddress[String] : +# 2020| v2020_4(void) = Call[String] : func:r2020_3, this:r2020_1 +# 2020| mu2020_5(unknown) = ^CallSideEffect : ~m? +# 2020| mu2020_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2020_1 +# 2021| r2021_1(glval) = VariableAddress[x667] : +# 2021| r2021_2(glval) = FunctionAddress[~String] : +# 2021| v2021_3(void) = Call[~String] : func:r2021_2, this:r2021_1 +# 2021| mu2021_4(unknown) = ^CallSideEffect : ~m? +# 2021| v2021_5(void) = ^IndirectReadSideEffect[-1] : &:r2021_1, ~m? +# 2021| mu2021_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2021_1 +# 2021| r2021_7(bool) = Constant[0] : +# 2021| v2021_8(void) = ConditionalBranch : r2021_7 +#-----| False -> Block 668 +#-----| True -> Block 1026 + +# 2023| Block 668 +# 2023| r2023_1(glval) = VariableAddress[x668] : +# 2023| mu2023_2(String) = Uninitialized[x668] : &:r2023_1 +# 2023| r2023_3(glval) = FunctionAddress[String] : +# 2023| v2023_4(void) = Call[String] : func:r2023_3, this:r2023_1 +# 2023| mu2023_5(unknown) = ^CallSideEffect : ~m? +# 2023| mu2023_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2023_1 +# 2024| r2024_1(glval) = VariableAddress[x668] : +# 2024| r2024_2(glval) = FunctionAddress[~String] : +# 2024| v2024_3(void) = Call[~String] : func:r2024_2, this:r2024_1 +# 2024| mu2024_4(unknown) = ^CallSideEffect : ~m? +# 2024| v2024_5(void) = ^IndirectReadSideEffect[-1] : &:r2024_1, ~m? +# 2024| mu2024_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2024_1 +# 2024| r2024_7(bool) = Constant[0] : +# 2024| v2024_8(void) = ConditionalBranch : r2024_7 +#-----| False -> Block 669 +#-----| True -> Block 1026 + +# 2026| Block 669 +# 2026| r2026_1(glval) = VariableAddress[x669] : +# 2026| mu2026_2(String) = Uninitialized[x669] : &:r2026_1 +# 2026| r2026_3(glval) = FunctionAddress[String] : +# 2026| v2026_4(void) = Call[String] : func:r2026_3, this:r2026_1 +# 2026| mu2026_5(unknown) = ^CallSideEffect : ~m? +# 2026| mu2026_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2026_1 +# 2027| r2027_1(glval) = VariableAddress[x669] : +# 2027| r2027_2(glval) = FunctionAddress[~String] : +# 2027| v2027_3(void) = Call[~String] : func:r2027_2, this:r2027_1 +# 2027| mu2027_4(unknown) = ^CallSideEffect : ~m? +# 2027| v2027_5(void) = ^IndirectReadSideEffect[-1] : &:r2027_1, ~m? +# 2027| mu2027_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2027_1 +# 2027| r2027_7(bool) = Constant[0] : +# 2027| v2027_8(void) = ConditionalBranch : r2027_7 +#-----| False -> Block 670 +#-----| True -> Block 1026 + +# 2029| Block 670 +# 2029| r2029_1(glval) = VariableAddress[x670] : +# 2029| mu2029_2(String) = Uninitialized[x670] : &:r2029_1 +# 2029| r2029_3(glval) = FunctionAddress[String] : +# 2029| v2029_4(void) = Call[String] : func:r2029_3, this:r2029_1 +# 2029| mu2029_5(unknown) = ^CallSideEffect : ~m? +# 2029| mu2029_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2029_1 +# 2030| r2030_1(glval) = VariableAddress[x670] : +# 2030| r2030_2(glval) = FunctionAddress[~String] : +# 2030| v2030_3(void) = Call[~String] : func:r2030_2, this:r2030_1 +# 2030| mu2030_4(unknown) = ^CallSideEffect : ~m? +# 2030| v2030_5(void) = ^IndirectReadSideEffect[-1] : &:r2030_1, ~m? +# 2030| mu2030_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2030_1 +# 2030| r2030_7(bool) = Constant[0] : +# 2030| v2030_8(void) = ConditionalBranch : r2030_7 +#-----| False -> Block 671 +#-----| True -> Block 1026 + +# 2032| Block 671 +# 2032| r2032_1(glval) = VariableAddress[x671] : +# 2032| mu2032_2(String) = Uninitialized[x671] : &:r2032_1 +# 2032| r2032_3(glval) = FunctionAddress[String] : +# 2032| v2032_4(void) = Call[String] : func:r2032_3, this:r2032_1 +# 2032| mu2032_5(unknown) = ^CallSideEffect : ~m? +# 2032| mu2032_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2032_1 +# 2033| r2033_1(glval) = VariableAddress[x671] : +# 2033| r2033_2(glval) = FunctionAddress[~String] : +# 2033| v2033_3(void) = Call[~String] : func:r2033_2, this:r2033_1 +# 2033| mu2033_4(unknown) = ^CallSideEffect : ~m? +# 2033| v2033_5(void) = ^IndirectReadSideEffect[-1] : &:r2033_1, ~m? +# 2033| mu2033_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2033_1 +# 2033| r2033_7(bool) = Constant[0] : +# 2033| v2033_8(void) = ConditionalBranch : r2033_7 +#-----| False -> Block 672 +#-----| True -> Block 1026 + +# 2035| Block 672 +# 2035| r2035_1(glval) = VariableAddress[x672] : +# 2035| mu2035_2(String) = Uninitialized[x672] : &:r2035_1 +# 2035| r2035_3(glval) = FunctionAddress[String] : +# 2035| v2035_4(void) = Call[String] : func:r2035_3, this:r2035_1 +# 2035| mu2035_5(unknown) = ^CallSideEffect : ~m? +# 2035| mu2035_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2035_1 +# 2036| r2036_1(glval) = VariableAddress[x672] : +# 2036| r2036_2(glval) = FunctionAddress[~String] : +# 2036| v2036_3(void) = Call[~String] : func:r2036_2, this:r2036_1 +# 2036| mu2036_4(unknown) = ^CallSideEffect : ~m? +# 2036| v2036_5(void) = ^IndirectReadSideEffect[-1] : &:r2036_1, ~m? +# 2036| mu2036_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2036_1 +# 2036| r2036_7(bool) = Constant[0] : +# 2036| v2036_8(void) = ConditionalBranch : r2036_7 +#-----| False -> Block 673 +#-----| True -> Block 1026 + +# 2038| Block 673 +# 2038| r2038_1(glval) = VariableAddress[x673] : +# 2038| mu2038_2(String) = Uninitialized[x673] : &:r2038_1 +# 2038| r2038_3(glval) = FunctionAddress[String] : +# 2038| v2038_4(void) = Call[String] : func:r2038_3, this:r2038_1 +# 2038| mu2038_5(unknown) = ^CallSideEffect : ~m? +# 2038| mu2038_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2038_1 +# 2039| r2039_1(glval) = VariableAddress[x673] : +# 2039| r2039_2(glval) = FunctionAddress[~String] : +# 2039| v2039_3(void) = Call[~String] : func:r2039_2, this:r2039_1 +# 2039| mu2039_4(unknown) = ^CallSideEffect : ~m? +# 2039| v2039_5(void) = ^IndirectReadSideEffect[-1] : &:r2039_1, ~m? +# 2039| mu2039_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2039_1 +# 2039| r2039_7(bool) = Constant[0] : +# 2039| v2039_8(void) = ConditionalBranch : r2039_7 +#-----| False -> Block 674 +#-----| True -> Block 1026 + +# 2041| Block 674 +# 2041| r2041_1(glval) = VariableAddress[x674] : +# 2041| mu2041_2(String) = Uninitialized[x674] : &:r2041_1 +# 2041| r2041_3(glval) = FunctionAddress[String] : +# 2041| v2041_4(void) = Call[String] : func:r2041_3, this:r2041_1 +# 2041| mu2041_5(unknown) = ^CallSideEffect : ~m? +# 2041| mu2041_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2041_1 +# 2042| r2042_1(glval) = VariableAddress[x674] : +# 2042| r2042_2(glval) = FunctionAddress[~String] : +# 2042| v2042_3(void) = Call[~String] : func:r2042_2, this:r2042_1 +# 2042| mu2042_4(unknown) = ^CallSideEffect : ~m? +# 2042| v2042_5(void) = ^IndirectReadSideEffect[-1] : &:r2042_1, ~m? +# 2042| mu2042_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2042_1 +# 2042| r2042_7(bool) = Constant[0] : +# 2042| v2042_8(void) = ConditionalBranch : r2042_7 +#-----| False -> Block 675 +#-----| True -> Block 1026 + +# 2044| Block 675 +# 2044| r2044_1(glval) = VariableAddress[x675] : +# 2044| mu2044_2(String) = Uninitialized[x675] : &:r2044_1 +# 2044| r2044_3(glval) = FunctionAddress[String] : +# 2044| v2044_4(void) = Call[String] : func:r2044_3, this:r2044_1 +# 2044| mu2044_5(unknown) = ^CallSideEffect : ~m? +# 2044| mu2044_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2044_1 +# 2045| r2045_1(glval) = VariableAddress[x675] : +# 2045| r2045_2(glval) = FunctionAddress[~String] : +# 2045| v2045_3(void) = Call[~String] : func:r2045_2, this:r2045_1 +# 2045| mu2045_4(unknown) = ^CallSideEffect : ~m? +# 2045| v2045_5(void) = ^IndirectReadSideEffect[-1] : &:r2045_1, ~m? +# 2045| mu2045_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2045_1 +# 2045| r2045_7(bool) = Constant[0] : +# 2045| v2045_8(void) = ConditionalBranch : r2045_7 +#-----| False -> Block 676 +#-----| True -> Block 1026 + +# 2047| Block 676 +# 2047| r2047_1(glval) = VariableAddress[x676] : +# 2047| mu2047_2(String) = Uninitialized[x676] : &:r2047_1 +# 2047| r2047_3(glval) = FunctionAddress[String] : +# 2047| v2047_4(void) = Call[String] : func:r2047_3, this:r2047_1 +# 2047| mu2047_5(unknown) = ^CallSideEffect : ~m? +# 2047| mu2047_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2047_1 +# 2048| r2048_1(glval) = VariableAddress[x676] : +# 2048| r2048_2(glval) = FunctionAddress[~String] : +# 2048| v2048_3(void) = Call[~String] : func:r2048_2, this:r2048_1 +# 2048| mu2048_4(unknown) = ^CallSideEffect : ~m? +# 2048| v2048_5(void) = ^IndirectReadSideEffect[-1] : &:r2048_1, ~m? +# 2048| mu2048_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2048_1 +# 2048| r2048_7(bool) = Constant[0] : +# 2048| v2048_8(void) = ConditionalBranch : r2048_7 +#-----| False -> Block 677 +#-----| True -> Block 1026 + +# 2050| Block 677 +# 2050| r2050_1(glval) = VariableAddress[x677] : +# 2050| mu2050_2(String) = Uninitialized[x677] : &:r2050_1 +# 2050| r2050_3(glval) = FunctionAddress[String] : +# 2050| v2050_4(void) = Call[String] : func:r2050_3, this:r2050_1 +# 2050| mu2050_5(unknown) = ^CallSideEffect : ~m? +# 2050| mu2050_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2050_1 +# 2051| r2051_1(glval) = VariableAddress[x677] : +# 2051| r2051_2(glval) = FunctionAddress[~String] : +# 2051| v2051_3(void) = Call[~String] : func:r2051_2, this:r2051_1 +# 2051| mu2051_4(unknown) = ^CallSideEffect : ~m? +# 2051| v2051_5(void) = ^IndirectReadSideEffect[-1] : &:r2051_1, ~m? +# 2051| mu2051_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2051_1 +# 2051| r2051_7(bool) = Constant[0] : +# 2051| v2051_8(void) = ConditionalBranch : r2051_7 +#-----| False -> Block 678 +#-----| True -> Block 1026 + +# 2053| Block 678 +# 2053| r2053_1(glval) = VariableAddress[x678] : +# 2053| mu2053_2(String) = Uninitialized[x678] : &:r2053_1 +# 2053| r2053_3(glval) = FunctionAddress[String] : +# 2053| v2053_4(void) = Call[String] : func:r2053_3, this:r2053_1 +# 2053| mu2053_5(unknown) = ^CallSideEffect : ~m? +# 2053| mu2053_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2053_1 +# 2054| r2054_1(glval) = VariableAddress[x678] : +# 2054| r2054_2(glval) = FunctionAddress[~String] : +# 2054| v2054_3(void) = Call[~String] : func:r2054_2, this:r2054_1 +# 2054| mu2054_4(unknown) = ^CallSideEffect : ~m? +# 2054| v2054_5(void) = ^IndirectReadSideEffect[-1] : &:r2054_1, ~m? +# 2054| mu2054_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2054_1 +# 2054| r2054_7(bool) = Constant[0] : +# 2054| v2054_8(void) = ConditionalBranch : r2054_7 +#-----| False -> Block 679 +#-----| True -> Block 1026 + +# 2056| Block 679 +# 2056| r2056_1(glval) = VariableAddress[x679] : +# 2056| mu2056_2(String) = Uninitialized[x679] : &:r2056_1 +# 2056| r2056_3(glval) = FunctionAddress[String] : +# 2056| v2056_4(void) = Call[String] : func:r2056_3, this:r2056_1 +# 2056| mu2056_5(unknown) = ^CallSideEffect : ~m? +# 2056| mu2056_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2056_1 +# 2057| r2057_1(glval) = VariableAddress[x679] : +# 2057| r2057_2(glval) = FunctionAddress[~String] : +# 2057| v2057_3(void) = Call[~String] : func:r2057_2, this:r2057_1 +# 2057| mu2057_4(unknown) = ^CallSideEffect : ~m? +# 2057| v2057_5(void) = ^IndirectReadSideEffect[-1] : &:r2057_1, ~m? +# 2057| mu2057_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2057_1 +# 2057| r2057_7(bool) = Constant[0] : +# 2057| v2057_8(void) = ConditionalBranch : r2057_7 +#-----| False -> Block 680 +#-----| True -> Block 1026 + +# 2059| Block 680 +# 2059| r2059_1(glval) = VariableAddress[x680] : +# 2059| mu2059_2(String) = Uninitialized[x680] : &:r2059_1 +# 2059| r2059_3(glval) = FunctionAddress[String] : +# 2059| v2059_4(void) = Call[String] : func:r2059_3, this:r2059_1 +# 2059| mu2059_5(unknown) = ^CallSideEffect : ~m? +# 2059| mu2059_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2059_1 +# 2060| r2060_1(glval) = VariableAddress[x680] : +# 2060| r2060_2(glval) = FunctionAddress[~String] : +# 2060| v2060_3(void) = Call[~String] : func:r2060_2, this:r2060_1 +# 2060| mu2060_4(unknown) = ^CallSideEffect : ~m? +# 2060| v2060_5(void) = ^IndirectReadSideEffect[-1] : &:r2060_1, ~m? +# 2060| mu2060_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2060_1 +# 2060| r2060_7(bool) = Constant[0] : +# 2060| v2060_8(void) = ConditionalBranch : r2060_7 +#-----| False -> Block 681 +#-----| True -> Block 1026 + +# 2062| Block 681 +# 2062| r2062_1(glval) = VariableAddress[x681] : +# 2062| mu2062_2(String) = Uninitialized[x681] : &:r2062_1 +# 2062| r2062_3(glval) = FunctionAddress[String] : +# 2062| v2062_4(void) = Call[String] : func:r2062_3, this:r2062_1 +# 2062| mu2062_5(unknown) = ^CallSideEffect : ~m? +# 2062| mu2062_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2062_1 +# 2063| r2063_1(glval) = VariableAddress[x681] : +# 2063| r2063_2(glval) = FunctionAddress[~String] : +# 2063| v2063_3(void) = Call[~String] : func:r2063_2, this:r2063_1 +# 2063| mu2063_4(unknown) = ^CallSideEffect : ~m? +# 2063| v2063_5(void) = ^IndirectReadSideEffect[-1] : &:r2063_1, ~m? +# 2063| mu2063_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2063_1 +# 2063| r2063_7(bool) = Constant[0] : +# 2063| v2063_8(void) = ConditionalBranch : r2063_7 +#-----| False -> Block 682 +#-----| True -> Block 1026 + +# 2065| Block 682 +# 2065| r2065_1(glval) = VariableAddress[x682] : +# 2065| mu2065_2(String) = Uninitialized[x682] : &:r2065_1 +# 2065| r2065_3(glval) = FunctionAddress[String] : +# 2065| v2065_4(void) = Call[String] : func:r2065_3, this:r2065_1 +# 2065| mu2065_5(unknown) = ^CallSideEffect : ~m? +# 2065| mu2065_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2065_1 +# 2066| r2066_1(glval) = VariableAddress[x682] : +# 2066| r2066_2(glval) = FunctionAddress[~String] : +# 2066| v2066_3(void) = Call[~String] : func:r2066_2, this:r2066_1 +# 2066| mu2066_4(unknown) = ^CallSideEffect : ~m? +# 2066| v2066_5(void) = ^IndirectReadSideEffect[-1] : &:r2066_1, ~m? +# 2066| mu2066_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2066_1 +# 2066| r2066_7(bool) = Constant[0] : +# 2066| v2066_8(void) = ConditionalBranch : r2066_7 +#-----| False -> Block 683 +#-----| True -> Block 1026 + +# 2068| Block 683 +# 2068| r2068_1(glval) = VariableAddress[x683] : +# 2068| mu2068_2(String) = Uninitialized[x683] : &:r2068_1 +# 2068| r2068_3(glval) = FunctionAddress[String] : +# 2068| v2068_4(void) = Call[String] : func:r2068_3, this:r2068_1 +# 2068| mu2068_5(unknown) = ^CallSideEffect : ~m? +# 2068| mu2068_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2068_1 +# 2069| r2069_1(glval) = VariableAddress[x683] : +# 2069| r2069_2(glval) = FunctionAddress[~String] : +# 2069| v2069_3(void) = Call[~String] : func:r2069_2, this:r2069_1 +# 2069| mu2069_4(unknown) = ^CallSideEffect : ~m? +# 2069| v2069_5(void) = ^IndirectReadSideEffect[-1] : &:r2069_1, ~m? +# 2069| mu2069_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2069_1 +# 2069| r2069_7(bool) = Constant[0] : +# 2069| v2069_8(void) = ConditionalBranch : r2069_7 +#-----| False -> Block 684 +#-----| True -> Block 1026 + +# 2071| Block 684 +# 2071| r2071_1(glval) = VariableAddress[x684] : +# 2071| mu2071_2(String) = Uninitialized[x684] : &:r2071_1 +# 2071| r2071_3(glval) = FunctionAddress[String] : +# 2071| v2071_4(void) = Call[String] : func:r2071_3, this:r2071_1 +# 2071| mu2071_5(unknown) = ^CallSideEffect : ~m? +# 2071| mu2071_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2071_1 +# 2072| r2072_1(glval) = VariableAddress[x684] : +# 2072| r2072_2(glval) = FunctionAddress[~String] : +# 2072| v2072_3(void) = Call[~String] : func:r2072_2, this:r2072_1 +# 2072| mu2072_4(unknown) = ^CallSideEffect : ~m? +# 2072| v2072_5(void) = ^IndirectReadSideEffect[-1] : &:r2072_1, ~m? +# 2072| mu2072_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2072_1 +# 2072| r2072_7(bool) = Constant[0] : +# 2072| v2072_8(void) = ConditionalBranch : r2072_7 +#-----| False -> Block 685 +#-----| True -> Block 1026 + +# 2074| Block 685 +# 2074| r2074_1(glval) = VariableAddress[x685] : +# 2074| mu2074_2(String) = Uninitialized[x685] : &:r2074_1 +# 2074| r2074_3(glval) = FunctionAddress[String] : +# 2074| v2074_4(void) = Call[String] : func:r2074_3, this:r2074_1 +# 2074| mu2074_5(unknown) = ^CallSideEffect : ~m? +# 2074| mu2074_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2074_1 +# 2075| r2075_1(glval) = VariableAddress[x685] : +# 2075| r2075_2(glval) = FunctionAddress[~String] : +# 2075| v2075_3(void) = Call[~String] : func:r2075_2, this:r2075_1 +# 2075| mu2075_4(unknown) = ^CallSideEffect : ~m? +# 2075| v2075_5(void) = ^IndirectReadSideEffect[-1] : &:r2075_1, ~m? +# 2075| mu2075_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2075_1 +# 2075| r2075_7(bool) = Constant[0] : +# 2075| v2075_8(void) = ConditionalBranch : r2075_7 +#-----| False -> Block 686 +#-----| True -> Block 1026 + +# 2077| Block 686 +# 2077| r2077_1(glval) = VariableAddress[x686] : +# 2077| mu2077_2(String) = Uninitialized[x686] : &:r2077_1 +# 2077| r2077_3(glval) = FunctionAddress[String] : +# 2077| v2077_4(void) = Call[String] : func:r2077_3, this:r2077_1 +# 2077| mu2077_5(unknown) = ^CallSideEffect : ~m? +# 2077| mu2077_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2077_1 +# 2078| r2078_1(glval) = VariableAddress[x686] : +# 2078| r2078_2(glval) = FunctionAddress[~String] : +# 2078| v2078_3(void) = Call[~String] : func:r2078_2, this:r2078_1 +# 2078| mu2078_4(unknown) = ^CallSideEffect : ~m? +# 2078| v2078_5(void) = ^IndirectReadSideEffect[-1] : &:r2078_1, ~m? +# 2078| mu2078_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2078_1 +# 2078| r2078_7(bool) = Constant[0] : +# 2078| v2078_8(void) = ConditionalBranch : r2078_7 +#-----| False -> Block 687 +#-----| True -> Block 1026 + +# 2080| Block 687 +# 2080| r2080_1(glval) = VariableAddress[x687] : +# 2080| mu2080_2(String) = Uninitialized[x687] : &:r2080_1 +# 2080| r2080_3(glval) = FunctionAddress[String] : +# 2080| v2080_4(void) = Call[String] : func:r2080_3, this:r2080_1 +# 2080| mu2080_5(unknown) = ^CallSideEffect : ~m? +# 2080| mu2080_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2080_1 +# 2081| r2081_1(glval) = VariableAddress[x687] : +# 2081| r2081_2(glval) = FunctionAddress[~String] : +# 2081| v2081_3(void) = Call[~String] : func:r2081_2, this:r2081_1 +# 2081| mu2081_4(unknown) = ^CallSideEffect : ~m? +# 2081| v2081_5(void) = ^IndirectReadSideEffect[-1] : &:r2081_1, ~m? +# 2081| mu2081_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2081_1 +# 2081| r2081_7(bool) = Constant[0] : +# 2081| v2081_8(void) = ConditionalBranch : r2081_7 +#-----| False -> Block 688 +#-----| True -> Block 1026 + +# 2083| Block 688 +# 2083| r2083_1(glval) = VariableAddress[x688] : +# 2083| mu2083_2(String) = Uninitialized[x688] : &:r2083_1 +# 2083| r2083_3(glval) = FunctionAddress[String] : +# 2083| v2083_4(void) = Call[String] : func:r2083_3, this:r2083_1 +# 2083| mu2083_5(unknown) = ^CallSideEffect : ~m? +# 2083| mu2083_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 +# 2084| r2084_1(glval) = VariableAddress[x688] : +# 2084| r2084_2(glval) = FunctionAddress[~String] : +# 2084| v2084_3(void) = Call[~String] : func:r2084_2, this:r2084_1 +# 2084| mu2084_4(unknown) = ^CallSideEffect : ~m? +# 2084| v2084_5(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, ~m? +# 2084| mu2084_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 +# 2084| r2084_7(bool) = Constant[0] : +# 2084| v2084_8(void) = ConditionalBranch : r2084_7 +#-----| False -> Block 689 +#-----| True -> Block 1026 + +# 2086| Block 689 +# 2086| r2086_1(glval) = VariableAddress[x689] : +# 2086| mu2086_2(String) = Uninitialized[x689] : &:r2086_1 +# 2086| r2086_3(glval) = FunctionAddress[String] : +# 2086| v2086_4(void) = Call[String] : func:r2086_3, this:r2086_1 +# 2086| mu2086_5(unknown) = ^CallSideEffect : ~m? +# 2086| mu2086_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2086_1 +# 2087| r2087_1(glval) = VariableAddress[x689] : +# 2087| r2087_2(glval) = FunctionAddress[~String] : +# 2087| v2087_3(void) = Call[~String] : func:r2087_2, this:r2087_1 +# 2087| mu2087_4(unknown) = ^CallSideEffect : ~m? +# 2087| v2087_5(void) = ^IndirectReadSideEffect[-1] : &:r2087_1, ~m? +# 2087| mu2087_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2087_1 +# 2087| r2087_7(bool) = Constant[0] : +# 2087| v2087_8(void) = ConditionalBranch : r2087_7 +#-----| False -> Block 690 +#-----| True -> Block 1026 + +# 2089| Block 690 +# 2089| r2089_1(glval) = VariableAddress[x690] : +# 2089| mu2089_2(String) = Uninitialized[x690] : &:r2089_1 +# 2089| r2089_3(glval) = FunctionAddress[String] : +# 2089| v2089_4(void) = Call[String] : func:r2089_3, this:r2089_1 +# 2089| mu2089_5(unknown) = ^CallSideEffect : ~m? +# 2089| mu2089_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2089_1 +# 2090| r2090_1(glval) = VariableAddress[x690] : +# 2090| r2090_2(glval) = FunctionAddress[~String] : +# 2090| v2090_3(void) = Call[~String] : func:r2090_2, this:r2090_1 +# 2090| mu2090_4(unknown) = ^CallSideEffect : ~m? +# 2090| v2090_5(void) = ^IndirectReadSideEffect[-1] : &:r2090_1, ~m? +# 2090| mu2090_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2090_1 +# 2090| r2090_7(bool) = Constant[0] : +# 2090| v2090_8(void) = ConditionalBranch : r2090_7 +#-----| False -> Block 691 +#-----| True -> Block 1026 + +# 2092| Block 691 +# 2092| r2092_1(glval) = VariableAddress[x691] : +# 2092| mu2092_2(String) = Uninitialized[x691] : &:r2092_1 +# 2092| r2092_3(glval) = FunctionAddress[String] : +# 2092| v2092_4(void) = Call[String] : func:r2092_3, this:r2092_1 +# 2092| mu2092_5(unknown) = ^CallSideEffect : ~m? +# 2092| mu2092_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2092_1 +# 2093| r2093_1(glval) = VariableAddress[x691] : +# 2093| r2093_2(glval) = FunctionAddress[~String] : +# 2093| v2093_3(void) = Call[~String] : func:r2093_2, this:r2093_1 +# 2093| mu2093_4(unknown) = ^CallSideEffect : ~m? +# 2093| v2093_5(void) = ^IndirectReadSideEffect[-1] : &:r2093_1, ~m? +# 2093| mu2093_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2093_1 +# 2093| r2093_7(bool) = Constant[0] : +# 2093| v2093_8(void) = ConditionalBranch : r2093_7 +#-----| False -> Block 692 +#-----| True -> Block 1026 + +# 2095| Block 692 +# 2095| r2095_1(glval) = VariableAddress[x692] : +# 2095| mu2095_2(String) = Uninitialized[x692] : &:r2095_1 +# 2095| r2095_3(glval) = FunctionAddress[String] : +# 2095| v2095_4(void) = Call[String] : func:r2095_3, this:r2095_1 +# 2095| mu2095_5(unknown) = ^CallSideEffect : ~m? +# 2095| mu2095_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2095_1 +# 2096| r2096_1(glval) = VariableAddress[x692] : +# 2096| r2096_2(glval) = FunctionAddress[~String] : +# 2096| v2096_3(void) = Call[~String] : func:r2096_2, this:r2096_1 +# 2096| mu2096_4(unknown) = ^CallSideEffect : ~m? +# 2096| v2096_5(void) = ^IndirectReadSideEffect[-1] : &:r2096_1, ~m? +# 2096| mu2096_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2096_1 +# 2096| r2096_7(bool) = Constant[0] : +# 2096| v2096_8(void) = ConditionalBranch : r2096_7 +#-----| False -> Block 693 +#-----| True -> Block 1026 + +# 2098| Block 693 +# 2098| r2098_1(glval) = VariableAddress[x693] : +# 2098| mu2098_2(String) = Uninitialized[x693] : &:r2098_1 +# 2098| r2098_3(glval) = FunctionAddress[String] : +# 2098| v2098_4(void) = Call[String] : func:r2098_3, this:r2098_1 +# 2098| mu2098_5(unknown) = ^CallSideEffect : ~m? +# 2098| mu2098_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2098_1 +# 2099| r2099_1(glval) = VariableAddress[x693] : +# 2099| r2099_2(glval) = FunctionAddress[~String] : +# 2099| v2099_3(void) = Call[~String] : func:r2099_2, this:r2099_1 +# 2099| mu2099_4(unknown) = ^CallSideEffect : ~m? +# 2099| v2099_5(void) = ^IndirectReadSideEffect[-1] : &:r2099_1, ~m? +# 2099| mu2099_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2099_1 +# 2099| r2099_7(bool) = Constant[0] : +# 2099| v2099_8(void) = ConditionalBranch : r2099_7 +#-----| False -> Block 694 +#-----| True -> Block 1026 + +# 2101| Block 694 +# 2101| r2101_1(glval) = VariableAddress[x694] : +# 2101| mu2101_2(String) = Uninitialized[x694] : &:r2101_1 +# 2101| r2101_3(glval) = FunctionAddress[String] : +# 2101| v2101_4(void) = Call[String] : func:r2101_3, this:r2101_1 +# 2101| mu2101_5(unknown) = ^CallSideEffect : ~m? +# 2101| mu2101_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2101_1 +# 2102| r2102_1(glval) = VariableAddress[x694] : +# 2102| r2102_2(glval) = FunctionAddress[~String] : +# 2102| v2102_3(void) = Call[~String] : func:r2102_2, this:r2102_1 +# 2102| mu2102_4(unknown) = ^CallSideEffect : ~m? +# 2102| v2102_5(void) = ^IndirectReadSideEffect[-1] : &:r2102_1, ~m? +# 2102| mu2102_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2102_1 +# 2102| r2102_7(bool) = Constant[0] : +# 2102| v2102_8(void) = ConditionalBranch : r2102_7 +#-----| False -> Block 695 +#-----| True -> Block 1026 + +# 2104| Block 695 +# 2104| r2104_1(glval) = VariableAddress[x695] : +# 2104| mu2104_2(String) = Uninitialized[x695] : &:r2104_1 +# 2104| r2104_3(glval) = FunctionAddress[String] : +# 2104| v2104_4(void) = Call[String] : func:r2104_3, this:r2104_1 +# 2104| mu2104_5(unknown) = ^CallSideEffect : ~m? +# 2104| mu2104_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2104_1 +# 2105| r2105_1(glval) = VariableAddress[x695] : +# 2105| r2105_2(glval) = FunctionAddress[~String] : +# 2105| v2105_3(void) = Call[~String] : func:r2105_2, this:r2105_1 +# 2105| mu2105_4(unknown) = ^CallSideEffect : ~m? +# 2105| v2105_5(void) = ^IndirectReadSideEffect[-1] : &:r2105_1, ~m? +# 2105| mu2105_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2105_1 +# 2105| r2105_7(bool) = Constant[0] : +# 2105| v2105_8(void) = ConditionalBranch : r2105_7 +#-----| False -> Block 696 +#-----| True -> Block 1026 + +# 2107| Block 696 +# 2107| r2107_1(glval) = VariableAddress[x696] : +# 2107| mu2107_2(String) = Uninitialized[x696] : &:r2107_1 +# 2107| r2107_3(glval) = FunctionAddress[String] : +# 2107| v2107_4(void) = Call[String] : func:r2107_3, this:r2107_1 +# 2107| mu2107_5(unknown) = ^CallSideEffect : ~m? +# 2107| mu2107_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2107_1 +# 2108| r2108_1(glval) = VariableAddress[x696] : +# 2108| r2108_2(glval) = FunctionAddress[~String] : +# 2108| v2108_3(void) = Call[~String] : func:r2108_2, this:r2108_1 +# 2108| mu2108_4(unknown) = ^CallSideEffect : ~m? +# 2108| v2108_5(void) = ^IndirectReadSideEffect[-1] : &:r2108_1, ~m? +# 2108| mu2108_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2108_1 +# 2108| r2108_7(bool) = Constant[0] : +# 2108| v2108_8(void) = ConditionalBranch : r2108_7 +#-----| False -> Block 697 +#-----| True -> Block 1026 + +# 2110| Block 697 +# 2110| r2110_1(glval) = VariableAddress[x697] : +# 2110| mu2110_2(String) = Uninitialized[x697] : &:r2110_1 +# 2110| r2110_3(glval) = FunctionAddress[String] : +# 2110| v2110_4(void) = Call[String] : func:r2110_3, this:r2110_1 +# 2110| mu2110_5(unknown) = ^CallSideEffect : ~m? +# 2110| mu2110_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2110_1 +# 2111| r2111_1(glval) = VariableAddress[x697] : +# 2111| r2111_2(glval) = FunctionAddress[~String] : +# 2111| v2111_3(void) = Call[~String] : func:r2111_2, this:r2111_1 +# 2111| mu2111_4(unknown) = ^CallSideEffect : ~m? +# 2111| v2111_5(void) = ^IndirectReadSideEffect[-1] : &:r2111_1, ~m? +# 2111| mu2111_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2111_1 +# 2111| r2111_7(bool) = Constant[0] : +# 2111| v2111_8(void) = ConditionalBranch : r2111_7 +#-----| False -> Block 698 +#-----| True -> Block 1026 + +# 2113| Block 698 +# 2113| r2113_1(glval) = VariableAddress[x698] : +# 2113| mu2113_2(String) = Uninitialized[x698] : &:r2113_1 +# 2113| r2113_3(glval) = FunctionAddress[String] : +# 2113| v2113_4(void) = Call[String] : func:r2113_3, this:r2113_1 +# 2113| mu2113_5(unknown) = ^CallSideEffect : ~m? +# 2113| mu2113_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2113_1 +# 2114| r2114_1(glval) = VariableAddress[x698] : +# 2114| r2114_2(glval) = FunctionAddress[~String] : +# 2114| v2114_3(void) = Call[~String] : func:r2114_2, this:r2114_1 +# 2114| mu2114_4(unknown) = ^CallSideEffect : ~m? +# 2114| v2114_5(void) = ^IndirectReadSideEffect[-1] : &:r2114_1, ~m? +# 2114| mu2114_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2114_1 +# 2114| r2114_7(bool) = Constant[0] : +# 2114| v2114_8(void) = ConditionalBranch : r2114_7 +#-----| False -> Block 699 +#-----| True -> Block 1026 + +# 2116| Block 699 +# 2116| r2116_1(glval) = VariableAddress[x699] : +# 2116| mu2116_2(String) = Uninitialized[x699] : &:r2116_1 +# 2116| r2116_3(glval) = FunctionAddress[String] : +# 2116| v2116_4(void) = Call[String] : func:r2116_3, this:r2116_1 +# 2116| mu2116_5(unknown) = ^CallSideEffect : ~m? +# 2116| mu2116_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2116_1 +# 2117| r2117_1(glval) = VariableAddress[x699] : +# 2117| r2117_2(glval) = FunctionAddress[~String] : +# 2117| v2117_3(void) = Call[~String] : func:r2117_2, this:r2117_1 +# 2117| mu2117_4(unknown) = ^CallSideEffect : ~m? +# 2117| v2117_5(void) = ^IndirectReadSideEffect[-1] : &:r2117_1, ~m? +# 2117| mu2117_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2117_1 +# 2117| r2117_7(bool) = Constant[0] : +# 2117| v2117_8(void) = ConditionalBranch : r2117_7 +#-----| False -> Block 700 +#-----| True -> Block 1026 + +# 2119| Block 700 +# 2119| r2119_1(glval) = VariableAddress[x700] : +# 2119| mu2119_2(String) = Uninitialized[x700] : &:r2119_1 +# 2119| r2119_3(glval) = FunctionAddress[String] : +# 2119| v2119_4(void) = Call[String] : func:r2119_3, this:r2119_1 +# 2119| mu2119_5(unknown) = ^CallSideEffect : ~m? +# 2119| mu2119_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2119_1 +# 2120| r2120_1(glval) = VariableAddress[x700] : +# 2120| r2120_2(glval) = FunctionAddress[~String] : +# 2120| v2120_3(void) = Call[~String] : func:r2120_2, this:r2120_1 +# 2120| mu2120_4(unknown) = ^CallSideEffect : ~m? +# 2120| v2120_5(void) = ^IndirectReadSideEffect[-1] : &:r2120_1, ~m? +# 2120| mu2120_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2120_1 +# 2120| r2120_7(bool) = Constant[0] : +# 2120| v2120_8(void) = ConditionalBranch : r2120_7 +#-----| False -> Block 701 +#-----| True -> Block 1026 + +# 2122| Block 701 +# 2122| r2122_1(glval) = VariableAddress[x701] : +# 2122| mu2122_2(String) = Uninitialized[x701] : &:r2122_1 +# 2122| r2122_3(glval) = FunctionAddress[String] : +# 2122| v2122_4(void) = Call[String] : func:r2122_3, this:r2122_1 +# 2122| mu2122_5(unknown) = ^CallSideEffect : ~m? +# 2122| mu2122_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2122_1 +# 2123| r2123_1(glval) = VariableAddress[x701] : +# 2123| r2123_2(glval) = FunctionAddress[~String] : +# 2123| v2123_3(void) = Call[~String] : func:r2123_2, this:r2123_1 +# 2123| mu2123_4(unknown) = ^CallSideEffect : ~m? +# 2123| v2123_5(void) = ^IndirectReadSideEffect[-1] : &:r2123_1, ~m? +# 2123| mu2123_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2123_1 +# 2123| r2123_7(bool) = Constant[0] : +# 2123| v2123_8(void) = ConditionalBranch : r2123_7 +#-----| False -> Block 702 +#-----| True -> Block 1026 + +# 2125| Block 702 +# 2125| r2125_1(glval) = VariableAddress[x702] : +# 2125| mu2125_2(String) = Uninitialized[x702] : &:r2125_1 +# 2125| r2125_3(glval) = FunctionAddress[String] : +# 2125| v2125_4(void) = Call[String] : func:r2125_3, this:r2125_1 +# 2125| mu2125_5(unknown) = ^CallSideEffect : ~m? +# 2125| mu2125_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2125_1 +# 2126| r2126_1(glval) = VariableAddress[x702] : +# 2126| r2126_2(glval) = FunctionAddress[~String] : +# 2126| v2126_3(void) = Call[~String] : func:r2126_2, this:r2126_1 +# 2126| mu2126_4(unknown) = ^CallSideEffect : ~m? +# 2126| v2126_5(void) = ^IndirectReadSideEffect[-1] : &:r2126_1, ~m? +# 2126| mu2126_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2126_1 +# 2126| r2126_7(bool) = Constant[0] : +# 2126| v2126_8(void) = ConditionalBranch : r2126_7 +#-----| False -> Block 703 +#-----| True -> Block 1026 + +# 2128| Block 703 +# 2128| r2128_1(glval) = VariableAddress[x703] : +# 2128| mu2128_2(String) = Uninitialized[x703] : &:r2128_1 +# 2128| r2128_3(glval) = FunctionAddress[String] : +# 2128| v2128_4(void) = Call[String] : func:r2128_3, this:r2128_1 +# 2128| mu2128_5(unknown) = ^CallSideEffect : ~m? +# 2128| mu2128_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2128_1 +# 2129| r2129_1(glval) = VariableAddress[x703] : +# 2129| r2129_2(glval) = FunctionAddress[~String] : +# 2129| v2129_3(void) = Call[~String] : func:r2129_2, this:r2129_1 +# 2129| mu2129_4(unknown) = ^CallSideEffect : ~m? +# 2129| v2129_5(void) = ^IndirectReadSideEffect[-1] : &:r2129_1, ~m? +# 2129| mu2129_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2129_1 +# 2129| r2129_7(bool) = Constant[0] : +# 2129| v2129_8(void) = ConditionalBranch : r2129_7 +#-----| False -> Block 704 +#-----| True -> Block 1026 + +# 2131| Block 704 +# 2131| r2131_1(glval) = VariableAddress[x704] : +# 2131| mu2131_2(String) = Uninitialized[x704] : &:r2131_1 +# 2131| r2131_3(glval) = FunctionAddress[String] : +# 2131| v2131_4(void) = Call[String] : func:r2131_3, this:r2131_1 +# 2131| mu2131_5(unknown) = ^CallSideEffect : ~m? +# 2131| mu2131_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2131_1 +# 2132| r2132_1(glval) = VariableAddress[x704] : +# 2132| r2132_2(glval) = FunctionAddress[~String] : +# 2132| v2132_3(void) = Call[~String] : func:r2132_2, this:r2132_1 +# 2132| mu2132_4(unknown) = ^CallSideEffect : ~m? +# 2132| v2132_5(void) = ^IndirectReadSideEffect[-1] : &:r2132_1, ~m? +# 2132| mu2132_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2132_1 +# 2132| r2132_7(bool) = Constant[0] : +# 2132| v2132_8(void) = ConditionalBranch : r2132_7 +#-----| False -> Block 705 +#-----| True -> Block 1026 + +# 2134| Block 705 +# 2134| r2134_1(glval) = VariableAddress[x705] : +# 2134| mu2134_2(String) = Uninitialized[x705] : &:r2134_1 +# 2134| r2134_3(glval) = FunctionAddress[String] : +# 2134| v2134_4(void) = Call[String] : func:r2134_3, this:r2134_1 +# 2134| mu2134_5(unknown) = ^CallSideEffect : ~m? +# 2134| mu2134_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2134_1 +# 2135| r2135_1(glval) = VariableAddress[x705] : +# 2135| r2135_2(glval) = FunctionAddress[~String] : +# 2135| v2135_3(void) = Call[~String] : func:r2135_2, this:r2135_1 +# 2135| mu2135_4(unknown) = ^CallSideEffect : ~m? +# 2135| v2135_5(void) = ^IndirectReadSideEffect[-1] : &:r2135_1, ~m? +# 2135| mu2135_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2135_1 +# 2135| r2135_7(bool) = Constant[0] : +# 2135| v2135_8(void) = ConditionalBranch : r2135_7 +#-----| False -> Block 706 +#-----| True -> Block 1026 + +# 2137| Block 706 +# 2137| r2137_1(glval) = VariableAddress[x706] : +# 2137| mu2137_2(String) = Uninitialized[x706] : &:r2137_1 +# 2137| r2137_3(glval) = FunctionAddress[String] : +# 2137| v2137_4(void) = Call[String] : func:r2137_3, this:r2137_1 +# 2137| mu2137_5(unknown) = ^CallSideEffect : ~m? +# 2137| mu2137_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2137_1 +# 2138| r2138_1(glval) = VariableAddress[x706] : +# 2138| r2138_2(glval) = FunctionAddress[~String] : +# 2138| v2138_3(void) = Call[~String] : func:r2138_2, this:r2138_1 +# 2138| mu2138_4(unknown) = ^CallSideEffect : ~m? +# 2138| v2138_5(void) = ^IndirectReadSideEffect[-1] : &:r2138_1, ~m? +# 2138| mu2138_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1 +# 2138| r2138_7(bool) = Constant[0] : +# 2138| v2138_8(void) = ConditionalBranch : r2138_7 +#-----| False -> Block 707 +#-----| True -> Block 1026 + +# 2140| Block 707 +# 2140| r2140_1(glval) = VariableAddress[x707] : +# 2140| mu2140_2(String) = Uninitialized[x707] : &:r2140_1 +# 2140| r2140_3(glval) = FunctionAddress[String] : +# 2140| v2140_4(void) = Call[String] : func:r2140_3, this:r2140_1 +# 2140| mu2140_5(unknown) = ^CallSideEffect : ~m? +# 2140| mu2140_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2140_1 +# 2141| r2141_1(glval) = VariableAddress[x707] : +# 2141| r2141_2(glval) = FunctionAddress[~String] : +# 2141| v2141_3(void) = Call[~String] : func:r2141_2, this:r2141_1 +# 2141| mu2141_4(unknown) = ^CallSideEffect : ~m? +# 2141| v2141_5(void) = ^IndirectReadSideEffect[-1] : &:r2141_1, ~m? +# 2141| mu2141_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2141_1 +# 2141| r2141_7(bool) = Constant[0] : +# 2141| v2141_8(void) = ConditionalBranch : r2141_7 +#-----| False -> Block 708 +#-----| True -> Block 1026 + +# 2143| Block 708 +# 2143| r2143_1(glval) = VariableAddress[x708] : +# 2143| mu2143_2(String) = Uninitialized[x708] : &:r2143_1 +# 2143| r2143_3(glval) = FunctionAddress[String] : +# 2143| v2143_4(void) = Call[String] : func:r2143_3, this:r2143_1 +# 2143| mu2143_5(unknown) = ^CallSideEffect : ~m? +# 2143| mu2143_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2143_1 +# 2144| r2144_1(glval) = VariableAddress[x708] : +# 2144| r2144_2(glval) = FunctionAddress[~String] : +# 2144| v2144_3(void) = Call[~String] : func:r2144_2, this:r2144_1 +# 2144| mu2144_4(unknown) = ^CallSideEffect : ~m? +# 2144| v2144_5(void) = ^IndirectReadSideEffect[-1] : &:r2144_1, ~m? +# 2144| mu2144_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2144_1 +# 2144| r2144_7(bool) = Constant[0] : +# 2144| v2144_8(void) = ConditionalBranch : r2144_7 +#-----| False -> Block 709 +#-----| True -> Block 1026 + +# 2146| Block 709 +# 2146| r2146_1(glval) = VariableAddress[x709] : +# 2146| mu2146_2(String) = Uninitialized[x709] : &:r2146_1 +# 2146| r2146_3(glval) = FunctionAddress[String] : +# 2146| v2146_4(void) = Call[String] : func:r2146_3, this:r2146_1 +# 2146| mu2146_5(unknown) = ^CallSideEffect : ~m? +# 2146| mu2146_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2146_1 +# 2147| r2147_1(glval) = VariableAddress[x709] : +# 2147| r2147_2(glval) = FunctionAddress[~String] : +# 2147| v2147_3(void) = Call[~String] : func:r2147_2, this:r2147_1 +# 2147| mu2147_4(unknown) = ^CallSideEffect : ~m? +# 2147| v2147_5(void) = ^IndirectReadSideEffect[-1] : &:r2147_1, ~m? +# 2147| mu2147_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2147_1 +# 2147| r2147_7(bool) = Constant[0] : +# 2147| v2147_8(void) = ConditionalBranch : r2147_7 +#-----| False -> Block 710 +#-----| True -> Block 1026 + +# 2149| Block 710 +# 2149| r2149_1(glval) = VariableAddress[x710] : +# 2149| mu2149_2(String) = Uninitialized[x710] : &:r2149_1 +# 2149| r2149_3(glval) = FunctionAddress[String] : +# 2149| v2149_4(void) = Call[String] : func:r2149_3, this:r2149_1 +# 2149| mu2149_5(unknown) = ^CallSideEffect : ~m? +# 2149| mu2149_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2149_1 +# 2150| r2150_1(glval) = VariableAddress[x710] : +# 2150| r2150_2(glval) = FunctionAddress[~String] : +# 2150| v2150_3(void) = Call[~String] : func:r2150_2, this:r2150_1 +# 2150| mu2150_4(unknown) = ^CallSideEffect : ~m? +# 2150| v2150_5(void) = ^IndirectReadSideEffect[-1] : &:r2150_1, ~m? +# 2150| mu2150_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2150_1 +# 2150| r2150_7(bool) = Constant[0] : +# 2150| v2150_8(void) = ConditionalBranch : r2150_7 +#-----| False -> Block 711 +#-----| True -> Block 1026 + +# 2152| Block 711 +# 2152| r2152_1(glval) = VariableAddress[x711] : +# 2152| mu2152_2(String) = Uninitialized[x711] : &:r2152_1 +# 2152| r2152_3(glval) = FunctionAddress[String] : +# 2152| v2152_4(void) = Call[String] : func:r2152_3, this:r2152_1 +# 2152| mu2152_5(unknown) = ^CallSideEffect : ~m? +# 2152| mu2152_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2152_1 +# 2153| r2153_1(glval) = VariableAddress[x711] : +# 2153| r2153_2(glval) = FunctionAddress[~String] : +# 2153| v2153_3(void) = Call[~String] : func:r2153_2, this:r2153_1 +# 2153| mu2153_4(unknown) = ^CallSideEffect : ~m? +# 2153| v2153_5(void) = ^IndirectReadSideEffect[-1] : &:r2153_1, ~m? +# 2153| mu2153_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2153_1 +# 2153| r2153_7(bool) = Constant[0] : +# 2153| v2153_8(void) = ConditionalBranch : r2153_7 +#-----| False -> Block 712 +#-----| True -> Block 1026 + +# 2155| Block 712 +# 2155| r2155_1(glval) = VariableAddress[x712] : +# 2155| mu2155_2(String) = Uninitialized[x712] : &:r2155_1 +# 2155| r2155_3(glval) = FunctionAddress[String] : +# 2155| v2155_4(void) = Call[String] : func:r2155_3, this:r2155_1 +# 2155| mu2155_5(unknown) = ^CallSideEffect : ~m? +# 2155| mu2155_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2155_1 +# 2156| r2156_1(glval) = VariableAddress[x712] : +# 2156| r2156_2(glval) = FunctionAddress[~String] : +# 2156| v2156_3(void) = Call[~String] : func:r2156_2, this:r2156_1 +# 2156| mu2156_4(unknown) = ^CallSideEffect : ~m? +# 2156| v2156_5(void) = ^IndirectReadSideEffect[-1] : &:r2156_1, ~m? +# 2156| mu2156_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2156_1 +# 2156| r2156_7(bool) = Constant[0] : +# 2156| v2156_8(void) = ConditionalBranch : r2156_7 +#-----| False -> Block 713 +#-----| True -> Block 1026 + +# 2158| Block 713 +# 2158| r2158_1(glval) = VariableAddress[x713] : +# 2158| mu2158_2(String) = Uninitialized[x713] : &:r2158_1 +# 2158| r2158_3(glval) = FunctionAddress[String] : +# 2158| v2158_4(void) = Call[String] : func:r2158_3, this:r2158_1 +# 2158| mu2158_5(unknown) = ^CallSideEffect : ~m? +# 2158| mu2158_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2158_1 +# 2159| r2159_1(glval) = VariableAddress[x713] : +# 2159| r2159_2(glval) = FunctionAddress[~String] : +# 2159| v2159_3(void) = Call[~String] : func:r2159_2, this:r2159_1 +# 2159| mu2159_4(unknown) = ^CallSideEffect : ~m? +# 2159| v2159_5(void) = ^IndirectReadSideEffect[-1] : &:r2159_1, ~m? +# 2159| mu2159_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2159_1 +# 2159| r2159_7(bool) = Constant[0] : +# 2159| v2159_8(void) = ConditionalBranch : r2159_7 +#-----| False -> Block 714 +#-----| True -> Block 1026 + +# 2161| Block 714 +# 2161| r2161_1(glval) = VariableAddress[x714] : +# 2161| mu2161_2(String) = Uninitialized[x714] : &:r2161_1 +# 2161| r2161_3(glval) = FunctionAddress[String] : +# 2161| v2161_4(void) = Call[String] : func:r2161_3, this:r2161_1 +# 2161| mu2161_5(unknown) = ^CallSideEffect : ~m? +# 2161| mu2161_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2161_1 +# 2162| r2162_1(glval) = VariableAddress[x714] : +# 2162| r2162_2(glval) = FunctionAddress[~String] : +# 2162| v2162_3(void) = Call[~String] : func:r2162_2, this:r2162_1 +# 2162| mu2162_4(unknown) = ^CallSideEffect : ~m? +# 2162| v2162_5(void) = ^IndirectReadSideEffect[-1] : &:r2162_1, ~m? +# 2162| mu2162_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2162_1 +# 2162| r2162_7(bool) = Constant[0] : +# 2162| v2162_8(void) = ConditionalBranch : r2162_7 +#-----| False -> Block 715 +#-----| True -> Block 1026 + +# 2164| Block 715 +# 2164| r2164_1(glval) = VariableAddress[x715] : +# 2164| mu2164_2(String) = Uninitialized[x715] : &:r2164_1 +# 2164| r2164_3(glval) = FunctionAddress[String] : +# 2164| v2164_4(void) = Call[String] : func:r2164_3, this:r2164_1 +# 2164| mu2164_5(unknown) = ^CallSideEffect : ~m? +# 2164| mu2164_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2164_1 +# 2165| r2165_1(glval) = VariableAddress[x715] : +# 2165| r2165_2(glval) = FunctionAddress[~String] : +# 2165| v2165_3(void) = Call[~String] : func:r2165_2, this:r2165_1 +# 2165| mu2165_4(unknown) = ^CallSideEffect : ~m? +# 2165| v2165_5(void) = ^IndirectReadSideEffect[-1] : &:r2165_1, ~m? +# 2165| mu2165_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2165_1 +# 2165| r2165_7(bool) = Constant[0] : +# 2165| v2165_8(void) = ConditionalBranch : r2165_7 +#-----| False -> Block 716 +#-----| True -> Block 1026 + +# 2167| Block 716 +# 2167| r2167_1(glval) = VariableAddress[x716] : +# 2167| mu2167_2(String) = Uninitialized[x716] : &:r2167_1 +# 2167| r2167_3(glval) = FunctionAddress[String] : +# 2167| v2167_4(void) = Call[String] : func:r2167_3, this:r2167_1 +# 2167| mu2167_5(unknown) = ^CallSideEffect : ~m? +# 2167| mu2167_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2167_1 +# 2168| r2168_1(glval) = VariableAddress[x716] : +# 2168| r2168_2(glval) = FunctionAddress[~String] : +# 2168| v2168_3(void) = Call[~String] : func:r2168_2, this:r2168_1 +# 2168| mu2168_4(unknown) = ^CallSideEffect : ~m? +# 2168| v2168_5(void) = ^IndirectReadSideEffect[-1] : &:r2168_1, ~m? +# 2168| mu2168_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1 +# 2168| r2168_7(bool) = Constant[0] : +# 2168| v2168_8(void) = ConditionalBranch : r2168_7 +#-----| False -> Block 717 +#-----| True -> Block 1026 + +# 2170| Block 717 +# 2170| r2170_1(glval) = VariableAddress[x717] : +# 2170| mu2170_2(String) = Uninitialized[x717] : &:r2170_1 +# 2170| r2170_3(glval) = FunctionAddress[String] : +# 2170| v2170_4(void) = Call[String] : func:r2170_3, this:r2170_1 +# 2170| mu2170_5(unknown) = ^CallSideEffect : ~m? +# 2170| mu2170_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1 +# 2171| r2171_1(glval) = VariableAddress[x717] : +# 2171| r2171_2(glval) = FunctionAddress[~String] : +# 2171| v2171_3(void) = Call[~String] : func:r2171_2, this:r2171_1 +# 2171| mu2171_4(unknown) = ^CallSideEffect : ~m? +# 2171| v2171_5(void) = ^IndirectReadSideEffect[-1] : &:r2171_1, ~m? +# 2171| mu2171_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2171_1 +# 2171| r2171_7(bool) = Constant[0] : +# 2171| v2171_8(void) = ConditionalBranch : r2171_7 +#-----| False -> Block 718 +#-----| True -> Block 1026 + +# 2173| Block 718 +# 2173| r2173_1(glval) = VariableAddress[x718] : +# 2173| mu2173_2(String) = Uninitialized[x718] : &:r2173_1 +# 2173| r2173_3(glval) = FunctionAddress[String] : +# 2173| v2173_4(void) = Call[String] : func:r2173_3, this:r2173_1 +# 2173| mu2173_5(unknown) = ^CallSideEffect : ~m? +# 2173| mu2173_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2173_1 +# 2174| r2174_1(glval) = VariableAddress[x718] : +# 2174| r2174_2(glval) = FunctionAddress[~String] : +# 2174| v2174_3(void) = Call[~String] : func:r2174_2, this:r2174_1 +# 2174| mu2174_4(unknown) = ^CallSideEffect : ~m? +# 2174| v2174_5(void) = ^IndirectReadSideEffect[-1] : &:r2174_1, ~m? +# 2174| mu2174_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2174_1 +# 2174| r2174_7(bool) = Constant[0] : +# 2174| v2174_8(void) = ConditionalBranch : r2174_7 +#-----| False -> Block 719 +#-----| True -> Block 1026 + +# 2176| Block 719 +# 2176| r2176_1(glval) = VariableAddress[x719] : +# 2176| mu2176_2(String) = Uninitialized[x719] : &:r2176_1 +# 2176| r2176_3(glval) = FunctionAddress[String] : +# 2176| v2176_4(void) = Call[String] : func:r2176_3, this:r2176_1 +# 2176| mu2176_5(unknown) = ^CallSideEffect : ~m? +# 2176| mu2176_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2176_1 +# 2177| r2177_1(glval) = VariableAddress[x719] : +# 2177| r2177_2(glval) = FunctionAddress[~String] : +# 2177| v2177_3(void) = Call[~String] : func:r2177_2, this:r2177_1 +# 2177| mu2177_4(unknown) = ^CallSideEffect : ~m? +# 2177| v2177_5(void) = ^IndirectReadSideEffect[-1] : &:r2177_1, ~m? +# 2177| mu2177_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2177_1 +# 2177| r2177_7(bool) = Constant[0] : +# 2177| v2177_8(void) = ConditionalBranch : r2177_7 +#-----| False -> Block 720 +#-----| True -> Block 1026 + +# 2179| Block 720 +# 2179| r2179_1(glval) = VariableAddress[x720] : +# 2179| mu2179_2(String) = Uninitialized[x720] : &:r2179_1 +# 2179| r2179_3(glval) = FunctionAddress[String] : +# 2179| v2179_4(void) = Call[String] : func:r2179_3, this:r2179_1 +# 2179| mu2179_5(unknown) = ^CallSideEffect : ~m? +# 2179| mu2179_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2179_1 +# 2180| r2180_1(glval) = VariableAddress[x720] : +# 2180| r2180_2(glval) = FunctionAddress[~String] : +# 2180| v2180_3(void) = Call[~String] : func:r2180_2, this:r2180_1 +# 2180| mu2180_4(unknown) = ^CallSideEffect : ~m? +# 2180| v2180_5(void) = ^IndirectReadSideEffect[-1] : &:r2180_1, ~m? +# 2180| mu2180_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2180_1 +# 2180| r2180_7(bool) = Constant[0] : +# 2180| v2180_8(void) = ConditionalBranch : r2180_7 +#-----| False -> Block 721 +#-----| True -> Block 1026 + +# 2182| Block 721 +# 2182| r2182_1(glval) = VariableAddress[x721] : +# 2182| mu2182_2(String) = Uninitialized[x721] : &:r2182_1 +# 2182| r2182_3(glval) = FunctionAddress[String] : +# 2182| v2182_4(void) = Call[String] : func:r2182_3, this:r2182_1 +# 2182| mu2182_5(unknown) = ^CallSideEffect : ~m? +# 2182| mu2182_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2182_1 +# 2183| r2183_1(glval) = VariableAddress[x721] : +# 2183| r2183_2(glval) = FunctionAddress[~String] : +# 2183| v2183_3(void) = Call[~String] : func:r2183_2, this:r2183_1 +# 2183| mu2183_4(unknown) = ^CallSideEffect : ~m? +# 2183| v2183_5(void) = ^IndirectReadSideEffect[-1] : &:r2183_1, ~m? +# 2183| mu2183_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2183_1 +# 2183| r2183_7(bool) = Constant[0] : +# 2183| v2183_8(void) = ConditionalBranch : r2183_7 +#-----| False -> Block 722 +#-----| True -> Block 1026 + +# 2185| Block 722 +# 2185| r2185_1(glval) = VariableAddress[x722] : +# 2185| mu2185_2(String) = Uninitialized[x722] : &:r2185_1 +# 2185| r2185_3(glval) = FunctionAddress[String] : +# 2185| v2185_4(void) = Call[String] : func:r2185_3, this:r2185_1 +# 2185| mu2185_5(unknown) = ^CallSideEffect : ~m? +# 2185| mu2185_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1 +# 2186| r2186_1(glval) = VariableAddress[x722] : +# 2186| r2186_2(glval) = FunctionAddress[~String] : +# 2186| v2186_3(void) = Call[~String] : func:r2186_2, this:r2186_1 +# 2186| mu2186_4(unknown) = ^CallSideEffect : ~m? +# 2186| v2186_5(void) = ^IndirectReadSideEffect[-1] : &:r2186_1, ~m? +# 2186| mu2186_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 +# 2186| r2186_7(bool) = Constant[0] : +# 2186| v2186_8(void) = ConditionalBranch : r2186_7 +#-----| False -> Block 723 +#-----| True -> Block 1026 + +# 2188| Block 723 +# 2188| r2188_1(glval) = VariableAddress[x723] : +# 2188| mu2188_2(String) = Uninitialized[x723] : &:r2188_1 +# 2188| r2188_3(glval) = FunctionAddress[String] : +# 2188| v2188_4(void) = Call[String] : func:r2188_3, this:r2188_1 +# 2188| mu2188_5(unknown) = ^CallSideEffect : ~m? +# 2188| mu2188_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2188_1 +# 2189| r2189_1(glval) = VariableAddress[x723] : +# 2189| r2189_2(glval) = FunctionAddress[~String] : +# 2189| v2189_3(void) = Call[~String] : func:r2189_2, this:r2189_1 +# 2189| mu2189_4(unknown) = ^CallSideEffect : ~m? +# 2189| v2189_5(void) = ^IndirectReadSideEffect[-1] : &:r2189_1, ~m? +# 2189| mu2189_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2189_1 +# 2189| r2189_7(bool) = Constant[0] : +# 2189| v2189_8(void) = ConditionalBranch : r2189_7 +#-----| False -> Block 724 +#-----| True -> Block 1026 + +# 2191| Block 724 +# 2191| r2191_1(glval) = VariableAddress[x724] : +# 2191| mu2191_2(String) = Uninitialized[x724] : &:r2191_1 +# 2191| r2191_3(glval) = FunctionAddress[String] : +# 2191| v2191_4(void) = Call[String] : func:r2191_3, this:r2191_1 +# 2191| mu2191_5(unknown) = ^CallSideEffect : ~m? +# 2191| mu2191_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2191_1 +# 2192| r2192_1(glval) = VariableAddress[x724] : +# 2192| r2192_2(glval) = FunctionAddress[~String] : +# 2192| v2192_3(void) = Call[~String] : func:r2192_2, this:r2192_1 +# 2192| mu2192_4(unknown) = ^CallSideEffect : ~m? +# 2192| v2192_5(void) = ^IndirectReadSideEffect[-1] : &:r2192_1, ~m? +# 2192| mu2192_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2192_1 +# 2192| r2192_7(bool) = Constant[0] : +# 2192| v2192_8(void) = ConditionalBranch : r2192_7 +#-----| False -> Block 725 +#-----| True -> Block 1026 + +# 2194| Block 725 +# 2194| r2194_1(glval) = VariableAddress[x725] : +# 2194| mu2194_2(String) = Uninitialized[x725] : &:r2194_1 +# 2194| r2194_3(glval) = FunctionAddress[String] : +# 2194| v2194_4(void) = Call[String] : func:r2194_3, this:r2194_1 +# 2194| mu2194_5(unknown) = ^CallSideEffect : ~m? +# 2194| mu2194_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2194_1 +# 2195| r2195_1(glval) = VariableAddress[x725] : +# 2195| r2195_2(glval) = FunctionAddress[~String] : +# 2195| v2195_3(void) = Call[~String] : func:r2195_2, this:r2195_1 +# 2195| mu2195_4(unknown) = ^CallSideEffect : ~m? +# 2195| v2195_5(void) = ^IndirectReadSideEffect[-1] : &:r2195_1, ~m? +# 2195| mu2195_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2195_1 +# 2195| r2195_7(bool) = Constant[0] : +# 2195| v2195_8(void) = ConditionalBranch : r2195_7 +#-----| False -> Block 726 +#-----| True -> Block 1026 + +# 2197| Block 726 +# 2197| r2197_1(glval) = VariableAddress[x726] : +# 2197| mu2197_2(String) = Uninitialized[x726] : &:r2197_1 +# 2197| r2197_3(glval) = FunctionAddress[String] : +# 2197| v2197_4(void) = Call[String] : func:r2197_3, this:r2197_1 +# 2197| mu2197_5(unknown) = ^CallSideEffect : ~m? +# 2197| mu2197_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2197_1 +# 2198| r2198_1(glval) = VariableAddress[x726] : +# 2198| r2198_2(glval) = FunctionAddress[~String] : +# 2198| v2198_3(void) = Call[~String] : func:r2198_2, this:r2198_1 +# 2198| mu2198_4(unknown) = ^CallSideEffect : ~m? +# 2198| v2198_5(void) = ^IndirectReadSideEffect[-1] : &:r2198_1, ~m? +# 2198| mu2198_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2198_1 +# 2198| r2198_7(bool) = Constant[0] : +# 2198| v2198_8(void) = ConditionalBranch : r2198_7 +#-----| False -> Block 727 +#-----| True -> Block 1026 + +# 2200| Block 727 +# 2200| r2200_1(glval) = VariableAddress[x727] : +# 2200| mu2200_2(String) = Uninitialized[x727] : &:r2200_1 +# 2200| r2200_3(glval) = FunctionAddress[String] : +# 2200| v2200_4(void) = Call[String] : func:r2200_3, this:r2200_1 +# 2200| mu2200_5(unknown) = ^CallSideEffect : ~m? +# 2200| mu2200_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 +# 2201| r2201_1(glval) = VariableAddress[x727] : +# 2201| r2201_2(glval) = FunctionAddress[~String] : +# 2201| v2201_3(void) = Call[~String] : func:r2201_2, this:r2201_1 +# 2201| mu2201_4(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_5(void) = ^IndirectReadSideEffect[-1] : &:r2201_1, ~m? +# 2201| mu2201_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 +# 2201| r2201_7(bool) = Constant[0] : +# 2201| v2201_8(void) = ConditionalBranch : r2201_7 +#-----| False -> Block 728 +#-----| True -> Block 1026 + +# 2203| Block 728 +# 2203| r2203_1(glval) = VariableAddress[x728] : +# 2203| mu2203_2(String) = Uninitialized[x728] : &:r2203_1 +# 2203| r2203_3(glval) = FunctionAddress[String] : +# 2203| v2203_4(void) = Call[String] : func:r2203_3, this:r2203_1 +# 2203| mu2203_5(unknown) = ^CallSideEffect : ~m? +# 2203| mu2203_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 +# 2204| r2204_1(glval) = VariableAddress[x728] : +# 2204| r2204_2(glval) = FunctionAddress[~String] : +# 2204| v2204_3(void) = Call[~String] : func:r2204_2, this:r2204_1 +# 2204| mu2204_4(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_5(void) = ^IndirectReadSideEffect[-1] : &:r2204_1, ~m? +# 2204| mu2204_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 +# 2204| r2204_7(bool) = Constant[0] : +# 2204| v2204_8(void) = ConditionalBranch : r2204_7 +#-----| False -> Block 729 +#-----| True -> Block 1026 + +# 2206| Block 729 +# 2206| r2206_1(glval) = VariableAddress[x729] : +# 2206| mu2206_2(String) = Uninitialized[x729] : &:r2206_1 +# 2206| r2206_3(glval) = FunctionAddress[String] : +# 2206| v2206_4(void) = Call[String] : func:r2206_3, this:r2206_1 +# 2206| mu2206_5(unknown) = ^CallSideEffect : ~m? +# 2206| mu2206_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 +# 2207| r2207_1(glval) = VariableAddress[x729] : +# 2207| r2207_2(glval) = FunctionAddress[~String] : +# 2207| v2207_3(void) = Call[~String] : func:r2207_2, this:r2207_1 +# 2207| mu2207_4(unknown) = ^CallSideEffect : ~m? +# 2207| v2207_5(void) = ^IndirectReadSideEffect[-1] : &:r2207_1, ~m? +# 2207| mu2207_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2207_1 +# 2207| r2207_7(bool) = Constant[0] : +# 2207| v2207_8(void) = ConditionalBranch : r2207_7 +#-----| False -> Block 730 +#-----| True -> Block 1026 + +# 2209| Block 730 +# 2209| r2209_1(glval) = VariableAddress[x730] : +# 2209| mu2209_2(String) = Uninitialized[x730] : &:r2209_1 +# 2209| r2209_3(glval) = FunctionAddress[String] : +# 2209| v2209_4(void) = Call[String] : func:r2209_3, this:r2209_1 +# 2209| mu2209_5(unknown) = ^CallSideEffect : ~m? +# 2209| mu2209_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2209_1 +# 2210| r2210_1(glval) = VariableAddress[x730] : +# 2210| r2210_2(glval) = FunctionAddress[~String] : +# 2210| v2210_3(void) = Call[~String] : func:r2210_2, this:r2210_1 +# 2210| mu2210_4(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_5(void) = ^IndirectReadSideEffect[-1] : &:r2210_1, ~m? +# 2210| mu2210_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2210| r2210_7(bool) = Constant[0] : +# 2210| v2210_8(void) = ConditionalBranch : r2210_7 +#-----| False -> Block 731 +#-----| True -> Block 1026 + +# 2212| Block 731 +# 2212| r2212_1(glval) = VariableAddress[x731] : +# 2212| mu2212_2(String) = Uninitialized[x731] : &:r2212_1 +# 2212| r2212_3(glval) = FunctionAddress[String] : +# 2212| v2212_4(void) = Call[String] : func:r2212_3, this:r2212_1 +# 2212| mu2212_5(unknown) = ^CallSideEffect : ~m? +# 2212| mu2212_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2212_1 +# 2213| r2213_1(glval) = VariableAddress[x731] : +# 2213| r2213_2(glval) = FunctionAddress[~String] : +# 2213| v2213_3(void) = Call[~String] : func:r2213_2, this:r2213_1 +# 2213| mu2213_4(unknown) = ^CallSideEffect : ~m? +# 2213| v2213_5(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, ~m? +# 2213| mu2213_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 +# 2213| r2213_7(bool) = Constant[0] : +# 2213| v2213_8(void) = ConditionalBranch : r2213_7 +#-----| False -> Block 732 +#-----| True -> Block 1026 + +# 2215| Block 732 +# 2215| r2215_1(glval) = VariableAddress[x732] : +# 2215| mu2215_2(String) = Uninitialized[x732] : &:r2215_1 +# 2215| r2215_3(glval) = FunctionAddress[String] : +# 2215| v2215_4(void) = Call[String] : func:r2215_3, this:r2215_1 +# 2215| mu2215_5(unknown) = ^CallSideEffect : ~m? +# 2215| mu2215_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2216| r2216_1(glval) = VariableAddress[x732] : +# 2216| r2216_2(glval) = FunctionAddress[~String] : +# 2216| v2216_3(void) = Call[~String] : func:r2216_2, this:r2216_1 +# 2216| mu2216_4(unknown) = ^CallSideEffect : ~m? +# 2216| v2216_5(void) = ^IndirectReadSideEffect[-1] : &:r2216_1, ~m? +# 2216| mu2216_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 +# 2216| r2216_7(bool) = Constant[0] : +# 2216| v2216_8(void) = ConditionalBranch : r2216_7 +#-----| False -> Block 733 +#-----| True -> Block 1026 + +# 2218| Block 733 +# 2218| r2218_1(glval) = VariableAddress[x733] : +# 2218| mu2218_2(String) = Uninitialized[x733] : &:r2218_1 +# 2218| r2218_3(glval) = FunctionAddress[String] : +# 2218| v2218_4(void) = Call[String] : func:r2218_3, this:r2218_1 +# 2218| mu2218_5(unknown) = ^CallSideEffect : ~m? +# 2218| mu2218_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2218_1 +# 2219| r2219_1(glval) = VariableAddress[x733] : +# 2219| r2219_2(glval) = FunctionAddress[~String] : +# 2219| v2219_3(void) = Call[~String] : func:r2219_2, this:r2219_1 +# 2219| mu2219_4(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_5(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, ~m? +# 2219| mu2219_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +# 2219| r2219_7(bool) = Constant[0] : +# 2219| v2219_8(void) = ConditionalBranch : r2219_7 +#-----| False -> Block 734 +#-----| True -> Block 1026 + +# 2221| Block 734 +# 2221| r2221_1(glval) = VariableAddress[x734] : +# 2221| mu2221_2(String) = Uninitialized[x734] : &:r2221_1 +# 2221| r2221_3(glval) = FunctionAddress[String] : +# 2221| v2221_4(void) = Call[String] : func:r2221_3, this:r2221_1 +# 2221| mu2221_5(unknown) = ^CallSideEffect : ~m? +# 2221| mu2221_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 +# 2222| r2222_1(glval) = VariableAddress[x734] : +# 2222| r2222_2(glval) = FunctionAddress[~String] : +# 2222| v2222_3(void) = Call[~String] : func:r2222_2, this:r2222_1 +# 2222| mu2222_4(unknown) = ^CallSideEffect : ~m? +# 2222| v2222_5(void) = ^IndirectReadSideEffect[-1] : &:r2222_1, ~m? +# 2222| mu2222_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2222| r2222_7(bool) = Constant[0] : +# 2222| v2222_8(void) = ConditionalBranch : r2222_7 +#-----| False -> Block 735 +#-----| True -> Block 1026 + +# 2224| Block 735 +# 2224| r2224_1(glval) = VariableAddress[x735] : +# 2224| mu2224_2(String) = Uninitialized[x735] : &:r2224_1 +# 2224| r2224_3(glval) = FunctionAddress[String] : +# 2224| v2224_4(void) = Call[String] : func:r2224_3, this:r2224_1 +# 2224| mu2224_5(unknown) = ^CallSideEffect : ~m? +# 2224| mu2224_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2224_1 +# 2225| r2225_1(glval) = VariableAddress[x735] : +# 2225| r2225_2(glval) = FunctionAddress[~String] : +# 2225| v2225_3(void) = Call[~String] : func:r2225_2, this:r2225_1 +# 2225| mu2225_4(unknown) = ^CallSideEffect : ~m? +# 2225| v2225_5(void) = ^IndirectReadSideEffect[-1] : &:r2225_1, ~m? +# 2225| mu2225_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2225_1 +# 2225| r2225_7(bool) = Constant[0] : +# 2225| v2225_8(void) = ConditionalBranch : r2225_7 +#-----| False -> Block 736 +#-----| True -> Block 1026 + +# 2227| Block 736 +# 2227| r2227_1(glval) = VariableAddress[x736] : +# 2227| mu2227_2(String) = Uninitialized[x736] : &:r2227_1 +# 2227| r2227_3(glval) = FunctionAddress[String] : +# 2227| v2227_4(void) = Call[String] : func:r2227_3, this:r2227_1 +# 2227| mu2227_5(unknown) = ^CallSideEffect : ~m? +# 2227| mu2227_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2227_1 +# 2228| r2228_1(glval) = VariableAddress[x736] : +# 2228| r2228_2(glval) = FunctionAddress[~String] : +# 2228| v2228_3(void) = Call[~String] : func:r2228_2, this:r2228_1 +# 2228| mu2228_4(unknown) = ^CallSideEffect : ~m? +# 2228| v2228_5(void) = ^IndirectReadSideEffect[-1] : &:r2228_1, ~m? +# 2228| mu2228_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2228_1 +# 2228| r2228_7(bool) = Constant[0] : +# 2228| v2228_8(void) = ConditionalBranch : r2228_7 +#-----| False -> Block 737 +#-----| True -> Block 1026 + +# 2230| Block 737 +# 2230| r2230_1(glval) = VariableAddress[x737] : +# 2230| mu2230_2(String) = Uninitialized[x737] : &:r2230_1 +# 2230| r2230_3(glval) = FunctionAddress[String] : +# 2230| v2230_4(void) = Call[String] : func:r2230_3, this:r2230_1 +# 2230| mu2230_5(unknown) = ^CallSideEffect : ~m? +# 2230| mu2230_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2230_1 +# 2231| r2231_1(glval) = VariableAddress[x737] : +# 2231| r2231_2(glval) = FunctionAddress[~String] : +# 2231| v2231_3(void) = Call[~String] : func:r2231_2, this:r2231_1 +# 2231| mu2231_4(unknown) = ^CallSideEffect : ~m? +# 2231| v2231_5(void) = ^IndirectReadSideEffect[-1] : &:r2231_1, ~m? +# 2231| mu2231_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 +# 2231| r2231_7(bool) = Constant[0] : +# 2231| v2231_8(void) = ConditionalBranch : r2231_7 +#-----| False -> Block 738 +#-----| True -> Block 1026 + +# 2233| Block 738 +# 2233| r2233_1(glval) = VariableAddress[x738] : +# 2233| mu2233_2(String) = Uninitialized[x738] : &:r2233_1 +# 2233| r2233_3(glval) = FunctionAddress[String] : +# 2233| v2233_4(void) = Call[String] : func:r2233_3, this:r2233_1 +# 2233| mu2233_5(unknown) = ^CallSideEffect : ~m? +# 2233| mu2233_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 +# 2234| r2234_1(glval) = VariableAddress[x738] : +# 2234| r2234_2(glval) = FunctionAddress[~String] : +# 2234| v2234_3(void) = Call[~String] : func:r2234_2, this:r2234_1 +# 2234| mu2234_4(unknown) = ^CallSideEffect : ~m? +# 2234| v2234_5(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, ~m? +# 2234| mu2234_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 +# 2234| r2234_7(bool) = Constant[0] : +# 2234| v2234_8(void) = ConditionalBranch : r2234_7 +#-----| False -> Block 739 +#-----| True -> Block 1026 + +# 2236| Block 739 +# 2236| r2236_1(glval) = VariableAddress[x739] : +# 2236| mu2236_2(String) = Uninitialized[x739] : &:r2236_1 +# 2236| r2236_3(glval) = FunctionAddress[String] : +# 2236| v2236_4(void) = Call[String] : func:r2236_3, this:r2236_1 +# 2236| mu2236_5(unknown) = ^CallSideEffect : ~m? +# 2236| mu2236_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 +# 2237| r2237_1(glval) = VariableAddress[x739] : +# 2237| r2237_2(glval) = FunctionAddress[~String] : +# 2237| v2237_3(void) = Call[~String] : func:r2237_2, this:r2237_1 +# 2237| mu2237_4(unknown) = ^CallSideEffect : ~m? +# 2237| v2237_5(void) = ^IndirectReadSideEffect[-1] : &:r2237_1, ~m? +# 2237| mu2237_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2237_1 +# 2237| r2237_7(bool) = Constant[0] : +# 2237| v2237_8(void) = ConditionalBranch : r2237_7 +#-----| False -> Block 740 +#-----| True -> Block 1026 + +# 2239| Block 740 +# 2239| r2239_1(glval) = VariableAddress[x740] : +# 2239| mu2239_2(String) = Uninitialized[x740] : &:r2239_1 +# 2239| r2239_3(glval) = FunctionAddress[String] : +# 2239| v2239_4(void) = Call[String] : func:r2239_3, this:r2239_1 +# 2239| mu2239_5(unknown) = ^CallSideEffect : ~m? +# 2239| mu2239_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2239_1 +# 2240| r2240_1(glval) = VariableAddress[x740] : +# 2240| r2240_2(glval) = FunctionAddress[~String] : +# 2240| v2240_3(void) = Call[~String] : func:r2240_2, this:r2240_1 +# 2240| mu2240_4(unknown) = ^CallSideEffect : ~m? +# 2240| v2240_5(void) = ^IndirectReadSideEffect[-1] : &:r2240_1, ~m? +# 2240| mu2240_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2240_1 +# 2240| r2240_7(bool) = Constant[0] : +# 2240| v2240_8(void) = ConditionalBranch : r2240_7 +#-----| False -> Block 741 +#-----| True -> Block 1026 + +# 2242| Block 741 +# 2242| r2242_1(glval) = VariableAddress[x741] : +# 2242| mu2242_2(String) = Uninitialized[x741] : &:r2242_1 +# 2242| r2242_3(glval) = FunctionAddress[String] : +# 2242| v2242_4(void) = Call[String] : func:r2242_3, this:r2242_1 +# 2242| mu2242_5(unknown) = ^CallSideEffect : ~m? +# 2242| mu2242_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_1 +# 2243| r2243_1(glval) = VariableAddress[x741] : +# 2243| r2243_2(glval) = FunctionAddress[~String] : +# 2243| v2243_3(void) = Call[~String] : func:r2243_2, this:r2243_1 +# 2243| mu2243_4(unknown) = ^CallSideEffect : ~m? +# 2243| v2243_5(void) = ^IndirectReadSideEffect[-1] : &:r2243_1, ~m? +# 2243| mu2243_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2243_1 +# 2243| r2243_7(bool) = Constant[0] : +# 2243| v2243_8(void) = ConditionalBranch : r2243_7 +#-----| False -> Block 742 +#-----| True -> Block 1026 + +# 2245| Block 742 +# 2245| r2245_1(glval) = VariableAddress[x742] : +# 2245| mu2245_2(String) = Uninitialized[x742] : &:r2245_1 +# 2245| r2245_3(glval) = FunctionAddress[String] : +# 2245| v2245_4(void) = Call[String] : func:r2245_3, this:r2245_1 +# 2245| mu2245_5(unknown) = ^CallSideEffect : ~m? +# 2245| mu2245_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2245_1 +# 2246| r2246_1(glval) = VariableAddress[x742] : +# 2246| r2246_2(glval) = FunctionAddress[~String] : +# 2246| v2246_3(void) = Call[~String] : func:r2246_2, this:r2246_1 +# 2246| mu2246_4(unknown) = ^CallSideEffect : ~m? +# 2246| v2246_5(void) = ^IndirectReadSideEffect[-1] : &:r2246_1, ~m? +# 2246| mu2246_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_1 +# 2246| r2246_7(bool) = Constant[0] : +# 2246| v2246_8(void) = ConditionalBranch : r2246_7 +#-----| False -> Block 743 +#-----| True -> Block 1026 + +# 2248| Block 743 +# 2248| r2248_1(glval) = VariableAddress[x743] : +# 2248| mu2248_2(String) = Uninitialized[x743] : &:r2248_1 +# 2248| r2248_3(glval) = FunctionAddress[String] : +# 2248| v2248_4(void) = Call[String] : func:r2248_3, this:r2248_1 +# 2248| mu2248_5(unknown) = ^CallSideEffect : ~m? +# 2248| mu2248_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 +# 2249| r2249_1(glval) = VariableAddress[x743] : +# 2249| r2249_2(glval) = FunctionAddress[~String] : +# 2249| v2249_3(void) = Call[~String] : func:r2249_2, this:r2249_1 +# 2249| mu2249_4(unknown) = ^CallSideEffect : ~m? +# 2249| v2249_5(void) = ^IndirectReadSideEffect[-1] : &:r2249_1, ~m? +# 2249| mu2249_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2249| r2249_7(bool) = Constant[0] : +# 2249| v2249_8(void) = ConditionalBranch : r2249_7 +#-----| False -> Block 744 +#-----| True -> Block 1026 + +# 2251| Block 744 +# 2251| r2251_1(glval) = VariableAddress[x744] : +# 2251| mu2251_2(String) = Uninitialized[x744] : &:r2251_1 +# 2251| r2251_3(glval) = FunctionAddress[String] : +# 2251| v2251_4(void) = Call[String] : func:r2251_3, this:r2251_1 +# 2251| mu2251_5(unknown) = ^CallSideEffect : ~m? +# 2251| mu2251_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2251_1 +# 2252| r2252_1(glval) = VariableAddress[x744] : +# 2252| r2252_2(glval) = FunctionAddress[~String] : +# 2252| v2252_3(void) = Call[~String] : func:r2252_2, this:r2252_1 +# 2252| mu2252_4(unknown) = ^CallSideEffect : ~m? +# 2252| v2252_5(void) = ^IndirectReadSideEffect[-1] : &:r2252_1, ~m? +# 2252| mu2252_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2252_1 +# 2252| r2252_7(bool) = Constant[0] : +# 2252| v2252_8(void) = ConditionalBranch : r2252_7 +#-----| False -> Block 745 +#-----| True -> Block 1026 + +# 2254| Block 745 +# 2254| r2254_1(glval) = VariableAddress[x745] : +# 2254| mu2254_2(String) = Uninitialized[x745] : &:r2254_1 +# 2254| r2254_3(glval) = FunctionAddress[String] : +# 2254| v2254_4(void) = Call[String] : func:r2254_3, this:r2254_1 +# 2254| mu2254_5(unknown) = ^CallSideEffect : ~m? +# 2254| mu2254_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2254_1 +# 2255| r2255_1(glval) = VariableAddress[x745] : +# 2255| r2255_2(glval) = FunctionAddress[~String] : +# 2255| v2255_3(void) = Call[~String] : func:r2255_2, this:r2255_1 +# 2255| mu2255_4(unknown) = ^CallSideEffect : ~m? +# 2255| v2255_5(void) = ^IndirectReadSideEffect[-1] : &:r2255_1, ~m? +# 2255| mu2255_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2255_1 +# 2255| r2255_7(bool) = Constant[0] : +# 2255| v2255_8(void) = ConditionalBranch : r2255_7 +#-----| False -> Block 746 +#-----| True -> Block 1026 + +# 2257| Block 746 +# 2257| r2257_1(glval) = VariableAddress[x746] : +# 2257| mu2257_2(String) = Uninitialized[x746] : &:r2257_1 +# 2257| r2257_3(glval) = FunctionAddress[String] : +# 2257| v2257_4(void) = Call[String] : func:r2257_3, this:r2257_1 +# 2257| mu2257_5(unknown) = ^CallSideEffect : ~m? +# 2257| mu2257_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2257_1 +# 2258| r2258_1(glval) = VariableAddress[x746] : +# 2258| r2258_2(glval) = FunctionAddress[~String] : +# 2258| v2258_3(void) = Call[~String] : func:r2258_2, this:r2258_1 +# 2258| mu2258_4(unknown) = ^CallSideEffect : ~m? +# 2258| v2258_5(void) = ^IndirectReadSideEffect[-1] : &:r2258_1, ~m? +# 2258| mu2258_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2258_1 +# 2258| r2258_7(bool) = Constant[0] : +# 2258| v2258_8(void) = ConditionalBranch : r2258_7 +#-----| False -> Block 747 +#-----| True -> Block 1026 + +# 2260| Block 747 +# 2260| r2260_1(glval) = VariableAddress[x747] : +# 2260| mu2260_2(String) = Uninitialized[x747] : &:r2260_1 +# 2260| r2260_3(glval) = FunctionAddress[String] : +# 2260| v2260_4(void) = Call[String] : func:r2260_3, this:r2260_1 +# 2260| mu2260_5(unknown) = ^CallSideEffect : ~m? +# 2260| mu2260_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2260_1 +# 2261| r2261_1(glval) = VariableAddress[x747] : +# 2261| r2261_2(glval) = FunctionAddress[~String] : +# 2261| v2261_3(void) = Call[~String] : func:r2261_2, this:r2261_1 +# 2261| mu2261_4(unknown) = ^CallSideEffect : ~m? +# 2261| v2261_5(void) = ^IndirectReadSideEffect[-1] : &:r2261_1, ~m? +# 2261| mu2261_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2261_1 +# 2261| r2261_7(bool) = Constant[0] : +# 2261| v2261_8(void) = ConditionalBranch : r2261_7 +#-----| False -> Block 748 +#-----| True -> Block 1026 + +# 2263| Block 748 +# 2263| r2263_1(glval) = VariableAddress[x748] : +# 2263| mu2263_2(String) = Uninitialized[x748] : &:r2263_1 +# 2263| r2263_3(glval) = FunctionAddress[String] : +# 2263| v2263_4(void) = Call[String] : func:r2263_3, this:r2263_1 +# 2263| mu2263_5(unknown) = ^CallSideEffect : ~m? +# 2263| mu2263_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2263_1 +# 2264| r2264_1(glval) = VariableAddress[x748] : +# 2264| r2264_2(glval) = FunctionAddress[~String] : +# 2264| v2264_3(void) = Call[~String] : func:r2264_2, this:r2264_1 +# 2264| mu2264_4(unknown) = ^CallSideEffect : ~m? +# 2264| v2264_5(void) = ^IndirectReadSideEffect[-1] : &:r2264_1, ~m? +# 2264| mu2264_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2264_1 +# 2264| r2264_7(bool) = Constant[0] : +# 2264| v2264_8(void) = ConditionalBranch : r2264_7 +#-----| False -> Block 749 +#-----| True -> Block 1026 + +# 2266| Block 749 +# 2266| r2266_1(glval) = VariableAddress[x749] : +# 2266| mu2266_2(String) = Uninitialized[x749] : &:r2266_1 +# 2266| r2266_3(glval) = FunctionAddress[String] : +# 2266| v2266_4(void) = Call[String] : func:r2266_3, this:r2266_1 +# 2266| mu2266_5(unknown) = ^CallSideEffect : ~m? +# 2266| mu2266_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2267| r2267_1(glval) = VariableAddress[x749] : +# 2267| r2267_2(glval) = FunctionAddress[~String] : +# 2267| v2267_3(void) = Call[~String] : func:r2267_2, this:r2267_1 +# 2267| mu2267_4(unknown) = ^CallSideEffect : ~m? +# 2267| v2267_5(void) = ^IndirectReadSideEffect[-1] : &:r2267_1, ~m? +# 2267| mu2267_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2267_1 +# 2267| r2267_7(bool) = Constant[0] : +# 2267| v2267_8(void) = ConditionalBranch : r2267_7 +#-----| False -> Block 750 +#-----| True -> Block 1026 + +# 2269| Block 750 +# 2269| r2269_1(glval) = VariableAddress[x750] : +# 2269| mu2269_2(String) = Uninitialized[x750] : &:r2269_1 +# 2269| r2269_3(glval) = FunctionAddress[String] : +# 2269| v2269_4(void) = Call[String] : func:r2269_3, this:r2269_1 +# 2269| mu2269_5(unknown) = ^CallSideEffect : ~m? +# 2269| mu2269_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2269_1 +# 2270| r2270_1(glval) = VariableAddress[x750] : +# 2270| r2270_2(glval) = FunctionAddress[~String] : +# 2270| v2270_3(void) = Call[~String] : func:r2270_2, this:r2270_1 +# 2270| mu2270_4(unknown) = ^CallSideEffect : ~m? +# 2270| v2270_5(void) = ^IndirectReadSideEffect[-1] : &:r2270_1, ~m? +# 2270| mu2270_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2270_1 +# 2270| r2270_7(bool) = Constant[0] : +# 2270| v2270_8(void) = ConditionalBranch : r2270_7 +#-----| False -> Block 751 +#-----| True -> Block 1026 + +# 2272| Block 751 +# 2272| r2272_1(glval) = VariableAddress[x751] : +# 2272| mu2272_2(String) = Uninitialized[x751] : &:r2272_1 +# 2272| r2272_3(glval) = FunctionAddress[String] : +# 2272| v2272_4(void) = Call[String] : func:r2272_3, this:r2272_1 +# 2272| mu2272_5(unknown) = ^CallSideEffect : ~m? +# 2272| mu2272_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2272_1 +# 2273| r2273_1(glval) = VariableAddress[x751] : +# 2273| r2273_2(glval) = FunctionAddress[~String] : +# 2273| v2273_3(void) = Call[~String] : func:r2273_2, this:r2273_1 +# 2273| mu2273_4(unknown) = ^CallSideEffect : ~m? +# 2273| v2273_5(void) = ^IndirectReadSideEffect[-1] : &:r2273_1, ~m? +# 2273| mu2273_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2273_1 +# 2273| r2273_7(bool) = Constant[0] : +# 2273| v2273_8(void) = ConditionalBranch : r2273_7 +#-----| False -> Block 752 +#-----| True -> Block 1026 + +# 2275| Block 752 +# 2275| r2275_1(glval) = VariableAddress[x752] : +# 2275| mu2275_2(String) = Uninitialized[x752] : &:r2275_1 +# 2275| r2275_3(glval) = FunctionAddress[String] : +# 2275| v2275_4(void) = Call[String] : func:r2275_3, this:r2275_1 +# 2275| mu2275_5(unknown) = ^CallSideEffect : ~m? +# 2275| mu2275_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2275_1 +# 2276| r2276_1(glval) = VariableAddress[x752] : +# 2276| r2276_2(glval) = FunctionAddress[~String] : +# 2276| v2276_3(void) = Call[~String] : func:r2276_2, this:r2276_1 +# 2276| mu2276_4(unknown) = ^CallSideEffect : ~m? +# 2276| v2276_5(void) = ^IndirectReadSideEffect[-1] : &:r2276_1, ~m? +# 2276| mu2276_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2276_1 +# 2276| r2276_7(bool) = Constant[0] : +# 2276| v2276_8(void) = ConditionalBranch : r2276_7 +#-----| False -> Block 753 +#-----| True -> Block 1026 + +# 2278| Block 753 +# 2278| r2278_1(glval) = VariableAddress[x753] : +# 2278| mu2278_2(String) = Uninitialized[x753] : &:r2278_1 +# 2278| r2278_3(glval) = FunctionAddress[String] : +# 2278| v2278_4(void) = Call[String] : func:r2278_3, this:r2278_1 +# 2278| mu2278_5(unknown) = ^CallSideEffect : ~m? +# 2278| mu2278_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2278_1 +# 2279| r2279_1(glval) = VariableAddress[x753] : +# 2279| r2279_2(glval) = FunctionAddress[~String] : +# 2279| v2279_3(void) = Call[~String] : func:r2279_2, this:r2279_1 +# 2279| mu2279_4(unknown) = ^CallSideEffect : ~m? +# 2279| v2279_5(void) = ^IndirectReadSideEffect[-1] : &:r2279_1, ~m? +# 2279| mu2279_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2279_1 +# 2279| r2279_7(bool) = Constant[0] : +# 2279| v2279_8(void) = ConditionalBranch : r2279_7 +#-----| False -> Block 754 +#-----| True -> Block 1026 + +# 2281| Block 754 +# 2281| r2281_1(glval) = VariableAddress[x754] : +# 2281| mu2281_2(String) = Uninitialized[x754] : &:r2281_1 +# 2281| r2281_3(glval) = FunctionAddress[String] : +# 2281| v2281_4(void) = Call[String] : func:r2281_3, this:r2281_1 +# 2281| mu2281_5(unknown) = ^CallSideEffect : ~m? +# 2281| mu2281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 +# 2282| r2282_1(glval) = VariableAddress[x754] : +# 2282| r2282_2(glval) = FunctionAddress[~String] : +# 2282| v2282_3(void) = Call[~String] : func:r2282_2, this:r2282_1 +# 2282| mu2282_4(unknown) = ^CallSideEffect : ~m? +# 2282| v2282_5(void) = ^IndirectReadSideEffect[-1] : &:r2282_1, ~m? +# 2282| mu2282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 +# 2282| r2282_7(bool) = Constant[0] : +# 2282| v2282_8(void) = ConditionalBranch : r2282_7 +#-----| False -> Block 755 +#-----| True -> Block 1026 + +# 2284| Block 755 +# 2284| r2284_1(glval) = VariableAddress[x755] : +# 2284| mu2284_2(String) = Uninitialized[x755] : &:r2284_1 +# 2284| r2284_3(glval) = FunctionAddress[String] : +# 2284| v2284_4(void) = Call[String] : func:r2284_3, this:r2284_1 +# 2284| mu2284_5(unknown) = ^CallSideEffect : ~m? +# 2284| mu2284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1 +# 2285| r2285_1(glval) = VariableAddress[x755] : +# 2285| r2285_2(glval) = FunctionAddress[~String] : +# 2285| v2285_3(void) = Call[~String] : func:r2285_2, this:r2285_1 +# 2285| mu2285_4(unknown) = ^CallSideEffect : ~m? +# 2285| v2285_5(void) = ^IndirectReadSideEffect[-1] : &:r2285_1, ~m? +# 2285| mu2285_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_1 +# 2285| r2285_7(bool) = Constant[0] : +# 2285| v2285_8(void) = ConditionalBranch : r2285_7 +#-----| False -> Block 756 +#-----| True -> Block 1026 + +# 2287| Block 756 +# 2287| r2287_1(glval) = VariableAddress[x756] : +# 2287| mu2287_2(String) = Uninitialized[x756] : &:r2287_1 +# 2287| r2287_3(glval) = FunctionAddress[String] : +# 2287| v2287_4(void) = Call[String] : func:r2287_3, this:r2287_1 +# 2287| mu2287_5(unknown) = ^CallSideEffect : ~m? +# 2287| mu2287_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2287_1 +# 2288| r2288_1(glval) = VariableAddress[x756] : +# 2288| r2288_2(glval) = FunctionAddress[~String] : +# 2288| v2288_3(void) = Call[~String] : func:r2288_2, this:r2288_1 +# 2288| mu2288_4(unknown) = ^CallSideEffect : ~m? +# 2288| v2288_5(void) = ^IndirectReadSideEffect[-1] : &:r2288_1, ~m? +# 2288| mu2288_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2288_1 +# 2288| r2288_7(bool) = Constant[0] : +# 2288| v2288_8(void) = ConditionalBranch : r2288_7 +#-----| False -> Block 757 +#-----| True -> Block 1026 + +# 2290| Block 757 +# 2290| r2290_1(glval) = VariableAddress[x757] : +# 2290| mu2290_2(String) = Uninitialized[x757] : &:r2290_1 +# 2290| r2290_3(glval) = FunctionAddress[String] : +# 2290| v2290_4(void) = Call[String] : func:r2290_3, this:r2290_1 +# 2290| mu2290_5(unknown) = ^CallSideEffect : ~m? +# 2290| mu2290_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2290_1 +# 2291| r2291_1(glval) = VariableAddress[x757] : +# 2291| r2291_2(glval) = FunctionAddress[~String] : +# 2291| v2291_3(void) = Call[~String] : func:r2291_2, this:r2291_1 +# 2291| mu2291_4(unknown) = ^CallSideEffect : ~m? +# 2291| v2291_5(void) = ^IndirectReadSideEffect[-1] : &:r2291_1, ~m? +# 2291| mu2291_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2291_1 +# 2291| r2291_7(bool) = Constant[0] : +# 2291| v2291_8(void) = ConditionalBranch : r2291_7 +#-----| False -> Block 758 +#-----| True -> Block 1026 + +# 2293| Block 758 +# 2293| r2293_1(glval) = VariableAddress[x758] : +# 2293| mu2293_2(String) = Uninitialized[x758] : &:r2293_1 +# 2293| r2293_3(glval) = FunctionAddress[String] : +# 2293| v2293_4(void) = Call[String] : func:r2293_3, this:r2293_1 +# 2293| mu2293_5(unknown) = ^CallSideEffect : ~m? +# 2293| mu2293_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_1 +# 2294| r2294_1(glval) = VariableAddress[x758] : +# 2294| r2294_2(glval) = FunctionAddress[~String] : +# 2294| v2294_3(void) = Call[~String] : func:r2294_2, this:r2294_1 +# 2294| mu2294_4(unknown) = ^CallSideEffect : ~m? +# 2294| v2294_5(void) = ^IndirectReadSideEffect[-1] : &:r2294_1, ~m? +# 2294| mu2294_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2294_1 +# 2294| r2294_7(bool) = Constant[0] : +# 2294| v2294_8(void) = ConditionalBranch : r2294_7 +#-----| False -> Block 759 +#-----| True -> Block 1026 + +# 2296| Block 759 +# 2296| r2296_1(glval) = VariableAddress[x759] : +# 2296| mu2296_2(String) = Uninitialized[x759] : &:r2296_1 +# 2296| r2296_3(glval) = FunctionAddress[String] : +# 2296| v2296_4(void) = Call[String] : func:r2296_3, this:r2296_1 +# 2296| mu2296_5(unknown) = ^CallSideEffect : ~m? +# 2296| mu2296_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2296_1 +# 2297| r2297_1(glval) = VariableAddress[x759] : +# 2297| r2297_2(glval) = FunctionAddress[~String] : +# 2297| v2297_3(void) = Call[~String] : func:r2297_2, this:r2297_1 +# 2297| mu2297_4(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_5(void) = ^IndirectReadSideEffect[-1] : &:r2297_1, ~m? +# 2297| mu2297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 +# 2297| r2297_7(bool) = Constant[0] : +# 2297| v2297_8(void) = ConditionalBranch : r2297_7 +#-----| False -> Block 760 +#-----| True -> Block 1026 + +# 2299| Block 760 +# 2299| r2299_1(glval) = VariableAddress[x760] : +# 2299| mu2299_2(String) = Uninitialized[x760] : &:r2299_1 +# 2299| r2299_3(glval) = FunctionAddress[String] : +# 2299| v2299_4(void) = Call[String] : func:r2299_3, this:r2299_1 +# 2299| mu2299_5(unknown) = ^CallSideEffect : ~m? +# 2299| mu2299_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2299_1 +# 2300| r2300_1(glval) = VariableAddress[x760] : +# 2300| r2300_2(glval) = FunctionAddress[~String] : +# 2300| v2300_3(void) = Call[~String] : func:r2300_2, this:r2300_1 +# 2300| mu2300_4(unknown) = ^CallSideEffect : ~m? +# 2300| v2300_5(void) = ^IndirectReadSideEffect[-1] : &:r2300_1, ~m? +# 2300| mu2300_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_1 +# 2300| r2300_7(bool) = Constant[0] : +# 2300| v2300_8(void) = ConditionalBranch : r2300_7 +#-----| False -> Block 761 +#-----| True -> Block 1026 + +# 2302| Block 761 +# 2302| r2302_1(glval) = VariableAddress[x761] : +# 2302| mu2302_2(String) = Uninitialized[x761] : &:r2302_1 +# 2302| r2302_3(glval) = FunctionAddress[String] : +# 2302| v2302_4(void) = Call[String] : func:r2302_3, this:r2302_1 +# 2302| mu2302_5(unknown) = ^CallSideEffect : ~m? +# 2302| mu2302_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_1 +# 2303| r2303_1(glval) = VariableAddress[x761] : +# 2303| r2303_2(glval) = FunctionAddress[~String] : +# 2303| v2303_3(void) = Call[~String] : func:r2303_2, this:r2303_1 +# 2303| mu2303_4(unknown) = ^CallSideEffect : ~m? +# 2303| v2303_5(void) = ^IndirectReadSideEffect[-1] : &:r2303_1, ~m? +# 2303| mu2303_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2303_1 +# 2303| r2303_7(bool) = Constant[0] : +# 2303| v2303_8(void) = ConditionalBranch : r2303_7 +#-----| False -> Block 762 +#-----| True -> Block 1026 + +# 2305| Block 762 +# 2305| r2305_1(glval) = VariableAddress[x762] : +# 2305| mu2305_2(String) = Uninitialized[x762] : &:r2305_1 +# 2305| r2305_3(glval) = FunctionAddress[String] : +# 2305| v2305_4(void) = Call[String] : func:r2305_3, this:r2305_1 +# 2305| mu2305_5(unknown) = ^CallSideEffect : ~m? +# 2305| mu2305_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2305_1 +# 2306| r2306_1(glval) = VariableAddress[x762] : +# 2306| r2306_2(glval) = FunctionAddress[~String] : +# 2306| v2306_3(void) = Call[~String] : func:r2306_2, this:r2306_1 +# 2306| mu2306_4(unknown) = ^CallSideEffect : ~m? +# 2306| v2306_5(void) = ^IndirectReadSideEffect[-1] : &:r2306_1, ~m? +# 2306| mu2306_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 +# 2306| r2306_7(bool) = Constant[0] : +# 2306| v2306_8(void) = ConditionalBranch : r2306_7 +#-----| False -> Block 763 +#-----| True -> Block 1026 + +# 2308| Block 763 +# 2308| r2308_1(glval) = VariableAddress[x763] : +# 2308| mu2308_2(String) = Uninitialized[x763] : &:r2308_1 +# 2308| r2308_3(glval) = FunctionAddress[String] : +# 2308| v2308_4(void) = Call[String] : func:r2308_3, this:r2308_1 +# 2308| mu2308_5(unknown) = ^CallSideEffect : ~m? +# 2308| mu2308_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_1 +# 2309| r2309_1(glval) = VariableAddress[x763] : +# 2309| r2309_2(glval) = FunctionAddress[~String] : +# 2309| v2309_3(void) = Call[~String] : func:r2309_2, this:r2309_1 +# 2309| mu2309_4(unknown) = ^CallSideEffect : ~m? +# 2309| v2309_5(void) = ^IndirectReadSideEffect[-1] : &:r2309_1, ~m? +# 2309| mu2309_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2309_1 +# 2309| r2309_7(bool) = Constant[0] : +# 2309| v2309_8(void) = ConditionalBranch : r2309_7 +#-----| False -> Block 764 +#-----| True -> Block 1026 + +# 2311| Block 764 +# 2311| r2311_1(glval) = VariableAddress[x764] : +# 2311| mu2311_2(String) = Uninitialized[x764] : &:r2311_1 +# 2311| r2311_3(glval) = FunctionAddress[String] : +# 2311| v2311_4(void) = Call[String] : func:r2311_3, this:r2311_1 +# 2311| mu2311_5(unknown) = ^CallSideEffect : ~m? +# 2311| mu2311_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2311_1 +# 2312| r2312_1(glval) = VariableAddress[x764] : +# 2312| r2312_2(glval) = FunctionAddress[~String] : +# 2312| v2312_3(void) = Call[~String] : func:r2312_2, this:r2312_1 +# 2312| mu2312_4(unknown) = ^CallSideEffect : ~m? +# 2312| v2312_5(void) = ^IndirectReadSideEffect[-1] : &:r2312_1, ~m? +# 2312| mu2312_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2312| r2312_7(bool) = Constant[0] : +# 2312| v2312_8(void) = ConditionalBranch : r2312_7 +#-----| False -> Block 765 +#-----| True -> Block 1026 + +# 2314| Block 765 +# 2314| r2314_1(glval) = VariableAddress[x765] : +# 2314| mu2314_2(String) = Uninitialized[x765] : &:r2314_1 +# 2314| r2314_3(glval) = FunctionAddress[String] : +# 2314| v2314_4(void) = Call[String] : func:r2314_3, this:r2314_1 +# 2314| mu2314_5(unknown) = ^CallSideEffect : ~m? +# 2314| mu2314_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_1 +# 2315| r2315_1(glval) = VariableAddress[x765] : +# 2315| r2315_2(glval) = FunctionAddress[~String] : +# 2315| v2315_3(void) = Call[~String] : func:r2315_2, this:r2315_1 +# 2315| mu2315_4(unknown) = ^CallSideEffect : ~m? +# 2315| v2315_5(void) = ^IndirectReadSideEffect[-1] : &:r2315_1, ~m? +# 2315| mu2315_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2315_1 +# 2315| r2315_7(bool) = Constant[0] : +# 2315| v2315_8(void) = ConditionalBranch : r2315_7 +#-----| False -> Block 766 +#-----| True -> Block 1026 + +# 2317| Block 766 +# 2317| r2317_1(glval) = VariableAddress[x766] : +# 2317| mu2317_2(String) = Uninitialized[x766] : &:r2317_1 +# 2317| r2317_3(glval) = FunctionAddress[String] : +# 2317| v2317_4(void) = Call[String] : func:r2317_3, this:r2317_1 +# 2317| mu2317_5(unknown) = ^CallSideEffect : ~m? +# 2317| mu2317_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2317_1 +# 2318| r2318_1(glval) = VariableAddress[x766] : +# 2318| r2318_2(glval) = FunctionAddress[~String] : +# 2318| v2318_3(void) = Call[~String] : func:r2318_2, this:r2318_1 +# 2318| mu2318_4(unknown) = ^CallSideEffect : ~m? +# 2318| v2318_5(void) = ^IndirectReadSideEffect[-1] : &:r2318_1, ~m? +# 2318| mu2318_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 +# 2318| r2318_7(bool) = Constant[0] : +# 2318| v2318_8(void) = ConditionalBranch : r2318_7 +#-----| False -> Block 767 +#-----| True -> Block 1026 + +# 2320| Block 767 +# 2320| r2320_1(glval) = VariableAddress[x767] : +# 2320| mu2320_2(String) = Uninitialized[x767] : &:r2320_1 +# 2320| r2320_3(glval) = FunctionAddress[String] : +# 2320| v2320_4(void) = Call[String] : func:r2320_3, this:r2320_1 +# 2320| mu2320_5(unknown) = ^CallSideEffect : ~m? +# 2320| mu2320_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +# 2321| r2321_1(glval) = VariableAddress[x767] : +# 2321| r2321_2(glval) = FunctionAddress[~String] : +# 2321| v2321_3(void) = Call[~String] : func:r2321_2, this:r2321_1 +# 2321| mu2321_4(unknown) = ^CallSideEffect : ~m? +# 2321| v2321_5(void) = ^IndirectReadSideEffect[-1] : &:r2321_1, ~m? +# 2321| mu2321_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2321_1 +# 2321| r2321_7(bool) = Constant[0] : +# 2321| v2321_8(void) = ConditionalBranch : r2321_7 +#-----| False -> Block 768 +#-----| True -> Block 1026 + +# 2323| Block 768 +# 2323| r2323_1(glval) = VariableAddress[x768] : +# 2323| mu2323_2(String) = Uninitialized[x768] : &:r2323_1 +# 2323| r2323_3(glval) = FunctionAddress[String] : +# 2323| v2323_4(void) = Call[String] : func:r2323_3, this:r2323_1 +# 2323| mu2323_5(unknown) = ^CallSideEffect : ~m? +# 2323| mu2323_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2323_1 +# 2324| r2324_1(glval) = VariableAddress[x768] : +# 2324| r2324_2(glval) = FunctionAddress[~String] : +# 2324| v2324_3(void) = Call[~String] : func:r2324_2, this:r2324_1 +# 2324| mu2324_4(unknown) = ^CallSideEffect : ~m? +# 2324| v2324_5(void) = ^IndirectReadSideEffect[-1] : &:r2324_1, ~m? +# 2324| mu2324_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2324_1 +# 2324| r2324_7(bool) = Constant[0] : +# 2324| v2324_8(void) = ConditionalBranch : r2324_7 +#-----| False -> Block 769 +#-----| True -> Block 1026 + +# 2326| Block 769 +# 2326| r2326_1(glval) = VariableAddress[x769] : +# 2326| mu2326_2(String) = Uninitialized[x769] : &:r2326_1 +# 2326| r2326_3(glval) = FunctionAddress[String] : +# 2326| v2326_4(void) = Call[String] : func:r2326_3, this:r2326_1 +# 2326| mu2326_5(unknown) = ^CallSideEffect : ~m? +# 2326| mu2326_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2326_1 +# 2327| r2327_1(glval) = VariableAddress[x769] : +# 2327| r2327_2(glval) = FunctionAddress[~String] : +# 2327| v2327_3(void) = Call[~String] : func:r2327_2, this:r2327_1 +# 2327| mu2327_4(unknown) = ^CallSideEffect : ~m? +# 2327| v2327_5(void) = ^IndirectReadSideEffect[-1] : &:r2327_1, ~m? +# 2327| mu2327_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2327_1 +# 2327| r2327_7(bool) = Constant[0] : +# 2327| v2327_8(void) = ConditionalBranch : r2327_7 +#-----| False -> Block 770 +#-----| True -> Block 1026 + +# 2329| Block 770 +# 2329| r2329_1(glval) = VariableAddress[x770] : +# 2329| mu2329_2(String) = Uninitialized[x770] : &:r2329_1 +# 2329| r2329_3(glval) = FunctionAddress[String] : +# 2329| v2329_4(void) = Call[String] : func:r2329_3, this:r2329_1 +# 2329| mu2329_5(unknown) = ^CallSideEffect : ~m? +# 2329| mu2329_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2329_1 +# 2330| r2330_1(glval) = VariableAddress[x770] : +# 2330| r2330_2(glval) = FunctionAddress[~String] : +# 2330| v2330_3(void) = Call[~String] : func:r2330_2, this:r2330_1 +# 2330| mu2330_4(unknown) = ^CallSideEffect : ~m? +# 2330| v2330_5(void) = ^IndirectReadSideEffect[-1] : &:r2330_1, ~m? +# 2330| mu2330_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2330_1 +# 2330| r2330_7(bool) = Constant[0] : +# 2330| v2330_8(void) = ConditionalBranch : r2330_7 +#-----| False -> Block 771 +#-----| True -> Block 1026 + +# 2332| Block 771 +# 2332| r2332_1(glval) = VariableAddress[x771] : +# 2332| mu2332_2(String) = Uninitialized[x771] : &:r2332_1 +# 2332| r2332_3(glval) = FunctionAddress[String] : +# 2332| v2332_4(void) = Call[String] : func:r2332_3, this:r2332_1 +# 2332| mu2332_5(unknown) = ^CallSideEffect : ~m? +# 2332| mu2332_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2332_1 +# 2333| r2333_1(glval) = VariableAddress[x771] : +# 2333| r2333_2(glval) = FunctionAddress[~String] : +# 2333| v2333_3(void) = Call[~String] : func:r2333_2, this:r2333_1 +# 2333| mu2333_4(unknown) = ^CallSideEffect : ~m? +# 2333| v2333_5(void) = ^IndirectReadSideEffect[-1] : &:r2333_1, ~m? +# 2333| mu2333_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2333_1 +# 2333| r2333_7(bool) = Constant[0] : +# 2333| v2333_8(void) = ConditionalBranch : r2333_7 +#-----| False -> Block 772 +#-----| True -> Block 1026 + +# 2335| Block 772 +# 2335| r2335_1(glval) = VariableAddress[x772] : +# 2335| mu2335_2(String) = Uninitialized[x772] : &:r2335_1 +# 2335| r2335_3(glval) = FunctionAddress[String] : +# 2335| v2335_4(void) = Call[String] : func:r2335_3, this:r2335_1 +# 2335| mu2335_5(unknown) = ^CallSideEffect : ~m? +# 2335| mu2335_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 +# 2336| r2336_1(glval) = VariableAddress[x772] : +# 2336| r2336_2(glval) = FunctionAddress[~String] : +# 2336| v2336_3(void) = Call[~String] : func:r2336_2, this:r2336_1 +# 2336| mu2336_4(unknown) = ^CallSideEffect : ~m? +# 2336| v2336_5(void) = ^IndirectReadSideEffect[-1] : &:r2336_1, ~m? +# 2336| mu2336_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 +# 2336| r2336_7(bool) = Constant[0] : +# 2336| v2336_8(void) = ConditionalBranch : r2336_7 +#-----| False -> Block 773 +#-----| True -> Block 1026 + +# 2338| Block 773 +# 2338| r2338_1(glval) = VariableAddress[x773] : +# 2338| mu2338_2(String) = Uninitialized[x773] : &:r2338_1 +# 2338| r2338_3(glval) = FunctionAddress[String] : +# 2338| v2338_4(void) = Call[String] : func:r2338_3, this:r2338_1 +# 2338| mu2338_5(unknown) = ^CallSideEffect : ~m? +# 2338| mu2338_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2338_1 +# 2339| r2339_1(glval) = VariableAddress[x773] : +# 2339| r2339_2(glval) = FunctionAddress[~String] : +# 2339| v2339_3(void) = Call[~String] : func:r2339_2, this:r2339_1 +# 2339| mu2339_4(unknown) = ^CallSideEffect : ~m? +# 2339| v2339_5(void) = ^IndirectReadSideEffect[-1] : &:r2339_1, ~m? +# 2339| mu2339_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2339_1 +# 2339| r2339_7(bool) = Constant[0] : +# 2339| v2339_8(void) = ConditionalBranch : r2339_7 +#-----| False -> Block 774 +#-----| True -> Block 1026 + +# 2341| Block 774 +# 2341| r2341_1(glval) = VariableAddress[x774] : +# 2341| mu2341_2(String) = Uninitialized[x774] : &:r2341_1 +# 2341| r2341_3(glval) = FunctionAddress[String] : +# 2341| v2341_4(void) = Call[String] : func:r2341_3, this:r2341_1 +# 2341| mu2341_5(unknown) = ^CallSideEffect : ~m? +# 2341| mu2341_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2341_1 +# 2342| r2342_1(glval) = VariableAddress[x774] : +# 2342| r2342_2(glval) = FunctionAddress[~String] : +# 2342| v2342_3(void) = Call[~String] : func:r2342_2, this:r2342_1 +# 2342| mu2342_4(unknown) = ^CallSideEffect : ~m? +# 2342| v2342_5(void) = ^IndirectReadSideEffect[-1] : &:r2342_1, ~m? +# 2342| mu2342_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2342_1 +# 2342| r2342_7(bool) = Constant[0] : +# 2342| v2342_8(void) = ConditionalBranch : r2342_7 +#-----| False -> Block 775 +#-----| True -> Block 1026 + +# 2344| Block 775 +# 2344| r2344_1(glval) = VariableAddress[x775] : +# 2344| mu2344_2(String) = Uninitialized[x775] : &:r2344_1 +# 2344| r2344_3(glval) = FunctionAddress[String] : +# 2344| v2344_4(void) = Call[String] : func:r2344_3, this:r2344_1 +# 2344| mu2344_5(unknown) = ^CallSideEffect : ~m? +# 2344| mu2344_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2344_1 +# 2345| r2345_1(glval) = VariableAddress[x775] : +# 2345| r2345_2(glval) = FunctionAddress[~String] : +# 2345| v2345_3(void) = Call[~String] : func:r2345_2, this:r2345_1 +# 2345| mu2345_4(unknown) = ^CallSideEffect : ~m? +# 2345| v2345_5(void) = ^IndirectReadSideEffect[-1] : &:r2345_1, ~m? +# 2345| mu2345_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2345_1 +# 2345| r2345_7(bool) = Constant[0] : +# 2345| v2345_8(void) = ConditionalBranch : r2345_7 +#-----| False -> Block 776 +#-----| True -> Block 1026 + +# 2347| Block 776 +# 2347| r2347_1(glval) = VariableAddress[x776] : +# 2347| mu2347_2(String) = Uninitialized[x776] : &:r2347_1 +# 2347| r2347_3(glval) = FunctionAddress[String] : +# 2347| v2347_4(void) = Call[String] : func:r2347_3, this:r2347_1 +# 2347| mu2347_5(unknown) = ^CallSideEffect : ~m? +# 2347| mu2347_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2347_1 +# 2348| r2348_1(glval) = VariableAddress[x776] : +# 2348| r2348_2(glval) = FunctionAddress[~String] : +# 2348| v2348_3(void) = Call[~String] : func:r2348_2, this:r2348_1 +# 2348| mu2348_4(unknown) = ^CallSideEffect : ~m? +# 2348| v2348_5(void) = ^IndirectReadSideEffect[-1] : &:r2348_1, ~m? +# 2348| mu2348_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2348_1 +# 2348| r2348_7(bool) = Constant[0] : +# 2348| v2348_8(void) = ConditionalBranch : r2348_7 +#-----| False -> Block 777 +#-----| True -> Block 1026 + +# 2350| Block 777 +# 2350| r2350_1(glval) = VariableAddress[x777] : +# 2350| mu2350_2(String) = Uninitialized[x777] : &:r2350_1 +# 2350| r2350_3(glval) = FunctionAddress[String] : +# 2350| v2350_4(void) = Call[String] : func:r2350_3, this:r2350_1 +# 2350| mu2350_5(unknown) = ^CallSideEffect : ~m? +# 2350| mu2350_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2350_1 +# 2351| r2351_1(glval) = VariableAddress[x777] : +# 2351| r2351_2(glval) = FunctionAddress[~String] : +# 2351| v2351_3(void) = Call[~String] : func:r2351_2, this:r2351_1 +# 2351| mu2351_4(unknown) = ^CallSideEffect : ~m? +# 2351| v2351_5(void) = ^IndirectReadSideEffect[-1] : &:r2351_1, ~m? +# 2351| mu2351_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 +# 2351| r2351_7(bool) = Constant[0] : +# 2351| v2351_8(void) = ConditionalBranch : r2351_7 +#-----| False -> Block 778 +#-----| True -> Block 1026 + +# 2353| Block 778 +# 2353| r2353_1(glval) = VariableAddress[x778] : +# 2353| mu2353_2(String) = Uninitialized[x778] : &:r2353_1 +# 2353| r2353_3(glval) = FunctionAddress[String] : +# 2353| v2353_4(void) = Call[String] : func:r2353_3, this:r2353_1 +# 2353| mu2353_5(unknown) = ^CallSideEffect : ~m? +# 2353| mu2353_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2353_1 +# 2354| r2354_1(glval) = VariableAddress[x778] : +# 2354| r2354_2(glval) = FunctionAddress[~String] : +# 2354| v2354_3(void) = Call[~String] : func:r2354_2, this:r2354_1 +# 2354| mu2354_4(unknown) = ^CallSideEffect : ~m? +# 2354| v2354_5(void) = ^IndirectReadSideEffect[-1] : &:r2354_1, ~m? +# 2354| mu2354_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2354_1 +# 2354| r2354_7(bool) = Constant[0] : +# 2354| v2354_8(void) = ConditionalBranch : r2354_7 +#-----| False -> Block 779 +#-----| True -> Block 1026 + +# 2356| Block 779 +# 2356| r2356_1(glval) = VariableAddress[x779] : +# 2356| mu2356_2(String) = Uninitialized[x779] : &:r2356_1 +# 2356| r2356_3(glval) = FunctionAddress[String] : +# 2356| v2356_4(void) = Call[String] : func:r2356_3, this:r2356_1 +# 2356| mu2356_5(unknown) = ^CallSideEffect : ~m? +# 2356| mu2356_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2356_1 +# 2357| r2357_1(glval) = VariableAddress[x779] : +# 2357| r2357_2(glval) = FunctionAddress[~String] : +# 2357| v2357_3(void) = Call[~String] : func:r2357_2, this:r2357_1 +# 2357| mu2357_4(unknown) = ^CallSideEffect : ~m? +# 2357| v2357_5(void) = ^IndirectReadSideEffect[-1] : &:r2357_1, ~m? +# 2357| mu2357_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2357_1 +# 2357| r2357_7(bool) = Constant[0] : +# 2357| v2357_8(void) = ConditionalBranch : r2357_7 +#-----| False -> Block 780 +#-----| True -> Block 1026 + +# 2359| Block 780 +# 2359| r2359_1(glval) = VariableAddress[x780] : +# 2359| mu2359_2(String) = Uninitialized[x780] : &:r2359_1 +# 2359| r2359_3(glval) = FunctionAddress[String] : +# 2359| v2359_4(void) = Call[String] : func:r2359_3, this:r2359_1 +# 2359| mu2359_5(unknown) = ^CallSideEffect : ~m? +# 2359| mu2359_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_1 +# 2360| r2360_1(glval) = VariableAddress[x780] : +# 2360| r2360_2(glval) = FunctionAddress[~String] : +# 2360| v2360_3(void) = Call[~String] : func:r2360_2, this:r2360_1 +# 2360| mu2360_4(unknown) = ^CallSideEffect : ~m? +# 2360| v2360_5(void) = ^IndirectReadSideEffect[-1] : &:r2360_1, ~m? +# 2360| mu2360_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2360_1 +# 2360| r2360_7(bool) = Constant[0] : +# 2360| v2360_8(void) = ConditionalBranch : r2360_7 +#-----| False -> Block 781 +#-----| True -> Block 1026 + +# 2362| Block 781 +# 2362| r2362_1(glval) = VariableAddress[x781] : +# 2362| mu2362_2(String) = Uninitialized[x781] : &:r2362_1 +# 2362| r2362_3(glval) = FunctionAddress[String] : +# 2362| v2362_4(void) = Call[String] : func:r2362_3, this:r2362_1 +# 2362| mu2362_5(unknown) = ^CallSideEffect : ~m? +# 2362| mu2362_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2362_1 +# 2363| r2363_1(glval) = VariableAddress[x781] : +# 2363| r2363_2(glval) = FunctionAddress[~String] : +# 2363| v2363_3(void) = Call[~String] : func:r2363_2, this:r2363_1 +# 2363| mu2363_4(unknown) = ^CallSideEffect : ~m? +# 2363| v2363_5(void) = ^IndirectReadSideEffect[-1] : &:r2363_1, ~m? +# 2363| mu2363_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2363_1 +# 2363| r2363_7(bool) = Constant[0] : +# 2363| v2363_8(void) = ConditionalBranch : r2363_7 +#-----| False -> Block 782 +#-----| True -> Block 1026 + +# 2365| Block 782 +# 2365| r2365_1(glval) = VariableAddress[x782] : +# 2365| mu2365_2(String) = Uninitialized[x782] : &:r2365_1 +# 2365| r2365_3(glval) = FunctionAddress[String] : +# 2365| v2365_4(void) = Call[String] : func:r2365_3, this:r2365_1 +# 2365| mu2365_5(unknown) = ^CallSideEffect : ~m? +# 2365| mu2365_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2365_1 +# 2366| r2366_1(glval) = VariableAddress[x782] : +# 2366| r2366_2(glval) = FunctionAddress[~String] : +# 2366| v2366_3(void) = Call[~String] : func:r2366_2, this:r2366_1 +# 2366| mu2366_4(unknown) = ^CallSideEffect : ~m? +# 2366| v2366_5(void) = ^IndirectReadSideEffect[-1] : &:r2366_1, ~m? +# 2366| mu2366_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_1 +# 2366| r2366_7(bool) = Constant[0] : +# 2366| v2366_8(void) = ConditionalBranch : r2366_7 +#-----| False -> Block 783 +#-----| True -> Block 1026 + +# 2368| Block 783 +# 2368| r2368_1(glval) = VariableAddress[x783] : +# 2368| mu2368_2(String) = Uninitialized[x783] : &:r2368_1 +# 2368| r2368_3(glval) = FunctionAddress[String] : +# 2368| v2368_4(void) = Call[String] : func:r2368_3, this:r2368_1 +# 2368| mu2368_5(unknown) = ^CallSideEffect : ~m? +# 2368| mu2368_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_1 +# 2369| r2369_1(glval) = VariableAddress[x783] : +# 2369| r2369_2(glval) = FunctionAddress[~String] : +# 2369| v2369_3(void) = Call[~String] : func:r2369_2, this:r2369_1 +# 2369| mu2369_4(unknown) = ^CallSideEffect : ~m? +# 2369| v2369_5(void) = ^IndirectReadSideEffect[-1] : &:r2369_1, ~m? +# 2369| mu2369_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2369_1 +# 2369| r2369_7(bool) = Constant[0] : +# 2369| v2369_8(void) = ConditionalBranch : r2369_7 +#-----| False -> Block 784 +#-----| True -> Block 1026 + +# 2371| Block 784 +# 2371| r2371_1(glval) = VariableAddress[x784] : +# 2371| mu2371_2(String) = Uninitialized[x784] : &:r2371_1 +# 2371| r2371_3(glval) = FunctionAddress[String] : +# 2371| v2371_4(void) = Call[String] : func:r2371_3, this:r2371_1 +# 2371| mu2371_5(unknown) = ^CallSideEffect : ~m? +# 2371| mu2371_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2371_1 +# 2372| r2372_1(glval) = VariableAddress[x784] : +# 2372| r2372_2(glval) = FunctionAddress[~String] : +# 2372| v2372_3(void) = Call[~String] : func:r2372_2, this:r2372_1 +# 2372| mu2372_4(unknown) = ^CallSideEffect : ~m? +# 2372| v2372_5(void) = ^IndirectReadSideEffect[-1] : &:r2372_1, ~m? +# 2372| mu2372_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2372_1 +# 2372| r2372_7(bool) = Constant[0] : +# 2372| v2372_8(void) = ConditionalBranch : r2372_7 +#-----| False -> Block 785 +#-----| True -> Block 1026 + +# 2374| Block 785 +# 2374| r2374_1(glval) = VariableAddress[x785] : +# 2374| mu2374_2(String) = Uninitialized[x785] : &:r2374_1 +# 2374| r2374_3(glval) = FunctionAddress[String] : +# 2374| v2374_4(void) = Call[String] : func:r2374_3, this:r2374_1 +# 2374| mu2374_5(unknown) = ^CallSideEffect : ~m? +# 2374| mu2374_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_1 +# 2375| r2375_1(glval) = VariableAddress[x785] : +# 2375| r2375_2(glval) = FunctionAddress[~String] : +# 2375| v2375_3(void) = Call[~String] : func:r2375_2, this:r2375_1 +# 2375| mu2375_4(unknown) = ^CallSideEffect : ~m? +# 2375| v2375_5(void) = ^IndirectReadSideEffect[-1] : &:r2375_1, ~m? +# 2375| mu2375_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2375_1 +# 2375| r2375_7(bool) = Constant[0] : +# 2375| v2375_8(void) = ConditionalBranch : r2375_7 +#-----| False -> Block 786 +#-----| True -> Block 1026 + +# 2377| Block 786 +# 2377| r2377_1(glval) = VariableAddress[x786] : +# 2377| mu2377_2(String) = Uninitialized[x786] : &:r2377_1 +# 2377| r2377_3(glval) = FunctionAddress[String] : +# 2377| v2377_4(void) = Call[String] : func:r2377_3, this:r2377_1 +# 2377| mu2377_5(unknown) = ^CallSideEffect : ~m? +# 2377| mu2377_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2377_1 +# 2378| r2378_1(glval) = VariableAddress[x786] : +# 2378| r2378_2(glval) = FunctionAddress[~String] : +# 2378| v2378_3(void) = Call[~String] : func:r2378_2, this:r2378_1 +# 2378| mu2378_4(unknown) = ^CallSideEffect : ~m? +# 2378| v2378_5(void) = ^IndirectReadSideEffect[-1] : &:r2378_1, ~m? +# 2378| mu2378_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2378_1 +# 2378| r2378_7(bool) = Constant[0] : +# 2378| v2378_8(void) = ConditionalBranch : r2378_7 +#-----| False -> Block 787 +#-----| True -> Block 1026 + +# 2380| Block 787 +# 2380| r2380_1(glval) = VariableAddress[x787] : +# 2380| mu2380_2(String) = Uninitialized[x787] : &:r2380_1 +# 2380| r2380_3(glval) = FunctionAddress[String] : +# 2380| v2380_4(void) = Call[String] : func:r2380_3, this:r2380_1 +# 2380| mu2380_5(unknown) = ^CallSideEffect : ~m? +# 2380| mu2380_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2380_1 +# 2381| r2381_1(glval) = VariableAddress[x787] : +# 2381| r2381_2(glval) = FunctionAddress[~String] : +# 2381| v2381_3(void) = Call[~String] : func:r2381_2, this:r2381_1 +# 2381| mu2381_4(unknown) = ^CallSideEffect : ~m? +# 2381| v2381_5(void) = ^IndirectReadSideEffect[-1] : &:r2381_1, ~m? +# 2381| mu2381_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2381_1 +# 2381| r2381_7(bool) = Constant[0] : +# 2381| v2381_8(void) = ConditionalBranch : r2381_7 +#-----| False -> Block 788 +#-----| True -> Block 1026 + +# 2383| Block 788 +# 2383| r2383_1(glval) = VariableAddress[x788] : +# 2383| mu2383_2(String) = Uninitialized[x788] : &:r2383_1 +# 2383| r2383_3(glval) = FunctionAddress[String] : +# 2383| v2383_4(void) = Call[String] : func:r2383_3, this:r2383_1 +# 2383| mu2383_5(unknown) = ^CallSideEffect : ~m? +# 2383| mu2383_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2383_1 +# 2384| r2384_1(glval) = VariableAddress[x788] : +# 2384| r2384_2(glval) = FunctionAddress[~String] : +# 2384| v2384_3(void) = Call[~String] : func:r2384_2, this:r2384_1 +# 2384| mu2384_4(unknown) = ^CallSideEffect : ~m? +# 2384| v2384_5(void) = ^IndirectReadSideEffect[-1] : &:r2384_1, ~m? +# 2384| mu2384_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2384_1 +# 2384| r2384_7(bool) = Constant[0] : +# 2384| v2384_8(void) = ConditionalBranch : r2384_7 +#-----| False -> Block 789 +#-----| True -> Block 1026 + +# 2386| Block 789 +# 2386| r2386_1(glval) = VariableAddress[x789] : +# 2386| mu2386_2(String) = Uninitialized[x789] : &:r2386_1 +# 2386| r2386_3(glval) = FunctionAddress[String] : +# 2386| v2386_4(void) = Call[String] : func:r2386_3, this:r2386_1 +# 2386| mu2386_5(unknown) = ^CallSideEffect : ~m? +# 2386| mu2386_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2386_1 +# 2387| r2387_1(glval) = VariableAddress[x789] : +# 2387| r2387_2(glval) = FunctionAddress[~String] : +# 2387| v2387_3(void) = Call[~String] : func:r2387_2, this:r2387_1 +# 2387| mu2387_4(unknown) = ^CallSideEffect : ~m? +# 2387| v2387_5(void) = ^IndirectReadSideEffect[-1] : &:r2387_1, ~m? +# 2387| mu2387_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2387_1 +# 2387| r2387_7(bool) = Constant[0] : +# 2387| v2387_8(void) = ConditionalBranch : r2387_7 +#-----| False -> Block 790 +#-----| True -> Block 1026 + +# 2389| Block 790 +# 2389| r2389_1(glval) = VariableAddress[x790] : +# 2389| mu2389_2(String) = Uninitialized[x790] : &:r2389_1 +# 2389| r2389_3(glval) = FunctionAddress[String] : +# 2389| v2389_4(void) = Call[String] : func:r2389_3, this:r2389_1 +# 2389| mu2389_5(unknown) = ^CallSideEffect : ~m? +# 2389| mu2389_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2389_1 +# 2390| r2390_1(glval) = VariableAddress[x790] : +# 2390| r2390_2(glval) = FunctionAddress[~String] : +# 2390| v2390_3(void) = Call[~String] : func:r2390_2, this:r2390_1 +# 2390| mu2390_4(unknown) = ^CallSideEffect : ~m? +# 2390| v2390_5(void) = ^IndirectReadSideEffect[-1] : &:r2390_1, ~m? +# 2390| mu2390_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2390_1 +# 2390| r2390_7(bool) = Constant[0] : +# 2390| v2390_8(void) = ConditionalBranch : r2390_7 +#-----| False -> Block 791 +#-----| True -> Block 1026 + +# 2392| Block 791 +# 2392| r2392_1(glval) = VariableAddress[x791] : +# 2392| mu2392_2(String) = Uninitialized[x791] : &:r2392_1 +# 2392| r2392_3(glval) = FunctionAddress[String] : +# 2392| v2392_4(void) = Call[String] : func:r2392_3, this:r2392_1 +# 2392| mu2392_5(unknown) = ^CallSideEffect : ~m? +# 2392| mu2392_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2392_1 +# 2393| r2393_1(glval) = VariableAddress[x791] : +# 2393| r2393_2(glval) = FunctionAddress[~String] : +# 2393| v2393_3(void) = Call[~String] : func:r2393_2, this:r2393_1 +# 2393| mu2393_4(unknown) = ^CallSideEffect : ~m? +# 2393| v2393_5(void) = ^IndirectReadSideEffect[-1] : &:r2393_1, ~m? +# 2393| mu2393_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2393_1 +# 2393| r2393_7(bool) = Constant[0] : +# 2393| v2393_8(void) = ConditionalBranch : r2393_7 +#-----| False -> Block 792 +#-----| True -> Block 1026 + +# 2395| Block 792 +# 2395| r2395_1(glval) = VariableAddress[x792] : +# 2395| mu2395_2(String) = Uninitialized[x792] : &:r2395_1 +# 2395| r2395_3(glval) = FunctionAddress[String] : +# 2395| v2395_4(void) = Call[String] : func:r2395_3, this:r2395_1 +# 2395| mu2395_5(unknown) = ^CallSideEffect : ~m? +# 2395| mu2395_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2395_1 +# 2396| r2396_1(glval) = VariableAddress[x792] : +# 2396| r2396_2(glval) = FunctionAddress[~String] : +# 2396| v2396_3(void) = Call[~String] : func:r2396_2, this:r2396_1 +# 2396| mu2396_4(unknown) = ^CallSideEffect : ~m? +# 2396| v2396_5(void) = ^IndirectReadSideEffect[-1] : &:r2396_1, ~m? +# 2396| mu2396_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2396_1 +# 2396| r2396_7(bool) = Constant[0] : +# 2396| v2396_8(void) = ConditionalBranch : r2396_7 +#-----| False -> Block 793 +#-----| True -> Block 1026 + +# 2398| Block 793 +# 2398| r2398_1(glval) = VariableAddress[x793] : +# 2398| mu2398_2(String) = Uninitialized[x793] : &:r2398_1 +# 2398| r2398_3(glval) = FunctionAddress[String] : +# 2398| v2398_4(void) = Call[String] : func:r2398_3, this:r2398_1 +# 2398| mu2398_5(unknown) = ^CallSideEffect : ~m? +# 2398| mu2398_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2398_1 +# 2399| r2399_1(glval) = VariableAddress[x793] : +# 2399| r2399_2(glval) = FunctionAddress[~String] : +# 2399| v2399_3(void) = Call[~String] : func:r2399_2, this:r2399_1 +# 2399| mu2399_4(unknown) = ^CallSideEffect : ~m? +# 2399| v2399_5(void) = ^IndirectReadSideEffect[-1] : &:r2399_1, ~m? +# 2399| mu2399_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2399_1 +# 2399| r2399_7(bool) = Constant[0] : +# 2399| v2399_8(void) = ConditionalBranch : r2399_7 +#-----| False -> Block 794 +#-----| True -> Block 1026 + +# 2401| Block 794 +# 2401| r2401_1(glval) = VariableAddress[x794] : +# 2401| mu2401_2(String) = Uninitialized[x794] : &:r2401_1 +# 2401| r2401_3(glval) = FunctionAddress[String] : +# 2401| v2401_4(void) = Call[String] : func:r2401_3, this:r2401_1 +# 2401| mu2401_5(unknown) = ^CallSideEffect : ~m? +# 2401| mu2401_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2401_1 +# 2402| r2402_1(glval) = VariableAddress[x794] : +# 2402| r2402_2(glval) = FunctionAddress[~String] : +# 2402| v2402_3(void) = Call[~String] : func:r2402_2, this:r2402_1 +# 2402| mu2402_4(unknown) = ^CallSideEffect : ~m? +# 2402| v2402_5(void) = ^IndirectReadSideEffect[-1] : &:r2402_1, ~m? +# 2402| mu2402_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2402_1 +# 2402| r2402_7(bool) = Constant[0] : +# 2402| v2402_8(void) = ConditionalBranch : r2402_7 +#-----| False -> Block 795 +#-----| True -> Block 1026 + +# 2404| Block 795 +# 2404| r2404_1(glval) = VariableAddress[x795] : +# 2404| mu2404_2(String) = Uninitialized[x795] : &:r2404_1 +# 2404| r2404_3(glval) = FunctionAddress[String] : +# 2404| v2404_4(void) = Call[String] : func:r2404_3, this:r2404_1 +# 2404| mu2404_5(unknown) = ^CallSideEffect : ~m? +# 2404| mu2404_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2404_1 +# 2405| r2405_1(glval) = VariableAddress[x795] : +# 2405| r2405_2(glval) = FunctionAddress[~String] : +# 2405| v2405_3(void) = Call[~String] : func:r2405_2, this:r2405_1 +# 2405| mu2405_4(unknown) = ^CallSideEffect : ~m? +# 2405| v2405_5(void) = ^IndirectReadSideEffect[-1] : &:r2405_1, ~m? +# 2405| mu2405_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2405_1 +# 2405| r2405_7(bool) = Constant[0] : +# 2405| v2405_8(void) = ConditionalBranch : r2405_7 +#-----| False -> Block 796 +#-----| True -> Block 1026 + +# 2407| Block 796 +# 2407| r2407_1(glval) = VariableAddress[x796] : +# 2407| mu2407_2(String) = Uninitialized[x796] : &:r2407_1 +# 2407| r2407_3(glval) = FunctionAddress[String] : +# 2407| v2407_4(void) = Call[String] : func:r2407_3, this:r2407_1 +# 2407| mu2407_5(unknown) = ^CallSideEffect : ~m? +# 2407| mu2407_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2407_1 +# 2408| r2408_1(glval) = VariableAddress[x796] : +# 2408| r2408_2(glval) = FunctionAddress[~String] : +# 2408| v2408_3(void) = Call[~String] : func:r2408_2, this:r2408_1 +# 2408| mu2408_4(unknown) = ^CallSideEffect : ~m? +# 2408| v2408_5(void) = ^IndirectReadSideEffect[-1] : &:r2408_1, ~m? +# 2408| mu2408_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2408_1 +# 2408| r2408_7(bool) = Constant[0] : +# 2408| v2408_8(void) = ConditionalBranch : r2408_7 +#-----| False -> Block 797 +#-----| True -> Block 1026 + +# 2410| Block 797 +# 2410| r2410_1(glval) = VariableAddress[x797] : +# 2410| mu2410_2(String) = Uninitialized[x797] : &:r2410_1 +# 2410| r2410_3(glval) = FunctionAddress[String] : +# 2410| v2410_4(void) = Call[String] : func:r2410_3, this:r2410_1 +# 2410| mu2410_5(unknown) = ^CallSideEffect : ~m? +# 2410| mu2410_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2410_1 +# 2411| r2411_1(glval) = VariableAddress[x797] : +# 2411| r2411_2(glval) = FunctionAddress[~String] : +# 2411| v2411_3(void) = Call[~String] : func:r2411_2, this:r2411_1 +# 2411| mu2411_4(unknown) = ^CallSideEffect : ~m? +# 2411| v2411_5(void) = ^IndirectReadSideEffect[-1] : &:r2411_1, ~m? +# 2411| mu2411_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2411_1 +# 2411| r2411_7(bool) = Constant[0] : +# 2411| v2411_8(void) = ConditionalBranch : r2411_7 +#-----| False -> Block 798 +#-----| True -> Block 1026 + +# 2413| Block 798 +# 2413| r2413_1(glval) = VariableAddress[x798] : +# 2413| mu2413_2(String) = Uninitialized[x798] : &:r2413_1 +# 2413| r2413_3(glval) = FunctionAddress[String] : +# 2413| v2413_4(void) = Call[String] : func:r2413_3, this:r2413_1 +# 2413| mu2413_5(unknown) = ^CallSideEffect : ~m? +# 2413| mu2413_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2413_1 +# 2414| r2414_1(glval) = VariableAddress[x798] : +# 2414| r2414_2(glval) = FunctionAddress[~String] : +# 2414| v2414_3(void) = Call[~String] : func:r2414_2, this:r2414_1 +# 2414| mu2414_4(unknown) = ^CallSideEffect : ~m? +# 2414| v2414_5(void) = ^IndirectReadSideEffect[-1] : &:r2414_1, ~m? +# 2414| mu2414_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2414_1 +# 2414| r2414_7(bool) = Constant[0] : +# 2414| v2414_8(void) = ConditionalBranch : r2414_7 +#-----| False -> Block 799 +#-----| True -> Block 1026 + +# 2416| Block 799 +# 2416| r2416_1(glval) = VariableAddress[x799] : +# 2416| mu2416_2(String) = Uninitialized[x799] : &:r2416_1 +# 2416| r2416_3(glval) = FunctionAddress[String] : +# 2416| v2416_4(void) = Call[String] : func:r2416_3, this:r2416_1 +# 2416| mu2416_5(unknown) = ^CallSideEffect : ~m? +# 2416| mu2416_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2416_1 +# 2417| r2417_1(glval) = VariableAddress[x799] : +# 2417| r2417_2(glval) = FunctionAddress[~String] : +# 2417| v2417_3(void) = Call[~String] : func:r2417_2, this:r2417_1 +# 2417| mu2417_4(unknown) = ^CallSideEffect : ~m? +# 2417| v2417_5(void) = ^IndirectReadSideEffect[-1] : &:r2417_1, ~m? +# 2417| mu2417_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2417_1 +# 2417| r2417_7(bool) = Constant[0] : +# 2417| v2417_8(void) = ConditionalBranch : r2417_7 +#-----| False -> Block 800 +#-----| True -> Block 1026 + +# 2419| Block 800 +# 2419| r2419_1(glval) = VariableAddress[x800] : +# 2419| mu2419_2(String) = Uninitialized[x800] : &:r2419_1 +# 2419| r2419_3(glval) = FunctionAddress[String] : +# 2419| v2419_4(void) = Call[String] : func:r2419_3, this:r2419_1 +# 2419| mu2419_5(unknown) = ^CallSideEffect : ~m? +# 2419| mu2419_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2419_1 +# 2420| r2420_1(glval) = VariableAddress[x800] : +# 2420| r2420_2(glval) = FunctionAddress[~String] : +# 2420| v2420_3(void) = Call[~String] : func:r2420_2, this:r2420_1 +# 2420| mu2420_4(unknown) = ^CallSideEffect : ~m? +# 2420| v2420_5(void) = ^IndirectReadSideEffect[-1] : &:r2420_1, ~m? +# 2420| mu2420_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2420_1 +# 2420| r2420_7(bool) = Constant[0] : +# 2420| v2420_8(void) = ConditionalBranch : r2420_7 +#-----| False -> Block 801 +#-----| True -> Block 1026 + +# 2422| Block 801 +# 2422| r2422_1(glval) = VariableAddress[x801] : +# 2422| mu2422_2(String) = Uninitialized[x801] : &:r2422_1 +# 2422| r2422_3(glval) = FunctionAddress[String] : +# 2422| v2422_4(void) = Call[String] : func:r2422_3, this:r2422_1 +# 2422| mu2422_5(unknown) = ^CallSideEffect : ~m? +# 2422| mu2422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2422_1 +# 2423| r2423_1(glval) = VariableAddress[x801] : +# 2423| r2423_2(glval) = FunctionAddress[~String] : +# 2423| v2423_3(void) = Call[~String] : func:r2423_2, this:r2423_1 +# 2423| mu2423_4(unknown) = ^CallSideEffect : ~m? +# 2423| v2423_5(void) = ^IndirectReadSideEffect[-1] : &:r2423_1, ~m? +# 2423| mu2423_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2423_1 +# 2423| r2423_7(bool) = Constant[0] : +# 2423| v2423_8(void) = ConditionalBranch : r2423_7 +#-----| False -> Block 802 +#-----| True -> Block 1026 + +# 2425| Block 802 +# 2425| r2425_1(glval) = VariableAddress[x802] : +# 2425| mu2425_2(String) = Uninitialized[x802] : &:r2425_1 +# 2425| r2425_3(glval) = FunctionAddress[String] : +# 2425| v2425_4(void) = Call[String] : func:r2425_3, this:r2425_1 +# 2425| mu2425_5(unknown) = ^CallSideEffect : ~m? +# 2425| mu2425_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2425_1 +# 2426| r2426_1(glval) = VariableAddress[x802] : +# 2426| r2426_2(glval) = FunctionAddress[~String] : +# 2426| v2426_3(void) = Call[~String] : func:r2426_2, this:r2426_1 +# 2426| mu2426_4(unknown) = ^CallSideEffect : ~m? +# 2426| v2426_5(void) = ^IndirectReadSideEffect[-1] : &:r2426_1, ~m? +# 2426| mu2426_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2426_1 +# 2426| r2426_7(bool) = Constant[0] : +# 2426| v2426_8(void) = ConditionalBranch : r2426_7 +#-----| False -> Block 803 +#-----| True -> Block 1026 + +# 2428| Block 803 +# 2428| r2428_1(glval) = VariableAddress[x803] : +# 2428| mu2428_2(String) = Uninitialized[x803] : &:r2428_1 +# 2428| r2428_3(glval) = FunctionAddress[String] : +# 2428| v2428_4(void) = Call[String] : func:r2428_3, this:r2428_1 +# 2428| mu2428_5(unknown) = ^CallSideEffect : ~m? +# 2428| mu2428_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2428_1 +# 2429| r2429_1(glval) = VariableAddress[x803] : +# 2429| r2429_2(glval) = FunctionAddress[~String] : +# 2429| v2429_3(void) = Call[~String] : func:r2429_2, this:r2429_1 +# 2429| mu2429_4(unknown) = ^CallSideEffect : ~m? +# 2429| v2429_5(void) = ^IndirectReadSideEffect[-1] : &:r2429_1, ~m? +# 2429| mu2429_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2429_1 +# 2429| r2429_7(bool) = Constant[0] : +# 2429| v2429_8(void) = ConditionalBranch : r2429_7 +#-----| False -> Block 804 +#-----| True -> Block 1026 + +# 2431| Block 804 +# 2431| r2431_1(glval) = VariableAddress[x804] : +# 2431| mu2431_2(String) = Uninitialized[x804] : &:r2431_1 +# 2431| r2431_3(glval) = FunctionAddress[String] : +# 2431| v2431_4(void) = Call[String] : func:r2431_3, this:r2431_1 +# 2431| mu2431_5(unknown) = ^CallSideEffect : ~m? +# 2431| mu2431_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2431_1 +# 2432| r2432_1(glval) = VariableAddress[x804] : +# 2432| r2432_2(glval) = FunctionAddress[~String] : +# 2432| v2432_3(void) = Call[~String] : func:r2432_2, this:r2432_1 +# 2432| mu2432_4(unknown) = ^CallSideEffect : ~m? +# 2432| v2432_5(void) = ^IndirectReadSideEffect[-1] : &:r2432_1, ~m? +# 2432| mu2432_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2432_1 +# 2432| r2432_7(bool) = Constant[0] : +# 2432| v2432_8(void) = ConditionalBranch : r2432_7 +#-----| False -> Block 805 +#-----| True -> Block 1026 + +# 2434| Block 805 +# 2434| r2434_1(glval) = VariableAddress[x805] : +# 2434| mu2434_2(String) = Uninitialized[x805] : &:r2434_1 +# 2434| r2434_3(glval) = FunctionAddress[String] : +# 2434| v2434_4(void) = Call[String] : func:r2434_3, this:r2434_1 +# 2434| mu2434_5(unknown) = ^CallSideEffect : ~m? +# 2434| mu2434_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2434_1 +# 2435| r2435_1(glval) = VariableAddress[x805] : +# 2435| r2435_2(glval) = FunctionAddress[~String] : +# 2435| v2435_3(void) = Call[~String] : func:r2435_2, this:r2435_1 +# 2435| mu2435_4(unknown) = ^CallSideEffect : ~m? +# 2435| v2435_5(void) = ^IndirectReadSideEffect[-1] : &:r2435_1, ~m? +# 2435| mu2435_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2435_1 +# 2435| r2435_7(bool) = Constant[0] : +# 2435| v2435_8(void) = ConditionalBranch : r2435_7 +#-----| False -> Block 806 +#-----| True -> Block 1026 + +# 2437| Block 806 +# 2437| r2437_1(glval) = VariableAddress[x806] : +# 2437| mu2437_2(String) = Uninitialized[x806] : &:r2437_1 +# 2437| r2437_3(glval) = FunctionAddress[String] : +# 2437| v2437_4(void) = Call[String] : func:r2437_3, this:r2437_1 +# 2437| mu2437_5(unknown) = ^CallSideEffect : ~m? +# 2437| mu2437_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2437_1 +# 2438| r2438_1(glval) = VariableAddress[x806] : +# 2438| r2438_2(glval) = FunctionAddress[~String] : +# 2438| v2438_3(void) = Call[~String] : func:r2438_2, this:r2438_1 +# 2438| mu2438_4(unknown) = ^CallSideEffect : ~m? +# 2438| v2438_5(void) = ^IndirectReadSideEffect[-1] : &:r2438_1, ~m? +# 2438| mu2438_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2438_1 +# 2438| r2438_7(bool) = Constant[0] : +# 2438| v2438_8(void) = ConditionalBranch : r2438_7 +#-----| False -> Block 807 +#-----| True -> Block 1026 + +# 2440| Block 807 +# 2440| r2440_1(glval) = VariableAddress[x807] : +# 2440| mu2440_2(String) = Uninitialized[x807] : &:r2440_1 +# 2440| r2440_3(glval) = FunctionAddress[String] : +# 2440| v2440_4(void) = Call[String] : func:r2440_3, this:r2440_1 +# 2440| mu2440_5(unknown) = ^CallSideEffect : ~m? +# 2440| mu2440_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2440_1 +# 2441| r2441_1(glval) = VariableAddress[x807] : +# 2441| r2441_2(glval) = FunctionAddress[~String] : +# 2441| v2441_3(void) = Call[~String] : func:r2441_2, this:r2441_1 +# 2441| mu2441_4(unknown) = ^CallSideEffect : ~m? +# 2441| v2441_5(void) = ^IndirectReadSideEffect[-1] : &:r2441_1, ~m? +# 2441| mu2441_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2441_1 +# 2441| r2441_7(bool) = Constant[0] : +# 2441| v2441_8(void) = ConditionalBranch : r2441_7 +#-----| False -> Block 808 +#-----| True -> Block 1026 + +# 2443| Block 808 +# 2443| r2443_1(glval) = VariableAddress[x808] : +# 2443| mu2443_2(String) = Uninitialized[x808] : &:r2443_1 +# 2443| r2443_3(glval) = FunctionAddress[String] : +# 2443| v2443_4(void) = Call[String] : func:r2443_3, this:r2443_1 +# 2443| mu2443_5(unknown) = ^CallSideEffect : ~m? +# 2443| mu2443_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2443_1 +# 2444| r2444_1(glval) = VariableAddress[x808] : +# 2444| r2444_2(glval) = FunctionAddress[~String] : +# 2444| v2444_3(void) = Call[~String] : func:r2444_2, this:r2444_1 +# 2444| mu2444_4(unknown) = ^CallSideEffect : ~m? +# 2444| v2444_5(void) = ^IndirectReadSideEffect[-1] : &:r2444_1, ~m? +# 2444| mu2444_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2444_1 +# 2444| r2444_7(bool) = Constant[0] : +# 2444| v2444_8(void) = ConditionalBranch : r2444_7 +#-----| False -> Block 809 +#-----| True -> Block 1026 + +# 2446| Block 809 +# 2446| r2446_1(glval) = VariableAddress[x809] : +# 2446| mu2446_2(String) = Uninitialized[x809] : &:r2446_1 +# 2446| r2446_3(glval) = FunctionAddress[String] : +# 2446| v2446_4(void) = Call[String] : func:r2446_3, this:r2446_1 +# 2446| mu2446_5(unknown) = ^CallSideEffect : ~m? +# 2446| mu2446_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2446_1 +# 2447| r2447_1(glval) = VariableAddress[x809] : +# 2447| r2447_2(glval) = FunctionAddress[~String] : +# 2447| v2447_3(void) = Call[~String] : func:r2447_2, this:r2447_1 +# 2447| mu2447_4(unknown) = ^CallSideEffect : ~m? +# 2447| v2447_5(void) = ^IndirectReadSideEffect[-1] : &:r2447_1, ~m? +# 2447| mu2447_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2447_1 +# 2447| r2447_7(bool) = Constant[0] : +# 2447| v2447_8(void) = ConditionalBranch : r2447_7 +#-----| False -> Block 810 +#-----| True -> Block 1026 + +# 2449| Block 810 +# 2449| r2449_1(glval) = VariableAddress[x810] : +# 2449| mu2449_2(String) = Uninitialized[x810] : &:r2449_1 +# 2449| r2449_3(glval) = FunctionAddress[String] : +# 2449| v2449_4(void) = Call[String] : func:r2449_3, this:r2449_1 +# 2449| mu2449_5(unknown) = ^CallSideEffect : ~m? +# 2449| mu2449_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2449_1 +# 2450| r2450_1(glval) = VariableAddress[x810] : +# 2450| r2450_2(glval) = FunctionAddress[~String] : +# 2450| v2450_3(void) = Call[~String] : func:r2450_2, this:r2450_1 +# 2450| mu2450_4(unknown) = ^CallSideEffect : ~m? +# 2450| v2450_5(void) = ^IndirectReadSideEffect[-1] : &:r2450_1, ~m? +# 2450| mu2450_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2450_1 +# 2450| r2450_7(bool) = Constant[0] : +# 2450| v2450_8(void) = ConditionalBranch : r2450_7 +#-----| False -> Block 811 +#-----| True -> Block 1026 + +# 2452| Block 811 +# 2452| r2452_1(glval) = VariableAddress[x811] : +# 2452| mu2452_2(String) = Uninitialized[x811] : &:r2452_1 +# 2452| r2452_3(glval) = FunctionAddress[String] : +# 2452| v2452_4(void) = Call[String] : func:r2452_3, this:r2452_1 +# 2452| mu2452_5(unknown) = ^CallSideEffect : ~m? +# 2452| mu2452_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2452_1 +# 2453| r2453_1(glval) = VariableAddress[x811] : +# 2453| r2453_2(glval) = FunctionAddress[~String] : +# 2453| v2453_3(void) = Call[~String] : func:r2453_2, this:r2453_1 +# 2453| mu2453_4(unknown) = ^CallSideEffect : ~m? +# 2453| v2453_5(void) = ^IndirectReadSideEffect[-1] : &:r2453_1, ~m? +# 2453| mu2453_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2453_1 +# 2453| r2453_7(bool) = Constant[0] : +# 2453| v2453_8(void) = ConditionalBranch : r2453_7 +#-----| False -> Block 812 +#-----| True -> Block 1026 + +# 2455| Block 812 +# 2455| r2455_1(glval) = VariableAddress[x812] : +# 2455| mu2455_2(String) = Uninitialized[x812] : &:r2455_1 +# 2455| r2455_3(glval) = FunctionAddress[String] : +# 2455| v2455_4(void) = Call[String] : func:r2455_3, this:r2455_1 +# 2455| mu2455_5(unknown) = ^CallSideEffect : ~m? +# 2455| mu2455_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2455_1 +# 2456| r2456_1(glval) = VariableAddress[x812] : +# 2456| r2456_2(glval) = FunctionAddress[~String] : +# 2456| v2456_3(void) = Call[~String] : func:r2456_2, this:r2456_1 +# 2456| mu2456_4(unknown) = ^CallSideEffect : ~m? +# 2456| v2456_5(void) = ^IndirectReadSideEffect[-1] : &:r2456_1, ~m? +# 2456| mu2456_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2456_1 +# 2456| r2456_7(bool) = Constant[0] : +# 2456| v2456_8(void) = ConditionalBranch : r2456_7 +#-----| False -> Block 813 +#-----| True -> Block 1026 + +# 2458| Block 813 +# 2458| r2458_1(glval) = VariableAddress[x813] : +# 2458| mu2458_2(String) = Uninitialized[x813] : &:r2458_1 +# 2458| r2458_3(glval) = FunctionAddress[String] : +# 2458| v2458_4(void) = Call[String] : func:r2458_3, this:r2458_1 +# 2458| mu2458_5(unknown) = ^CallSideEffect : ~m? +# 2458| mu2458_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2458_1 +# 2459| r2459_1(glval) = VariableAddress[x813] : +# 2459| r2459_2(glval) = FunctionAddress[~String] : +# 2459| v2459_3(void) = Call[~String] : func:r2459_2, this:r2459_1 +# 2459| mu2459_4(unknown) = ^CallSideEffect : ~m? +# 2459| v2459_5(void) = ^IndirectReadSideEffect[-1] : &:r2459_1, ~m? +# 2459| mu2459_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2459_1 +# 2459| r2459_7(bool) = Constant[0] : +# 2459| v2459_8(void) = ConditionalBranch : r2459_7 +#-----| False -> Block 814 +#-----| True -> Block 1026 + +# 2461| Block 814 +# 2461| r2461_1(glval) = VariableAddress[x814] : +# 2461| mu2461_2(String) = Uninitialized[x814] : &:r2461_1 +# 2461| r2461_3(glval) = FunctionAddress[String] : +# 2461| v2461_4(void) = Call[String] : func:r2461_3, this:r2461_1 +# 2461| mu2461_5(unknown) = ^CallSideEffect : ~m? +# 2461| mu2461_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2461_1 +# 2462| r2462_1(glval) = VariableAddress[x814] : +# 2462| r2462_2(glval) = FunctionAddress[~String] : +# 2462| v2462_3(void) = Call[~String] : func:r2462_2, this:r2462_1 +# 2462| mu2462_4(unknown) = ^CallSideEffect : ~m? +# 2462| v2462_5(void) = ^IndirectReadSideEffect[-1] : &:r2462_1, ~m? +# 2462| mu2462_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2462_1 +# 2462| r2462_7(bool) = Constant[0] : +# 2462| v2462_8(void) = ConditionalBranch : r2462_7 +#-----| False -> Block 815 +#-----| True -> Block 1026 + +# 2464| Block 815 +# 2464| r2464_1(glval) = VariableAddress[x815] : +# 2464| mu2464_2(String) = Uninitialized[x815] : &:r2464_1 +# 2464| r2464_3(glval) = FunctionAddress[String] : +# 2464| v2464_4(void) = Call[String] : func:r2464_3, this:r2464_1 +# 2464| mu2464_5(unknown) = ^CallSideEffect : ~m? +# 2464| mu2464_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2464_1 +# 2465| r2465_1(glval) = VariableAddress[x815] : +# 2465| r2465_2(glval) = FunctionAddress[~String] : +# 2465| v2465_3(void) = Call[~String] : func:r2465_2, this:r2465_1 +# 2465| mu2465_4(unknown) = ^CallSideEffect : ~m? +# 2465| v2465_5(void) = ^IndirectReadSideEffect[-1] : &:r2465_1, ~m? +# 2465| mu2465_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2465_1 +# 2465| r2465_7(bool) = Constant[0] : +# 2465| v2465_8(void) = ConditionalBranch : r2465_7 +#-----| False -> Block 816 +#-----| True -> Block 1026 + +# 2467| Block 816 +# 2467| r2467_1(glval) = VariableAddress[x816] : +# 2467| mu2467_2(String) = Uninitialized[x816] : &:r2467_1 +# 2467| r2467_3(glval) = FunctionAddress[String] : +# 2467| v2467_4(void) = Call[String] : func:r2467_3, this:r2467_1 +# 2467| mu2467_5(unknown) = ^CallSideEffect : ~m? +# 2467| mu2467_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2467_1 +# 2468| r2468_1(glval) = VariableAddress[x816] : +# 2468| r2468_2(glval) = FunctionAddress[~String] : +# 2468| v2468_3(void) = Call[~String] : func:r2468_2, this:r2468_1 +# 2468| mu2468_4(unknown) = ^CallSideEffect : ~m? +# 2468| v2468_5(void) = ^IndirectReadSideEffect[-1] : &:r2468_1, ~m? +# 2468| mu2468_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2468_1 +# 2468| r2468_7(bool) = Constant[0] : +# 2468| v2468_8(void) = ConditionalBranch : r2468_7 +#-----| False -> Block 817 +#-----| True -> Block 1026 + +# 2470| Block 817 +# 2470| r2470_1(glval) = VariableAddress[x817] : +# 2470| mu2470_2(String) = Uninitialized[x817] : &:r2470_1 +# 2470| r2470_3(glval) = FunctionAddress[String] : +# 2470| v2470_4(void) = Call[String] : func:r2470_3, this:r2470_1 +# 2470| mu2470_5(unknown) = ^CallSideEffect : ~m? +# 2470| mu2470_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2470_1 +# 2471| r2471_1(glval) = VariableAddress[x817] : +# 2471| r2471_2(glval) = FunctionAddress[~String] : +# 2471| v2471_3(void) = Call[~String] : func:r2471_2, this:r2471_1 +# 2471| mu2471_4(unknown) = ^CallSideEffect : ~m? +# 2471| v2471_5(void) = ^IndirectReadSideEffect[-1] : &:r2471_1, ~m? +# 2471| mu2471_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2471_1 +# 2471| r2471_7(bool) = Constant[0] : +# 2471| v2471_8(void) = ConditionalBranch : r2471_7 +#-----| False -> Block 818 +#-----| True -> Block 1026 + +# 2473| Block 818 +# 2473| r2473_1(glval) = VariableAddress[x818] : +# 2473| mu2473_2(String) = Uninitialized[x818] : &:r2473_1 +# 2473| r2473_3(glval) = FunctionAddress[String] : +# 2473| v2473_4(void) = Call[String] : func:r2473_3, this:r2473_1 +# 2473| mu2473_5(unknown) = ^CallSideEffect : ~m? +# 2473| mu2473_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2473_1 +# 2474| r2474_1(glval) = VariableAddress[x818] : +# 2474| r2474_2(glval) = FunctionAddress[~String] : +# 2474| v2474_3(void) = Call[~String] : func:r2474_2, this:r2474_1 +# 2474| mu2474_4(unknown) = ^CallSideEffect : ~m? +# 2474| v2474_5(void) = ^IndirectReadSideEffect[-1] : &:r2474_1, ~m? +# 2474| mu2474_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2474_1 +# 2474| r2474_7(bool) = Constant[0] : +# 2474| v2474_8(void) = ConditionalBranch : r2474_7 +#-----| False -> Block 819 +#-----| True -> Block 1026 + +# 2476| Block 819 +# 2476| r2476_1(glval) = VariableAddress[x819] : +# 2476| mu2476_2(String) = Uninitialized[x819] : &:r2476_1 +# 2476| r2476_3(glval) = FunctionAddress[String] : +# 2476| v2476_4(void) = Call[String] : func:r2476_3, this:r2476_1 +# 2476| mu2476_5(unknown) = ^CallSideEffect : ~m? +# 2476| mu2476_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2476_1 +# 2477| r2477_1(glval) = VariableAddress[x819] : +# 2477| r2477_2(glval) = FunctionAddress[~String] : +# 2477| v2477_3(void) = Call[~String] : func:r2477_2, this:r2477_1 +# 2477| mu2477_4(unknown) = ^CallSideEffect : ~m? +# 2477| v2477_5(void) = ^IndirectReadSideEffect[-1] : &:r2477_1, ~m? +# 2477| mu2477_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2477_1 +# 2477| r2477_7(bool) = Constant[0] : +# 2477| v2477_8(void) = ConditionalBranch : r2477_7 +#-----| False -> Block 820 +#-----| True -> Block 1026 + +# 2479| Block 820 +# 2479| r2479_1(glval) = VariableAddress[x820] : +# 2479| mu2479_2(String) = Uninitialized[x820] : &:r2479_1 +# 2479| r2479_3(glval) = FunctionAddress[String] : +# 2479| v2479_4(void) = Call[String] : func:r2479_3, this:r2479_1 +# 2479| mu2479_5(unknown) = ^CallSideEffect : ~m? +# 2479| mu2479_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2479_1 +# 2480| r2480_1(glval) = VariableAddress[x820] : +# 2480| r2480_2(glval) = FunctionAddress[~String] : +# 2480| v2480_3(void) = Call[~String] : func:r2480_2, this:r2480_1 +# 2480| mu2480_4(unknown) = ^CallSideEffect : ~m? +# 2480| v2480_5(void) = ^IndirectReadSideEffect[-1] : &:r2480_1, ~m? +# 2480| mu2480_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2480_1 +# 2480| r2480_7(bool) = Constant[0] : +# 2480| v2480_8(void) = ConditionalBranch : r2480_7 +#-----| False -> Block 821 +#-----| True -> Block 1026 + +# 2482| Block 821 +# 2482| r2482_1(glval) = VariableAddress[x821] : +# 2482| mu2482_2(String) = Uninitialized[x821] : &:r2482_1 +# 2482| r2482_3(glval) = FunctionAddress[String] : +# 2482| v2482_4(void) = Call[String] : func:r2482_3, this:r2482_1 +# 2482| mu2482_5(unknown) = ^CallSideEffect : ~m? +# 2482| mu2482_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2482_1 +# 2483| r2483_1(glval) = VariableAddress[x821] : +# 2483| r2483_2(glval) = FunctionAddress[~String] : +# 2483| v2483_3(void) = Call[~String] : func:r2483_2, this:r2483_1 +# 2483| mu2483_4(unknown) = ^CallSideEffect : ~m? +# 2483| v2483_5(void) = ^IndirectReadSideEffect[-1] : &:r2483_1, ~m? +# 2483| mu2483_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2483_1 +# 2483| r2483_7(bool) = Constant[0] : +# 2483| v2483_8(void) = ConditionalBranch : r2483_7 +#-----| False -> Block 822 +#-----| True -> Block 1026 + +# 2485| Block 822 +# 2485| r2485_1(glval) = VariableAddress[x822] : +# 2485| mu2485_2(String) = Uninitialized[x822] : &:r2485_1 +# 2485| r2485_3(glval) = FunctionAddress[String] : +# 2485| v2485_4(void) = Call[String] : func:r2485_3, this:r2485_1 +# 2485| mu2485_5(unknown) = ^CallSideEffect : ~m? +# 2485| mu2485_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2485_1 +# 2486| r2486_1(glval) = VariableAddress[x822] : +# 2486| r2486_2(glval) = FunctionAddress[~String] : +# 2486| v2486_3(void) = Call[~String] : func:r2486_2, this:r2486_1 +# 2486| mu2486_4(unknown) = ^CallSideEffect : ~m? +# 2486| v2486_5(void) = ^IndirectReadSideEffect[-1] : &:r2486_1, ~m? +# 2486| mu2486_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2486_1 +# 2486| r2486_7(bool) = Constant[0] : +# 2486| v2486_8(void) = ConditionalBranch : r2486_7 +#-----| False -> Block 823 +#-----| True -> Block 1026 + +# 2488| Block 823 +# 2488| r2488_1(glval) = VariableAddress[x823] : +# 2488| mu2488_2(String) = Uninitialized[x823] : &:r2488_1 +# 2488| r2488_3(glval) = FunctionAddress[String] : +# 2488| v2488_4(void) = Call[String] : func:r2488_3, this:r2488_1 +# 2488| mu2488_5(unknown) = ^CallSideEffect : ~m? +# 2488| mu2488_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2488_1 +# 2489| r2489_1(glval) = VariableAddress[x823] : +# 2489| r2489_2(glval) = FunctionAddress[~String] : +# 2489| v2489_3(void) = Call[~String] : func:r2489_2, this:r2489_1 +# 2489| mu2489_4(unknown) = ^CallSideEffect : ~m? +# 2489| v2489_5(void) = ^IndirectReadSideEffect[-1] : &:r2489_1, ~m? +# 2489| mu2489_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2489_1 +# 2489| r2489_7(bool) = Constant[0] : +# 2489| v2489_8(void) = ConditionalBranch : r2489_7 +#-----| False -> Block 824 +#-----| True -> Block 1026 + +# 2491| Block 824 +# 2491| r2491_1(glval) = VariableAddress[x824] : +# 2491| mu2491_2(String) = Uninitialized[x824] : &:r2491_1 +# 2491| r2491_3(glval) = FunctionAddress[String] : +# 2491| v2491_4(void) = Call[String] : func:r2491_3, this:r2491_1 +# 2491| mu2491_5(unknown) = ^CallSideEffect : ~m? +# 2491| mu2491_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2491_1 +# 2492| r2492_1(glval) = VariableAddress[x824] : +# 2492| r2492_2(glval) = FunctionAddress[~String] : +# 2492| v2492_3(void) = Call[~String] : func:r2492_2, this:r2492_1 +# 2492| mu2492_4(unknown) = ^CallSideEffect : ~m? +# 2492| v2492_5(void) = ^IndirectReadSideEffect[-1] : &:r2492_1, ~m? +# 2492| mu2492_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2492_1 +# 2492| r2492_7(bool) = Constant[0] : +# 2492| v2492_8(void) = ConditionalBranch : r2492_7 +#-----| False -> Block 825 +#-----| True -> Block 1026 + +# 2494| Block 825 +# 2494| r2494_1(glval) = VariableAddress[x825] : +# 2494| mu2494_2(String) = Uninitialized[x825] : &:r2494_1 +# 2494| r2494_3(glval) = FunctionAddress[String] : +# 2494| v2494_4(void) = Call[String] : func:r2494_3, this:r2494_1 +# 2494| mu2494_5(unknown) = ^CallSideEffect : ~m? +# 2494| mu2494_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2494_1 +# 2495| r2495_1(glval) = VariableAddress[x825] : +# 2495| r2495_2(glval) = FunctionAddress[~String] : +# 2495| v2495_3(void) = Call[~String] : func:r2495_2, this:r2495_1 +# 2495| mu2495_4(unknown) = ^CallSideEffect : ~m? +# 2495| v2495_5(void) = ^IndirectReadSideEffect[-1] : &:r2495_1, ~m? +# 2495| mu2495_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2495_1 +# 2495| r2495_7(bool) = Constant[0] : +# 2495| v2495_8(void) = ConditionalBranch : r2495_7 +#-----| False -> Block 826 +#-----| True -> Block 1026 + +# 2497| Block 826 +# 2497| r2497_1(glval) = VariableAddress[x826] : +# 2497| mu2497_2(String) = Uninitialized[x826] : &:r2497_1 +# 2497| r2497_3(glval) = FunctionAddress[String] : +# 2497| v2497_4(void) = Call[String] : func:r2497_3, this:r2497_1 +# 2497| mu2497_5(unknown) = ^CallSideEffect : ~m? +# 2497| mu2497_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2497_1 +# 2498| r2498_1(glval) = VariableAddress[x826] : +# 2498| r2498_2(glval) = FunctionAddress[~String] : +# 2498| v2498_3(void) = Call[~String] : func:r2498_2, this:r2498_1 +# 2498| mu2498_4(unknown) = ^CallSideEffect : ~m? +# 2498| v2498_5(void) = ^IndirectReadSideEffect[-1] : &:r2498_1, ~m? +# 2498| mu2498_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2498_1 +# 2498| r2498_7(bool) = Constant[0] : +# 2498| v2498_8(void) = ConditionalBranch : r2498_7 +#-----| False -> Block 827 +#-----| True -> Block 1026 + +# 2500| Block 827 +# 2500| r2500_1(glval) = VariableAddress[x827] : +# 2500| mu2500_2(String) = Uninitialized[x827] : &:r2500_1 +# 2500| r2500_3(glval) = FunctionAddress[String] : +# 2500| v2500_4(void) = Call[String] : func:r2500_3, this:r2500_1 +# 2500| mu2500_5(unknown) = ^CallSideEffect : ~m? +# 2500| mu2500_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2500_1 +# 2501| r2501_1(glval) = VariableAddress[x827] : +# 2501| r2501_2(glval) = FunctionAddress[~String] : +# 2501| v2501_3(void) = Call[~String] : func:r2501_2, this:r2501_1 +# 2501| mu2501_4(unknown) = ^CallSideEffect : ~m? +# 2501| v2501_5(void) = ^IndirectReadSideEffect[-1] : &:r2501_1, ~m? +# 2501| mu2501_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2501_1 +# 2501| r2501_7(bool) = Constant[0] : +# 2501| v2501_8(void) = ConditionalBranch : r2501_7 +#-----| False -> Block 828 +#-----| True -> Block 1026 + +# 2503| Block 828 +# 2503| r2503_1(glval) = VariableAddress[x828] : +# 2503| mu2503_2(String) = Uninitialized[x828] : &:r2503_1 +# 2503| r2503_3(glval) = FunctionAddress[String] : +# 2503| v2503_4(void) = Call[String] : func:r2503_3, this:r2503_1 +# 2503| mu2503_5(unknown) = ^CallSideEffect : ~m? +# 2503| mu2503_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2503_1 +# 2504| r2504_1(glval) = VariableAddress[x828] : +# 2504| r2504_2(glval) = FunctionAddress[~String] : +# 2504| v2504_3(void) = Call[~String] : func:r2504_2, this:r2504_1 +# 2504| mu2504_4(unknown) = ^CallSideEffect : ~m? +# 2504| v2504_5(void) = ^IndirectReadSideEffect[-1] : &:r2504_1, ~m? +# 2504| mu2504_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2504_1 +# 2504| r2504_7(bool) = Constant[0] : +# 2504| v2504_8(void) = ConditionalBranch : r2504_7 +#-----| False -> Block 829 +#-----| True -> Block 1026 + +# 2506| Block 829 +# 2506| r2506_1(glval) = VariableAddress[x829] : +# 2506| mu2506_2(String) = Uninitialized[x829] : &:r2506_1 +# 2506| r2506_3(glval) = FunctionAddress[String] : +# 2506| v2506_4(void) = Call[String] : func:r2506_3, this:r2506_1 +# 2506| mu2506_5(unknown) = ^CallSideEffect : ~m? +# 2506| mu2506_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2506_1 +# 2507| r2507_1(glval) = VariableAddress[x829] : +# 2507| r2507_2(glval) = FunctionAddress[~String] : +# 2507| v2507_3(void) = Call[~String] : func:r2507_2, this:r2507_1 +# 2507| mu2507_4(unknown) = ^CallSideEffect : ~m? +# 2507| v2507_5(void) = ^IndirectReadSideEffect[-1] : &:r2507_1, ~m? +# 2507| mu2507_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2507_1 +# 2507| r2507_7(bool) = Constant[0] : +# 2507| v2507_8(void) = ConditionalBranch : r2507_7 +#-----| False -> Block 830 +#-----| True -> Block 1026 + +# 2509| Block 830 +# 2509| r2509_1(glval) = VariableAddress[x830] : +# 2509| mu2509_2(String) = Uninitialized[x830] : &:r2509_1 +# 2509| r2509_3(glval) = FunctionAddress[String] : +# 2509| v2509_4(void) = Call[String] : func:r2509_3, this:r2509_1 +# 2509| mu2509_5(unknown) = ^CallSideEffect : ~m? +# 2509| mu2509_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2509_1 +# 2510| r2510_1(glval) = VariableAddress[x830] : +# 2510| r2510_2(glval) = FunctionAddress[~String] : +# 2510| v2510_3(void) = Call[~String] : func:r2510_2, this:r2510_1 +# 2510| mu2510_4(unknown) = ^CallSideEffect : ~m? +# 2510| v2510_5(void) = ^IndirectReadSideEffect[-1] : &:r2510_1, ~m? +# 2510| mu2510_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2510_1 +# 2510| r2510_7(bool) = Constant[0] : +# 2510| v2510_8(void) = ConditionalBranch : r2510_7 +#-----| False -> Block 831 +#-----| True -> Block 1026 + +# 2512| Block 831 +# 2512| r2512_1(glval) = VariableAddress[x831] : +# 2512| mu2512_2(String) = Uninitialized[x831] : &:r2512_1 +# 2512| r2512_3(glval) = FunctionAddress[String] : +# 2512| v2512_4(void) = Call[String] : func:r2512_3, this:r2512_1 +# 2512| mu2512_5(unknown) = ^CallSideEffect : ~m? +# 2512| mu2512_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2512_1 +# 2513| r2513_1(glval) = VariableAddress[x831] : +# 2513| r2513_2(glval) = FunctionAddress[~String] : +# 2513| v2513_3(void) = Call[~String] : func:r2513_2, this:r2513_1 +# 2513| mu2513_4(unknown) = ^CallSideEffect : ~m? +# 2513| v2513_5(void) = ^IndirectReadSideEffect[-1] : &:r2513_1, ~m? +# 2513| mu2513_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2513_1 +# 2513| r2513_7(bool) = Constant[0] : +# 2513| v2513_8(void) = ConditionalBranch : r2513_7 +#-----| False -> Block 832 +#-----| True -> Block 1026 + +# 2515| Block 832 +# 2515| r2515_1(glval) = VariableAddress[x832] : +# 2515| mu2515_2(String) = Uninitialized[x832] : &:r2515_1 +# 2515| r2515_3(glval) = FunctionAddress[String] : +# 2515| v2515_4(void) = Call[String] : func:r2515_3, this:r2515_1 +# 2515| mu2515_5(unknown) = ^CallSideEffect : ~m? +# 2515| mu2515_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2515_1 +# 2516| r2516_1(glval) = VariableAddress[x832] : +# 2516| r2516_2(glval) = FunctionAddress[~String] : +# 2516| v2516_3(void) = Call[~String] : func:r2516_2, this:r2516_1 +# 2516| mu2516_4(unknown) = ^CallSideEffect : ~m? +# 2516| v2516_5(void) = ^IndirectReadSideEffect[-1] : &:r2516_1, ~m? +# 2516| mu2516_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2516_1 +# 2516| r2516_7(bool) = Constant[0] : +# 2516| v2516_8(void) = ConditionalBranch : r2516_7 +#-----| False -> Block 833 +#-----| True -> Block 1026 + +# 2518| Block 833 +# 2518| r2518_1(glval) = VariableAddress[x833] : +# 2518| mu2518_2(String) = Uninitialized[x833] : &:r2518_1 +# 2518| r2518_3(glval) = FunctionAddress[String] : +# 2518| v2518_4(void) = Call[String] : func:r2518_3, this:r2518_1 +# 2518| mu2518_5(unknown) = ^CallSideEffect : ~m? +# 2518| mu2518_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2518_1 +# 2519| r2519_1(glval) = VariableAddress[x833] : +# 2519| r2519_2(glval) = FunctionAddress[~String] : +# 2519| v2519_3(void) = Call[~String] : func:r2519_2, this:r2519_1 +# 2519| mu2519_4(unknown) = ^CallSideEffect : ~m? +# 2519| v2519_5(void) = ^IndirectReadSideEffect[-1] : &:r2519_1, ~m? +# 2519| mu2519_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2519_1 +# 2519| r2519_7(bool) = Constant[0] : +# 2519| v2519_8(void) = ConditionalBranch : r2519_7 +#-----| False -> Block 834 +#-----| True -> Block 1026 + +# 2521| Block 834 +# 2521| r2521_1(glval) = VariableAddress[x834] : +# 2521| mu2521_2(String) = Uninitialized[x834] : &:r2521_1 +# 2521| r2521_3(glval) = FunctionAddress[String] : +# 2521| v2521_4(void) = Call[String] : func:r2521_3, this:r2521_1 +# 2521| mu2521_5(unknown) = ^CallSideEffect : ~m? +# 2521| mu2521_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2521_1 +# 2522| r2522_1(glval) = VariableAddress[x834] : +# 2522| r2522_2(glval) = FunctionAddress[~String] : +# 2522| v2522_3(void) = Call[~String] : func:r2522_2, this:r2522_1 +# 2522| mu2522_4(unknown) = ^CallSideEffect : ~m? +# 2522| v2522_5(void) = ^IndirectReadSideEffect[-1] : &:r2522_1, ~m? +# 2522| mu2522_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2522_1 +# 2522| r2522_7(bool) = Constant[0] : +# 2522| v2522_8(void) = ConditionalBranch : r2522_7 +#-----| False -> Block 835 +#-----| True -> Block 1026 + +# 2524| Block 835 +# 2524| r2524_1(glval) = VariableAddress[x835] : +# 2524| mu2524_2(String) = Uninitialized[x835] : &:r2524_1 +# 2524| r2524_3(glval) = FunctionAddress[String] : +# 2524| v2524_4(void) = Call[String] : func:r2524_3, this:r2524_1 +# 2524| mu2524_5(unknown) = ^CallSideEffect : ~m? +# 2524| mu2524_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2524_1 +# 2525| r2525_1(glval) = VariableAddress[x835] : +# 2525| r2525_2(glval) = FunctionAddress[~String] : +# 2525| v2525_3(void) = Call[~String] : func:r2525_2, this:r2525_1 +# 2525| mu2525_4(unknown) = ^CallSideEffect : ~m? +# 2525| v2525_5(void) = ^IndirectReadSideEffect[-1] : &:r2525_1, ~m? +# 2525| mu2525_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 +# 2525| r2525_7(bool) = Constant[0] : +# 2525| v2525_8(void) = ConditionalBranch : r2525_7 +#-----| False -> Block 836 +#-----| True -> Block 1026 + +# 2527| Block 836 +# 2527| r2527_1(glval) = VariableAddress[x836] : +# 2527| mu2527_2(String) = Uninitialized[x836] : &:r2527_1 +# 2527| r2527_3(glval) = FunctionAddress[String] : +# 2527| v2527_4(void) = Call[String] : func:r2527_3, this:r2527_1 +# 2527| mu2527_5(unknown) = ^CallSideEffect : ~m? +# 2527| mu2527_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2527_1 +# 2528| r2528_1(glval) = VariableAddress[x836] : +# 2528| r2528_2(glval) = FunctionAddress[~String] : +# 2528| v2528_3(void) = Call[~String] : func:r2528_2, this:r2528_1 +# 2528| mu2528_4(unknown) = ^CallSideEffect : ~m? +# 2528| v2528_5(void) = ^IndirectReadSideEffect[-1] : &:r2528_1, ~m? +# 2528| mu2528_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2528_1 +# 2528| r2528_7(bool) = Constant[0] : +# 2528| v2528_8(void) = ConditionalBranch : r2528_7 +#-----| False -> Block 837 +#-----| True -> Block 1026 + +# 2530| Block 837 +# 2530| r2530_1(glval) = VariableAddress[x837] : +# 2530| mu2530_2(String) = Uninitialized[x837] : &:r2530_1 +# 2530| r2530_3(glval) = FunctionAddress[String] : +# 2530| v2530_4(void) = Call[String] : func:r2530_3, this:r2530_1 +# 2530| mu2530_5(unknown) = ^CallSideEffect : ~m? +# 2530| mu2530_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2530_1 +# 2531| r2531_1(glval) = VariableAddress[x837] : +# 2531| r2531_2(glval) = FunctionAddress[~String] : +# 2531| v2531_3(void) = Call[~String] : func:r2531_2, this:r2531_1 +# 2531| mu2531_4(unknown) = ^CallSideEffect : ~m? +# 2531| v2531_5(void) = ^IndirectReadSideEffect[-1] : &:r2531_1, ~m? +# 2531| mu2531_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2531_1 +# 2531| r2531_7(bool) = Constant[0] : +# 2531| v2531_8(void) = ConditionalBranch : r2531_7 +#-----| False -> Block 838 +#-----| True -> Block 1026 + +# 2533| Block 838 +# 2533| r2533_1(glval) = VariableAddress[x838] : +# 2533| mu2533_2(String) = Uninitialized[x838] : &:r2533_1 +# 2533| r2533_3(glval) = FunctionAddress[String] : +# 2533| v2533_4(void) = Call[String] : func:r2533_3, this:r2533_1 +# 2533| mu2533_5(unknown) = ^CallSideEffect : ~m? +# 2533| mu2533_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2533_1 +# 2534| r2534_1(glval) = VariableAddress[x838] : +# 2534| r2534_2(glval) = FunctionAddress[~String] : +# 2534| v2534_3(void) = Call[~String] : func:r2534_2, this:r2534_1 +# 2534| mu2534_4(unknown) = ^CallSideEffect : ~m? +# 2534| v2534_5(void) = ^IndirectReadSideEffect[-1] : &:r2534_1, ~m? +# 2534| mu2534_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2534_1 +# 2534| r2534_7(bool) = Constant[0] : +# 2534| v2534_8(void) = ConditionalBranch : r2534_7 +#-----| False -> Block 839 +#-----| True -> Block 1026 + +# 2536| Block 839 +# 2536| r2536_1(glval) = VariableAddress[x839] : +# 2536| mu2536_2(String) = Uninitialized[x839] : &:r2536_1 +# 2536| r2536_3(glval) = FunctionAddress[String] : +# 2536| v2536_4(void) = Call[String] : func:r2536_3, this:r2536_1 +# 2536| mu2536_5(unknown) = ^CallSideEffect : ~m? +# 2536| mu2536_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2536_1 +# 2537| r2537_1(glval) = VariableAddress[x839] : +# 2537| r2537_2(glval) = FunctionAddress[~String] : +# 2537| v2537_3(void) = Call[~String] : func:r2537_2, this:r2537_1 +# 2537| mu2537_4(unknown) = ^CallSideEffect : ~m? +# 2537| v2537_5(void) = ^IndirectReadSideEffect[-1] : &:r2537_1, ~m? +# 2537| mu2537_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2537_1 +# 2537| r2537_7(bool) = Constant[0] : +# 2537| v2537_8(void) = ConditionalBranch : r2537_7 +#-----| False -> Block 840 +#-----| True -> Block 1026 + +# 2539| Block 840 +# 2539| r2539_1(glval) = VariableAddress[x840] : +# 2539| mu2539_2(String) = Uninitialized[x840] : &:r2539_1 +# 2539| r2539_3(glval) = FunctionAddress[String] : +# 2539| v2539_4(void) = Call[String] : func:r2539_3, this:r2539_1 +# 2539| mu2539_5(unknown) = ^CallSideEffect : ~m? +# 2539| mu2539_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2539_1 +# 2540| r2540_1(glval) = VariableAddress[x840] : +# 2540| r2540_2(glval) = FunctionAddress[~String] : +# 2540| v2540_3(void) = Call[~String] : func:r2540_2, this:r2540_1 +# 2540| mu2540_4(unknown) = ^CallSideEffect : ~m? +# 2540| v2540_5(void) = ^IndirectReadSideEffect[-1] : &:r2540_1, ~m? +# 2540| mu2540_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2540_1 +# 2540| r2540_7(bool) = Constant[0] : +# 2540| v2540_8(void) = ConditionalBranch : r2540_7 +#-----| False -> Block 841 +#-----| True -> Block 1026 + +# 2542| Block 841 +# 2542| r2542_1(glval) = VariableAddress[x841] : +# 2542| mu2542_2(String) = Uninitialized[x841] : &:r2542_1 +# 2542| r2542_3(glval) = FunctionAddress[String] : +# 2542| v2542_4(void) = Call[String] : func:r2542_3, this:r2542_1 +# 2542| mu2542_5(unknown) = ^CallSideEffect : ~m? +# 2542| mu2542_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2542_1 +# 2543| r2543_1(glval) = VariableAddress[x841] : +# 2543| r2543_2(glval) = FunctionAddress[~String] : +# 2543| v2543_3(void) = Call[~String] : func:r2543_2, this:r2543_1 +# 2543| mu2543_4(unknown) = ^CallSideEffect : ~m? +# 2543| v2543_5(void) = ^IndirectReadSideEffect[-1] : &:r2543_1, ~m? +# 2543| mu2543_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2543_1 +# 2543| r2543_7(bool) = Constant[0] : +# 2543| v2543_8(void) = ConditionalBranch : r2543_7 +#-----| False -> Block 842 +#-----| True -> Block 1026 + +# 2545| Block 842 +# 2545| r2545_1(glval) = VariableAddress[x842] : +# 2545| mu2545_2(String) = Uninitialized[x842] : &:r2545_1 +# 2545| r2545_3(glval) = FunctionAddress[String] : +# 2545| v2545_4(void) = Call[String] : func:r2545_3, this:r2545_1 +# 2545| mu2545_5(unknown) = ^CallSideEffect : ~m? +# 2545| mu2545_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2545_1 +# 2546| r2546_1(glval) = VariableAddress[x842] : +# 2546| r2546_2(glval) = FunctionAddress[~String] : +# 2546| v2546_3(void) = Call[~String] : func:r2546_2, this:r2546_1 +# 2546| mu2546_4(unknown) = ^CallSideEffect : ~m? +# 2546| v2546_5(void) = ^IndirectReadSideEffect[-1] : &:r2546_1, ~m? +# 2546| mu2546_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2546_1 +# 2546| r2546_7(bool) = Constant[0] : +# 2546| v2546_8(void) = ConditionalBranch : r2546_7 +#-----| False -> Block 843 +#-----| True -> Block 1026 + +# 2548| Block 843 +# 2548| r2548_1(glval) = VariableAddress[x843] : +# 2548| mu2548_2(String) = Uninitialized[x843] : &:r2548_1 +# 2548| r2548_3(glval) = FunctionAddress[String] : +# 2548| v2548_4(void) = Call[String] : func:r2548_3, this:r2548_1 +# 2548| mu2548_5(unknown) = ^CallSideEffect : ~m? +# 2548| mu2548_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2548_1 +# 2549| r2549_1(glval) = VariableAddress[x843] : +# 2549| r2549_2(glval) = FunctionAddress[~String] : +# 2549| v2549_3(void) = Call[~String] : func:r2549_2, this:r2549_1 +# 2549| mu2549_4(unknown) = ^CallSideEffect : ~m? +# 2549| v2549_5(void) = ^IndirectReadSideEffect[-1] : &:r2549_1, ~m? +# 2549| mu2549_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2549_1 +# 2549| r2549_7(bool) = Constant[0] : +# 2549| v2549_8(void) = ConditionalBranch : r2549_7 +#-----| False -> Block 844 +#-----| True -> Block 1026 + +# 2551| Block 844 +# 2551| r2551_1(glval) = VariableAddress[x844] : +# 2551| mu2551_2(String) = Uninitialized[x844] : &:r2551_1 +# 2551| r2551_3(glval) = FunctionAddress[String] : +# 2551| v2551_4(void) = Call[String] : func:r2551_3, this:r2551_1 +# 2551| mu2551_5(unknown) = ^CallSideEffect : ~m? +# 2551| mu2551_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2551_1 +# 2552| r2552_1(glval) = VariableAddress[x844] : +# 2552| r2552_2(glval) = FunctionAddress[~String] : +# 2552| v2552_3(void) = Call[~String] : func:r2552_2, this:r2552_1 +# 2552| mu2552_4(unknown) = ^CallSideEffect : ~m? +# 2552| v2552_5(void) = ^IndirectReadSideEffect[-1] : &:r2552_1, ~m? +# 2552| mu2552_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2552_1 +# 2552| r2552_7(bool) = Constant[0] : +# 2552| v2552_8(void) = ConditionalBranch : r2552_7 +#-----| False -> Block 845 +#-----| True -> Block 1026 + +# 2554| Block 845 +# 2554| r2554_1(glval) = VariableAddress[x845] : +# 2554| mu2554_2(String) = Uninitialized[x845] : &:r2554_1 +# 2554| r2554_3(glval) = FunctionAddress[String] : +# 2554| v2554_4(void) = Call[String] : func:r2554_3, this:r2554_1 +# 2554| mu2554_5(unknown) = ^CallSideEffect : ~m? +# 2554| mu2554_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2554_1 +# 2555| r2555_1(glval) = VariableAddress[x845] : +# 2555| r2555_2(glval) = FunctionAddress[~String] : +# 2555| v2555_3(void) = Call[~String] : func:r2555_2, this:r2555_1 +# 2555| mu2555_4(unknown) = ^CallSideEffect : ~m? +# 2555| v2555_5(void) = ^IndirectReadSideEffect[-1] : &:r2555_1, ~m? +# 2555| mu2555_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2555_1 +# 2555| r2555_7(bool) = Constant[0] : +# 2555| v2555_8(void) = ConditionalBranch : r2555_7 +#-----| False -> Block 846 +#-----| True -> Block 1026 + +# 2557| Block 846 +# 2557| r2557_1(glval) = VariableAddress[x846] : +# 2557| mu2557_2(String) = Uninitialized[x846] : &:r2557_1 +# 2557| r2557_3(glval) = FunctionAddress[String] : +# 2557| v2557_4(void) = Call[String] : func:r2557_3, this:r2557_1 +# 2557| mu2557_5(unknown) = ^CallSideEffect : ~m? +# 2557| mu2557_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2557_1 +# 2558| r2558_1(glval) = VariableAddress[x846] : +# 2558| r2558_2(glval) = FunctionAddress[~String] : +# 2558| v2558_3(void) = Call[~String] : func:r2558_2, this:r2558_1 +# 2558| mu2558_4(unknown) = ^CallSideEffect : ~m? +# 2558| v2558_5(void) = ^IndirectReadSideEffect[-1] : &:r2558_1, ~m? +# 2558| mu2558_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2558_1 +# 2558| r2558_7(bool) = Constant[0] : +# 2558| v2558_8(void) = ConditionalBranch : r2558_7 +#-----| False -> Block 847 +#-----| True -> Block 1026 + +# 2560| Block 847 +# 2560| r2560_1(glval) = VariableAddress[x847] : +# 2560| mu2560_2(String) = Uninitialized[x847] : &:r2560_1 +# 2560| r2560_3(glval) = FunctionAddress[String] : +# 2560| v2560_4(void) = Call[String] : func:r2560_3, this:r2560_1 +# 2560| mu2560_5(unknown) = ^CallSideEffect : ~m? +# 2560| mu2560_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2560_1 +# 2561| r2561_1(glval) = VariableAddress[x847] : +# 2561| r2561_2(glval) = FunctionAddress[~String] : +# 2561| v2561_3(void) = Call[~String] : func:r2561_2, this:r2561_1 +# 2561| mu2561_4(unknown) = ^CallSideEffect : ~m? +# 2561| v2561_5(void) = ^IndirectReadSideEffect[-1] : &:r2561_1, ~m? +# 2561| mu2561_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2561_1 +# 2561| r2561_7(bool) = Constant[0] : +# 2561| v2561_8(void) = ConditionalBranch : r2561_7 +#-----| False -> Block 848 +#-----| True -> Block 1026 + +# 2563| Block 848 +# 2563| r2563_1(glval) = VariableAddress[x848] : +# 2563| mu2563_2(String) = Uninitialized[x848] : &:r2563_1 +# 2563| r2563_3(glval) = FunctionAddress[String] : +# 2563| v2563_4(void) = Call[String] : func:r2563_3, this:r2563_1 +# 2563| mu2563_5(unknown) = ^CallSideEffect : ~m? +# 2563| mu2563_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2563_1 +# 2564| r2564_1(glval) = VariableAddress[x848] : +# 2564| r2564_2(glval) = FunctionAddress[~String] : +# 2564| v2564_3(void) = Call[~String] : func:r2564_2, this:r2564_1 +# 2564| mu2564_4(unknown) = ^CallSideEffect : ~m? +# 2564| v2564_5(void) = ^IndirectReadSideEffect[-1] : &:r2564_1, ~m? +# 2564| mu2564_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2564_1 +# 2564| r2564_7(bool) = Constant[0] : +# 2564| v2564_8(void) = ConditionalBranch : r2564_7 +#-----| False -> Block 849 +#-----| True -> Block 1026 + +# 2566| Block 849 +# 2566| r2566_1(glval) = VariableAddress[x849] : +# 2566| mu2566_2(String) = Uninitialized[x849] : &:r2566_1 +# 2566| r2566_3(glval) = FunctionAddress[String] : +# 2566| v2566_4(void) = Call[String] : func:r2566_3, this:r2566_1 +# 2566| mu2566_5(unknown) = ^CallSideEffect : ~m? +# 2566| mu2566_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2566_1 +# 2567| r2567_1(glval) = VariableAddress[x849] : +# 2567| r2567_2(glval) = FunctionAddress[~String] : +# 2567| v2567_3(void) = Call[~String] : func:r2567_2, this:r2567_1 +# 2567| mu2567_4(unknown) = ^CallSideEffect : ~m? +# 2567| v2567_5(void) = ^IndirectReadSideEffect[-1] : &:r2567_1, ~m? +# 2567| mu2567_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2567_1 +# 2567| r2567_7(bool) = Constant[0] : +# 2567| v2567_8(void) = ConditionalBranch : r2567_7 +#-----| False -> Block 850 +#-----| True -> Block 1026 + +# 2569| Block 850 +# 2569| r2569_1(glval) = VariableAddress[x850] : +# 2569| mu2569_2(String) = Uninitialized[x850] : &:r2569_1 +# 2569| r2569_3(glval) = FunctionAddress[String] : +# 2569| v2569_4(void) = Call[String] : func:r2569_3, this:r2569_1 +# 2569| mu2569_5(unknown) = ^CallSideEffect : ~m? +# 2569| mu2569_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2569_1 +# 2570| r2570_1(glval) = VariableAddress[x850] : +# 2570| r2570_2(glval) = FunctionAddress[~String] : +# 2570| v2570_3(void) = Call[~String] : func:r2570_2, this:r2570_1 +# 2570| mu2570_4(unknown) = ^CallSideEffect : ~m? +# 2570| v2570_5(void) = ^IndirectReadSideEffect[-1] : &:r2570_1, ~m? +# 2570| mu2570_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2570_1 +# 2570| r2570_7(bool) = Constant[0] : +# 2570| v2570_8(void) = ConditionalBranch : r2570_7 +#-----| False -> Block 851 +#-----| True -> Block 1026 + +# 2572| Block 851 +# 2572| r2572_1(glval) = VariableAddress[x851] : +# 2572| mu2572_2(String) = Uninitialized[x851] : &:r2572_1 +# 2572| r2572_3(glval) = FunctionAddress[String] : +# 2572| v2572_4(void) = Call[String] : func:r2572_3, this:r2572_1 +# 2572| mu2572_5(unknown) = ^CallSideEffect : ~m? +# 2572| mu2572_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2572_1 +# 2573| r2573_1(glval) = VariableAddress[x851] : +# 2573| r2573_2(glval) = FunctionAddress[~String] : +# 2573| v2573_3(void) = Call[~String] : func:r2573_2, this:r2573_1 +# 2573| mu2573_4(unknown) = ^CallSideEffect : ~m? +# 2573| v2573_5(void) = ^IndirectReadSideEffect[-1] : &:r2573_1, ~m? +# 2573| mu2573_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2573_1 +# 2573| r2573_7(bool) = Constant[0] : +# 2573| v2573_8(void) = ConditionalBranch : r2573_7 +#-----| False -> Block 852 +#-----| True -> Block 1026 + +# 2575| Block 852 +# 2575| r2575_1(glval) = VariableAddress[x852] : +# 2575| mu2575_2(String) = Uninitialized[x852] : &:r2575_1 +# 2575| r2575_3(glval) = FunctionAddress[String] : +# 2575| v2575_4(void) = Call[String] : func:r2575_3, this:r2575_1 +# 2575| mu2575_5(unknown) = ^CallSideEffect : ~m? +# 2575| mu2575_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2575_1 +# 2576| r2576_1(glval) = VariableAddress[x852] : +# 2576| r2576_2(glval) = FunctionAddress[~String] : +# 2576| v2576_3(void) = Call[~String] : func:r2576_2, this:r2576_1 +# 2576| mu2576_4(unknown) = ^CallSideEffect : ~m? +# 2576| v2576_5(void) = ^IndirectReadSideEffect[-1] : &:r2576_1, ~m? +# 2576| mu2576_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2576_1 +# 2576| r2576_7(bool) = Constant[0] : +# 2576| v2576_8(void) = ConditionalBranch : r2576_7 +#-----| False -> Block 853 +#-----| True -> Block 1026 + +# 2578| Block 853 +# 2578| r2578_1(glval) = VariableAddress[x853] : +# 2578| mu2578_2(String) = Uninitialized[x853] : &:r2578_1 +# 2578| r2578_3(glval) = FunctionAddress[String] : +# 2578| v2578_4(void) = Call[String] : func:r2578_3, this:r2578_1 +# 2578| mu2578_5(unknown) = ^CallSideEffect : ~m? +# 2578| mu2578_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2578_1 +# 2579| r2579_1(glval) = VariableAddress[x853] : +# 2579| r2579_2(glval) = FunctionAddress[~String] : +# 2579| v2579_3(void) = Call[~String] : func:r2579_2, this:r2579_1 +# 2579| mu2579_4(unknown) = ^CallSideEffect : ~m? +# 2579| v2579_5(void) = ^IndirectReadSideEffect[-1] : &:r2579_1, ~m? +# 2579| mu2579_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2579_1 +# 2579| r2579_7(bool) = Constant[0] : +# 2579| v2579_8(void) = ConditionalBranch : r2579_7 +#-----| False -> Block 854 +#-----| True -> Block 1026 + +# 2581| Block 854 +# 2581| r2581_1(glval) = VariableAddress[x854] : +# 2581| mu2581_2(String) = Uninitialized[x854] : &:r2581_1 +# 2581| r2581_3(glval) = FunctionAddress[String] : +# 2581| v2581_4(void) = Call[String] : func:r2581_3, this:r2581_1 +# 2581| mu2581_5(unknown) = ^CallSideEffect : ~m? +# 2581| mu2581_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2581_1 +# 2582| r2582_1(glval) = VariableAddress[x854] : +# 2582| r2582_2(glval) = FunctionAddress[~String] : +# 2582| v2582_3(void) = Call[~String] : func:r2582_2, this:r2582_1 +# 2582| mu2582_4(unknown) = ^CallSideEffect : ~m? +# 2582| v2582_5(void) = ^IndirectReadSideEffect[-1] : &:r2582_1, ~m? +# 2582| mu2582_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2582_1 +# 2582| r2582_7(bool) = Constant[0] : +# 2582| v2582_8(void) = ConditionalBranch : r2582_7 +#-----| False -> Block 855 +#-----| True -> Block 1026 + +# 2584| Block 855 +# 2584| r2584_1(glval) = VariableAddress[x855] : +# 2584| mu2584_2(String) = Uninitialized[x855] : &:r2584_1 +# 2584| r2584_3(glval) = FunctionAddress[String] : +# 2584| v2584_4(void) = Call[String] : func:r2584_3, this:r2584_1 +# 2584| mu2584_5(unknown) = ^CallSideEffect : ~m? +# 2584| mu2584_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2584_1 +# 2585| r2585_1(glval) = VariableAddress[x855] : +# 2585| r2585_2(glval) = FunctionAddress[~String] : +# 2585| v2585_3(void) = Call[~String] : func:r2585_2, this:r2585_1 +# 2585| mu2585_4(unknown) = ^CallSideEffect : ~m? +# 2585| v2585_5(void) = ^IndirectReadSideEffect[-1] : &:r2585_1, ~m? +# 2585| mu2585_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2585_1 +# 2585| r2585_7(bool) = Constant[0] : +# 2585| v2585_8(void) = ConditionalBranch : r2585_7 +#-----| False -> Block 856 +#-----| True -> Block 1026 + +# 2587| Block 856 +# 2587| r2587_1(glval) = VariableAddress[x856] : +# 2587| mu2587_2(String) = Uninitialized[x856] : &:r2587_1 +# 2587| r2587_3(glval) = FunctionAddress[String] : +# 2587| v2587_4(void) = Call[String] : func:r2587_3, this:r2587_1 +# 2587| mu2587_5(unknown) = ^CallSideEffect : ~m? +# 2587| mu2587_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2587_1 +# 2588| r2588_1(glval) = VariableAddress[x856] : +# 2588| r2588_2(glval) = FunctionAddress[~String] : +# 2588| v2588_3(void) = Call[~String] : func:r2588_2, this:r2588_1 +# 2588| mu2588_4(unknown) = ^CallSideEffect : ~m? +# 2588| v2588_5(void) = ^IndirectReadSideEffect[-1] : &:r2588_1, ~m? +# 2588| mu2588_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2588_1 +# 2588| r2588_7(bool) = Constant[0] : +# 2588| v2588_8(void) = ConditionalBranch : r2588_7 +#-----| False -> Block 857 +#-----| True -> Block 1026 + +# 2590| Block 857 +# 2590| r2590_1(glval) = VariableAddress[x857] : +# 2590| mu2590_2(String) = Uninitialized[x857] : &:r2590_1 +# 2590| r2590_3(glval) = FunctionAddress[String] : +# 2590| v2590_4(void) = Call[String] : func:r2590_3, this:r2590_1 +# 2590| mu2590_5(unknown) = ^CallSideEffect : ~m? +# 2590| mu2590_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2590_1 +# 2591| r2591_1(glval) = VariableAddress[x857] : +# 2591| r2591_2(glval) = FunctionAddress[~String] : +# 2591| v2591_3(void) = Call[~String] : func:r2591_2, this:r2591_1 +# 2591| mu2591_4(unknown) = ^CallSideEffect : ~m? +# 2591| v2591_5(void) = ^IndirectReadSideEffect[-1] : &:r2591_1, ~m? +# 2591| mu2591_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2591_1 +# 2591| r2591_7(bool) = Constant[0] : +# 2591| v2591_8(void) = ConditionalBranch : r2591_7 +#-----| False -> Block 858 +#-----| True -> Block 1026 + +# 2593| Block 858 +# 2593| r2593_1(glval) = VariableAddress[x858] : +# 2593| mu2593_2(String) = Uninitialized[x858] : &:r2593_1 +# 2593| r2593_3(glval) = FunctionAddress[String] : +# 2593| v2593_4(void) = Call[String] : func:r2593_3, this:r2593_1 +# 2593| mu2593_5(unknown) = ^CallSideEffect : ~m? +# 2593| mu2593_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2593_1 +# 2594| r2594_1(glval) = VariableAddress[x858] : +# 2594| r2594_2(glval) = FunctionAddress[~String] : +# 2594| v2594_3(void) = Call[~String] : func:r2594_2, this:r2594_1 +# 2594| mu2594_4(unknown) = ^CallSideEffect : ~m? +# 2594| v2594_5(void) = ^IndirectReadSideEffect[-1] : &:r2594_1, ~m? +# 2594| mu2594_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2594_1 +# 2594| r2594_7(bool) = Constant[0] : +# 2594| v2594_8(void) = ConditionalBranch : r2594_7 +#-----| False -> Block 859 +#-----| True -> Block 1026 + +# 2596| Block 859 +# 2596| r2596_1(glval) = VariableAddress[x859] : +# 2596| mu2596_2(String) = Uninitialized[x859] : &:r2596_1 +# 2596| r2596_3(glval) = FunctionAddress[String] : +# 2596| v2596_4(void) = Call[String] : func:r2596_3, this:r2596_1 +# 2596| mu2596_5(unknown) = ^CallSideEffect : ~m? +# 2596| mu2596_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2596_1 +# 2597| r2597_1(glval) = VariableAddress[x859] : +# 2597| r2597_2(glval) = FunctionAddress[~String] : +# 2597| v2597_3(void) = Call[~String] : func:r2597_2, this:r2597_1 +# 2597| mu2597_4(unknown) = ^CallSideEffect : ~m? +# 2597| v2597_5(void) = ^IndirectReadSideEffect[-1] : &:r2597_1, ~m? +# 2597| mu2597_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2597_1 +# 2597| r2597_7(bool) = Constant[0] : +# 2597| v2597_8(void) = ConditionalBranch : r2597_7 +#-----| False -> Block 860 +#-----| True -> Block 1026 + +# 2599| Block 860 +# 2599| r2599_1(glval) = VariableAddress[x860] : +# 2599| mu2599_2(String) = Uninitialized[x860] : &:r2599_1 +# 2599| r2599_3(glval) = FunctionAddress[String] : +# 2599| v2599_4(void) = Call[String] : func:r2599_3, this:r2599_1 +# 2599| mu2599_5(unknown) = ^CallSideEffect : ~m? +# 2599| mu2599_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2599_1 +# 2600| r2600_1(glval) = VariableAddress[x860] : +# 2600| r2600_2(glval) = FunctionAddress[~String] : +# 2600| v2600_3(void) = Call[~String] : func:r2600_2, this:r2600_1 +# 2600| mu2600_4(unknown) = ^CallSideEffect : ~m? +# 2600| v2600_5(void) = ^IndirectReadSideEffect[-1] : &:r2600_1, ~m? +# 2600| mu2600_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2600_1 +# 2600| r2600_7(bool) = Constant[0] : +# 2600| v2600_8(void) = ConditionalBranch : r2600_7 +#-----| False -> Block 861 +#-----| True -> Block 1026 + +# 2602| Block 861 +# 2602| r2602_1(glval) = VariableAddress[x861] : +# 2602| mu2602_2(String) = Uninitialized[x861] : &:r2602_1 +# 2602| r2602_3(glval) = FunctionAddress[String] : +# 2602| v2602_4(void) = Call[String] : func:r2602_3, this:r2602_1 +# 2602| mu2602_5(unknown) = ^CallSideEffect : ~m? +# 2602| mu2602_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2602_1 +# 2603| r2603_1(glval) = VariableAddress[x861] : +# 2603| r2603_2(glval) = FunctionAddress[~String] : +# 2603| v2603_3(void) = Call[~String] : func:r2603_2, this:r2603_1 +# 2603| mu2603_4(unknown) = ^CallSideEffect : ~m? +# 2603| v2603_5(void) = ^IndirectReadSideEffect[-1] : &:r2603_1, ~m? +# 2603| mu2603_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2603_1 +# 2603| r2603_7(bool) = Constant[0] : +# 2603| v2603_8(void) = ConditionalBranch : r2603_7 +#-----| False -> Block 862 +#-----| True -> Block 1026 + +# 2605| Block 862 +# 2605| r2605_1(glval) = VariableAddress[x862] : +# 2605| mu2605_2(String) = Uninitialized[x862] : &:r2605_1 +# 2605| r2605_3(glval) = FunctionAddress[String] : +# 2605| v2605_4(void) = Call[String] : func:r2605_3, this:r2605_1 +# 2605| mu2605_5(unknown) = ^CallSideEffect : ~m? +# 2605| mu2605_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2605_1 +# 2606| r2606_1(glval) = VariableAddress[x862] : +# 2606| r2606_2(glval) = FunctionAddress[~String] : +# 2606| v2606_3(void) = Call[~String] : func:r2606_2, this:r2606_1 +# 2606| mu2606_4(unknown) = ^CallSideEffect : ~m? +# 2606| v2606_5(void) = ^IndirectReadSideEffect[-1] : &:r2606_1, ~m? +# 2606| mu2606_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2606_1 +# 2606| r2606_7(bool) = Constant[0] : +# 2606| v2606_8(void) = ConditionalBranch : r2606_7 +#-----| False -> Block 863 +#-----| True -> Block 1026 + +# 2608| Block 863 +# 2608| r2608_1(glval) = VariableAddress[x863] : +# 2608| mu2608_2(String) = Uninitialized[x863] : &:r2608_1 +# 2608| r2608_3(glval) = FunctionAddress[String] : +# 2608| v2608_4(void) = Call[String] : func:r2608_3, this:r2608_1 +# 2608| mu2608_5(unknown) = ^CallSideEffect : ~m? +# 2608| mu2608_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2608_1 +# 2609| r2609_1(glval) = VariableAddress[x863] : +# 2609| r2609_2(glval) = FunctionAddress[~String] : +# 2609| v2609_3(void) = Call[~String] : func:r2609_2, this:r2609_1 +# 2609| mu2609_4(unknown) = ^CallSideEffect : ~m? +# 2609| v2609_5(void) = ^IndirectReadSideEffect[-1] : &:r2609_1, ~m? +# 2609| mu2609_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2609_1 +# 2609| r2609_7(bool) = Constant[0] : +# 2609| v2609_8(void) = ConditionalBranch : r2609_7 +#-----| False -> Block 864 +#-----| True -> Block 1026 + +# 2611| Block 864 +# 2611| r2611_1(glval) = VariableAddress[x864] : +# 2611| mu2611_2(String) = Uninitialized[x864] : &:r2611_1 +# 2611| r2611_3(glval) = FunctionAddress[String] : +# 2611| v2611_4(void) = Call[String] : func:r2611_3, this:r2611_1 +# 2611| mu2611_5(unknown) = ^CallSideEffect : ~m? +# 2611| mu2611_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2611_1 +# 2612| r2612_1(glval) = VariableAddress[x864] : +# 2612| r2612_2(glval) = FunctionAddress[~String] : +# 2612| v2612_3(void) = Call[~String] : func:r2612_2, this:r2612_1 +# 2612| mu2612_4(unknown) = ^CallSideEffect : ~m? +# 2612| v2612_5(void) = ^IndirectReadSideEffect[-1] : &:r2612_1, ~m? +# 2612| mu2612_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2612_1 +# 2612| r2612_7(bool) = Constant[0] : +# 2612| v2612_8(void) = ConditionalBranch : r2612_7 +#-----| False -> Block 865 +#-----| True -> Block 1026 + +# 2614| Block 865 +# 2614| r2614_1(glval) = VariableAddress[x865] : +# 2614| mu2614_2(String) = Uninitialized[x865] : &:r2614_1 +# 2614| r2614_3(glval) = FunctionAddress[String] : +# 2614| v2614_4(void) = Call[String] : func:r2614_3, this:r2614_1 +# 2614| mu2614_5(unknown) = ^CallSideEffect : ~m? +# 2614| mu2614_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2614_1 +# 2615| r2615_1(glval) = VariableAddress[x865] : +# 2615| r2615_2(glval) = FunctionAddress[~String] : +# 2615| v2615_3(void) = Call[~String] : func:r2615_2, this:r2615_1 +# 2615| mu2615_4(unknown) = ^CallSideEffect : ~m? +# 2615| v2615_5(void) = ^IndirectReadSideEffect[-1] : &:r2615_1, ~m? +# 2615| mu2615_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2615_1 +# 2615| r2615_7(bool) = Constant[0] : +# 2615| v2615_8(void) = ConditionalBranch : r2615_7 +#-----| False -> Block 866 +#-----| True -> Block 1026 + +# 2617| Block 866 +# 2617| r2617_1(glval) = VariableAddress[x866] : +# 2617| mu2617_2(String) = Uninitialized[x866] : &:r2617_1 +# 2617| r2617_3(glval) = FunctionAddress[String] : +# 2617| v2617_4(void) = Call[String] : func:r2617_3, this:r2617_1 +# 2617| mu2617_5(unknown) = ^CallSideEffect : ~m? +# 2617| mu2617_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2617_1 +# 2618| r2618_1(glval) = VariableAddress[x866] : +# 2618| r2618_2(glval) = FunctionAddress[~String] : +# 2618| v2618_3(void) = Call[~String] : func:r2618_2, this:r2618_1 +# 2618| mu2618_4(unknown) = ^CallSideEffect : ~m? +# 2618| v2618_5(void) = ^IndirectReadSideEffect[-1] : &:r2618_1, ~m? +# 2618| mu2618_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2618_1 +# 2618| r2618_7(bool) = Constant[0] : +# 2618| v2618_8(void) = ConditionalBranch : r2618_7 +#-----| False -> Block 867 +#-----| True -> Block 1026 + +# 2620| Block 867 +# 2620| r2620_1(glval) = VariableAddress[x867] : +# 2620| mu2620_2(String) = Uninitialized[x867] : &:r2620_1 +# 2620| r2620_3(glval) = FunctionAddress[String] : +# 2620| v2620_4(void) = Call[String] : func:r2620_3, this:r2620_1 +# 2620| mu2620_5(unknown) = ^CallSideEffect : ~m? +# 2620| mu2620_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2620_1 +# 2621| r2621_1(glval) = VariableAddress[x867] : +# 2621| r2621_2(glval) = FunctionAddress[~String] : +# 2621| v2621_3(void) = Call[~String] : func:r2621_2, this:r2621_1 +# 2621| mu2621_4(unknown) = ^CallSideEffect : ~m? +# 2621| v2621_5(void) = ^IndirectReadSideEffect[-1] : &:r2621_1, ~m? +# 2621| mu2621_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2621_1 +# 2621| r2621_7(bool) = Constant[0] : +# 2621| v2621_8(void) = ConditionalBranch : r2621_7 +#-----| False -> Block 868 +#-----| True -> Block 1026 + +# 2623| Block 868 +# 2623| r2623_1(glval) = VariableAddress[x868] : +# 2623| mu2623_2(String) = Uninitialized[x868] : &:r2623_1 +# 2623| r2623_3(glval) = FunctionAddress[String] : +# 2623| v2623_4(void) = Call[String] : func:r2623_3, this:r2623_1 +# 2623| mu2623_5(unknown) = ^CallSideEffect : ~m? +# 2623| mu2623_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2623_1 +# 2624| r2624_1(glval) = VariableAddress[x868] : +# 2624| r2624_2(glval) = FunctionAddress[~String] : +# 2624| v2624_3(void) = Call[~String] : func:r2624_2, this:r2624_1 +# 2624| mu2624_4(unknown) = ^CallSideEffect : ~m? +# 2624| v2624_5(void) = ^IndirectReadSideEffect[-1] : &:r2624_1, ~m? +# 2624| mu2624_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2624_1 +# 2624| r2624_7(bool) = Constant[0] : +# 2624| v2624_8(void) = ConditionalBranch : r2624_7 +#-----| False -> Block 869 +#-----| True -> Block 1026 + +# 2626| Block 869 +# 2626| r2626_1(glval) = VariableAddress[x869] : +# 2626| mu2626_2(String) = Uninitialized[x869] : &:r2626_1 +# 2626| r2626_3(glval) = FunctionAddress[String] : +# 2626| v2626_4(void) = Call[String] : func:r2626_3, this:r2626_1 +# 2626| mu2626_5(unknown) = ^CallSideEffect : ~m? +# 2626| mu2626_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2626_1 +# 2627| r2627_1(glval) = VariableAddress[x869] : +# 2627| r2627_2(glval) = FunctionAddress[~String] : +# 2627| v2627_3(void) = Call[~String] : func:r2627_2, this:r2627_1 +# 2627| mu2627_4(unknown) = ^CallSideEffect : ~m? +# 2627| v2627_5(void) = ^IndirectReadSideEffect[-1] : &:r2627_1, ~m? +# 2627| mu2627_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2627_1 +# 2627| r2627_7(bool) = Constant[0] : +# 2627| v2627_8(void) = ConditionalBranch : r2627_7 +#-----| False -> Block 870 +#-----| True -> Block 1026 + +# 2629| Block 870 +# 2629| r2629_1(glval) = VariableAddress[x870] : +# 2629| mu2629_2(String) = Uninitialized[x870] : &:r2629_1 +# 2629| r2629_3(glval) = FunctionAddress[String] : +# 2629| v2629_4(void) = Call[String] : func:r2629_3, this:r2629_1 +# 2629| mu2629_5(unknown) = ^CallSideEffect : ~m? +# 2629| mu2629_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2629_1 +# 2630| r2630_1(glval) = VariableAddress[x870] : +# 2630| r2630_2(glval) = FunctionAddress[~String] : +# 2630| v2630_3(void) = Call[~String] : func:r2630_2, this:r2630_1 +# 2630| mu2630_4(unknown) = ^CallSideEffect : ~m? +# 2630| v2630_5(void) = ^IndirectReadSideEffect[-1] : &:r2630_1, ~m? +# 2630| mu2630_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2630_1 +# 2630| r2630_7(bool) = Constant[0] : +# 2630| v2630_8(void) = ConditionalBranch : r2630_7 +#-----| False -> Block 871 +#-----| True -> Block 1026 + +# 2632| Block 871 +# 2632| r2632_1(glval) = VariableAddress[x871] : +# 2632| mu2632_2(String) = Uninitialized[x871] : &:r2632_1 +# 2632| r2632_3(glval) = FunctionAddress[String] : +# 2632| v2632_4(void) = Call[String] : func:r2632_3, this:r2632_1 +# 2632| mu2632_5(unknown) = ^CallSideEffect : ~m? +# 2632| mu2632_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2632_1 +# 2633| r2633_1(glval) = VariableAddress[x871] : +# 2633| r2633_2(glval) = FunctionAddress[~String] : +# 2633| v2633_3(void) = Call[~String] : func:r2633_2, this:r2633_1 +# 2633| mu2633_4(unknown) = ^CallSideEffect : ~m? +# 2633| v2633_5(void) = ^IndirectReadSideEffect[-1] : &:r2633_1, ~m? +# 2633| mu2633_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2633_1 +# 2633| r2633_7(bool) = Constant[0] : +# 2633| v2633_8(void) = ConditionalBranch : r2633_7 +#-----| False -> Block 872 +#-----| True -> Block 1026 + +# 2635| Block 872 +# 2635| r2635_1(glval) = VariableAddress[x872] : +# 2635| mu2635_2(String) = Uninitialized[x872] : &:r2635_1 +# 2635| r2635_3(glval) = FunctionAddress[String] : +# 2635| v2635_4(void) = Call[String] : func:r2635_3, this:r2635_1 +# 2635| mu2635_5(unknown) = ^CallSideEffect : ~m? +# 2635| mu2635_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2635_1 +# 2636| r2636_1(glval) = VariableAddress[x872] : +# 2636| r2636_2(glval) = FunctionAddress[~String] : +# 2636| v2636_3(void) = Call[~String] : func:r2636_2, this:r2636_1 +# 2636| mu2636_4(unknown) = ^CallSideEffect : ~m? +# 2636| v2636_5(void) = ^IndirectReadSideEffect[-1] : &:r2636_1, ~m? +# 2636| mu2636_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2636_1 +# 2636| r2636_7(bool) = Constant[0] : +# 2636| v2636_8(void) = ConditionalBranch : r2636_7 +#-----| False -> Block 873 +#-----| True -> Block 1026 + +# 2638| Block 873 +# 2638| r2638_1(glval) = VariableAddress[x873] : +# 2638| mu2638_2(String) = Uninitialized[x873] : &:r2638_1 +# 2638| r2638_3(glval) = FunctionAddress[String] : +# 2638| v2638_4(void) = Call[String] : func:r2638_3, this:r2638_1 +# 2638| mu2638_5(unknown) = ^CallSideEffect : ~m? +# 2638| mu2638_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2638_1 +# 2639| r2639_1(glval) = VariableAddress[x873] : +# 2639| r2639_2(glval) = FunctionAddress[~String] : +# 2639| v2639_3(void) = Call[~String] : func:r2639_2, this:r2639_1 +# 2639| mu2639_4(unknown) = ^CallSideEffect : ~m? +# 2639| v2639_5(void) = ^IndirectReadSideEffect[-1] : &:r2639_1, ~m? +# 2639| mu2639_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2639_1 +# 2639| r2639_7(bool) = Constant[0] : +# 2639| v2639_8(void) = ConditionalBranch : r2639_7 +#-----| False -> Block 874 +#-----| True -> Block 1026 + +# 2641| Block 874 +# 2641| r2641_1(glval) = VariableAddress[x874] : +# 2641| mu2641_2(String) = Uninitialized[x874] : &:r2641_1 +# 2641| r2641_3(glval) = FunctionAddress[String] : +# 2641| v2641_4(void) = Call[String] : func:r2641_3, this:r2641_1 +# 2641| mu2641_5(unknown) = ^CallSideEffect : ~m? +# 2641| mu2641_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2641_1 +# 2642| r2642_1(glval) = VariableAddress[x874] : +# 2642| r2642_2(glval) = FunctionAddress[~String] : +# 2642| v2642_3(void) = Call[~String] : func:r2642_2, this:r2642_1 +# 2642| mu2642_4(unknown) = ^CallSideEffect : ~m? +# 2642| v2642_5(void) = ^IndirectReadSideEffect[-1] : &:r2642_1, ~m? +# 2642| mu2642_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2642_1 +# 2642| r2642_7(bool) = Constant[0] : +# 2642| v2642_8(void) = ConditionalBranch : r2642_7 +#-----| False -> Block 875 +#-----| True -> Block 1026 + +# 2644| Block 875 +# 2644| r2644_1(glval) = VariableAddress[x875] : +# 2644| mu2644_2(String) = Uninitialized[x875] : &:r2644_1 +# 2644| r2644_3(glval) = FunctionAddress[String] : +# 2644| v2644_4(void) = Call[String] : func:r2644_3, this:r2644_1 +# 2644| mu2644_5(unknown) = ^CallSideEffect : ~m? +# 2644| mu2644_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2644_1 +# 2645| r2645_1(glval) = VariableAddress[x875] : +# 2645| r2645_2(glval) = FunctionAddress[~String] : +# 2645| v2645_3(void) = Call[~String] : func:r2645_2, this:r2645_1 +# 2645| mu2645_4(unknown) = ^CallSideEffect : ~m? +# 2645| v2645_5(void) = ^IndirectReadSideEffect[-1] : &:r2645_1, ~m? +# 2645| mu2645_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2645_1 +# 2645| r2645_7(bool) = Constant[0] : +# 2645| v2645_8(void) = ConditionalBranch : r2645_7 +#-----| False -> Block 876 +#-----| True -> Block 1026 + +# 2647| Block 876 +# 2647| r2647_1(glval) = VariableAddress[x876] : +# 2647| mu2647_2(String) = Uninitialized[x876] : &:r2647_1 +# 2647| r2647_3(glval) = FunctionAddress[String] : +# 2647| v2647_4(void) = Call[String] : func:r2647_3, this:r2647_1 +# 2647| mu2647_5(unknown) = ^CallSideEffect : ~m? +# 2647| mu2647_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2647_1 +# 2648| r2648_1(glval) = VariableAddress[x876] : +# 2648| r2648_2(glval) = FunctionAddress[~String] : +# 2648| v2648_3(void) = Call[~String] : func:r2648_2, this:r2648_1 +# 2648| mu2648_4(unknown) = ^CallSideEffect : ~m? +# 2648| v2648_5(void) = ^IndirectReadSideEffect[-1] : &:r2648_1, ~m? +# 2648| mu2648_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2648_1 +# 2648| r2648_7(bool) = Constant[0] : +# 2648| v2648_8(void) = ConditionalBranch : r2648_7 +#-----| False -> Block 877 +#-----| True -> Block 1026 + +# 2650| Block 877 +# 2650| r2650_1(glval) = VariableAddress[x877] : +# 2650| mu2650_2(String) = Uninitialized[x877] : &:r2650_1 +# 2650| r2650_3(glval) = FunctionAddress[String] : +# 2650| v2650_4(void) = Call[String] : func:r2650_3, this:r2650_1 +# 2650| mu2650_5(unknown) = ^CallSideEffect : ~m? +# 2650| mu2650_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2650_1 +# 2651| r2651_1(glval) = VariableAddress[x877] : +# 2651| r2651_2(glval) = FunctionAddress[~String] : +# 2651| v2651_3(void) = Call[~String] : func:r2651_2, this:r2651_1 +# 2651| mu2651_4(unknown) = ^CallSideEffect : ~m? +# 2651| v2651_5(void) = ^IndirectReadSideEffect[-1] : &:r2651_1, ~m? +# 2651| mu2651_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2651_1 +# 2651| r2651_7(bool) = Constant[0] : +# 2651| v2651_8(void) = ConditionalBranch : r2651_7 +#-----| False -> Block 878 +#-----| True -> Block 1026 + +# 2653| Block 878 +# 2653| r2653_1(glval) = VariableAddress[x878] : +# 2653| mu2653_2(String) = Uninitialized[x878] : &:r2653_1 +# 2653| r2653_3(glval) = FunctionAddress[String] : +# 2653| v2653_4(void) = Call[String] : func:r2653_3, this:r2653_1 +# 2653| mu2653_5(unknown) = ^CallSideEffect : ~m? +# 2653| mu2653_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2653_1 +# 2654| r2654_1(glval) = VariableAddress[x878] : +# 2654| r2654_2(glval) = FunctionAddress[~String] : +# 2654| v2654_3(void) = Call[~String] : func:r2654_2, this:r2654_1 +# 2654| mu2654_4(unknown) = ^CallSideEffect : ~m? +# 2654| v2654_5(void) = ^IndirectReadSideEffect[-1] : &:r2654_1, ~m? +# 2654| mu2654_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2654_1 +# 2654| r2654_7(bool) = Constant[0] : +# 2654| v2654_8(void) = ConditionalBranch : r2654_7 +#-----| False -> Block 879 +#-----| True -> Block 1026 + +# 2656| Block 879 +# 2656| r2656_1(glval) = VariableAddress[x879] : +# 2656| mu2656_2(String) = Uninitialized[x879] : &:r2656_1 +# 2656| r2656_3(glval) = FunctionAddress[String] : +# 2656| v2656_4(void) = Call[String] : func:r2656_3, this:r2656_1 +# 2656| mu2656_5(unknown) = ^CallSideEffect : ~m? +# 2656| mu2656_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2656_1 +# 2657| r2657_1(glval) = VariableAddress[x879] : +# 2657| r2657_2(glval) = FunctionAddress[~String] : +# 2657| v2657_3(void) = Call[~String] : func:r2657_2, this:r2657_1 +# 2657| mu2657_4(unknown) = ^CallSideEffect : ~m? +# 2657| v2657_5(void) = ^IndirectReadSideEffect[-1] : &:r2657_1, ~m? +# 2657| mu2657_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2657_1 +# 2657| r2657_7(bool) = Constant[0] : +# 2657| v2657_8(void) = ConditionalBranch : r2657_7 +#-----| False -> Block 880 +#-----| True -> Block 1026 + +# 2659| Block 880 +# 2659| r2659_1(glval) = VariableAddress[x880] : +# 2659| mu2659_2(String) = Uninitialized[x880] : &:r2659_1 +# 2659| r2659_3(glval) = FunctionAddress[String] : +# 2659| v2659_4(void) = Call[String] : func:r2659_3, this:r2659_1 +# 2659| mu2659_5(unknown) = ^CallSideEffect : ~m? +# 2659| mu2659_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2659_1 +# 2660| r2660_1(glval) = VariableAddress[x880] : +# 2660| r2660_2(glval) = FunctionAddress[~String] : +# 2660| v2660_3(void) = Call[~String] : func:r2660_2, this:r2660_1 +# 2660| mu2660_4(unknown) = ^CallSideEffect : ~m? +# 2660| v2660_5(void) = ^IndirectReadSideEffect[-1] : &:r2660_1, ~m? +# 2660| mu2660_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2660_1 +# 2660| r2660_7(bool) = Constant[0] : +# 2660| v2660_8(void) = ConditionalBranch : r2660_7 +#-----| False -> Block 881 +#-----| True -> Block 1026 + +# 2662| Block 881 +# 2662| r2662_1(glval) = VariableAddress[x881] : +# 2662| mu2662_2(String) = Uninitialized[x881] : &:r2662_1 +# 2662| r2662_3(glval) = FunctionAddress[String] : +# 2662| v2662_4(void) = Call[String] : func:r2662_3, this:r2662_1 +# 2662| mu2662_5(unknown) = ^CallSideEffect : ~m? +# 2662| mu2662_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2662_1 +# 2663| r2663_1(glval) = VariableAddress[x881] : +# 2663| r2663_2(glval) = FunctionAddress[~String] : +# 2663| v2663_3(void) = Call[~String] : func:r2663_2, this:r2663_1 +# 2663| mu2663_4(unknown) = ^CallSideEffect : ~m? +# 2663| v2663_5(void) = ^IndirectReadSideEffect[-1] : &:r2663_1, ~m? +# 2663| mu2663_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2663_1 +# 2663| r2663_7(bool) = Constant[0] : +# 2663| v2663_8(void) = ConditionalBranch : r2663_7 +#-----| False -> Block 882 +#-----| True -> Block 1026 + +# 2665| Block 882 +# 2665| r2665_1(glval) = VariableAddress[x882] : +# 2665| mu2665_2(String) = Uninitialized[x882] : &:r2665_1 +# 2665| r2665_3(glval) = FunctionAddress[String] : +# 2665| v2665_4(void) = Call[String] : func:r2665_3, this:r2665_1 +# 2665| mu2665_5(unknown) = ^CallSideEffect : ~m? +# 2665| mu2665_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2665_1 +# 2666| r2666_1(glval) = VariableAddress[x882] : +# 2666| r2666_2(glval) = FunctionAddress[~String] : +# 2666| v2666_3(void) = Call[~String] : func:r2666_2, this:r2666_1 +# 2666| mu2666_4(unknown) = ^CallSideEffect : ~m? +# 2666| v2666_5(void) = ^IndirectReadSideEffect[-1] : &:r2666_1, ~m? +# 2666| mu2666_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2666_1 +# 2666| r2666_7(bool) = Constant[0] : +# 2666| v2666_8(void) = ConditionalBranch : r2666_7 +#-----| False -> Block 883 +#-----| True -> Block 1026 + +# 2668| Block 883 +# 2668| r2668_1(glval) = VariableAddress[x883] : +# 2668| mu2668_2(String) = Uninitialized[x883] : &:r2668_1 +# 2668| r2668_3(glval) = FunctionAddress[String] : +# 2668| v2668_4(void) = Call[String] : func:r2668_3, this:r2668_1 +# 2668| mu2668_5(unknown) = ^CallSideEffect : ~m? +# 2668| mu2668_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2668_1 +# 2669| r2669_1(glval) = VariableAddress[x883] : +# 2669| r2669_2(glval) = FunctionAddress[~String] : +# 2669| v2669_3(void) = Call[~String] : func:r2669_2, this:r2669_1 +# 2669| mu2669_4(unknown) = ^CallSideEffect : ~m? +# 2669| v2669_5(void) = ^IndirectReadSideEffect[-1] : &:r2669_1, ~m? +# 2669| mu2669_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2669_1 +# 2669| r2669_7(bool) = Constant[0] : +# 2669| v2669_8(void) = ConditionalBranch : r2669_7 +#-----| False -> Block 884 +#-----| True -> Block 1026 + +# 2671| Block 884 +# 2671| r2671_1(glval) = VariableAddress[x884] : +# 2671| mu2671_2(String) = Uninitialized[x884] : &:r2671_1 +# 2671| r2671_3(glval) = FunctionAddress[String] : +# 2671| v2671_4(void) = Call[String] : func:r2671_3, this:r2671_1 +# 2671| mu2671_5(unknown) = ^CallSideEffect : ~m? +# 2671| mu2671_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2671_1 +# 2672| r2672_1(glval) = VariableAddress[x884] : +# 2672| r2672_2(glval) = FunctionAddress[~String] : +# 2672| v2672_3(void) = Call[~String] : func:r2672_2, this:r2672_1 +# 2672| mu2672_4(unknown) = ^CallSideEffect : ~m? +# 2672| v2672_5(void) = ^IndirectReadSideEffect[-1] : &:r2672_1, ~m? +# 2672| mu2672_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2672_1 +# 2672| r2672_7(bool) = Constant[0] : +# 2672| v2672_8(void) = ConditionalBranch : r2672_7 +#-----| False -> Block 885 +#-----| True -> Block 1026 + +# 2674| Block 885 +# 2674| r2674_1(glval) = VariableAddress[x885] : +# 2674| mu2674_2(String) = Uninitialized[x885] : &:r2674_1 +# 2674| r2674_3(glval) = FunctionAddress[String] : +# 2674| v2674_4(void) = Call[String] : func:r2674_3, this:r2674_1 +# 2674| mu2674_5(unknown) = ^CallSideEffect : ~m? +# 2674| mu2674_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2674_1 +# 2675| r2675_1(glval) = VariableAddress[x885] : +# 2675| r2675_2(glval) = FunctionAddress[~String] : +# 2675| v2675_3(void) = Call[~String] : func:r2675_2, this:r2675_1 +# 2675| mu2675_4(unknown) = ^CallSideEffect : ~m? +# 2675| v2675_5(void) = ^IndirectReadSideEffect[-1] : &:r2675_1, ~m? +# 2675| mu2675_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2675_1 +# 2675| r2675_7(bool) = Constant[0] : +# 2675| v2675_8(void) = ConditionalBranch : r2675_7 +#-----| False -> Block 886 +#-----| True -> Block 1026 + +# 2677| Block 886 +# 2677| r2677_1(glval) = VariableAddress[x886] : +# 2677| mu2677_2(String) = Uninitialized[x886] : &:r2677_1 +# 2677| r2677_3(glval) = FunctionAddress[String] : +# 2677| v2677_4(void) = Call[String] : func:r2677_3, this:r2677_1 +# 2677| mu2677_5(unknown) = ^CallSideEffect : ~m? +# 2677| mu2677_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2677_1 +# 2678| r2678_1(glval) = VariableAddress[x886] : +# 2678| r2678_2(glval) = FunctionAddress[~String] : +# 2678| v2678_3(void) = Call[~String] : func:r2678_2, this:r2678_1 +# 2678| mu2678_4(unknown) = ^CallSideEffect : ~m? +# 2678| v2678_5(void) = ^IndirectReadSideEffect[-1] : &:r2678_1, ~m? +# 2678| mu2678_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2678_1 +# 2678| r2678_7(bool) = Constant[0] : +# 2678| v2678_8(void) = ConditionalBranch : r2678_7 +#-----| False -> Block 887 +#-----| True -> Block 1026 + +# 2680| Block 887 +# 2680| r2680_1(glval) = VariableAddress[x887] : +# 2680| mu2680_2(String) = Uninitialized[x887] : &:r2680_1 +# 2680| r2680_3(glval) = FunctionAddress[String] : +# 2680| v2680_4(void) = Call[String] : func:r2680_3, this:r2680_1 +# 2680| mu2680_5(unknown) = ^CallSideEffect : ~m? +# 2680| mu2680_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2680_1 +# 2681| r2681_1(glval) = VariableAddress[x887] : +# 2681| r2681_2(glval) = FunctionAddress[~String] : +# 2681| v2681_3(void) = Call[~String] : func:r2681_2, this:r2681_1 +# 2681| mu2681_4(unknown) = ^CallSideEffect : ~m? +# 2681| v2681_5(void) = ^IndirectReadSideEffect[-1] : &:r2681_1, ~m? +# 2681| mu2681_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2681_1 +# 2681| r2681_7(bool) = Constant[0] : +# 2681| v2681_8(void) = ConditionalBranch : r2681_7 +#-----| False -> Block 888 +#-----| True -> Block 1026 + +# 2683| Block 888 +# 2683| r2683_1(glval) = VariableAddress[x888] : +# 2683| mu2683_2(String) = Uninitialized[x888] : &:r2683_1 +# 2683| r2683_3(glval) = FunctionAddress[String] : +# 2683| v2683_4(void) = Call[String] : func:r2683_3, this:r2683_1 +# 2683| mu2683_5(unknown) = ^CallSideEffect : ~m? +# 2683| mu2683_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2683_1 +# 2684| r2684_1(glval) = VariableAddress[x888] : +# 2684| r2684_2(glval) = FunctionAddress[~String] : +# 2684| v2684_3(void) = Call[~String] : func:r2684_2, this:r2684_1 +# 2684| mu2684_4(unknown) = ^CallSideEffect : ~m? +# 2684| v2684_5(void) = ^IndirectReadSideEffect[-1] : &:r2684_1, ~m? +# 2684| mu2684_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2684_1 +# 2684| r2684_7(bool) = Constant[0] : +# 2684| v2684_8(void) = ConditionalBranch : r2684_7 +#-----| False -> Block 889 +#-----| True -> Block 1026 + +# 2686| Block 889 +# 2686| r2686_1(glval) = VariableAddress[x889] : +# 2686| mu2686_2(String) = Uninitialized[x889] : &:r2686_1 +# 2686| r2686_3(glval) = FunctionAddress[String] : +# 2686| v2686_4(void) = Call[String] : func:r2686_3, this:r2686_1 +# 2686| mu2686_5(unknown) = ^CallSideEffect : ~m? +# 2686| mu2686_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2686_1 +# 2687| r2687_1(glval) = VariableAddress[x889] : +# 2687| r2687_2(glval) = FunctionAddress[~String] : +# 2687| v2687_3(void) = Call[~String] : func:r2687_2, this:r2687_1 +# 2687| mu2687_4(unknown) = ^CallSideEffect : ~m? +# 2687| v2687_5(void) = ^IndirectReadSideEffect[-1] : &:r2687_1, ~m? +# 2687| mu2687_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2687_1 +# 2687| r2687_7(bool) = Constant[0] : +# 2687| v2687_8(void) = ConditionalBranch : r2687_7 +#-----| False -> Block 890 +#-----| True -> Block 1026 + +# 2689| Block 890 +# 2689| r2689_1(glval) = VariableAddress[x890] : +# 2689| mu2689_2(String) = Uninitialized[x890] : &:r2689_1 +# 2689| r2689_3(glval) = FunctionAddress[String] : +# 2689| v2689_4(void) = Call[String] : func:r2689_3, this:r2689_1 +# 2689| mu2689_5(unknown) = ^CallSideEffect : ~m? +# 2689| mu2689_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2689_1 +# 2690| r2690_1(glval) = VariableAddress[x890] : +# 2690| r2690_2(glval) = FunctionAddress[~String] : +# 2690| v2690_3(void) = Call[~String] : func:r2690_2, this:r2690_1 +# 2690| mu2690_4(unknown) = ^CallSideEffect : ~m? +# 2690| v2690_5(void) = ^IndirectReadSideEffect[-1] : &:r2690_1, ~m? +# 2690| mu2690_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2690_1 +# 2690| r2690_7(bool) = Constant[0] : +# 2690| v2690_8(void) = ConditionalBranch : r2690_7 +#-----| False -> Block 891 +#-----| True -> Block 1026 + +# 2692| Block 891 +# 2692| r2692_1(glval) = VariableAddress[x891] : +# 2692| mu2692_2(String) = Uninitialized[x891] : &:r2692_1 +# 2692| r2692_3(glval) = FunctionAddress[String] : +# 2692| v2692_4(void) = Call[String] : func:r2692_3, this:r2692_1 +# 2692| mu2692_5(unknown) = ^CallSideEffect : ~m? +# 2692| mu2692_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2692_1 +# 2693| r2693_1(glval) = VariableAddress[x891] : +# 2693| r2693_2(glval) = FunctionAddress[~String] : +# 2693| v2693_3(void) = Call[~String] : func:r2693_2, this:r2693_1 +# 2693| mu2693_4(unknown) = ^CallSideEffect : ~m? +# 2693| v2693_5(void) = ^IndirectReadSideEffect[-1] : &:r2693_1, ~m? +# 2693| mu2693_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2693_1 +# 2693| r2693_7(bool) = Constant[0] : +# 2693| v2693_8(void) = ConditionalBranch : r2693_7 +#-----| False -> Block 892 +#-----| True -> Block 1026 + +# 2695| Block 892 +# 2695| r2695_1(glval) = VariableAddress[x892] : +# 2695| mu2695_2(String) = Uninitialized[x892] : &:r2695_1 +# 2695| r2695_3(glval) = FunctionAddress[String] : +# 2695| v2695_4(void) = Call[String] : func:r2695_3, this:r2695_1 +# 2695| mu2695_5(unknown) = ^CallSideEffect : ~m? +# 2695| mu2695_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2695_1 +# 2696| r2696_1(glval) = VariableAddress[x892] : +# 2696| r2696_2(glval) = FunctionAddress[~String] : +# 2696| v2696_3(void) = Call[~String] : func:r2696_2, this:r2696_1 +# 2696| mu2696_4(unknown) = ^CallSideEffect : ~m? +# 2696| v2696_5(void) = ^IndirectReadSideEffect[-1] : &:r2696_1, ~m? +# 2696| mu2696_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2696_1 +# 2696| r2696_7(bool) = Constant[0] : +# 2696| v2696_8(void) = ConditionalBranch : r2696_7 +#-----| False -> Block 893 +#-----| True -> Block 1026 + +# 2698| Block 893 +# 2698| r2698_1(glval) = VariableAddress[x893] : +# 2698| mu2698_2(String) = Uninitialized[x893] : &:r2698_1 +# 2698| r2698_3(glval) = FunctionAddress[String] : +# 2698| v2698_4(void) = Call[String] : func:r2698_3, this:r2698_1 +# 2698| mu2698_5(unknown) = ^CallSideEffect : ~m? +# 2698| mu2698_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2698_1 +# 2699| r2699_1(glval) = VariableAddress[x893] : +# 2699| r2699_2(glval) = FunctionAddress[~String] : +# 2699| v2699_3(void) = Call[~String] : func:r2699_2, this:r2699_1 +# 2699| mu2699_4(unknown) = ^CallSideEffect : ~m? +# 2699| v2699_5(void) = ^IndirectReadSideEffect[-1] : &:r2699_1, ~m? +# 2699| mu2699_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2699_1 +# 2699| r2699_7(bool) = Constant[0] : +# 2699| v2699_8(void) = ConditionalBranch : r2699_7 +#-----| False -> Block 894 +#-----| True -> Block 1026 + +# 2701| Block 894 +# 2701| r2701_1(glval) = VariableAddress[x894] : +# 2701| mu2701_2(String) = Uninitialized[x894] : &:r2701_1 +# 2701| r2701_3(glval) = FunctionAddress[String] : +# 2701| v2701_4(void) = Call[String] : func:r2701_3, this:r2701_1 +# 2701| mu2701_5(unknown) = ^CallSideEffect : ~m? +# 2701| mu2701_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2701_1 +# 2702| r2702_1(glval) = VariableAddress[x894] : +# 2702| r2702_2(glval) = FunctionAddress[~String] : +# 2702| v2702_3(void) = Call[~String] : func:r2702_2, this:r2702_1 +# 2702| mu2702_4(unknown) = ^CallSideEffect : ~m? +# 2702| v2702_5(void) = ^IndirectReadSideEffect[-1] : &:r2702_1, ~m? +# 2702| mu2702_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2702_1 +# 2702| r2702_7(bool) = Constant[0] : +# 2702| v2702_8(void) = ConditionalBranch : r2702_7 +#-----| False -> Block 895 +#-----| True -> Block 1026 + +# 2704| Block 895 +# 2704| r2704_1(glval) = VariableAddress[x895] : +# 2704| mu2704_2(String) = Uninitialized[x895] : &:r2704_1 +# 2704| r2704_3(glval) = FunctionAddress[String] : +# 2704| v2704_4(void) = Call[String] : func:r2704_3, this:r2704_1 +# 2704| mu2704_5(unknown) = ^CallSideEffect : ~m? +# 2704| mu2704_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2704_1 +# 2705| r2705_1(glval) = VariableAddress[x895] : +# 2705| r2705_2(glval) = FunctionAddress[~String] : +# 2705| v2705_3(void) = Call[~String] : func:r2705_2, this:r2705_1 +# 2705| mu2705_4(unknown) = ^CallSideEffect : ~m? +# 2705| v2705_5(void) = ^IndirectReadSideEffect[-1] : &:r2705_1, ~m? +# 2705| mu2705_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2705_1 +# 2705| r2705_7(bool) = Constant[0] : +# 2705| v2705_8(void) = ConditionalBranch : r2705_7 +#-----| False -> Block 896 +#-----| True -> Block 1026 + +# 2707| Block 896 +# 2707| r2707_1(glval) = VariableAddress[x896] : +# 2707| mu2707_2(String) = Uninitialized[x896] : &:r2707_1 +# 2707| r2707_3(glval) = FunctionAddress[String] : +# 2707| v2707_4(void) = Call[String] : func:r2707_3, this:r2707_1 +# 2707| mu2707_5(unknown) = ^CallSideEffect : ~m? +# 2707| mu2707_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2707_1 +# 2708| r2708_1(glval) = VariableAddress[x896] : +# 2708| r2708_2(glval) = FunctionAddress[~String] : +# 2708| v2708_3(void) = Call[~String] : func:r2708_2, this:r2708_1 +# 2708| mu2708_4(unknown) = ^CallSideEffect : ~m? +# 2708| v2708_5(void) = ^IndirectReadSideEffect[-1] : &:r2708_1, ~m? +# 2708| mu2708_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2708_1 +# 2708| r2708_7(bool) = Constant[0] : +# 2708| v2708_8(void) = ConditionalBranch : r2708_7 +#-----| False -> Block 897 +#-----| True -> Block 1026 + +# 2710| Block 897 +# 2710| r2710_1(glval) = VariableAddress[x897] : +# 2710| mu2710_2(String) = Uninitialized[x897] : &:r2710_1 +# 2710| r2710_3(glval) = FunctionAddress[String] : +# 2710| v2710_4(void) = Call[String] : func:r2710_3, this:r2710_1 +# 2710| mu2710_5(unknown) = ^CallSideEffect : ~m? +# 2710| mu2710_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2710_1 +# 2711| r2711_1(glval) = VariableAddress[x897] : +# 2711| r2711_2(glval) = FunctionAddress[~String] : +# 2711| v2711_3(void) = Call[~String] : func:r2711_2, this:r2711_1 +# 2711| mu2711_4(unknown) = ^CallSideEffect : ~m? +# 2711| v2711_5(void) = ^IndirectReadSideEffect[-1] : &:r2711_1, ~m? +# 2711| mu2711_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2711_1 +# 2711| r2711_7(bool) = Constant[0] : +# 2711| v2711_8(void) = ConditionalBranch : r2711_7 +#-----| False -> Block 898 +#-----| True -> Block 1026 + +# 2713| Block 898 +# 2713| r2713_1(glval) = VariableAddress[x898] : +# 2713| mu2713_2(String) = Uninitialized[x898] : &:r2713_1 +# 2713| r2713_3(glval) = FunctionAddress[String] : +# 2713| v2713_4(void) = Call[String] : func:r2713_3, this:r2713_1 +# 2713| mu2713_5(unknown) = ^CallSideEffect : ~m? +# 2713| mu2713_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2713_1 +# 2714| r2714_1(glval) = VariableAddress[x898] : +# 2714| r2714_2(glval) = FunctionAddress[~String] : +# 2714| v2714_3(void) = Call[~String] : func:r2714_2, this:r2714_1 +# 2714| mu2714_4(unknown) = ^CallSideEffect : ~m? +# 2714| v2714_5(void) = ^IndirectReadSideEffect[-1] : &:r2714_1, ~m? +# 2714| mu2714_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2714_1 +# 2714| r2714_7(bool) = Constant[0] : +# 2714| v2714_8(void) = ConditionalBranch : r2714_7 +#-----| False -> Block 899 +#-----| True -> Block 1026 + +# 2716| Block 899 +# 2716| r2716_1(glval) = VariableAddress[x899] : +# 2716| mu2716_2(String) = Uninitialized[x899] : &:r2716_1 +# 2716| r2716_3(glval) = FunctionAddress[String] : +# 2716| v2716_4(void) = Call[String] : func:r2716_3, this:r2716_1 +# 2716| mu2716_5(unknown) = ^CallSideEffect : ~m? +# 2716| mu2716_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2716_1 +# 2717| r2717_1(glval) = VariableAddress[x899] : +# 2717| r2717_2(glval) = FunctionAddress[~String] : +# 2717| v2717_3(void) = Call[~String] : func:r2717_2, this:r2717_1 +# 2717| mu2717_4(unknown) = ^CallSideEffect : ~m? +# 2717| v2717_5(void) = ^IndirectReadSideEffect[-1] : &:r2717_1, ~m? +# 2717| mu2717_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2717_1 +# 2717| r2717_7(bool) = Constant[0] : +# 2717| v2717_8(void) = ConditionalBranch : r2717_7 +#-----| False -> Block 900 +#-----| True -> Block 1026 + +# 2719| Block 900 +# 2719| r2719_1(glval) = VariableAddress[x900] : +# 2719| mu2719_2(String) = Uninitialized[x900] : &:r2719_1 +# 2719| r2719_3(glval) = FunctionAddress[String] : +# 2719| v2719_4(void) = Call[String] : func:r2719_3, this:r2719_1 +# 2719| mu2719_5(unknown) = ^CallSideEffect : ~m? +# 2719| mu2719_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2719_1 +# 2720| r2720_1(glval) = VariableAddress[x900] : +# 2720| r2720_2(glval) = FunctionAddress[~String] : +# 2720| v2720_3(void) = Call[~String] : func:r2720_2, this:r2720_1 +# 2720| mu2720_4(unknown) = ^CallSideEffect : ~m? +# 2720| v2720_5(void) = ^IndirectReadSideEffect[-1] : &:r2720_1, ~m? +# 2720| mu2720_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2720_1 +# 2720| r2720_7(bool) = Constant[0] : +# 2720| v2720_8(void) = ConditionalBranch : r2720_7 +#-----| False -> Block 901 +#-----| True -> Block 1026 + +# 2722| Block 901 +# 2722| r2722_1(glval) = VariableAddress[x901] : +# 2722| mu2722_2(String) = Uninitialized[x901] : &:r2722_1 +# 2722| r2722_3(glval) = FunctionAddress[String] : +# 2722| v2722_4(void) = Call[String] : func:r2722_3, this:r2722_1 +# 2722| mu2722_5(unknown) = ^CallSideEffect : ~m? +# 2722| mu2722_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2722_1 +# 2723| r2723_1(glval) = VariableAddress[x901] : +# 2723| r2723_2(glval) = FunctionAddress[~String] : +# 2723| v2723_3(void) = Call[~String] : func:r2723_2, this:r2723_1 +# 2723| mu2723_4(unknown) = ^CallSideEffect : ~m? +# 2723| v2723_5(void) = ^IndirectReadSideEffect[-1] : &:r2723_1, ~m? +# 2723| mu2723_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2723_1 +# 2723| r2723_7(bool) = Constant[0] : +# 2723| v2723_8(void) = ConditionalBranch : r2723_7 +#-----| False -> Block 902 +#-----| True -> Block 1026 + +# 2725| Block 902 +# 2725| r2725_1(glval) = VariableAddress[x902] : +# 2725| mu2725_2(String) = Uninitialized[x902] : &:r2725_1 +# 2725| r2725_3(glval) = FunctionAddress[String] : +# 2725| v2725_4(void) = Call[String] : func:r2725_3, this:r2725_1 +# 2725| mu2725_5(unknown) = ^CallSideEffect : ~m? +# 2725| mu2725_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2725_1 +# 2726| r2726_1(glval) = VariableAddress[x902] : +# 2726| r2726_2(glval) = FunctionAddress[~String] : +# 2726| v2726_3(void) = Call[~String] : func:r2726_2, this:r2726_1 +# 2726| mu2726_4(unknown) = ^CallSideEffect : ~m? +# 2726| v2726_5(void) = ^IndirectReadSideEffect[-1] : &:r2726_1, ~m? +# 2726| mu2726_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2726_1 +# 2726| r2726_7(bool) = Constant[0] : +# 2726| v2726_8(void) = ConditionalBranch : r2726_7 +#-----| False -> Block 903 +#-----| True -> Block 1026 + +# 2728| Block 903 +# 2728| r2728_1(glval) = VariableAddress[x903] : +# 2728| mu2728_2(String) = Uninitialized[x903] : &:r2728_1 +# 2728| r2728_3(glval) = FunctionAddress[String] : +# 2728| v2728_4(void) = Call[String] : func:r2728_3, this:r2728_1 +# 2728| mu2728_5(unknown) = ^CallSideEffect : ~m? +# 2728| mu2728_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2728_1 +# 2729| r2729_1(glval) = VariableAddress[x903] : +# 2729| r2729_2(glval) = FunctionAddress[~String] : +# 2729| v2729_3(void) = Call[~String] : func:r2729_2, this:r2729_1 +# 2729| mu2729_4(unknown) = ^CallSideEffect : ~m? +# 2729| v2729_5(void) = ^IndirectReadSideEffect[-1] : &:r2729_1, ~m? +# 2729| mu2729_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2729_1 +# 2729| r2729_7(bool) = Constant[0] : +# 2729| v2729_8(void) = ConditionalBranch : r2729_7 +#-----| False -> Block 904 +#-----| True -> Block 1026 + +# 2731| Block 904 +# 2731| r2731_1(glval) = VariableAddress[x904] : +# 2731| mu2731_2(String) = Uninitialized[x904] : &:r2731_1 +# 2731| r2731_3(glval) = FunctionAddress[String] : +# 2731| v2731_4(void) = Call[String] : func:r2731_3, this:r2731_1 +# 2731| mu2731_5(unknown) = ^CallSideEffect : ~m? +# 2731| mu2731_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2731_1 +# 2732| r2732_1(glval) = VariableAddress[x904] : +# 2732| r2732_2(glval) = FunctionAddress[~String] : +# 2732| v2732_3(void) = Call[~String] : func:r2732_2, this:r2732_1 +# 2732| mu2732_4(unknown) = ^CallSideEffect : ~m? +# 2732| v2732_5(void) = ^IndirectReadSideEffect[-1] : &:r2732_1, ~m? +# 2732| mu2732_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2732_1 +# 2732| r2732_7(bool) = Constant[0] : +# 2732| v2732_8(void) = ConditionalBranch : r2732_7 +#-----| False -> Block 905 +#-----| True -> Block 1026 + +# 2734| Block 905 +# 2734| r2734_1(glval) = VariableAddress[x905] : +# 2734| mu2734_2(String) = Uninitialized[x905] : &:r2734_1 +# 2734| r2734_3(glval) = FunctionAddress[String] : +# 2734| v2734_4(void) = Call[String] : func:r2734_3, this:r2734_1 +# 2734| mu2734_5(unknown) = ^CallSideEffect : ~m? +# 2734| mu2734_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2734_1 +# 2735| r2735_1(glval) = VariableAddress[x905] : +# 2735| r2735_2(glval) = FunctionAddress[~String] : +# 2735| v2735_3(void) = Call[~String] : func:r2735_2, this:r2735_1 +# 2735| mu2735_4(unknown) = ^CallSideEffect : ~m? +# 2735| v2735_5(void) = ^IndirectReadSideEffect[-1] : &:r2735_1, ~m? +# 2735| mu2735_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2735_1 +# 2735| r2735_7(bool) = Constant[0] : +# 2735| v2735_8(void) = ConditionalBranch : r2735_7 +#-----| False -> Block 906 +#-----| True -> Block 1026 + +# 2737| Block 906 +# 2737| r2737_1(glval) = VariableAddress[x906] : +# 2737| mu2737_2(String) = Uninitialized[x906] : &:r2737_1 +# 2737| r2737_3(glval) = FunctionAddress[String] : +# 2737| v2737_4(void) = Call[String] : func:r2737_3, this:r2737_1 +# 2737| mu2737_5(unknown) = ^CallSideEffect : ~m? +# 2737| mu2737_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2737_1 +# 2738| r2738_1(glval) = VariableAddress[x906] : +# 2738| r2738_2(glval) = FunctionAddress[~String] : +# 2738| v2738_3(void) = Call[~String] : func:r2738_2, this:r2738_1 +# 2738| mu2738_4(unknown) = ^CallSideEffect : ~m? +# 2738| v2738_5(void) = ^IndirectReadSideEffect[-1] : &:r2738_1, ~m? +# 2738| mu2738_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2738_1 +# 2738| r2738_7(bool) = Constant[0] : +# 2738| v2738_8(void) = ConditionalBranch : r2738_7 +#-----| False -> Block 907 +#-----| True -> Block 1026 + +# 2740| Block 907 +# 2740| r2740_1(glval) = VariableAddress[x907] : +# 2740| mu2740_2(String) = Uninitialized[x907] : &:r2740_1 +# 2740| r2740_3(glval) = FunctionAddress[String] : +# 2740| v2740_4(void) = Call[String] : func:r2740_3, this:r2740_1 +# 2740| mu2740_5(unknown) = ^CallSideEffect : ~m? +# 2740| mu2740_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2740_1 +# 2741| r2741_1(glval) = VariableAddress[x907] : +# 2741| r2741_2(glval) = FunctionAddress[~String] : +# 2741| v2741_3(void) = Call[~String] : func:r2741_2, this:r2741_1 +# 2741| mu2741_4(unknown) = ^CallSideEffect : ~m? +# 2741| v2741_5(void) = ^IndirectReadSideEffect[-1] : &:r2741_1, ~m? +# 2741| mu2741_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2741_1 +# 2741| r2741_7(bool) = Constant[0] : +# 2741| v2741_8(void) = ConditionalBranch : r2741_7 +#-----| False -> Block 908 +#-----| True -> Block 1026 + +# 2743| Block 908 +# 2743| r2743_1(glval) = VariableAddress[x908] : +# 2743| mu2743_2(String) = Uninitialized[x908] : &:r2743_1 +# 2743| r2743_3(glval) = FunctionAddress[String] : +# 2743| v2743_4(void) = Call[String] : func:r2743_3, this:r2743_1 +# 2743| mu2743_5(unknown) = ^CallSideEffect : ~m? +# 2743| mu2743_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2743_1 +# 2744| r2744_1(glval) = VariableAddress[x908] : +# 2744| r2744_2(glval) = FunctionAddress[~String] : +# 2744| v2744_3(void) = Call[~String] : func:r2744_2, this:r2744_1 +# 2744| mu2744_4(unknown) = ^CallSideEffect : ~m? +# 2744| v2744_5(void) = ^IndirectReadSideEffect[-1] : &:r2744_1, ~m? +# 2744| mu2744_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2744_1 +# 2744| r2744_7(bool) = Constant[0] : +# 2744| v2744_8(void) = ConditionalBranch : r2744_7 +#-----| False -> Block 909 +#-----| True -> Block 1026 + +# 2746| Block 909 +# 2746| r2746_1(glval) = VariableAddress[x909] : +# 2746| mu2746_2(String) = Uninitialized[x909] : &:r2746_1 +# 2746| r2746_3(glval) = FunctionAddress[String] : +# 2746| v2746_4(void) = Call[String] : func:r2746_3, this:r2746_1 +# 2746| mu2746_5(unknown) = ^CallSideEffect : ~m? +# 2746| mu2746_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2746_1 +# 2747| r2747_1(glval) = VariableAddress[x909] : +# 2747| r2747_2(glval) = FunctionAddress[~String] : +# 2747| v2747_3(void) = Call[~String] : func:r2747_2, this:r2747_1 +# 2747| mu2747_4(unknown) = ^CallSideEffect : ~m? +# 2747| v2747_5(void) = ^IndirectReadSideEffect[-1] : &:r2747_1, ~m? +# 2747| mu2747_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2747_1 +# 2747| r2747_7(bool) = Constant[0] : +# 2747| v2747_8(void) = ConditionalBranch : r2747_7 +#-----| False -> Block 910 +#-----| True -> Block 1026 + +# 2749| Block 910 +# 2749| r2749_1(glval) = VariableAddress[x910] : +# 2749| mu2749_2(String) = Uninitialized[x910] : &:r2749_1 +# 2749| r2749_3(glval) = FunctionAddress[String] : +# 2749| v2749_4(void) = Call[String] : func:r2749_3, this:r2749_1 +# 2749| mu2749_5(unknown) = ^CallSideEffect : ~m? +# 2749| mu2749_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2749_1 +# 2750| r2750_1(glval) = VariableAddress[x910] : +# 2750| r2750_2(glval) = FunctionAddress[~String] : +# 2750| v2750_3(void) = Call[~String] : func:r2750_2, this:r2750_1 +# 2750| mu2750_4(unknown) = ^CallSideEffect : ~m? +# 2750| v2750_5(void) = ^IndirectReadSideEffect[-1] : &:r2750_1, ~m? +# 2750| mu2750_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2750_1 +# 2750| r2750_7(bool) = Constant[0] : +# 2750| v2750_8(void) = ConditionalBranch : r2750_7 +#-----| False -> Block 911 +#-----| True -> Block 1026 + +# 2752| Block 911 +# 2752| r2752_1(glval) = VariableAddress[x911] : +# 2752| mu2752_2(String) = Uninitialized[x911] : &:r2752_1 +# 2752| r2752_3(glval) = FunctionAddress[String] : +# 2752| v2752_4(void) = Call[String] : func:r2752_3, this:r2752_1 +# 2752| mu2752_5(unknown) = ^CallSideEffect : ~m? +# 2752| mu2752_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2752_1 +# 2753| r2753_1(glval) = VariableAddress[x911] : +# 2753| r2753_2(glval) = FunctionAddress[~String] : +# 2753| v2753_3(void) = Call[~String] : func:r2753_2, this:r2753_1 +# 2753| mu2753_4(unknown) = ^CallSideEffect : ~m? +# 2753| v2753_5(void) = ^IndirectReadSideEffect[-1] : &:r2753_1, ~m? +# 2753| mu2753_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2753_1 +# 2753| r2753_7(bool) = Constant[0] : +# 2753| v2753_8(void) = ConditionalBranch : r2753_7 +#-----| False -> Block 912 +#-----| True -> Block 1026 + +# 2755| Block 912 +# 2755| r2755_1(glval) = VariableAddress[x912] : +# 2755| mu2755_2(String) = Uninitialized[x912] : &:r2755_1 +# 2755| r2755_3(glval) = FunctionAddress[String] : +# 2755| v2755_4(void) = Call[String] : func:r2755_3, this:r2755_1 +# 2755| mu2755_5(unknown) = ^CallSideEffect : ~m? +# 2755| mu2755_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2755_1 +# 2756| r2756_1(glval) = VariableAddress[x912] : +# 2756| r2756_2(glval) = FunctionAddress[~String] : +# 2756| v2756_3(void) = Call[~String] : func:r2756_2, this:r2756_1 +# 2756| mu2756_4(unknown) = ^CallSideEffect : ~m? +# 2756| v2756_5(void) = ^IndirectReadSideEffect[-1] : &:r2756_1, ~m? +# 2756| mu2756_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2756_1 +# 2756| r2756_7(bool) = Constant[0] : +# 2756| v2756_8(void) = ConditionalBranch : r2756_7 +#-----| False -> Block 913 +#-----| True -> Block 1026 + +# 2758| Block 913 +# 2758| r2758_1(glval) = VariableAddress[x913] : +# 2758| mu2758_2(String) = Uninitialized[x913] : &:r2758_1 +# 2758| r2758_3(glval) = FunctionAddress[String] : +# 2758| v2758_4(void) = Call[String] : func:r2758_3, this:r2758_1 +# 2758| mu2758_5(unknown) = ^CallSideEffect : ~m? +# 2758| mu2758_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2758_1 +# 2759| r2759_1(glval) = VariableAddress[x913] : +# 2759| r2759_2(glval) = FunctionAddress[~String] : +# 2759| v2759_3(void) = Call[~String] : func:r2759_2, this:r2759_1 +# 2759| mu2759_4(unknown) = ^CallSideEffect : ~m? +# 2759| v2759_5(void) = ^IndirectReadSideEffect[-1] : &:r2759_1, ~m? +# 2759| mu2759_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2759_1 +# 2759| r2759_7(bool) = Constant[0] : +# 2759| v2759_8(void) = ConditionalBranch : r2759_7 +#-----| False -> Block 914 +#-----| True -> Block 1026 + +# 2761| Block 914 +# 2761| r2761_1(glval) = VariableAddress[x914] : +# 2761| mu2761_2(String) = Uninitialized[x914] : &:r2761_1 +# 2761| r2761_3(glval) = FunctionAddress[String] : +# 2761| v2761_4(void) = Call[String] : func:r2761_3, this:r2761_1 +# 2761| mu2761_5(unknown) = ^CallSideEffect : ~m? +# 2761| mu2761_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2761_1 +# 2762| r2762_1(glval) = VariableAddress[x914] : +# 2762| r2762_2(glval) = FunctionAddress[~String] : +# 2762| v2762_3(void) = Call[~String] : func:r2762_2, this:r2762_1 +# 2762| mu2762_4(unknown) = ^CallSideEffect : ~m? +# 2762| v2762_5(void) = ^IndirectReadSideEffect[-1] : &:r2762_1, ~m? +# 2762| mu2762_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2762_1 +# 2762| r2762_7(bool) = Constant[0] : +# 2762| v2762_8(void) = ConditionalBranch : r2762_7 +#-----| False -> Block 915 +#-----| True -> Block 1026 + +# 2764| Block 915 +# 2764| r2764_1(glval) = VariableAddress[x915] : +# 2764| mu2764_2(String) = Uninitialized[x915] : &:r2764_1 +# 2764| r2764_3(glval) = FunctionAddress[String] : +# 2764| v2764_4(void) = Call[String] : func:r2764_3, this:r2764_1 +# 2764| mu2764_5(unknown) = ^CallSideEffect : ~m? +# 2764| mu2764_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2764_1 +# 2765| r2765_1(glval) = VariableAddress[x915] : +# 2765| r2765_2(glval) = FunctionAddress[~String] : +# 2765| v2765_3(void) = Call[~String] : func:r2765_2, this:r2765_1 +# 2765| mu2765_4(unknown) = ^CallSideEffect : ~m? +# 2765| v2765_5(void) = ^IndirectReadSideEffect[-1] : &:r2765_1, ~m? +# 2765| mu2765_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2765_1 +# 2765| r2765_7(bool) = Constant[0] : +# 2765| v2765_8(void) = ConditionalBranch : r2765_7 +#-----| False -> Block 916 +#-----| True -> Block 1026 + +# 2767| Block 916 +# 2767| r2767_1(glval) = VariableAddress[x916] : +# 2767| mu2767_2(String) = Uninitialized[x916] : &:r2767_1 +# 2767| r2767_3(glval) = FunctionAddress[String] : +# 2767| v2767_4(void) = Call[String] : func:r2767_3, this:r2767_1 +# 2767| mu2767_5(unknown) = ^CallSideEffect : ~m? +# 2767| mu2767_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2767_1 +# 2768| r2768_1(glval) = VariableAddress[x916] : +# 2768| r2768_2(glval) = FunctionAddress[~String] : +# 2768| v2768_3(void) = Call[~String] : func:r2768_2, this:r2768_1 +# 2768| mu2768_4(unknown) = ^CallSideEffect : ~m? +# 2768| v2768_5(void) = ^IndirectReadSideEffect[-1] : &:r2768_1, ~m? +# 2768| mu2768_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2768_1 +# 2768| r2768_7(bool) = Constant[0] : +# 2768| v2768_8(void) = ConditionalBranch : r2768_7 +#-----| False -> Block 917 +#-----| True -> Block 1026 + +# 2770| Block 917 +# 2770| r2770_1(glval) = VariableAddress[x917] : +# 2770| mu2770_2(String) = Uninitialized[x917] : &:r2770_1 +# 2770| r2770_3(glval) = FunctionAddress[String] : +# 2770| v2770_4(void) = Call[String] : func:r2770_3, this:r2770_1 +# 2770| mu2770_5(unknown) = ^CallSideEffect : ~m? +# 2770| mu2770_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2770_1 +# 2771| r2771_1(glval) = VariableAddress[x917] : +# 2771| r2771_2(glval) = FunctionAddress[~String] : +# 2771| v2771_3(void) = Call[~String] : func:r2771_2, this:r2771_1 +# 2771| mu2771_4(unknown) = ^CallSideEffect : ~m? +# 2771| v2771_5(void) = ^IndirectReadSideEffect[-1] : &:r2771_1, ~m? +# 2771| mu2771_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2771_1 +# 2771| r2771_7(bool) = Constant[0] : +# 2771| v2771_8(void) = ConditionalBranch : r2771_7 +#-----| False -> Block 918 +#-----| True -> Block 1026 + +# 2773| Block 918 +# 2773| r2773_1(glval) = VariableAddress[x918] : +# 2773| mu2773_2(String) = Uninitialized[x918] : &:r2773_1 +# 2773| r2773_3(glval) = FunctionAddress[String] : +# 2773| v2773_4(void) = Call[String] : func:r2773_3, this:r2773_1 +# 2773| mu2773_5(unknown) = ^CallSideEffect : ~m? +# 2773| mu2773_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2773_1 +# 2774| r2774_1(glval) = VariableAddress[x918] : +# 2774| r2774_2(glval) = FunctionAddress[~String] : +# 2774| v2774_3(void) = Call[~String] : func:r2774_2, this:r2774_1 +# 2774| mu2774_4(unknown) = ^CallSideEffect : ~m? +# 2774| v2774_5(void) = ^IndirectReadSideEffect[-1] : &:r2774_1, ~m? +# 2774| mu2774_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2774_1 +# 2774| r2774_7(bool) = Constant[0] : +# 2774| v2774_8(void) = ConditionalBranch : r2774_7 +#-----| False -> Block 919 +#-----| True -> Block 1026 + +# 2776| Block 919 +# 2776| r2776_1(glval) = VariableAddress[x919] : +# 2776| mu2776_2(String) = Uninitialized[x919] : &:r2776_1 +# 2776| r2776_3(glval) = FunctionAddress[String] : +# 2776| v2776_4(void) = Call[String] : func:r2776_3, this:r2776_1 +# 2776| mu2776_5(unknown) = ^CallSideEffect : ~m? +# 2776| mu2776_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2776_1 +# 2777| r2777_1(glval) = VariableAddress[x919] : +# 2777| r2777_2(glval) = FunctionAddress[~String] : +# 2777| v2777_3(void) = Call[~String] : func:r2777_2, this:r2777_1 +# 2777| mu2777_4(unknown) = ^CallSideEffect : ~m? +# 2777| v2777_5(void) = ^IndirectReadSideEffect[-1] : &:r2777_1, ~m? +# 2777| mu2777_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2777_1 +# 2777| r2777_7(bool) = Constant[0] : +# 2777| v2777_8(void) = ConditionalBranch : r2777_7 +#-----| False -> Block 920 +#-----| True -> Block 1026 + +# 2779| Block 920 +# 2779| r2779_1(glval) = VariableAddress[x920] : +# 2779| mu2779_2(String) = Uninitialized[x920] : &:r2779_1 +# 2779| r2779_3(glval) = FunctionAddress[String] : +# 2779| v2779_4(void) = Call[String] : func:r2779_3, this:r2779_1 +# 2779| mu2779_5(unknown) = ^CallSideEffect : ~m? +# 2779| mu2779_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2779_1 +# 2780| r2780_1(glval) = VariableAddress[x920] : +# 2780| r2780_2(glval) = FunctionAddress[~String] : +# 2780| v2780_3(void) = Call[~String] : func:r2780_2, this:r2780_1 +# 2780| mu2780_4(unknown) = ^CallSideEffect : ~m? +# 2780| v2780_5(void) = ^IndirectReadSideEffect[-1] : &:r2780_1, ~m? +# 2780| mu2780_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2780_1 +# 2780| r2780_7(bool) = Constant[0] : +# 2780| v2780_8(void) = ConditionalBranch : r2780_7 +#-----| False -> Block 921 +#-----| True -> Block 1026 + +# 2782| Block 921 +# 2782| r2782_1(glval) = VariableAddress[x921] : +# 2782| mu2782_2(String) = Uninitialized[x921] : &:r2782_1 +# 2782| r2782_3(glval) = FunctionAddress[String] : +# 2782| v2782_4(void) = Call[String] : func:r2782_3, this:r2782_1 +# 2782| mu2782_5(unknown) = ^CallSideEffect : ~m? +# 2782| mu2782_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2782_1 +# 2783| r2783_1(glval) = VariableAddress[x921] : +# 2783| r2783_2(glval) = FunctionAddress[~String] : +# 2783| v2783_3(void) = Call[~String] : func:r2783_2, this:r2783_1 +# 2783| mu2783_4(unknown) = ^CallSideEffect : ~m? +# 2783| v2783_5(void) = ^IndirectReadSideEffect[-1] : &:r2783_1, ~m? +# 2783| mu2783_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2783_1 +# 2783| r2783_7(bool) = Constant[0] : +# 2783| v2783_8(void) = ConditionalBranch : r2783_7 +#-----| False -> Block 922 +#-----| True -> Block 1026 + +# 2785| Block 922 +# 2785| r2785_1(glval) = VariableAddress[x922] : +# 2785| mu2785_2(String) = Uninitialized[x922] : &:r2785_1 +# 2785| r2785_3(glval) = FunctionAddress[String] : +# 2785| v2785_4(void) = Call[String] : func:r2785_3, this:r2785_1 +# 2785| mu2785_5(unknown) = ^CallSideEffect : ~m? +# 2785| mu2785_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2785_1 +# 2786| r2786_1(glval) = VariableAddress[x922] : +# 2786| r2786_2(glval) = FunctionAddress[~String] : +# 2786| v2786_3(void) = Call[~String] : func:r2786_2, this:r2786_1 +# 2786| mu2786_4(unknown) = ^CallSideEffect : ~m? +# 2786| v2786_5(void) = ^IndirectReadSideEffect[-1] : &:r2786_1, ~m? +# 2786| mu2786_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2786_1 +# 2786| r2786_7(bool) = Constant[0] : +# 2786| v2786_8(void) = ConditionalBranch : r2786_7 +#-----| False -> Block 923 +#-----| True -> Block 1026 + +# 2788| Block 923 +# 2788| r2788_1(glval) = VariableAddress[x923] : +# 2788| mu2788_2(String) = Uninitialized[x923] : &:r2788_1 +# 2788| r2788_3(glval) = FunctionAddress[String] : +# 2788| v2788_4(void) = Call[String] : func:r2788_3, this:r2788_1 +# 2788| mu2788_5(unknown) = ^CallSideEffect : ~m? +# 2788| mu2788_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2788_1 +# 2789| r2789_1(glval) = VariableAddress[x923] : +# 2789| r2789_2(glval) = FunctionAddress[~String] : +# 2789| v2789_3(void) = Call[~String] : func:r2789_2, this:r2789_1 +# 2789| mu2789_4(unknown) = ^CallSideEffect : ~m? +# 2789| v2789_5(void) = ^IndirectReadSideEffect[-1] : &:r2789_1, ~m? +# 2789| mu2789_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2789_1 +# 2789| r2789_7(bool) = Constant[0] : +# 2789| v2789_8(void) = ConditionalBranch : r2789_7 +#-----| False -> Block 924 +#-----| True -> Block 1026 + +# 2791| Block 924 +# 2791| r2791_1(glval) = VariableAddress[x924] : +# 2791| mu2791_2(String) = Uninitialized[x924] : &:r2791_1 +# 2791| r2791_3(glval) = FunctionAddress[String] : +# 2791| v2791_4(void) = Call[String] : func:r2791_3, this:r2791_1 +# 2791| mu2791_5(unknown) = ^CallSideEffect : ~m? +# 2791| mu2791_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2791_1 +# 2792| r2792_1(glval) = VariableAddress[x924] : +# 2792| r2792_2(glval) = FunctionAddress[~String] : +# 2792| v2792_3(void) = Call[~String] : func:r2792_2, this:r2792_1 +# 2792| mu2792_4(unknown) = ^CallSideEffect : ~m? +# 2792| v2792_5(void) = ^IndirectReadSideEffect[-1] : &:r2792_1, ~m? +# 2792| mu2792_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2792_1 +# 2792| r2792_7(bool) = Constant[0] : +# 2792| v2792_8(void) = ConditionalBranch : r2792_7 +#-----| False -> Block 925 +#-----| True -> Block 1026 + +# 2794| Block 925 +# 2794| r2794_1(glval) = VariableAddress[x925] : +# 2794| mu2794_2(String) = Uninitialized[x925] : &:r2794_1 +# 2794| r2794_3(glval) = FunctionAddress[String] : +# 2794| v2794_4(void) = Call[String] : func:r2794_3, this:r2794_1 +# 2794| mu2794_5(unknown) = ^CallSideEffect : ~m? +# 2794| mu2794_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2794_1 +# 2795| r2795_1(glval) = VariableAddress[x925] : +# 2795| r2795_2(glval) = FunctionAddress[~String] : +# 2795| v2795_3(void) = Call[~String] : func:r2795_2, this:r2795_1 +# 2795| mu2795_4(unknown) = ^CallSideEffect : ~m? +# 2795| v2795_5(void) = ^IndirectReadSideEffect[-1] : &:r2795_1, ~m? +# 2795| mu2795_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2795_1 +# 2795| r2795_7(bool) = Constant[0] : +# 2795| v2795_8(void) = ConditionalBranch : r2795_7 +#-----| False -> Block 926 +#-----| True -> Block 1026 + +# 2797| Block 926 +# 2797| r2797_1(glval) = VariableAddress[x926] : +# 2797| mu2797_2(String) = Uninitialized[x926] : &:r2797_1 +# 2797| r2797_3(glval) = FunctionAddress[String] : +# 2797| v2797_4(void) = Call[String] : func:r2797_3, this:r2797_1 +# 2797| mu2797_5(unknown) = ^CallSideEffect : ~m? +# 2797| mu2797_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2797_1 +# 2798| r2798_1(glval) = VariableAddress[x926] : +# 2798| r2798_2(glval) = FunctionAddress[~String] : +# 2798| v2798_3(void) = Call[~String] : func:r2798_2, this:r2798_1 +# 2798| mu2798_4(unknown) = ^CallSideEffect : ~m? +# 2798| v2798_5(void) = ^IndirectReadSideEffect[-1] : &:r2798_1, ~m? +# 2798| mu2798_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2798_1 +# 2798| r2798_7(bool) = Constant[0] : +# 2798| v2798_8(void) = ConditionalBranch : r2798_7 +#-----| False -> Block 927 +#-----| True -> Block 1026 + +# 2800| Block 927 +# 2800| r2800_1(glval) = VariableAddress[x927] : +# 2800| mu2800_2(String) = Uninitialized[x927] : &:r2800_1 +# 2800| r2800_3(glval) = FunctionAddress[String] : +# 2800| v2800_4(void) = Call[String] : func:r2800_3, this:r2800_1 +# 2800| mu2800_5(unknown) = ^CallSideEffect : ~m? +# 2800| mu2800_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2800_1 +# 2801| r2801_1(glval) = VariableAddress[x927] : +# 2801| r2801_2(glval) = FunctionAddress[~String] : +# 2801| v2801_3(void) = Call[~String] : func:r2801_2, this:r2801_1 +# 2801| mu2801_4(unknown) = ^CallSideEffect : ~m? +# 2801| v2801_5(void) = ^IndirectReadSideEffect[-1] : &:r2801_1, ~m? +# 2801| mu2801_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2801_1 +# 2801| r2801_7(bool) = Constant[0] : +# 2801| v2801_8(void) = ConditionalBranch : r2801_7 +#-----| False -> Block 928 +#-----| True -> Block 1026 + +# 2803| Block 928 +# 2803| r2803_1(glval) = VariableAddress[x928] : +# 2803| mu2803_2(String) = Uninitialized[x928] : &:r2803_1 +# 2803| r2803_3(glval) = FunctionAddress[String] : +# 2803| v2803_4(void) = Call[String] : func:r2803_3, this:r2803_1 +# 2803| mu2803_5(unknown) = ^CallSideEffect : ~m? +# 2803| mu2803_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2803_1 +# 2804| r2804_1(glval) = VariableAddress[x928] : +# 2804| r2804_2(glval) = FunctionAddress[~String] : +# 2804| v2804_3(void) = Call[~String] : func:r2804_2, this:r2804_1 +# 2804| mu2804_4(unknown) = ^CallSideEffect : ~m? +# 2804| v2804_5(void) = ^IndirectReadSideEffect[-1] : &:r2804_1, ~m? +# 2804| mu2804_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2804_1 +# 2804| r2804_7(bool) = Constant[0] : +# 2804| v2804_8(void) = ConditionalBranch : r2804_7 +#-----| False -> Block 929 +#-----| True -> Block 1026 + +# 2806| Block 929 +# 2806| r2806_1(glval) = VariableAddress[x929] : +# 2806| mu2806_2(String) = Uninitialized[x929] : &:r2806_1 +# 2806| r2806_3(glval) = FunctionAddress[String] : +# 2806| v2806_4(void) = Call[String] : func:r2806_3, this:r2806_1 +# 2806| mu2806_5(unknown) = ^CallSideEffect : ~m? +# 2806| mu2806_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2806_1 +# 2807| r2807_1(glval) = VariableAddress[x929] : +# 2807| r2807_2(glval) = FunctionAddress[~String] : +# 2807| v2807_3(void) = Call[~String] : func:r2807_2, this:r2807_1 +# 2807| mu2807_4(unknown) = ^CallSideEffect : ~m? +# 2807| v2807_5(void) = ^IndirectReadSideEffect[-1] : &:r2807_1, ~m? +# 2807| mu2807_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2807_1 +# 2807| r2807_7(bool) = Constant[0] : +# 2807| v2807_8(void) = ConditionalBranch : r2807_7 +#-----| False -> Block 930 +#-----| True -> Block 1026 + +# 2809| Block 930 +# 2809| r2809_1(glval) = VariableAddress[x930] : +# 2809| mu2809_2(String) = Uninitialized[x930] : &:r2809_1 +# 2809| r2809_3(glval) = FunctionAddress[String] : +# 2809| v2809_4(void) = Call[String] : func:r2809_3, this:r2809_1 +# 2809| mu2809_5(unknown) = ^CallSideEffect : ~m? +# 2809| mu2809_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2809_1 +# 2810| r2810_1(glval) = VariableAddress[x930] : +# 2810| r2810_2(glval) = FunctionAddress[~String] : +# 2810| v2810_3(void) = Call[~String] : func:r2810_2, this:r2810_1 +# 2810| mu2810_4(unknown) = ^CallSideEffect : ~m? +# 2810| v2810_5(void) = ^IndirectReadSideEffect[-1] : &:r2810_1, ~m? +# 2810| mu2810_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2810_1 +# 2810| r2810_7(bool) = Constant[0] : +# 2810| v2810_8(void) = ConditionalBranch : r2810_7 +#-----| False -> Block 931 +#-----| True -> Block 1026 + +# 2812| Block 931 +# 2812| r2812_1(glval) = VariableAddress[x931] : +# 2812| mu2812_2(String) = Uninitialized[x931] : &:r2812_1 +# 2812| r2812_3(glval) = FunctionAddress[String] : +# 2812| v2812_4(void) = Call[String] : func:r2812_3, this:r2812_1 +# 2812| mu2812_5(unknown) = ^CallSideEffect : ~m? +# 2812| mu2812_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2812_1 +# 2813| r2813_1(glval) = VariableAddress[x931] : +# 2813| r2813_2(glval) = FunctionAddress[~String] : +# 2813| v2813_3(void) = Call[~String] : func:r2813_2, this:r2813_1 +# 2813| mu2813_4(unknown) = ^CallSideEffect : ~m? +# 2813| v2813_5(void) = ^IndirectReadSideEffect[-1] : &:r2813_1, ~m? +# 2813| mu2813_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2813_1 +# 2813| r2813_7(bool) = Constant[0] : +# 2813| v2813_8(void) = ConditionalBranch : r2813_7 +#-----| False -> Block 932 +#-----| True -> Block 1026 + +# 2815| Block 932 +# 2815| r2815_1(glval) = VariableAddress[x932] : +# 2815| mu2815_2(String) = Uninitialized[x932] : &:r2815_1 +# 2815| r2815_3(glval) = FunctionAddress[String] : +# 2815| v2815_4(void) = Call[String] : func:r2815_3, this:r2815_1 +# 2815| mu2815_5(unknown) = ^CallSideEffect : ~m? +# 2815| mu2815_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2815_1 +# 2816| r2816_1(glval) = VariableAddress[x932] : +# 2816| r2816_2(glval) = FunctionAddress[~String] : +# 2816| v2816_3(void) = Call[~String] : func:r2816_2, this:r2816_1 +# 2816| mu2816_4(unknown) = ^CallSideEffect : ~m? +# 2816| v2816_5(void) = ^IndirectReadSideEffect[-1] : &:r2816_1, ~m? +# 2816| mu2816_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2816_1 +# 2816| r2816_7(bool) = Constant[0] : +# 2816| v2816_8(void) = ConditionalBranch : r2816_7 +#-----| False -> Block 933 +#-----| True -> Block 1026 + +# 2818| Block 933 +# 2818| r2818_1(glval) = VariableAddress[x933] : +# 2818| mu2818_2(String) = Uninitialized[x933] : &:r2818_1 +# 2818| r2818_3(glval) = FunctionAddress[String] : +# 2818| v2818_4(void) = Call[String] : func:r2818_3, this:r2818_1 +# 2818| mu2818_5(unknown) = ^CallSideEffect : ~m? +# 2818| mu2818_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2818_1 +# 2819| r2819_1(glval) = VariableAddress[x933] : +# 2819| r2819_2(glval) = FunctionAddress[~String] : +# 2819| v2819_3(void) = Call[~String] : func:r2819_2, this:r2819_1 +# 2819| mu2819_4(unknown) = ^CallSideEffect : ~m? +# 2819| v2819_5(void) = ^IndirectReadSideEffect[-1] : &:r2819_1, ~m? +# 2819| mu2819_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2819_1 +# 2819| r2819_7(bool) = Constant[0] : +# 2819| v2819_8(void) = ConditionalBranch : r2819_7 +#-----| False -> Block 934 +#-----| True -> Block 1026 + +# 2821| Block 934 +# 2821| r2821_1(glval) = VariableAddress[x934] : +# 2821| mu2821_2(String) = Uninitialized[x934] : &:r2821_1 +# 2821| r2821_3(glval) = FunctionAddress[String] : +# 2821| v2821_4(void) = Call[String] : func:r2821_3, this:r2821_1 +# 2821| mu2821_5(unknown) = ^CallSideEffect : ~m? +# 2821| mu2821_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2821_1 +# 2822| r2822_1(glval) = VariableAddress[x934] : +# 2822| r2822_2(glval) = FunctionAddress[~String] : +# 2822| v2822_3(void) = Call[~String] : func:r2822_2, this:r2822_1 +# 2822| mu2822_4(unknown) = ^CallSideEffect : ~m? +# 2822| v2822_5(void) = ^IndirectReadSideEffect[-1] : &:r2822_1, ~m? +# 2822| mu2822_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2822_1 +# 2822| r2822_7(bool) = Constant[0] : +# 2822| v2822_8(void) = ConditionalBranch : r2822_7 +#-----| False -> Block 935 +#-----| True -> Block 1026 + +# 2824| Block 935 +# 2824| r2824_1(glval) = VariableAddress[x935] : +# 2824| mu2824_2(String) = Uninitialized[x935] : &:r2824_1 +# 2824| r2824_3(glval) = FunctionAddress[String] : +# 2824| v2824_4(void) = Call[String] : func:r2824_3, this:r2824_1 +# 2824| mu2824_5(unknown) = ^CallSideEffect : ~m? +# 2824| mu2824_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2824_1 +# 2825| r2825_1(glval) = VariableAddress[x935] : +# 2825| r2825_2(glval) = FunctionAddress[~String] : +# 2825| v2825_3(void) = Call[~String] : func:r2825_2, this:r2825_1 +# 2825| mu2825_4(unknown) = ^CallSideEffect : ~m? +# 2825| v2825_5(void) = ^IndirectReadSideEffect[-1] : &:r2825_1, ~m? +# 2825| mu2825_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2825_1 +# 2825| r2825_7(bool) = Constant[0] : +# 2825| v2825_8(void) = ConditionalBranch : r2825_7 +#-----| False -> Block 936 +#-----| True -> Block 1026 + +# 2827| Block 936 +# 2827| r2827_1(glval) = VariableAddress[x936] : +# 2827| mu2827_2(String) = Uninitialized[x936] : &:r2827_1 +# 2827| r2827_3(glval) = FunctionAddress[String] : +# 2827| v2827_4(void) = Call[String] : func:r2827_3, this:r2827_1 +# 2827| mu2827_5(unknown) = ^CallSideEffect : ~m? +# 2827| mu2827_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2827_1 +# 2828| r2828_1(glval) = VariableAddress[x936] : +# 2828| r2828_2(glval) = FunctionAddress[~String] : +# 2828| v2828_3(void) = Call[~String] : func:r2828_2, this:r2828_1 +# 2828| mu2828_4(unknown) = ^CallSideEffect : ~m? +# 2828| v2828_5(void) = ^IndirectReadSideEffect[-1] : &:r2828_1, ~m? +# 2828| mu2828_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2828_1 +# 2828| r2828_7(bool) = Constant[0] : +# 2828| v2828_8(void) = ConditionalBranch : r2828_7 +#-----| False -> Block 937 +#-----| True -> Block 1026 + +# 2830| Block 937 +# 2830| r2830_1(glval) = VariableAddress[x937] : +# 2830| mu2830_2(String) = Uninitialized[x937] : &:r2830_1 +# 2830| r2830_3(glval) = FunctionAddress[String] : +# 2830| v2830_4(void) = Call[String] : func:r2830_3, this:r2830_1 +# 2830| mu2830_5(unknown) = ^CallSideEffect : ~m? +# 2830| mu2830_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2830_1 +# 2831| r2831_1(glval) = VariableAddress[x937] : +# 2831| r2831_2(glval) = FunctionAddress[~String] : +# 2831| v2831_3(void) = Call[~String] : func:r2831_2, this:r2831_1 +# 2831| mu2831_4(unknown) = ^CallSideEffect : ~m? +# 2831| v2831_5(void) = ^IndirectReadSideEffect[-1] : &:r2831_1, ~m? +# 2831| mu2831_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2831_1 +# 2831| r2831_7(bool) = Constant[0] : +# 2831| v2831_8(void) = ConditionalBranch : r2831_7 +#-----| False -> Block 938 +#-----| True -> Block 1026 + +# 2833| Block 938 +# 2833| r2833_1(glval) = VariableAddress[x938] : +# 2833| mu2833_2(String) = Uninitialized[x938] : &:r2833_1 +# 2833| r2833_3(glval) = FunctionAddress[String] : +# 2833| v2833_4(void) = Call[String] : func:r2833_3, this:r2833_1 +# 2833| mu2833_5(unknown) = ^CallSideEffect : ~m? +# 2833| mu2833_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2833_1 +# 2834| r2834_1(glval) = VariableAddress[x938] : +# 2834| r2834_2(glval) = FunctionAddress[~String] : +# 2834| v2834_3(void) = Call[~String] : func:r2834_2, this:r2834_1 +# 2834| mu2834_4(unknown) = ^CallSideEffect : ~m? +# 2834| v2834_5(void) = ^IndirectReadSideEffect[-1] : &:r2834_1, ~m? +# 2834| mu2834_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2834_1 +# 2834| r2834_7(bool) = Constant[0] : +# 2834| v2834_8(void) = ConditionalBranch : r2834_7 +#-----| False -> Block 939 +#-----| True -> Block 1026 + +# 2836| Block 939 +# 2836| r2836_1(glval) = VariableAddress[x939] : +# 2836| mu2836_2(String) = Uninitialized[x939] : &:r2836_1 +# 2836| r2836_3(glval) = FunctionAddress[String] : +# 2836| v2836_4(void) = Call[String] : func:r2836_3, this:r2836_1 +# 2836| mu2836_5(unknown) = ^CallSideEffect : ~m? +# 2836| mu2836_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2836_1 +# 2837| r2837_1(glval) = VariableAddress[x939] : +# 2837| r2837_2(glval) = FunctionAddress[~String] : +# 2837| v2837_3(void) = Call[~String] : func:r2837_2, this:r2837_1 +# 2837| mu2837_4(unknown) = ^CallSideEffect : ~m? +# 2837| v2837_5(void) = ^IndirectReadSideEffect[-1] : &:r2837_1, ~m? +# 2837| mu2837_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2837_1 +# 2837| r2837_7(bool) = Constant[0] : +# 2837| v2837_8(void) = ConditionalBranch : r2837_7 +#-----| False -> Block 940 +#-----| True -> Block 1026 + +# 2839| Block 940 +# 2839| r2839_1(glval) = VariableAddress[x940] : +# 2839| mu2839_2(String) = Uninitialized[x940] : &:r2839_1 +# 2839| r2839_3(glval) = FunctionAddress[String] : +# 2839| v2839_4(void) = Call[String] : func:r2839_3, this:r2839_1 +# 2839| mu2839_5(unknown) = ^CallSideEffect : ~m? +# 2839| mu2839_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2839_1 +# 2840| r2840_1(glval) = VariableAddress[x940] : +# 2840| r2840_2(glval) = FunctionAddress[~String] : +# 2840| v2840_3(void) = Call[~String] : func:r2840_2, this:r2840_1 +# 2840| mu2840_4(unknown) = ^CallSideEffect : ~m? +# 2840| v2840_5(void) = ^IndirectReadSideEffect[-1] : &:r2840_1, ~m? +# 2840| mu2840_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2840_1 +# 2840| r2840_7(bool) = Constant[0] : +# 2840| v2840_8(void) = ConditionalBranch : r2840_7 +#-----| False -> Block 941 +#-----| True -> Block 1026 + +# 2842| Block 941 +# 2842| r2842_1(glval) = VariableAddress[x941] : +# 2842| mu2842_2(String) = Uninitialized[x941] : &:r2842_1 +# 2842| r2842_3(glval) = FunctionAddress[String] : +# 2842| v2842_4(void) = Call[String] : func:r2842_3, this:r2842_1 +# 2842| mu2842_5(unknown) = ^CallSideEffect : ~m? +# 2842| mu2842_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2842_1 +# 2843| r2843_1(glval) = VariableAddress[x941] : +# 2843| r2843_2(glval) = FunctionAddress[~String] : +# 2843| v2843_3(void) = Call[~String] : func:r2843_2, this:r2843_1 +# 2843| mu2843_4(unknown) = ^CallSideEffect : ~m? +# 2843| v2843_5(void) = ^IndirectReadSideEffect[-1] : &:r2843_1, ~m? +# 2843| mu2843_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2843_1 +# 2843| r2843_7(bool) = Constant[0] : +# 2843| v2843_8(void) = ConditionalBranch : r2843_7 +#-----| False -> Block 942 +#-----| True -> Block 1026 + +# 2845| Block 942 +# 2845| r2845_1(glval) = VariableAddress[x942] : +# 2845| mu2845_2(String) = Uninitialized[x942] : &:r2845_1 +# 2845| r2845_3(glval) = FunctionAddress[String] : +# 2845| v2845_4(void) = Call[String] : func:r2845_3, this:r2845_1 +# 2845| mu2845_5(unknown) = ^CallSideEffect : ~m? +# 2845| mu2845_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2845_1 +# 2846| r2846_1(glval) = VariableAddress[x942] : +# 2846| r2846_2(glval) = FunctionAddress[~String] : +# 2846| v2846_3(void) = Call[~String] : func:r2846_2, this:r2846_1 +# 2846| mu2846_4(unknown) = ^CallSideEffect : ~m? +# 2846| v2846_5(void) = ^IndirectReadSideEffect[-1] : &:r2846_1, ~m? +# 2846| mu2846_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2846_1 +# 2846| r2846_7(bool) = Constant[0] : +# 2846| v2846_8(void) = ConditionalBranch : r2846_7 +#-----| False -> Block 943 +#-----| True -> Block 1026 + +# 2848| Block 943 +# 2848| r2848_1(glval) = VariableAddress[x943] : +# 2848| mu2848_2(String) = Uninitialized[x943] : &:r2848_1 +# 2848| r2848_3(glval) = FunctionAddress[String] : +# 2848| v2848_4(void) = Call[String] : func:r2848_3, this:r2848_1 +# 2848| mu2848_5(unknown) = ^CallSideEffect : ~m? +# 2848| mu2848_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2848_1 +# 2849| r2849_1(glval) = VariableAddress[x943] : +# 2849| r2849_2(glval) = FunctionAddress[~String] : +# 2849| v2849_3(void) = Call[~String] : func:r2849_2, this:r2849_1 +# 2849| mu2849_4(unknown) = ^CallSideEffect : ~m? +# 2849| v2849_5(void) = ^IndirectReadSideEffect[-1] : &:r2849_1, ~m? +# 2849| mu2849_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2849_1 +# 2849| r2849_7(bool) = Constant[0] : +# 2849| v2849_8(void) = ConditionalBranch : r2849_7 +#-----| False -> Block 944 +#-----| True -> Block 1026 + +# 2851| Block 944 +# 2851| r2851_1(glval) = VariableAddress[x944] : +# 2851| mu2851_2(String) = Uninitialized[x944] : &:r2851_1 +# 2851| r2851_3(glval) = FunctionAddress[String] : +# 2851| v2851_4(void) = Call[String] : func:r2851_3, this:r2851_1 +# 2851| mu2851_5(unknown) = ^CallSideEffect : ~m? +# 2851| mu2851_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2851_1 +# 2852| r2852_1(glval) = VariableAddress[x944] : +# 2852| r2852_2(glval) = FunctionAddress[~String] : +# 2852| v2852_3(void) = Call[~String] : func:r2852_2, this:r2852_1 +# 2852| mu2852_4(unknown) = ^CallSideEffect : ~m? +# 2852| v2852_5(void) = ^IndirectReadSideEffect[-1] : &:r2852_1, ~m? +# 2852| mu2852_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2852_1 +# 2852| r2852_7(bool) = Constant[0] : +# 2852| v2852_8(void) = ConditionalBranch : r2852_7 +#-----| False -> Block 945 +#-----| True -> Block 1026 + +# 2854| Block 945 +# 2854| r2854_1(glval) = VariableAddress[x945] : +# 2854| mu2854_2(String) = Uninitialized[x945] : &:r2854_1 +# 2854| r2854_3(glval) = FunctionAddress[String] : +# 2854| v2854_4(void) = Call[String] : func:r2854_3, this:r2854_1 +# 2854| mu2854_5(unknown) = ^CallSideEffect : ~m? +# 2854| mu2854_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2854_1 +# 2855| r2855_1(glval) = VariableAddress[x945] : +# 2855| r2855_2(glval) = FunctionAddress[~String] : +# 2855| v2855_3(void) = Call[~String] : func:r2855_2, this:r2855_1 +# 2855| mu2855_4(unknown) = ^CallSideEffect : ~m? +# 2855| v2855_5(void) = ^IndirectReadSideEffect[-1] : &:r2855_1, ~m? +# 2855| mu2855_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2855_1 +# 2855| r2855_7(bool) = Constant[0] : +# 2855| v2855_8(void) = ConditionalBranch : r2855_7 +#-----| False -> Block 946 +#-----| True -> Block 1026 + +# 2857| Block 946 +# 2857| r2857_1(glval) = VariableAddress[x946] : +# 2857| mu2857_2(String) = Uninitialized[x946] : &:r2857_1 +# 2857| r2857_3(glval) = FunctionAddress[String] : +# 2857| v2857_4(void) = Call[String] : func:r2857_3, this:r2857_1 +# 2857| mu2857_5(unknown) = ^CallSideEffect : ~m? +# 2857| mu2857_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2857_1 +# 2858| r2858_1(glval) = VariableAddress[x946] : +# 2858| r2858_2(glval) = FunctionAddress[~String] : +# 2858| v2858_3(void) = Call[~String] : func:r2858_2, this:r2858_1 +# 2858| mu2858_4(unknown) = ^CallSideEffect : ~m? +# 2858| v2858_5(void) = ^IndirectReadSideEffect[-1] : &:r2858_1, ~m? +# 2858| mu2858_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2858_1 +# 2858| r2858_7(bool) = Constant[0] : +# 2858| v2858_8(void) = ConditionalBranch : r2858_7 +#-----| False -> Block 947 +#-----| True -> Block 1026 + +# 2860| Block 947 +# 2860| r2860_1(glval) = VariableAddress[x947] : +# 2860| mu2860_2(String) = Uninitialized[x947] : &:r2860_1 +# 2860| r2860_3(glval) = FunctionAddress[String] : +# 2860| v2860_4(void) = Call[String] : func:r2860_3, this:r2860_1 +# 2860| mu2860_5(unknown) = ^CallSideEffect : ~m? +# 2860| mu2860_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2860_1 +# 2861| r2861_1(glval) = VariableAddress[x947] : +# 2861| r2861_2(glval) = FunctionAddress[~String] : +# 2861| v2861_3(void) = Call[~String] : func:r2861_2, this:r2861_1 +# 2861| mu2861_4(unknown) = ^CallSideEffect : ~m? +# 2861| v2861_5(void) = ^IndirectReadSideEffect[-1] : &:r2861_1, ~m? +# 2861| mu2861_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2861_1 +# 2861| r2861_7(bool) = Constant[0] : +# 2861| v2861_8(void) = ConditionalBranch : r2861_7 +#-----| False -> Block 948 +#-----| True -> Block 1026 + +# 2863| Block 948 +# 2863| r2863_1(glval) = VariableAddress[x948] : +# 2863| mu2863_2(String) = Uninitialized[x948] : &:r2863_1 +# 2863| r2863_3(glval) = FunctionAddress[String] : +# 2863| v2863_4(void) = Call[String] : func:r2863_3, this:r2863_1 +# 2863| mu2863_5(unknown) = ^CallSideEffect : ~m? +# 2863| mu2863_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2863_1 +# 2864| r2864_1(glval) = VariableAddress[x948] : +# 2864| r2864_2(glval) = FunctionAddress[~String] : +# 2864| v2864_3(void) = Call[~String] : func:r2864_2, this:r2864_1 +# 2864| mu2864_4(unknown) = ^CallSideEffect : ~m? +# 2864| v2864_5(void) = ^IndirectReadSideEffect[-1] : &:r2864_1, ~m? +# 2864| mu2864_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2864_1 +# 2864| r2864_7(bool) = Constant[0] : +# 2864| v2864_8(void) = ConditionalBranch : r2864_7 +#-----| False -> Block 949 +#-----| True -> Block 1026 + +# 2866| Block 949 +# 2866| r2866_1(glval) = VariableAddress[x949] : +# 2866| mu2866_2(String) = Uninitialized[x949] : &:r2866_1 +# 2866| r2866_3(glval) = FunctionAddress[String] : +# 2866| v2866_4(void) = Call[String] : func:r2866_3, this:r2866_1 +# 2866| mu2866_5(unknown) = ^CallSideEffect : ~m? +# 2866| mu2866_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2866_1 +# 2867| r2867_1(glval) = VariableAddress[x949] : +# 2867| r2867_2(glval) = FunctionAddress[~String] : +# 2867| v2867_3(void) = Call[~String] : func:r2867_2, this:r2867_1 +# 2867| mu2867_4(unknown) = ^CallSideEffect : ~m? +# 2867| v2867_5(void) = ^IndirectReadSideEffect[-1] : &:r2867_1, ~m? +# 2867| mu2867_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2867_1 +# 2867| r2867_7(bool) = Constant[0] : +# 2867| v2867_8(void) = ConditionalBranch : r2867_7 +#-----| False -> Block 950 +#-----| True -> Block 1026 + +# 2869| Block 950 +# 2869| r2869_1(glval) = VariableAddress[x950] : +# 2869| mu2869_2(String) = Uninitialized[x950] : &:r2869_1 +# 2869| r2869_3(glval) = FunctionAddress[String] : +# 2869| v2869_4(void) = Call[String] : func:r2869_3, this:r2869_1 +# 2869| mu2869_5(unknown) = ^CallSideEffect : ~m? +# 2869| mu2869_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2869_1 +# 2870| r2870_1(glval) = VariableAddress[x950] : +# 2870| r2870_2(glval) = FunctionAddress[~String] : +# 2870| v2870_3(void) = Call[~String] : func:r2870_2, this:r2870_1 +# 2870| mu2870_4(unknown) = ^CallSideEffect : ~m? +# 2870| v2870_5(void) = ^IndirectReadSideEffect[-1] : &:r2870_1, ~m? +# 2870| mu2870_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2870_1 +# 2870| r2870_7(bool) = Constant[0] : +# 2870| v2870_8(void) = ConditionalBranch : r2870_7 +#-----| False -> Block 951 +#-----| True -> Block 1026 + +# 2872| Block 951 +# 2872| r2872_1(glval) = VariableAddress[x951] : +# 2872| mu2872_2(String) = Uninitialized[x951] : &:r2872_1 +# 2872| r2872_3(glval) = FunctionAddress[String] : +# 2872| v2872_4(void) = Call[String] : func:r2872_3, this:r2872_1 +# 2872| mu2872_5(unknown) = ^CallSideEffect : ~m? +# 2872| mu2872_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2872_1 +# 2873| r2873_1(glval) = VariableAddress[x951] : +# 2873| r2873_2(glval) = FunctionAddress[~String] : +# 2873| v2873_3(void) = Call[~String] : func:r2873_2, this:r2873_1 +# 2873| mu2873_4(unknown) = ^CallSideEffect : ~m? +# 2873| v2873_5(void) = ^IndirectReadSideEffect[-1] : &:r2873_1, ~m? +# 2873| mu2873_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2873_1 +# 2873| r2873_7(bool) = Constant[0] : +# 2873| v2873_8(void) = ConditionalBranch : r2873_7 +#-----| False -> Block 952 +#-----| True -> Block 1026 + +# 2875| Block 952 +# 2875| r2875_1(glval) = VariableAddress[x952] : +# 2875| mu2875_2(String) = Uninitialized[x952] : &:r2875_1 +# 2875| r2875_3(glval) = FunctionAddress[String] : +# 2875| v2875_4(void) = Call[String] : func:r2875_3, this:r2875_1 +# 2875| mu2875_5(unknown) = ^CallSideEffect : ~m? +# 2875| mu2875_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2875_1 +# 2876| r2876_1(glval) = VariableAddress[x952] : +# 2876| r2876_2(glval) = FunctionAddress[~String] : +# 2876| v2876_3(void) = Call[~String] : func:r2876_2, this:r2876_1 +# 2876| mu2876_4(unknown) = ^CallSideEffect : ~m? +# 2876| v2876_5(void) = ^IndirectReadSideEffect[-1] : &:r2876_1, ~m? +# 2876| mu2876_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2876_1 +# 2876| r2876_7(bool) = Constant[0] : +# 2876| v2876_8(void) = ConditionalBranch : r2876_7 +#-----| False -> Block 953 +#-----| True -> Block 1026 + +# 2878| Block 953 +# 2878| r2878_1(glval) = VariableAddress[x953] : +# 2878| mu2878_2(String) = Uninitialized[x953] : &:r2878_1 +# 2878| r2878_3(glval) = FunctionAddress[String] : +# 2878| v2878_4(void) = Call[String] : func:r2878_3, this:r2878_1 +# 2878| mu2878_5(unknown) = ^CallSideEffect : ~m? +# 2878| mu2878_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2878_1 +# 2879| r2879_1(glval) = VariableAddress[x953] : +# 2879| r2879_2(glval) = FunctionAddress[~String] : +# 2879| v2879_3(void) = Call[~String] : func:r2879_2, this:r2879_1 +# 2879| mu2879_4(unknown) = ^CallSideEffect : ~m? +# 2879| v2879_5(void) = ^IndirectReadSideEffect[-1] : &:r2879_1, ~m? +# 2879| mu2879_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2879_1 +# 2879| r2879_7(bool) = Constant[0] : +# 2879| v2879_8(void) = ConditionalBranch : r2879_7 +#-----| False -> Block 954 +#-----| True -> Block 1026 + +# 2881| Block 954 +# 2881| r2881_1(glval) = VariableAddress[x954] : +# 2881| mu2881_2(String) = Uninitialized[x954] : &:r2881_1 +# 2881| r2881_3(glval) = FunctionAddress[String] : +# 2881| v2881_4(void) = Call[String] : func:r2881_3, this:r2881_1 +# 2881| mu2881_5(unknown) = ^CallSideEffect : ~m? +# 2881| mu2881_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2881_1 +# 2882| r2882_1(glval) = VariableAddress[x954] : +# 2882| r2882_2(glval) = FunctionAddress[~String] : +# 2882| v2882_3(void) = Call[~String] : func:r2882_2, this:r2882_1 +# 2882| mu2882_4(unknown) = ^CallSideEffect : ~m? +# 2882| v2882_5(void) = ^IndirectReadSideEffect[-1] : &:r2882_1, ~m? +# 2882| mu2882_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2882_1 +# 2882| r2882_7(bool) = Constant[0] : +# 2882| v2882_8(void) = ConditionalBranch : r2882_7 +#-----| False -> Block 955 +#-----| True -> Block 1026 + +# 2884| Block 955 +# 2884| r2884_1(glval) = VariableAddress[x955] : +# 2884| mu2884_2(String) = Uninitialized[x955] : &:r2884_1 +# 2884| r2884_3(glval) = FunctionAddress[String] : +# 2884| v2884_4(void) = Call[String] : func:r2884_3, this:r2884_1 +# 2884| mu2884_5(unknown) = ^CallSideEffect : ~m? +# 2884| mu2884_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2884_1 +# 2885| r2885_1(glval) = VariableAddress[x955] : +# 2885| r2885_2(glval) = FunctionAddress[~String] : +# 2885| v2885_3(void) = Call[~String] : func:r2885_2, this:r2885_1 +# 2885| mu2885_4(unknown) = ^CallSideEffect : ~m? +# 2885| v2885_5(void) = ^IndirectReadSideEffect[-1] : &:r2885_1, ~m? +# 2885| mu2885_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2885_1 +# 2885| r2885_7(bool) = Constant[0] : +# 2885| v2885_8(void) = ConditionalBranch : r2885_7 +#-----| False -> Block 956 +#-----| True -> Block 1026 + +# 2887| Block 956 +# 2887| r2887_1(glval) = VariableAddress[x956] : +# 2887| mu2887_2(String) = Uninitialized[x956] : &:r2887_1 +# 2887| r2887_3(glval) = FunctionAddress[String] : +# 2887| v2887_4(void) = Call[String] : func:r2887_3, this:r2887_1 +# 2887| mu2887_5(unknown) = ^CallSideEffect : ~m? +# 2887| mu2887_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2887_1 +# 2888| r2888_1(glval) = VariableAddress[x956] : +# 2888| r2888_2(glval) = FunctionAddress[~String] : +# 2888| v2888_3(void) = Call[~String] : func:r2888_2, this:r2888_1 +# 2888| mu2888_4(unknown) = ^CallSideEffect : ~m? +# 2888| v2888_5(void) = ^IndirectReadSideEffect[-1] : &:r2888_1, ~m? +# 2888| mu2888_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2888_1 +# 2888| r2888_7(bool) = Constant[0] : +# 2888| v2888_8(void) = ConditionalBranch : r2888_7 +#-----| False -> Block 957 +#-----| True -> Block 1026 + +# 2890| Block 957 +# 2890| r2890_1(glval) = VariableAddress[x957] : +# 2890| mu2890_2(String) = Uninitialized[x957] : &:r2890_1 +# 2890| r2890_3(glval) = FunctionAddress[String] : +# 2890| v2890_4(void) = Call[String] : func:r2890_3, this:r2890_1 +# 2890| mu2890_5(unknown) = ^CallSideEffect : ~m? +# 2890| mu2890_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2890_1 +# 2891| r2891_1(glval) = VariableAddress[x957] : +# 2891| r2891_2(glval) = FunctionAddress[~String] : +# 2891| v2891_3(void) = Call[~String] : func:r2891_2, this:r2891_1 +# 2891| mu2891_4(unknown) = ^CallSideEffect : ~m? +# 2891| v2891_5(void) = ^IndirectReadSideEffect[-1] : &:r2891_1, ~m? +# 2891| mu2891_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2891_1 +# 2891| r2891_7(bool) = Constant[0] : +# 2891| v2891_8(void) = ConditionalBranch : r2891_7 +#-----| False -> Block 958 +#-----| True -> Block 1026 + +# 2893| Block 958 +# 2893| r2893_1(glval) = VariableAddress[x958] : +# 2893| mu2893_2(String) = Uninitialized[x958] : &:r2893_1 +# 2893| r2893_3(glval) = FunctionAddress[String] : +# 2893| v2893_4(void) = Call[String] : func:r2893_3, this:r2893_1 +# 2893| mu2893_5(unknown) = ^CallSideEffect : ~m? +# 2893| mu2893_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2893_1 +# 2894| r2894_1(glval) = VariableAddress[x958] : +# 2894| r2894_2(glval) = FunctionAddress[~String] : +# 2894| v2894_3(void) = Call[~String] : func:r2894_2, this:r2894_1 +# 2894| mu2894_4(unknown) = ^CallSideEffect : ~m? +# 2894| v2894_5(void) = ^IndirectReadSideEffect[-1] : &:r2894_1, ~m? +# 2894| mu2894_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2894_1 +# 2894| r2894_7(bool) = Constant[0] : +# 2894| v2894_8(void) = ConditionalBranch : r2894_7 +#-----| False -> Block 959 +#-----| True -> Block 1026 + +# 2896| Block 959 +# 2896| r2896_1(glval) = VariableAddress[x959] : +# 2896| mu2896_2(String) = Uninitialized[x959] : &:r2896_1 +# 2896| r2896_3(glval) = FunctionAddress[String] : +# 2896| v2896_4(void) = Call[String] : func:r2896_3, this:r2896_1 +# 2896| mu2896_5(unknown) = ^CallSideEffect : ~m? +# 2896| mu2896_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2896_1 +# 2897| r2897_1(glval) = VariableAddress[x959] : +# 2897| r2897_2(glval) = FunctionAddress[~String] : +# 2897| v2897_3(void) = Call[~String] : func:r2897_2, this:r2897_1 +# 2897| mu2897_4(unknown) = ^CallSideEffect : ~m? +# 2897| v2897_5(void) = ^IndirectReadSideEffect[-1] : &:r2897_1, ~m? +# 2897| mu2897_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2897_1 +# 2897| r2897_7(bool) = Constant[0] : +# 2897| v2897_8(void) = ConditionalBranch : r2897_7 +#-----| False -> Block 960 +#-----| True -> Block 1026 + +# 2899| Block 960 +# 2899| r2899_1(glval) = VariableAddress[x960] : +# 2899| mu2899_2(String) = Uninitialized[x960] : &:r2899_1 +# 2899| r2899_3(glval) = FunctionAddress[String] : +# 2899| v2899_4(void) = Call[String] : func:r2899_3, this:r2899_1 +# 2899| mu2899_5(unknown) = ^CallSideEffect : ~m? +# 2899| mu2899_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2899_1 +# 2900| r2900_1(glval) = VariableAddress[x960] : +# 2900| r2900_2(glval) = FunctionAddress[~String] : +# 2900| v2900_3(void) = Call[~String] : func:r2900_2, this:r2900_1 +# 2900| mu2900_4(unknown) = ^CallSideEffect : ~m? +# 2900| v2900_5(void) = ^IndirectReadSideEffect[-1] : &:r2900_1, ~m? +# 2900| mu2900_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2900_1 +# 2900| r2900_7(bool) = Constant[0] : +# 2900| v2900_8(void) = ConditionalBranch : r2900_7 +#-----| False -> Block 961 +#-----| True -> Block 1026 + +# 2902| Block 961 +# 2902| r2902_1(glval) = VariableAddress[x961] : +# 2902| mu2902_2(String) = Uninitialized[x961] : &:r2902_1 +# 2902| r2902_3(glval) = FunctionAddress[String] : +# 2902| v2902_4(void) = Call[String] : func:r2902_3, this:r2902_1 +# 2902| mu2902_5(unknown) = ^CallSideEffect : ~m? +# 2902| mu2902_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2902_1 +# 2903| r2903_1(glval) = VariableAddress[x961] : +# 2903| r2903_2(glval) = FunctionAddress[~String] : +# 2903| v2903_3(void) = Call[~String] : func:r2903_2, this:r2903_1 +# 2903| mu2903_4(unknown) = ^CallSideEffect : ~m? +# 2903| v2903_5(void) = ^IndirectReadSideEffect[-1] : &:r2903_1, ~m? +# 2903| mu2903_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2903_1 +# 2903| r2903_7(bool) = Constant[0] : +# 2903| v2903_8(void) = ConditionalBranch : r2903_7 +#-----| False -> Block 962 +#-----| True -> Block 1026 + +# 2905| Block 962 +# 2905| r2905_1(glval) = VariableAddress[x962] : +# 2905| mu2905_2(String) = Uninitialized[x962] : &:r2905_1 +# 2905| r2905_3(glval) = FunctionAddress[String] : +# 2905| v2905_4(void) = Call[String] : func:r2905_3, this:r2905_1 +# 2905| mu2905_5(unknown) = ^CallSideEffect : ~m? +# 2905| mu2905_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2905_1 +# 2906| r2906_1(glval) = VariableAddress[x962] : +# 2906| r2906_2(glval) = FunctionAddress[~String] : +# 2906| v2906_3(void) = Call[~String] : func:r2906_2, this:r2906_1 +# 2906| mu2906_4(unknown) = ^CallSideEffect : ~m? +# 2906| v2906_5(void) = ^IndirectReadSideEffect[-1] : &:r2906_1, ~m? +# 2906| mu2906_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2906_1 +# 2906| r2906_7(bool) = Constant[0] : +# 2906| v2906_8(void) = ConditionalBranch : r2906_7 +#-----| False -> Block 963 +#-----| True -> Block 1026 + +# 2908| Block 963 +# 2908| r2908_1(glval) = VariableAddress[x963] : +# 2908| mu2908_2(String) = Uninitialized[x963] : &:r2908_1 +# 2908| r2908_3(glval) = FunctionAddress[String] : +# 2908| v2908_4(void) = Call[String] : func:r2908_3, this:r2908_1 +# 2908| mu2908_5(unknown) = ^CallSideEffect : ~m? +# 2908| mu2908_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2908_1 +# 2909| r2909_1(glval) = VariableAddress[x963] : +# 2909| r2909_2(glval) = FunctionAddress[~String] : +# 2909| v2909_3(void) = Call[~String] : func:r2909_2, this:r2909_1 +# 2909| mu2909_4(unknown) = ^CallSideEffect : ~m? +# 2909| v2909_5(void) = ^IndirectReadSideEffect[-1] : &:r2909_1, ~m? +# 2909| mu2909_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2909_1 +# 2909| r2909_7(bool) = Constant[0] : +# 2909| v2909_8(void) = ConditionalBranch : r2909_7 +#-----| False -> Block 964 +#-----| True -> Block 1026 + +# 2911| Block 964 +# 2911| r2911_1(glval) = VariableAddress[x964] : +# 2911| mu2911_2(String) = Uninitialized[x964] : &:r2911_1 +# 2911| r2911_3(glval) = FunctionAddress[String] : +# 2911| v2911_4(void) = Call[String] : func:r2911_3, this:r2911_1 +# 2911| mu2911_5(unknown) = ^CallSideEffect : ~m? +# 2911| mu2911_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2911_1 +# 2912| r2912_1(glval) = VariableAddress[x964] : +# 2912| r2912_2(glval) = FunctionAddress[~String] : +# 2912| v2912_3(void) = Call[~String] : func:r2912_2, this:r2912_1 +# 2912| mu2912_4(unknown) = ^CallSideEffect : ~m? +# 2912| v2912_5(void) = ^IndirectReadSideEffect[-1] : &:r2912_1, ~m? +# 2912| mu2912_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2912_1 +# 2912| r2912_7(bool) = Constant[0] : +# 2912| v2912_8(void) = ConditionalBranch : r2912_7 +#-----| False -> Block 965 +#-----| True -> Block 1026 + +# 2914| Block 965 +# 2914| r2914_1(glval) = VariableAddress[x965] : +# 2914| mu2914_2(String) = Uninitialized[x965] : &:r2914_1 +# 2914| r2914_3(glval) = FunctionAddress[String] : +# 2914| v2914_4(void) = Call[String] : func:r2914_3, this:r2914_1 +# 2914| mu2914_5(unknown) = ^CallSideEffect : ~m? +# 2914| mu2914_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2914_1 +# 2915| r2915_1(glval) = VariableAddress[x965] : +# 2915| r2915_2(glval) = FunctionAddress[~String] : +# 2915| v2915_3(void) = Call[~String] : func:r2915_2, this:r2915_1 +# 2915| mu2915_4(unknown) = ^CallSideEffect : ~m? +# 2915| v2915_5(void) = ^IndirectReadSideEffect[-1] : &:r2915_1, ~m? +# 2915| mu2915_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2915_1 +# 2915| r2915_7(bool) = Constant[0] : +# 2915| v2915_8(void) = ConditionalBranch : r2915_7 +#-----| False -> Block 966 +#-----| True -> Block 1026 + +# 2917| Block 966 +# 2917| r2917_1(glval) = VariableAddress[x966] : +# 2917| mu2917_2(String) = Uninitialized[x966] : &:r2917_1 +# 2917| r2917_3(glval) = FunctionAddress[String] : +# 2917| v2917_4(void) = Call[String] : func:r2917_3, this:r2917_1 +# 2917| mu2917_5(unknown) = ^CallSideEffect : ~m? +# 2917| mu2917_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2917_1 +# 2918| r2918_1(glval) = VariableAddress[x966] : +# 2918| r2918_2(glval) = FunctionAddress[~String] : +# 2918| v2918_3(void) = Call[~String] : func:r2918_2, this:r2918_1 +# 2918| mu2918_4(unknown) = ^CallSideEffect : ~m? +# 2918| v2918_5(void) = ^IndirectReadSideEffect[-1] : &:r2918_1, ~m? +# 2918| mu2918_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2918_1 +# 2918| r2918_7(bool) = Constant[0] : +# 2918| v2918_8(void) = ConditionalBranch : r2918_7 +#-----| False -> Block 967 +#-----| True -> Block 1026 + +# 2920| Block 967 +# 2920| r2920_1(glval) = VariableAddress[x967] : +# 2920| mu2920_2(String) = Uninitialized[x967] : &:r2920_1 +# 2920| r2920_3(glval) = FunctionAddress[String] : +# 2920| v2920_4(void) = Call[String] : func:r2920_3, this:r2920_1 +# 2920| mu2920_5(unknown) = ^CallSideEffect : ~m? +# 2920| mu2920_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2920_1 +# 2921| r2921_1(glval) = VariableAddress[x967] : +# 2921| r2921_2(glval) = FunctionAddress[~String] : +# 2921| v2921_3(void) = Call[~String] : func:r2921_2, this:r2921_1 +# 2921| mu2921_4(unknown) = ^CallSideEffect : ~m? +# 2921| v2921_5(void) = ^IndirectReadSideEffect[-1] : &:r2921_1, ~m? +# 2921| mu2921_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2921_1 +# 2921| r2921_7(bool) = Constant[0] : +# 2921| v2921_8(void) = ConditionalBranch : r2921_7 +#-----| False -> Block 968 +#-----| True -> Block 1026 + +# 2923| Block 968 +# 2923| r2923_1(glval) = VariableAddress[x968] : +# 2923| mu2923_2(String) = Uninitialized[x968] : &:r2923_1 +# 2923| r2923_3(glval) = FunctionAddress[String] : +# 2923| v2923_4(void) = Call[String] : func:r2923_3, this:r2923_1 +# 2923| mu2923_5(unknown) = ^CallSideEffect : ~m? +# 2923| mu2923_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2923_1 +# 2924| r2924_1(glval) = VariableAddress[x968] : +# 2924| r2924_2(glval) = FunctionAddress[~String] : +# 2924| v2924_3(void) = Call[~String] : func:r2924_2, this:r2924_1 +# 2924| mu2924_4(unknown) = ^CallSideEffect : ~m? +# 2924| v2924_5(void) = ^IndirectReadSideEffect[-1] : &:r2924_1, ~m? +# 2924| mu2924_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2924_1 +# 2924| r2924_7(bool) = Constant[0] : +# 2924| v2924_8(void) = ConditionalBranch : r2924_7 +#-----| False -> Block 969 +#-----| True -> Block 1026 + +# 2926| Block 969 +# 2926| r2926_1(glval) = VariableAddress[x969] : +# 2926| mu2926_2(String) = Uninitialized[x969] : &:r2926_1 +# 2926| r2926_3(glval) = FunctionAddress[String] : +# 2926| v2926_4(void) = Call[String] : func:r2926_3, this:r2926_1 +# 2926| mu2926_5(unknown) = ^CallSideEffect : ~m? +# 2926| mu2926_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2926_1 +# 2927| r2927_1(glval) = VariableAddress[x969] : +# 2927| r2927_2(glval) = FunctionAddress[~String] : +# 2927| v2927_3(void) = Call[~String] : func:r2927_2, this:r2927_1 +# 2927| mu2927_4(unknown) = ^CallSideEffect : ~m? +# 2927| v2927_5(void) = ^IndirectReadSideEffect[-1] : &:r2927_1, ~m? +# 2927| mu2927_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2927_1 +# 2927| r2927_7(bool) = Constant[0] : +# 2927| v2927_8(void) = ConditionalBranch : r2927_7 +#-----| False -> Block 970 +#-----| True -> Block 1026 + +# 2929| Block 970 +# 2929| r2929_1(glval) = VariableAddress[x970] : +# 2929| mu2929_2(String) = Uninitialized[x970] : &:r2929_1 +# 2929| r2929_3(glval) = FunctionAddress[String] : +# 2929| v2929_4(void) = Call[String] : func:r2929_3, this:r2929_1 +# 2929| mu2929_5(unknown) = ^CallSideEffect : ~m? +# 2929| mu2929_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2929_1 +# 2930| r2930_1(glval) = VariableAddress[x970] : +# 2930| r2930_2(glval) = FunctionAddress[~String] : +# 2930| v2930_3(void) = Call[~String] : func:r2930_2, this:r2930_1 +# 2930| mu2930_4(unknown) = ^CallSideEffect : ~m? +# 2930| v2930_5(void) = ^IndirectReadSideEffect[-1] : &:r2930_1, ~m? +# 2930| mu2930_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2930_1 +# 2930| r2930_7(bool) = Constant[0] : +# 2930| v2930_8(void) = ConditionalBranch : r2930_7 +#-----| False -> Block 971 +#-----| True -> Block 1026 + +# 2932| Block 971 +# 2932| r2932_1(glval) = VariableAddress[x971] : +# 2932| mu2932_2(String) = Uninitialized[x971] : &:r2932_1 +# 2932| r2932_3(glval) = FunctionAddress[String] : +# 2932| v2932_4(void) = Call[String] : func:r2932_3, this:r2932_1 +# 2932| mu2932_5(unknown) = ^CallSideEffect : ~m? +# 2932| mu2932_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2932_1 +# 2933| r2933_1(glval) = VariableAddress[x971] : +# 2933| r2933_2(glval) = FunctionAddress[~String] : +# 2933| v2933_3(void) = Call[~String] : func:r2933_2, this:r2933_1 +# 2933| mu2933_4(unknown) = ^CallSideEffect : ~m? +# 2933| v2933_5(void) = ^IndirectReadSideEffect[-1] : &:r2933_1, ~m? +# 2933| mu2933_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2933_1 +# 2933| r2933_7(bool) = Constant[0] : +# 2933| v2933_8(void) = ConditionalBranch : r2933_7 +#-----| False -> Block 972 +#-----| True -> Block 1026 + +# 2935| Block 972 +# 2935| r2935_1(glval) = VariableAddress[x972] : +# 2935| mu2935_2(String) = Uninitialized[x972] : &:r2935_1 +# 2935| r2935_3(glval) = FunctionAddress[String] : +# 2935| v2935_4(void) = Call[String] : func:r2935_3, this:r2935_1 +# 2935| mu2935_5(unknown) = ^CallSideEffect : ~m? +# 2935| mu2935_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2935_1 +# 2936| r2936_1(glval) = VariableAddress[x972] : +# 2936| r2936_2(glval) = FunctionAddress[~String] : +# 2936| v2936_3(void) = Call[~String] : func:r2936_2, this:r2936_1 +# 2936| mu2936_4(unknown) = ^CallSideEffect : ~m? +# 2936| v2936_5(void) = ^IndirectReadSideEffect[-1] : &:r2936_1, ~m? +# 2936| mu2936_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2936_1 +# 2936| r2936_7(bool) = Constant[0] : +# 2936| v2936_8(void) = ConditionalBranch : r2936_7 +#-----| False -> Block 973 +#-----| True -> Block 1026 + +# 2938| Block 973 +# 2938| r2938_1(glval) = VariableAddress[x973] : +# 2938| mu2938_2(String) = Uninitialized[x973] : &:r2938_1 +# 2938| r2938_3(glval) = FunctionAddress[String] : +# 2938| v2938_4(void) = Call[String] : func:r2938_3, this:r2938_1 +# 2938| mu2938_5(unknown) = ^CallSideEffect : ~m? +# 2938| mu2938_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2938_1 +# 2939| r2939_1(glval) = VariableAddress[x973] : +# 2939| r2939_2(glval) = FunctionAddress[~String] : +# 2939| v2939_3(void) = Call[~String] : func:r2939_2, this:r2939_1 +# 2939| mu2939_4(unknown) = ^CallSideEffect : ~m? +# 2939| v2939_5(void) = ^IndirectReadSideEffect[-1] : &:r2939_1, ~m? +# 2939| mu2939_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2939_1 +# 2939| r2939_7(bool) = Constant[0] : +# 2939| v2939_8(void) = ConditionalBranch : r2939_7 +#-----| False -> Block 974 +#-----| True -> Block 1026 + +# 2941| Block 974 +# 2941| r2941_1(glval) = VariableAddress[x974] : +# 2941| mu2941_2(String) = Uninitialized[x974] : &:r2941_1 +# 2941| r2941_3(glval) = FunctionAddress[String] : +# 2941| v2941_4(void) = Call[String] : func:r2941_3, this:r2941_1 +# 2941| mu2941_5(unknown) = ^CallSideEffect : ~m? +# 2941| mu2941_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2941_1 +# 2942| r2942_1(glval) = VariableAddress[x974] : +# 2942| r2942_2(glval) = FunctionAddress[~String] : +# 2942| v2942_3(void) = Call[~String] : func:r2942_2, this:r2942_1 +# 2942| mu2942_4(unknown) = ^CallSideEffect : ~m? +# 2942| v2942_5(void) = ^IndirectReadSideEffect[-1] : &:r2942_1, ~m? +# 2942| mu2942_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2942_1 +# 2942| r2942_7(bool) = Constant[0] : +# 2942| v2942_8(void) = ConditionalBranch : r2942_7 +#-----| False -> Block 975 +#-----| True -> Block 1026 + +# 2944| Block 975 +# 2944| r2944_1(glval) = VariableAddress[x975] : +# 2944| mu2944_2(String) = Uninitialized[x975] : &:r2944_1 +# 2944| r2944_3(glval) = FunctionAddress[String] : +# 2944| v2944_4(void) = Call[String] : func:r2944_3, this:r2944_1 +# 2944| mu2944_5(unknown) = ^CallSideEffect : ~m? +# 2944| mu2944_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2944_1 +# 2945| r2945_1(glval) = VariableAddress[x975] : +# 2945| r2945_2(glval) = FunctionAddress[~String] : +# 2945| v2945_3(void) = Call[~String] : func:r2945_2, this:r2945_1 +# 2945| mu2945_4(unknown) = ^CallSideEffect : ~m? +# 2945| v2945_5(void) = ^IndirectReadSideEffect[-1] : &:r2945_1, ~m? +# 2945| mu2945_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2945_1 +# 2945| r2945_7(bool) = Constant[0] : +# 2945| v2945_8(void) = ConditionalBranch : r2945_7 +#-----| False -> Block 976 +#-----| True -> Block 1026 + +# 2947| Block 976 +# 2947| r2947_1(glval) = VariableAddress[x976] : +# 2947| mu2947_2(String) = Uninitialized[x976] : &:r2947_1 +# 2947| r2947_3(glval) = FunctionAddress[String] : +# 2947| v2947_4(void) = Call[String] : func:r2947_3, this:r2947_1 +# 2947| mu2947_5(unknown) = ^CallSideEffect : ~m? +# 2947| mu2947_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2947_1 +# 2948| r2948_1(glval) = VariableAddress[x976] : +# 2948| r2948_2(glval) = FunctionAddress[~String] : +# 2948| v2948_3(void) = Call[~String] : func:r2948_2, this:r2948_1 +# 2948| mu2948_4(unknown) = ^CallSideEffect : ~m? +# 2948| v2948_5(void) = ^IndirectReadSideEffect[-1] : &:r2948_1, ~m? +# 2948| mu2948_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2948_1 +# 2948| r2948_7(bool) = Constant[0] : +# 2948| v2948_8(void) = ConditionalBranch : r2948_7 +#-----| False -> Block 977 +#-----| True -> Block 1026 + +# 2950| Block 977 +# 2950| r2950_1(glval) = VariableAddress[x977] : +# 2950| mu2950_2(String) = Uninitialized[x977] : &:r2950_1 +# 2950| r2950_3(glval) = FunctionAddress[String] : +# 2950| v2950_4(void) = Call[String] : func:r2950_3, this:r2950_1 +# 2950| mu2950_5(unknown) = ^CallSideEffect : ~m? +# 2950| mu2950_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2950_1 +# 2951| r2951_1(glval) = VariableAddress[x977] : +# 2951| r2951_2(glval) = FunctionAddress[~String] : +# 2951| v2951_3(void) = Call[~String] : func:r2951_2, this:r2951_1 +# 2951| mu2951_4(unknown) = ^CallSideEffect : ~m? +# 2951| v2951_5(void) = ^IndirectReadSideEffect[-1] : &:r2951_1, ~m? +# 2951| mu2951_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2951_1 +# 2951| r2951_7(bool) = Constant[0] : +# 2951| v2951_8(void) = ConditionalBranch : r2951_7 +#-----| False -> Block 978 +#-----| True -> Block 1026 + +# 2953| Block 978 +# 2953| r2953_1(glval) = VariableAddress[x978] : +# 2953| mu2953_2(String) = Uninitialized[x978] : &:r2953_1 +# 2953| r2953_3(glval) = FunctionAddress[String] : +# 2953| v2953_4(void) = Call[String] : func:r2953_3, this:r2953_1 +# 2953| mu2953_5(unknown) = ^CallSideEffect : ~m? +# 2953| mu2953_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2953_1 +# 2954| r2954_1(glval) = VariableAddress[x978] : +# 2954| r2954_2(glval) = FunctionAddress[~String] : +# 2954| v2954_3(void) = Call[~String] : func:r2954_2, this:r2954_1 +# 2954| mu2954_4(unknown) = ^CallSideEffect : ~m? +# 2954| v2954_5(void) = ^IndirectReadSideEffect[-1] : &:r2954_1, ~m? +# 2954| mu2954_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2954_1 +# 2954| r2954_7(bool) = Constant[0] : +# 2954| v2954_8(void) = ConditionalBranch : r2954_7 +#-----| False -> Block 979 +#-----| True -> Block 1026 + +# 2956| Block 979 +# 2956| r2956_1(glval) = VariableAddress[x979] : +# 2956| mu2956_2(String) = Uninitialized[x979] : &:r2956_1 +# 2956| r2956_3(glval) = FunctionAddress[String] : +# 2956| v2956_4(void) = Call[String] : func:r2956_3, this:r2956_1 +# 2956| mu2956_5(unknown) = ^CallSideEffect : ~m? +# 2956| mu2956_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2956_1 +# 2957| r2957_1(glval) = VariableAddress[x979] : +# 2957| r2957_2(glval) = FunctionAddress[~String] : +# 2957| v2957_3(void) = Call[~String] : func:r2957_2, this:r2957_1 +# 2957| mu2957_4(unknown) = ^CallSideEffect : ~m? +# 2957| v2957_5(void) = ^IndirectReadSideEffect[-1] : &:r2957_1, ~m? +# 2957| mu2957_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2957_1 +# 2957| r2957_7(bool) = Constant[0] : +# 2957| v2957_8(void) = ConditionalBranch : r2957_7 +#-----| False -> Block 980 +#-----| True -> Block 1026 + +# 2959| Block 980 +# 2959| r2959_1(glval) = VariableAddress[x980] : +# 2959| mu2959_2(String) = Uninitialized[x980] : &:r2959_1 +# 2959| r2959_3(glval) = FunctionAddress[String] : +# 2959| v2959_4(void) = Call[String] : func:r2959_3, this:r2959_1 +# 2959| mu2959_5(unknown) = ^CallSideEffect : ~m? +# 2959| mu2959_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2959_1 +# 2960| r2960_1(glval) = VariableAddress[x980] : +# 2960| r2960_2(glval) = FunctionAddress[~String] : +# 2960| v2960_3(void) = Call[~String] : func:r2960_2, this:r2960_1 +# 2960| mu2960_4(unknown) = ^CallSideEffect : ~m? +# 2960| v2960_5(void) = ^IndirectReadSideEffect[-1] : &:r2960_1, ~m? +# 2960| mu2960_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2960_1 +# 2960| r2960_7(bool) = Constant[0] : +# 2960| v2960_8(void) = ConditionalBranch : r2960_7 +#-----| False -> Block 981 +#-----| True -> Block 1026 + +# 2962| Block 981 +# 2962| r2962_1(glval) = VariableAddress[x981] : +# 2962| mu2962_2(String) = Uninitialized[x981] : &:r2962_1 +# 2962| r2962_3(glval) = FunctionAddress[String] : +# 2962| v2962_4(void) = Call[String] : func:r2962_3, this:r2962_1 +# 2962| mu2962_5(unknown) = ^CallSideEffect : ~m? +# 2962| mu2962_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2962_1 +# 2963| r2963_1(glval) = VariableAddress[x981] : +# 2963| r2963_2(glval) = FunctionAddress[~String] : +# 2963| v2963_3(void) = Call[~String] : func:r2963_2, this:r2963_1 +# 2963| mu2963_4(unknown) = ^CallSideEffect : ~m? +# 2963| v2963_5(void) = ^IndirectReadSideEffect[-1] : &:r2963_1, ~m? +# 2963| mu2963_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2963_1 +# 2963| r2963_7(bool) = Constant[0] : +# 2963| v2963_8(void) = ConditionalBranch : r2963_7 +#-----| False -> Block 982 +#-----| True -> Block 1026 + +# 2965| Block 982 +# 2965| r2965_1(glval) = VariableAddress[x982] : +# 2965| mu2965_2(String) = Uninitialized[x982] : &:r2965_1 +# 2965| r2965_3(glval) = FunctionAddress[String] : +# 2965| v2965_4(void) = Call[String] : func:r2965_3, this:r2965_1 +# 2965| mu2965_5(unknown) = ^CallSideEffect : ~m? +# 2965| mu2965_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2965_1 +# 2966| r2966_1(glval) = VariableAddress[x982] : +# 2966| r2966_2(glval) = FunctionAddress[~String] : +# 2966| v2966_3(void) = Call[~String] : func:r2966_2, this:r2966_1 +# 2966| mu2966_4(unknown) = ^CallSideEffect : ~m? +# 2966| v2966_5(void) = ^IndirectReadSideEffect[-1] : &:r2966_1, ~m? +# 2966| mu2966_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2966_1 +# 2966| r2966_7(bool) = Constant[0] : +# 2966| v2966_8(void) = ConditionalBranch : r2966_7 +#-----| False -> Block 983 +#-----| True -> Block 1026 + +# 2968| Block 983 +# 2968| r2968_1(glval) = VariableAddress[x983] : +# 2968| mu2968_2(String) = Uninitialized[x983] : &:r2968_1 +# 2968| r2968_3(glval) = FunctionAddress[String] : +# 2968| v2968_4(void) = Call[String] : func:r2968_3, this:r2968_1 +# 2968| mu2968_5(unknown) = ^CallSideEffect : ~m? +# 2968| mu2968_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2968_1 +# 2969| r2969_1(glval) = VariableAddress[x983] : +# 2969| r2969_2(glval) = FunctionAddress[~String] : +# 2969| v2969_3(void) = Call[~String] : func:r2969_2, this:r2969_1 +# 2969| mu2969_4(unknown) = ^CallSideEffect : ~m? +# 2969| v2969_5(void) = ^IndirectReadSideEffect[-1] : &:r2969_1, ~m? +# 2969| mu2969_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2969_1 +# 2969| r2969_7(bool) = Constant[0] : +# 2969| v2969_8(void) = ConditionalBranch : r2969_7 +#-----| False -> Block 984 +#-----| True -> Block 1026 + +# 2971| Block 984 +# 2971| r2971_1(glval) = VariableAddress[x984] : +# 2971| mu2971_2(String) = Uninitialized[x984] : &:r2971_1 +# 2971| r2971_3(glval) = FunctionAddress[String] : +# 2971| v2971_4(void) = Call[String] : func:r2971_3, this:r2971_1 +# 2971| mu2971_5(unknown) = ^CallSideEffect : ~m? +# 2971| mu2971_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2971_1 +# 2972| r2972_1(glval) = VariableAddress[x984] : +# 2972| r2972_2(glval) = FunctionAddress[~String] : +# 2972| v2972_3(void) = Call[~String] : func:r2972_2, this:r2972_1 +# 2972| mu2972_4(unknown) = ^CallSideEffect : ~m? +# 2972| v2972_5(void) = ^IndirectReadSideEffect[-1] : &:r2972_1, ~m? +# 2972| mu2972_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2972_1 +# 2972| r2972_7(bool) = Constant[0] : +# 2972| v2972_8(void) = ConditionalBranch : r2972_7 +#-----| False -> Block 985 +#-----| True -> Block 1026 + +# 2974| Block 985 +# 2974| r2974_1(glval) = VariableAddress[x985] : +# 2974| mu2974_2(String) = Uninitialized[x985] : &:r2974_1 +# 2974| r2974_3(glval) = FunctionAddress[String] : +# 2974| v2974_4(void) = Call[String] : func:r2974_3, this:r2974_1 +# 2974| mu2974_5(unknown) = ^CallSideEffect : ~m? +# 2974| mu2974_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2974_1 +# 2975| r2975_1(glval) = VariableAddress[x985] : +# 2975| r2975_2(glval) = FunctionAddress[~String] : +# 2975| v2975_3(void) = Call[~String] : func:r2975_2, this:r2975_1 +# 2975| mu2975_4(unknown) = ^CallSideEffect : ~m? +# 2975| v2975_5(void) = ^IndirectReadSideEffect[-1] : &:r2975_1, ~m? +# 2975| mu2975_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2975_1 +# 2975| r2975_7(bool) = Constant[0] : +# 2975| v2975_8(void) = ConditionalBranch : r2975_7 +#-----| False -> Block 986 +#-----| True -> Block 1026 + +# 2977| Block 986 +# 2977| r2977_1(glval) = VariableAddress[x986] : +# 2977| mu2977_2(String) = Uninitialized[x986] : &:r2977_1 +# 2977| r2977_3(glval) = FunctionAddress[String] : +# 2977| v2977_4(void) = Call[String] : func:r2977_3, this:r2977_1 +# 2977| mu2977_5(unknown) = ^CallSideEffect : ~m? +# 2977| mu2977_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2977_1 +# 2978| r2978_1(glval) = VariableAddress[x986] : +# 2978| r2978_2(glval) = FunctionAddress[~String] : +# 2978| v2978_3(void) = Call[~String] : func:r2978_2, this:r2978_1 +# 2978| mu2978_4(unknown) = ^CallSideEffect : ~m? +# 2978| v2978_5(void) = ^IndirectReadSideEffect[-1] : &:r2978_1, ~m? +# 2978| mu2978_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2978_1 +# 2978| r2978_7(bool) = Constant[0] : +# 2978| v2978_8(void) = ConditionalBranch : r2978_7 +#-----| False -> Block 987 +#-----| True -> Block 1026 + +# 2980| Block 987 +# 2980| r2980_1(glval) = VariableAddress[x987] : +# 2980| mu2980_2(String) = Uninitialized[x987] : &:r2980_1 +# 2980| r2980_3(glval) = FunctionAddress[String] : +# 2980| v2980_4(void) = Call[String] : func:r2980_3, this:r2980_1 +# 2980| mu2980_5(unknown) = ^CallSideEffect : ~m? +# 2980| mu2980_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2980_1 +# 2981| r2981_1(glval) = VariableAddress[x987] : +# 2981| r2981_2(glval) = FunctionAddress[~String] : +# 2981| v2981_3(void) = Call[~String] : func:r2981_2, this:r2981_1 +# 2981| mu2981_4(unknown) = ^CallSideEffect : ~m? +# 2981| v2981_5(void) = ^IndirectReadSideEffect[-1] : &:r2981_1, ~m? +# 2981| mu2981_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2981_1 +# 2981| r2981_7(bool) = Constant[0] : +# 2981| v2981_8(void) = ConditionalBranch : r2981_7 +#-----| False -> Block 988 +#-----| True -> Block 1026 + +# 2983| Block 988 +# 2983| r2983_1(glval) = VariableAddress[x988] : +# 2983| mu2983_2(String) = Uninitialized[x988] : &:r2983_1 +# 2983| r2983_3(glval) = FunctionAddress[String] : +# 2983| v2983_4(void) = Call[String] : func:r2983_3, this:r2983_1 +# 2983| mu2983_5(unknown) = ^CallSideEffect : ~m? +# 2983| mu2983_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2983_1 +# 2984| r2984_1(glval) = VariableAddress[x988] : +# 2984| r2984_2(glval) = FunctionAddress[~String] : +# 2984| v2984_3(void) = Call[~String] : func:r2984_2, this:r2984_1 +# 2984| mu2984_4(unknown) = ^CallSideEffect : ~m? +# 2984| v2984_5(void) = ^IndirectReadSideEffect[-1] : &:r2984_1, ~m? +# 2984| mu2984_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2984_1 +# 2984| r2984_7(bool) = Constant[0] : +# 2984| v2984_8(void) = ConditionalBranch : r2984_7 +#-----| False -> Block 989 +#-----| True -> Block 1026 + +# 2986| Block 989 +# 2986| r2986_1(glval) = VariableAddress[x989] : +# 2986| mu2986_2(String) = Uninitialized[x989] : &:r2986_1 +# 2986| r2986_3(glval) = FunctionAddress[String] : +# 2986| v2986_4(void) = Call[String] : func:r2986_3, this:r2986_1 +# 2986| mu2986_5(unknown) = ^CallSideEffect : ~m? +# 2986| mu2986_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2986_1 +# 2987| r2987_1(glval) = VariableAddress[x989] : +# 2987| r2987_2(glval) = FunctionAddress[~String] : +# 2987| v2987_3(void) = Call[~String] : func:r2987_2, this:r2987_1 +# 2987| mu2987_4(unknown) = ^CallSideEffect : ~m? +# 2987| v2987_5(void) = ^IndirectReadSideEffect[-1] : &:r2987_1, ~m? +# 2987| mu2987_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2987_1 +# 2987| r2987_7(bool) = Constant[0] : +# 2987| v2987_8(void) = ConditionalBranch : r2987_7 +#-----| False -> Block 990 +#-----| True -> Block 1026 + +# 2989| Block 990 +# 2989| r2989_1(glval) = VariableAddress[x990] : +# 2989| mu2989_2(String) = Uninitialized[x990] : &:r2989_1 +# 2989| r2989_3(glval) = FunctionAddress[String] : +# 2989| v2989_4(void) = Call[String] : func:r2989_3, this:r2989_1 +# 2989| mu2989_5(unknown) = ^CallSideEffect : ~m? +# 2989| mu2989_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2989_1 +# 2990| r2990_1(glval) = VariableAddress[x990] : +# 2990| r2990_2(glval) = FunctionAddress[~String] : +# 2990| v2990_3(void) = Call[~String] : func:r2990_2, this:r2990_1 +# 2990| mu2990_4(unknown) = ^CallSideEffect : ~m? +# 2990| v2990_5(void) = ^IndirectReadSideEffect[-1] : &:r2990_1, ~m? +# 2990| mu2990_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2990_1 +# 2990| r2990_7(bool) = Constant[0] : +# 2990| v2990_8(void) = ConditionalBranch : r2990_7 +#-----| False -> Block 991 +#-----| True -> Block 1026 + +# 2992| Block 991 +# 2992| r2992_1(glval) = VariableAddress[x991] : +# 2992| mu2992_2(String) = Uninitialized[x991] : &:r2992_1 +# 2992| r2992_3(glval) = FunctionAddress[String] : +# 2992| v2992_4(void) = Call[String] : func:r2992_3, this:r2992_1 +# 2992| mu2992_5(unknown) = ^CallSideEffect : ~m? +# 2992| mu2992_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2992_1 +# 2993| r2993_1(glval) = VariableAddress[x991] : +# 2993| r2993_2(glval) = FunctionAddress[~String] : +# 2993| v2993_3(void) = Call[~String] : func:r2993_2, this:r2993_1 +# 2993| mu2993_4(unknown) = ^CallSideEffect : ~m? +# 2993| v2993_5(void) = ^IndirectReadSideEffect[-1] : &:r2993_1, ~m? +# 2993| mu2993_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2993_1 +# 2993| r2993_7(bool) = Constant[0] : +# 2993| v2993_8(void) = ConditionalBranch : r2993_7 +#-----| False -> Block 992 +#-----| True -> Block 1026 + +# 2995| Block 992 +# 2995| r2995_1(glval) = VariableAddress[x992] : +# 2995| mu2995_2(String) = Uninitialized[x992] : &:r2995_1 +# 2995| r2995_3(glval) = FunctionAddress[String] : +# 2995| v2995_4(void) = Call[String] : func:r2995_3, this:r2995_1 +# 2995| mu2995_5(unknown) = ^CallSideEffect : ~m? +# 2995| mu2995_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2995_1 +# 2996| r2996_1(glval) = VariableAddress[x992] : +# 2996| r2996_2(glval) = FunctionAddress[~String] : +# 2996| v2996_3(void) = Call[~String] : func:r2996_2, this:r2996_1 +# 2996| mu2996_4(unknown) = ^CallSideEffect : ~m? +# 2996| v2996_5(void) = ^IndirectReadSideEffect[-1] : &:r2996_1, ~m? +# 2996| mu2996_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2996_1 +# 2996| r2996_7(bool) = Constant[0] : +# 2996| v2996_8(void) = ConditionalBranch : r2996_7 +#-----| False -> Block 993 +#-----| True -> Block 1026 + +# 2998| Block 993 +# 2998| r2998_1(glval) = VariableAddress[x993] : +# 2998| mu2998_2(String) = Uninitialized[x993] : &:r2998_1 +# 2998| r2998_3(glval) = FunctionAddress[String] : +# 2998| v2998_4(void) = Call[String] : func:r2998_3, this:r2998_1 +# 2998| mu2998_5(unknown) = ^CallSideEffect : ~m? +# 2998| mu2998_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2998_1 +# 2999| r2999_1(glval) = VariableAddress[x993] : +# 2999| r2999_2(glval) = FunctionAddress[~String] : +# 2999| v2999_3(void) = Call[~String] : func:r2999_2, this:r2999_1 +# 2999| mu2999_4(unknown) = ^CallSideEffect : ~m? +# 2999| v2999_5(void) = ^IndirectReadSideEffect[-1] : &:r2999_1, ~m? +# 2999| mu2999_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2999_1 +# 2999| r2999_7(bool) = Constant[0] : +# 2999| v2999_8(void) = ConditionalBranch : r2999_7 +#-----| False -> Block 994 +#-----| True -> Block 1026 + +# 3001| Block 994 +# 3001| r3001_1(glval) = VariableAddress[x994] : +# 3001| mu3001_2(String) = Uninitialized[x994] : &:r3001_1 +# 3001| r3001_3(glval) = FunctionAddress[String] : +# 3001| v3001_4(void) = Call[String] : func:r3001_3, this:r3001_1 +# 3001| mu3001_5(unknown) = ^CallSideEffect : ~m? +# 3001| mu3001_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3001_1 +# 3002| r3002_1(glval) = VariableAddress[x994] : +# 3002| r3002_2(glval) = FunctionAddress[~String] : +# 3002| v3002_3(void) = Call[~String] : func:r3002_2, this:r3002_1 +# 3002| mu3002_4(unknown) = ^CallSideEffect : ~m? +# 3002| v3002_5(void) = ^IndirectReadSideEffect[-1] : &:r3002_1, ~m? +# 3002| mu3002_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3002_1 +# 3002| r3002_7(bool) = Constant[0] : +# 3002| v3002_8(void) = ConditionalBranch : r3002_7 +#-----| False -> Block 995 +#-----| True -> Block 1026 + +# 3004| Block 995 +# 3004| r3004_1(glval) = VariableAddress[x995] : +# 3004| mu3004_2(String) = Uninitialized[x995] : &:r3004_1 +# 3004| r3004_3(glval) = FunctionAddress[String] : +# 3004| v3004_4(void) = Call[String] : func:r3004_3, this:r3004_1 +# 3004| mu3004_5(unknown) = ^CallSideEffect : ~m? +# 3004| mu3004_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3004_1 +# 3005| r3005_1(glval) = VariableAddress[x995] : +# 3005| r3005_2(glval) = FunctionAddress[~String] : +# 3005| v3005_3(void) = Call[~String] : func:r3005_2, this:r3005_1 +# 3005| mu3005_4(unknown) = ^CallSideEffect : ~m? +# 3005| v3005_5(void) = ^IndirectReadSideEffect[-1] : &:r3005_1, ~m? +# 3005| mu3005_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3005_1 +# 3005| r3005_7(bool) = Constant[0] : +# 3005| v3005_8(void) = ConditionalBranch : r3005_7 +#-----| False -> Block 996 +#-----| True -> Block 1026 + +# 3007| Block 996 +# 3007| r3007_1(glval) = VariableAddress[x996] : +# 3007| mu3007_2(String) = Uninitialized[x996] : &:r3007_1 +# 3007| r3007_3(glval) = FunctionAddress[String] : +# 3007| v3007_4(void) = Call[String] : func:r3007_3, this:r3007_1 +# 3007| mu3007_5(unknown) = ^CallSideEffect : ~m? +# 3007| mu3007_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3007_1 +# 3008| r3008_1(glval) = VariableAddress[x996] : +# 3008| r3008_2(glval) = FunctionAddress[~String] : +# 3008| v3008_3(void) = Call[~String] : func:r3008_2, this:r3008_1 +# 3008| mu3008_4(unknown) = ^CallSideEffect : ~m? +# 3008| v3008_5(void) = ^IndirectReadSideEffect[-1] : &:r3008_1, ~m? +# 3008| mu3008_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3008_1 +# 3008| r3008_7(bool) = Constant[0] : +# 3008| v3008_8(void) = ConditionalBranch : r3008_7 +#-----| False -> Block 997 +#-----| True -> Block 1026 + +# 3010| Block 997 +# 3010| r3010_1(glval) = VariableAddress[x997] : +# 3010| mu3010_2(String) = Uninitialized[x997] : &:r3010_1 +# 3010| r3010_3(glval) = FunctionAddress[String] : +# 3010| v3010_4(void) = Call[String] : func:r3010_3, this:r3010_1 +# 3010| mu3010_5(unknown) = ^CallSideEffect : ~m? +# 3010| mu3010_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3010_1 +# 3011| r3011_1(glval) = VariableAddress[x997] : +# 3011| r3011_2(glval) = FunctionAddress[~String] : +# 3011| v3011_3(void) = Call[~String] : func:r3011_2, this:r3011_1 +# 3011| mu3011_4(unknown) = ^CallSideEffect : ~m? +# 3011| v3011_5(void) = ^IndirectReadSideEffect[-1] : &:r3011_1, ~m? +# 3011| mu3011_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3011_1 +# 3011| r3011_7(bool) = Constant[0] : +# 3011| v3011_8(void) = ConditionalBranch : r3011_7 +#-----| False -> Block 998 +#-----| True -> Block 1026 + +# 3013| Block 998 +# 3013| r3013_1(glval) = VariableAddress[x998] : +# 3013| mu3013_2(String) = Uninitialized[x998] : &:r3013_1 +# 3013| r3013_3(glval) = FunctionAddress[String] : +# 3013| v3013_4(void) = Call[String] : func:r3013_3, this:r3013_1 +# 3013| mu3013_5(unknown) = ^CallSideEffect : ~m? +# 3013| mu3013_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3013_1 +# 3014| r3014_1(glval) = VariableAddress[x998] : +# 3014| r3014_2(glval) = FunctionAddress[~String] : +# 3014| v3014_3(void) = Call[~String] : func:r3014_2, this:r3014_1 +# 3014| mu3014_4(unknown) = ^CallSideEffect : ~m? +# 3014| v3014_5(void) = ^IndirectReadSideEffect[-1] : &:r3014_1, ~m? +# 3014| mu3014_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3014_1 +# 3014| r3014_7(bool) = Constant[0] : +# 3014| v3014_8(void) = ConditionalBranch : r3014_7 +#-----| False -> Block 999 +#-----| True -> Block 1026 + +# 3016| Block 999 +# 3016| r3016_1(glval) = VariableAddress[x999] : +# 3016| mu3016_2(String) = Uninitialized[x999] : &:r3016_1 +# 3016| r3016_3(glval) = FunctionAddress[String] : +# 3016| v3016_4(void) = Call[String] : func:r3016_3, this:r3016_1 +# 3016| mu3016_5(unknown) = ^CallSideEffect : ~m? +# 3016| mu3016_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3016_1 +# 3017| r3017_1(glval) = VariableAddress[x999] : +# 3017| r3017_2(glval) = FunctionAddress[~String] : +# 3017| v3017_3(void) = Call[~String] : func:r3017_2, this:r3017_1 +# 3017| mu3017_4(unknown) = ^CallSideEffect : ~m? +# 3017| v3017_5(void) = ^IndirectReadSideEffect[-1] : &:r3017_1, ~m? +# 3017| mu3017_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3017_1 +# 3017| r3017_7(bool) = Constant[0] : +# 3017| v3017_8(void) = ConditionalBranch : r3017_7 +#-----| False -> Block 1000 +#-----| True -> Block 1026 + +# 3019| Block 1000 +# 3019| r3019_1(glval) = VariableAddress[x1000] : +# 3019| mu3019_2(String) = Uninitialized[x1000] : &:r3019_1 +# 3019| r3019_3(glval) = FunctionAddress[String] : +# 3019| v3019_4(void) = Call[String] : func:r3019_3, this:r3019_1 +# 3019| mu3019_5(unknown) = ^CallSideEffect : ~m? +# 3019| mu3019_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3019_1 +# 3020| r3020_1(glval) = VariableAddress[x1000] : +# 3020| r3020_2(glval) = FunctionAddress[~String] : +# 3020| v3020_3(void) = Call[~String] : func:r3020_2, this:r3020_1 +# 3020| mu3020_4(unknown) = ^CallSideEffect : ~m? +# 3020| v3020_5(void) = ^IndirectReadSideEffect[-1] : &:r3020_1, ~m? +# 3020| mu3020_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3020_1 +# 3020| r3020_7(bool) = Constant[0] : +# 3020| v3020_8(void) = ConditionalBranch : r3020_7 +#-----| False -> Block 1001 +#-----| True -> Block 1026 + +# 3022| Block 1001 +# 3022| r3022_1(glval) = VariableAddress[x1001] : +# 3022| mu3022_2(String) = Uninitialized[x1001] : &:r3022_1 +# 3022| r3022_3(glval) = FunctionAddress[String] : +# 3022| v3022_4(void) = Call[String] : func:r3022_3, this:r3022_1 +# 3022| mu3022_5(unknown) = ^CallSideEffect : ~m? +# 3022| mu3022_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3022_1 +# 3023| r3023_1(glval) = VariableAddress[x1001] : +# 3023| r3023_2(glval) = FunctionAddress[~String] : +# 3023| v3023_3(void) = Call[~String] : func:r3023_2, this:r3023_1 +# 3023| mu3023_4(unknown) = ^CallSideEffect : ~m? +# 3023| v3023_5(void) = ^IndirectReadSideEffect[-1] : &:r3023_1, ~m? +# 3023| mu3023_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3023_1 +# 3023| r3023_7(bool) = Constant[0] : +# 3023| v3023_8(void) = ConditionalBranch : r3023_7 +#-----| False -> Block 1002 +#-----| True -> Block 1026 + +# 3025| Block 1002 +# 3025| r3025_1(glval) = VariableAddress[x1002] : +# 3025| mu3025_2(String) = Uninitialized[x1002] : &:r3025_1 +# 3025| r3025_3(glval) = FunctionAddress[String] : +# 3025| v3025_4(void) = Call[String] : func:r3025_3, this:r3025_1 +# 3025| mu3025_5(unknown) = ^CallSideEffect : ~m? +# 3025| mu3025_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3025_1 +# 3026| r3026_1(glval) = VariableAddress[x1002] : +# 3026| r3026_2(glval) = FunctionAddress[~String] : +# 3026| v3026_3(void) = Call[~String] : func:r3026_2, this:r3026_1 +# 3026| mu3026_4(unknown) = ^CallSideEffect : ~m? +# 3026| v3026_5(void) = ^IndirectReadSideEffect[-1] : &:r3026_1, ~m? +# 3026| mu3026_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3026_1 +# 3026| r3026_7(bool) = Constant[0] : +# 3026| v3026_8(void) = ConditionalBranch : r3026_7 +#-----| False -> Block 1003 +#-----| True -> Block 1026 + +# 3028| Block 1003 +# 3028| r3028_1(glval) = VariableAddress[x1003] : +# 3028| mu3028_2(String) = Uninitialized[x1003] : &:r3028_1 +# 3028| r3028_3(glval) = FunctionAddress[String] : +# 3028| v3028_4(void) = Call[String] : func:r3028_3, this:r3028_1 +# 3028| mu3028_5(unknown) = ^CallSideEffect : ~m? +# 3028| mu3028_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3028_1 +# 3029| r3029_1(glval) = VariableAddress[x1003] : +# 3029| r3029_2(glval) = FunctionAddress[~String] : +# 3029| v3029_3(void) = Call[~String] : func:r3029_2, this:r3029_1 +# 3029| mu3029_4(unknown) = ^CallSideEffect : ~m? +# 3029| v3029_5(void) = ^IndirectReadSideEffect[-1] : &:r3029_1, ~m? +# 3029| mu3029_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3029_1 +# 3029| r3029_7(bool) = Constant[0] : +# 3029| v3029_8(void) = ConditionalBranch : r3029_7 +#-----| False -> Block 1004 +#-----| True -> Block 1026 + +# 3031| Block 1004 +# 3031| r3031_1(glval) = VariableAddress[x1004] : +# 3031| mu3031_2(String) = Uninitialized[x1004] : &:r3031_1 +# 3031| r3031_3(glval) = FunctionAddress[String] : +# 3031| v3031_4(void) = Call[String] : func:r3031_3, this:r3031_1 +# 3031| mu3031_5(unknown) = ^CallSideEffect : ~m? +# 3031| mu3031_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3031_1 +# 3032| r3032_1(glval) = VariableAddress[x1004] : +# 3032| r3032_2(glval) = FunctionAddress[~String] : +# 3032| v3032_3(void) = Call[~String] : func:r3032_2, this:r3032_1 +# 3032| mu3032_4(unknown) = ^CallSideEffect : ~m? +# 3032| v3032_5(void) = ^IndirectReadSideEffect[-1] : &:r3032_1, ~m? +# 3032| mu3032_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3032_1 +# 3032| r3032_7(bool) = Constant[0] : +# 3032| v3032_8(void) = ConditionalBranch : r3032_7 +#-----| False -> Block 1005 +#-----| True -> Block 1026 + +# 3034| Block 1005 +# 3034| r3034_1(glval) = VariableAddress[x1005] : +# 3034| mu3034_2(String) = Uninitialized[x1005] : &:r3034_1 +# 3034| r3034_3(glval) = FunctionAddress[String] : +# 3034| v3034_4(void) = Call[String] : func:r3034_3, this:r3034_1 +# 3034| mu3034_5(unknown) = ^CallSideEffect : ~m? +# 3034| mu3034_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3034_1 +# 3035| r3035_1(glval) = VariableAddress[x1005] : +# 3035| r3035_2(glval) = FunctionAddress[~String] : +# 3035| v3035_3(void) = Call[~String] : func:r3035_2, this:r3035_1 +# 3035| mu3035_4(unknown) = ^CallSideEffect : ~m? +# 3035| v3035_5(void) = ^IndirectReadSideEffect[-1] : &:r3035_1, ~m? +# 3035| mu3035_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3035_1 +# 3035| r3035_7(bool) = Constant[0] : +# 3035| v3035_8(void) = ConditionalBranch : r3035_7 +#-----| False -> Block 1006 +#-----| True -> Block 1026 + +# 3037| Block 1006 +# 3037| r3037_1(glval) = VariableAddress[x1006] : +# 3037| mu3037_2(String) = Uninitialized[x1006] : &:r3037_1 +# 3037| r3037_3(glval) = FunctionAddress[String] : +# 3037| v3037_4(void) = Call[String] : func:r3037_3, this:r3037_1 +# 3037| mu3037_5(unknown) = ^CallSideEffect : ~m? +# 3037| mu3037_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3037_1 +# 3038| r3038_1(glval) = VariableAddress[x1006] : +# 3038| r3038_2(glval) = FunctionAddress[~String] : +# 3038| v3038_3(void) = Call[~String] : func:r3038_2, this:r3038_1 +# 3038| mu3038_4(unknown) = ^CallSideEffect : ~m? +# 3038| v3038_5(void) = ^IndirectReadSideEffect[-1] : &:r3038_1, ~m? +# 3038| mu3038_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3038_1 +# 3038| r3038_7(bool) = Constant[0] : +# 3038| v3038_8(void) = ConditionalBranch : r3038_7 +#-----| False -> Block 1007 +#-----| True -> Block 1026 + +# 3040| Block 1007 +# 3040| r3040_1(glval) = VariableAddress[x1007] : +# 3040| mu3040_2(String) = Uninitialized[x1007] : &:r3040_1 +# 3040| r3040_3(glval) = FunctionAddress[String] : +# 3040| v3040_4(void) = Call[String] : func:r3040_3, this:r3040_1 +# 3040| mu3040_5(unknown) = ^CallSideEffect : ~m? +# 3040| mu3040_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3040_1 +# 3041| r3041_1(glval) = VariableAddress[x1007] : +# 3041| r3041_2(glval) = FunctionAddress[~String] : +# 3041| v3041_3(void) = Call[~String] : func:r3041_2, this:r3041_1 +# 3041| mu3041_4(unknown) = ^CallSideEffect : ~m? +# 3041| v3041_5(void) = ^IndirectReadSideEffect[-1] : &:r3041_1, ~m? +# 3041| mu3041_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3041_1 +# 3041| r3041_7(bool) = Constant[0] : +# 3041| v3041_8(void) = ConditionalBranch : r3041_7 +#-----| False -> Block 1008 +#-----| True -> Block 1026 + +# 3043| Block 1008 +# 3043| r3043_1(glval) = VariableAddress[x1008] : +# 3043| mu3043_2(String) = Uninitialized[x1008] : &:r3043_1 +# 3043| r3043_3(glval) = FunctionAddress[String] : +# 3043| v3043_4(void) = Call[String] : func:r3043_3, this:r3043_1 +# 3043| mu3043_5(unknown) = ^CallSideEffect : ~m? +# 3043| mu3043_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3043_1 +# 3044| r3044_1(glval) = VariableAddress[x1008] : +# 3044| r3044_2(glval) = FunctionAddress[~String] : +# 3044| v3044_3(void) = Call[~String] : func:r3044_2, this:r3044_1 +# 3044| mu3044_4(unknown) = ^CallSideEffect : ~m? +# 3044| v3044_5(void) = ^IndirectReadSideEffect[-1] : &:r3044_1, ~m? +# 3044| mu3044_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3044_1 +# 3044| r3044_7(bool) = Constant[0] : +# 3044| v3044_8(void) = ConditionalBranch : r3044_7 +#-----| False -> Block 1009 +#-----| True -> Block 1026 + +# 3046| Block 1009 +# 3046| r3046_1(glval) = VariableAddress[x1009] : +# 3046| mu3046_2(String) = Uninitialized[x1009] : &:r3046_1 +# 3046| r3046_3(glval) = FunctionAddress[String] : +# 3046| v3046_4(void) = Call[String] : func:r3046_3, this:r3046_1 +# 3046| mu3046_5(unknown) = ^CallSideEffect : ~m? +# 3046| mu3046_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3046_1 +# 3047| r3047_1(glval) = VariableAddress[x1009] : +# 3047| r3047_2(glval) = FunctionAddress[~String] : +# 3047| v3047_3(void) = Call[~String] : func:r3047_2, this:r3047_1 +# 3047| mu3047_4(unknown) = ^CallSideEffect : ~m? +# 3047| v3047_5(void) = ^IndirectReadSideEffect[-1] : &:r3047_1, ~m? +# 3047| mu3047_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3047_1 +# 3047| r3047_7(bool) = Constant[0] : +# 3047| v3047_8(void) = ConditionalBranch : r3047_7 +#-----| False -> Block 1010 +#-----| True -> Block 1026 + +# 3049| Block 1010 +# 3049| r3049_1(glval) = VariableAddress[x1010] : +# 3049| mu3049_2(String) = Uninitialized[x1010] : &:r3049_1 +# 3049| r3049_3(glval) = FunctionAddress[String] : +# 3049| v3049_4(void) = Call[String] : func:r3049_3, this:r3049_1 +# 3049| mu3049_5(unknown) = ^CallSideEffect : ~m? +# 3049| mu3049_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3049_1 +# 3050| r3050_1(glval) = VariableAddress[x1010] : +# 3050| r3050_2(glval) = FunctionAddress[~String] : +# 3050| v3050_3(void) = Call[~String] : func:r3050_2, this:r3050_1 +# 3050| mu3050_4(unknown) = ^CallSideEffect : ~m? +# 3050| v3050_5(void) = ^IndirectReadSideEffect[-1] : &:r3050_1, ~m? +# 3050| mu3050_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3050_1 +# 3050| r3050_7(bool) = Constant[0] : +# 3050| v3050_8(void) = ConditionalBranch : r3050_7 +#-----| False -> Block 1011 +#-----| True -> Block 1026 + +# 3052| Block 1011 +# 3052| r3052_1(glval) = VariableAddress[x1011] : +# 3052| mu3052_2(String) = Uninitialized[x1011] : &:r3052_1 +# 3052| r3052_3(glval) = FunctionAddress[String] : +# 3052| v3052_4(void) = Call[String] : func:r3052_3, this:r3052_1 +# 3052| mu3052_5(unknown) = ^CallSideEffect : ~m? +# 3052| mu3052_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3052_1 +# 3053| r3053_1(glval) = VariableAddress[x1011] : +# 3053| r3053_2(glval) = FunctionAddress[~String] : +# 3053| v3053_3(void) = Call[~String] : func:r3053_2, this:r3053_1 +# 3053| mu3053_4(unknown) = ^CallSideEffect : ~m? +# 3053| v3053_5(void) = ^IndirectReadSideEffect[-1] : &:r3053_1, ~m? +# 3053| mu3053_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3053_1 +# 3053| r3053_7(bool) = Constant[0] : +# 3053| v3053_8(void) = ConditionalBranch : r3053_7 +#-----| False -> Block 1012 +#-----| True -> Block 1026 + +# 3055| Block 1012 +# 3055| r3055_1(glval) = VariableAddress[x1012] : +# 3055| mu3055_2(String) = Uninitialized[x1012] : &:r3055_1 +# 3055| r3055_3(glval) = FunctionAddress[String] : +# 3055| v3055_4(void) = Call[String] : func:r3055_3, this:r3055_1 +# 3055| mu3055_5(unknown) = ^CallSideEffect : ~m? +# 3055| mu3055_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3055_1 +# 3056| r3056_1(glval) = VariableAddress[x1012] : +# 3056| r3056_2(glval) = FunctionAddress[~String] : +# 3056| v3056_3(void) = Call[~String] : func:r3056_2, this:r3056_1 +# 3056| mu3056_4(unknown) = ^CallSideEffect : ~m? +# 3056| v3056_5(void) = ^IndirectReadSideEffect[-1] : &:r3056_1, ~m? +# 3056| mu3056_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3056_1 +# 3056| r3056_7(bool) = Constant[0] : +# 3056| v3056_8(void) = ConditionalBranch : r3056_7 +#-----| False -> Block 1013 +#-----| True -> Block 1026 + +# 3058| Block 1013 +# 3058| r3058_1(glval) = VariableAddress[x1013] : +# 3058| mu3058_2(String) = Uninitialized[x1013] : &:r3058_1 +# 3058| r3058_3(glval) = FunctionAddress[String] : +# 3058| v3058_4(void) = Call[String] : func:r3058_3, this:r3058_1 +# 3058| mu3058_5(unknown) = ^CallSideEffect : ~m? +# 3058| mu3058_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3058_1 +# 3059| r3059_1(glval) = VariableAddress[x1013] : +# 3059| r3059_2(glval) = FunctionAddress[~String] : +# 3059| v3059_3(void) = Call[~String] : func:r3059_2, this:r3059_1 +# 3059| mu3059_4(unknown) = ^CallSideEffect : ~m? +# 3059| v3059_5(void) = ^IndirectReadSideEffect[-1] : &:r3059_1, ~m? +# 3059| mu3059_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3059_1 +# 3059| r3059_7(bool) = Constant[0] : +# 3059| v3059_8(void) = ConditionalBranch : r3059_7 +#-----| False -> Block 1014 +#-----| True -> Block 1026 + +# 3061| Block 1014 +# 3061| r3061_1(glval) = VariableAddress[x1014] : +# 3061| mu3061_2(String) = Uninitialized[x1014] : &:r3061_1 +# 3061| r3061_3(glval) = FunctionAddress[String] : +# 3061| v3061_4(void) = Call[String] : func:r3061_3, this:r3061_1 +# 3061| mu3061_5(unknown) = ^CallSideEffect : ~m? +# 3061| mu3061_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3061_1 +# 3062| r3062_1(glval) = VariableAddress[x1014] : +# 3062| r3062_2(glval) = FunctionAddress[~String] : +# 3062| v3062_3(void) = Call[~String] : func:r3062_2, this:r3062_1 +# 3062| mu3062_4(unknown) = ^CallSideEffect : ~m? +# 3062| v3062_5(void) = ^IndirectReadSideEffect[-1] : &:r3062_1, ~m? +# 3062| mu3062_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3062_1 +# 3062| r3062_7(bool) = Constant[0] : +# 3062| v3062_8(void) = ConditionalBranch : r3062_7 +#-----| False -> Block 1015 +#-----| True -> Block 1026 + +# 3064| Block 1015 +# 3064| r3064_1(glval) = VariableAddress[x1015] : +# 3064| mu3064_2(String) = Uninitialized[x1015] : &:r3064_1 +# 3064| r3064_3(glval) = FunctionAddress[String] : +# 3064| v3064_4(void) = Call[String] : func:r3064_3, this:r3064_1 +# 3064| mu3064_5(unknown) = ^CallSideEffect : ~m? +# 3064| mu3064_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3064_1 +# 3065| r3065_1(glval) = VariableAddress[x1015] : +# 3065| r3065_2(glval) = FunctionAddress[~String] : +# 3065| v3065_3(void) = Call[~String] : func:r3065_2, this:r3065_1 +# 3065| mu3065_4(unknown) = ^CallSideEffect : ~m? +# 3065| v3065_5(void) = ^IndirectReadSideEffect[-1] : &:r3065_1, ~m? +# 3065| mu3065_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3065_1 +# 3065| r3065_7(bool) = Constant[0] : +# 3065| v3065_8(void) = ConditionalBranch : r3065_7 +#-----| False -> Block 1016 +#-----| True -> Block 1026 + +# 3067| Block 1016 +# 3067| r3067_1(glval) = VariableAddress[x1016] : +# 3067| mu3067_2(String) = Uninitialized[x1016] : &:r3067_1 +# 3067| r3067_3(glval) = FunctionAddress[String] : +# 3067| v3067_4(void) = Call[String] : func:r3067_3, this:r3067_1 +# 3067| mu3067_5(unknown) = ^CallSideEffect : ~m? +# 3067| mu3067_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3067_1 +# 3068| r3068_1(glval) = VariableAddress[x1016] : +# 3068| r3068_2(glval) = FunctionAddress[~String] : +# 3068| v3068_3(void) = Call[~String] : func:r3068_2, this:r3068_1 +# 3068| mu3068_4(unknown) = ^CallSideEffect : ~m? +# 3068| v3068_5(void) = ^IndirectReadSideEffect[-1] : &:r3068_1, ~m? +# 3068| mu3068_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3068_1 +# 3068| r3068_7(bool) = Constant[0] : +# 3068| v3068_8(void) = ConditionalBranch : r3068_7 +#-----| False -> Block 1017 +#-----| True -> Block 1026 + +# 3070| Block 1017 +# 3070| r3070_1(glval) = VariableAddress[x1017] : +# 3070| mu3070_2(String) = Uninitialized[x1017] : &:r3070_1 +# 3070| r3070_3(glval) = FunctionAddress[String] : +# 3070| v3070_4(void) = Call[String] : func:r3070_3, this:r3070_1 +# 3070| mu3070_5(unknown) = ^CallSideEffect : ~m? +# 3070| mu3070_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3070_1 +# 3071| r3071_1(glval) = VariableAddress[x1017] : +# 3071| r3071_2(glval) = FunctionAddress[~String] : +# 3071| v3071_3(void) = Call[~String] : func:r3071_2, this:r3071_1 +# 3071| mu3071_4(unknown) = ^CallSideEffect : ~m? +# 3071| v3071_5(void) = ^IndirectReadSideEffect[-1] : &:r3071_1, ~m? +# 3071| mu3071_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3071_1 +# 3071| r3071_7(bool) = Constant[0] : +# 3071| v3071_8(void) = ConditionalBranch : r3071_7 +#-----| False -> Block 1018 +#-----| True -> Block 1026 + +# 3073| Block 1018 +# 3073| r3073_1(glval) = VariableAddress[x1018] : +# 3073| mu3073_2(String) = Uninitialized[x1018] : &:r3073_1 +# 3073| r3073_3(glval) = FunctionAddress[String] : +# 3073| v3073_4(void) = Call[String] : func:r3073_3, this:r3073_1 +# 3073| mu3073_5(unknown) = ^CallSideEffect : ~m? +# 3073| mu3073_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3073_1 +# 3074| r3074_1(glval) = VariableAddress[x1018] : +# 3074| r3074_2(glval) = FunctionAddress[~String] : +# 3074| v3074_3(void) = Call[~String] : func:r3074_2, this:r3074_1 +# 3074| mu3074_4(unknown) = ^CallSideEffect : ~m? +# 3074| v3074_5(void) = ^IndirectReadSideEffect[-1] : &:r3074_1, ~m? +# 3074| mu3074_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3074_1 +# 3074| r3074_7(bool) = Constant[0] : +# 3074| v3074_8(void) = ConditionalBranch : r3074_7 +#-----| False -> Block 1019 +#-----| True -> Block 1026 + +# 3076| Block 1019 +# 3076| r3076_1(glval) = VariableAddress[x1019] : +# 3076| mu3076_2(String) = Uninitialized[x1019] : &:r3076_1 +# 3076| r3076_3(glval) = FunctionAddress[String] : +# 3076| v3076_4(void) = Call[String] : func:r3076_3, this:r3076_1 +# 3076| mu3076_5(unknown) = ^CallSideEffect : ~m? +# 3076| mu3076_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3076_1 +# 3077| r3077_1(glval) = VariableAddress[x1019] : +# 3077| r3077_2(glval) = FunctionAddress[~String] : +# 3077| v3077_3(void) = Call[~String] : func:r3077_2, this:r3077_1 +# 3077| mu3077_4(unknown) = ^CallSideEffect : ~m? +# 3077| v3077_5(void) = ^IndirectReadSideEffect[-1] : &:r3077_1, ~m? +# 3077| mu3077_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3077_1 +# 3077| r3077_7(bool) = Constant[0] : +# 3077| v3077_8(void) = ConditionalBranch : r3077_7 +#-----| False -> Block 1020 +#-----| True -> Block 1026 + +# 3079| Block 1020 +# 3079| r3079_1(glval) = VariableAddress[x1020] : +# 3079| mu3079_2(String) = Uninitialized[x1020] : &:r3079_1 +# 3079| r3079_3(glval) = FunctionAddress[String] : +# 3079| v3079_4(void) = Call[String] : func:r3079_3, this:r3079_1 +# 3079| mu3079_5(unknown) = ^CallSideEffect : ~m? +# 3079| mu3079_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3079_1 +# 3080| r3080_1(glval) = VariableAddress[x1020] : +# 3080| r3080_2(glval) = FunctionAddress[~String] : +# 3080| v3080_3(void) = Call[~String] : func:r3080_2, this:r3080_1 +# 3080| mu3080_4(unknown) = ^CallSideEffect : ~m? +# 3080| v3080_5(void) = ^IndirectReadSideEffect[-1] : &:r3080_1, ~m? +# 3080| mu3080_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3080_1 +# 3080| r3080_7(bool) = Constant[0] : +# 3080| v3080_8(void) = ConditionalBranch : r3080_7 +#-----| False -> Block 1021 +#-----| True -> Block 1026 + +# 3082| Block 1021 +# 3082| r3082_1(glval) = VariableAddress[x1021] : +# 3082| mu3082_2(String) = Uninitialized[x1021] : &:r3082_1 +# 3082| r3082_3(glval) = FunctionAddress[String] : +# 3082| v3082_4(void) = Call[String] : func:r3082_3, this:r3082_1 +# 3082| mu3082_5(unknown) = ^CallSideEffect : ~m? +# 3082| mu3082_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3082_1 +# 3083| r3083_1(glval) = VariableAddress[x1021] : +# 3083| r3083_2(glval) = FunctionAddress[~String] : +# 3083| v3083_3(void) = Call[~String] : func:r3083_2, this:r3083_1 +# 3083| mu3083_4(unknown) = ^CallSideEffect : ~m? +# 3083| v3083_5(void) = ^IndirectReadSideEffect[-1] : &:r3083_1, ~m? +# 3083| mu3083_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3083_1 +# 3083| r3083_7(bool) = Constant[0] : +# 3083| v3083_8(void) = ConditionalBranch : r3083_7 +#-----| False -> Block 1022 +#-----| True -> Block 1026 + +# 3085| Block 1022 +# 3085| r3085_1(glval) = VariableAddress[x1022] : +# 3085| mu3085_2(String) = Uninitialized[x1022] : &:r3085_1 +# 3085| r3085_3(glval) = FunctionAddress[String] : +# 3085| v3085_4(void) = Call[String] : func:r3085_3, this:r3085_1 +# 3085| mu3085_5(unknown) = ^CallSideEffect : ~m? +# 3085| mu3085_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3085_1 +# 3086| r3086_1(glval) = VariableAddress[x1022] : +# 3086| r3086_2(glval) = FunctionAddress[~String] : +# 3086| v3086_3(void) = Call[~String] : func:r3086_2, this:r3086_1 +# 3086| mu3086_4(unknown) = ^CallSideEffect : ~m? +# 3086| v3086_5(void) = ^IndirectReadSideEffect[-1] : &:r3086_1, ~m? +# 3086| mu3086_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3086_1 +# 3086| r3086_7(bool) = Constant[0] : +# 3086| v3086_8(void) = ConditionalBranch : r3086_7 +#-----| False -> Block 1023 +#-----| True -> Block 1026 + +# 3088| Block 1023 +# 3088| r3088_1(glval) = VariableAddress[x1023] : +# 3088| mu3088_2(String) = Uninitialized[x1023] : &:r3088_1 +# 3088| r3088_3(glval) = FunctionAddress[String] : +# 3088| v3088_4(void) = Call[String] : func:r3088_3, this:r3088_1 +# 3088| mu3088_5(unknown) = ^CallSideEffect : ~m? +# 3088| mu3088_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3088_1 +# 3089| r3089_1(glval) = VariableAddress[x1023] : +# 3089| r3089_2(glval) = FunctionAddress[~String] : +# 3089| v3089_3(void) = Call[~String] : func:r3089_2, this:r3089_1 +# 3089| mu3089_4(unknown) = ^CallSideEffect : ~m? +# 3089| v3089_5(void) = ^IndirectReadSideEffect[-1] : &:r3089_1, ~m? +# 3089| mu3089_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3089_1 +# 3089| r3089_7(bool) = Constant[0] : +# 3089| v3089_8(void) = ConditionalBranch : r3089_7 +#-----| False -> Block 1024 +#-----| True -> Block 1026 + +# 3091| Block 1024 +# 3091| r3091_1(glval) = VariableAddress[x1024] : +# 3091| mu3091_2(String) = Uninitialized[x1024] : &:r3091_1 +# 3091| r3091_3(glval) = FunctionAddress[String] : +# 3091| v3091_4(void) = Call[String] : func:r3091_3, this:r3091_1 +# 3091| mu3091_5(unknown) = ^CallSideEffect : ~m? +# 3091| mu3091_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3091_1 +# 3092| r3092_1(glval) = VariableAddress[x1024] : +# 3092| r3092_2(glval) = FunctionAddress[~String] : +# 3092| v3092_3(void) = Call[~String] : func:r3092_2, this:r3092_1 +# 3092| mu3092_4(unknown) = ^CallSideEffect : ~m? +# 3092| v3092_5(void) = ^IndirectReadSideEffect[-1] : &:r3092_1, ~m? +# 3092| mu3092_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3092_1 +# 3092| r3092_7(bool) = Constant[0] : +# 3092| v3092_8(void) = ConditionalBranch : r3092_7 +#-----| False -> Block 1025 +#-----| True -> Block 1026 + +# 3093| Block 1025 +# 3093| v3093_1(void) = NoOp : +# 17| v17_4(void) = ReturnVoid : +# 17| v17_5(void) = AliasedUse : ~m? +# 17| v17_6(void) = ExitFunction : + +# 17| Block 1026 +# 17| v17_7(void) = Unreached : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected index 17a11819e03cf..5a0234a4cc42f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency.expected @@ -2,7 +2,6 @@ missingOperand unexpectedOperand duplicateOperand missingPhiOperand -| ir.cpp:2670:3:2670:9 | Phi: call to use_int | Instruction 'Phi: call to use_int' is missing an operand for predecessor block 'EnterFunction: phi_with_single_input_at_merge' in function '$@'. | ir.cpp:2663:13:2663:42 | void phi_with_single_input_at_merge(bool) | void phi_with_single_input_at_merge(bool) | missingOperandType duplicateChiOperand sideEffectWithoutPrimary diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected index 17a11819e03cf..5a0234a4cc42f 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_consistency_unsound.expected @@ -2,7 +2,6 @@ missingOperand unexpectedOperand duplicateOperand missingPhiOperand -| ir.cpp:2670:3:2670:9 | Phi: call to use_int | Instruction 'Phi: call to use_int' is missing an operand for predecessor block 'EnterFunction: phi_with_single_input_at_merge' in function '$@'. | ir.cpp:2663:13:2663:42 | void phi_with_single_input_at_merge(bool) | void phi_with_single_input_at_merge(bool) | missingOperandType duplicateChiOperand sideEffectWithoutPrimary diff --git a/cpp/ql/test/library-tests/ir/ir/many-defs-per-use.cpp b/cpp/ql/test/library-tests/ir/ir/many-defs-per-use.cpp new file mode 100644 index 0000000000000..f3be4b878b707 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/many-defs-per-use.cpp @@ -0,0 +1,3095 @@ +struct String { + String(); + String(const String&); + String(String&&); + String(const char*); + ~String(); + + String& operator=(const String&); + String& operator=(String&&); + + const char* c_str() const; + char pop_back(); +private: + const char* p; +}; + +void many_defs_per_use() { + do { + String x0; + } while (0); + do { + String x1; + } while (0); + do { + String x2; + } while (0); + do { + String x3; + } while (0); + do { + String x4; + } while (0); + do { + String x5; + } while (0); + do { + String x6; + } while (0); + do { + String x7; + } while (0); + do { + String x8; + } while (0); + do { + String x9; + } while (0); + do { + String x10; + } while (0); + do { + String x11; + } while (0); + do { + String x12; + } while (0); + do { + String x13; + } while (0); + do { + String x14; + } while (0); + do { + String x15; + } while (0); + do { + String x16; + } while (0); + do { + String x17; + } while (0); + do { + String x18; + } while (0); + do { + String x19; + } while (0); + do { + String x20; + } while (0); + do { + String x21; + } while (0); + do { + String x22; + } while (0); + do { + String x23; + } while (0); + do { + String x24; + } while (0); + do { + String x25; + } while (0); + do { + String x26; + } while (0); + do { + String x27; + } while (0); + do { + String x28; + } while (0); + do { + String x29; + } while (0); + do { + String x30; + } while (0); + do { + String x31; + } while (0); + do { + String x32; + } while (0); + do { + String x33; + } while (0); + do { + String x34; + } while (0); + do { + String x35; + } while (0); + do { + String x36; + } while (0); + do { + String x37; + } while (0); + do { + String x38; + } while (0); + do { + String x39; + } while (0); + do { + String x40; + } while (0); + do { + String x41; + } while (0); + do { + String x42; + } while (0); + do { + String x43; + } while (0); + do { + String x44; + } while (0); + do { + String x45; + } while (0); + do { + String x46; + } while (0); + do { + String x47; + } while (0); + do { + String x48; + } while (0); + do { + String x49; + } while (0); + do { + String x50; + } while (0); + do { + String x51; + } while (0); + do { + String x52; + } while (0); + do { + String x53; + } while (0); + do { + String x54; + } while (0); + do { + String x55; + } while (0); + do { + String x56; + } while (0); + do { + String x57; + } while (0); + do { + String x58; + } while (0); + do { + String x59; + } while (0); + do { + String x60; + } while (0); + do { + String x61; + } while (0); + do { + String x62; + } while (0); + do { + String x63; + } while (0); + do { + String x64; + } while (0); + do { + String x65; + } while (0); + do { + String x66; + } while (0); + do { + String x67; + } while (0); + do { + String x68; + } while (0); + do { + String x69; + } while (0); + do { + String x70; + } while (0); + do { + String x71; + } while (0); + do { + String x72; + } while (0); + do { + String x73; + } while (0); + do { + String x74; + } while (0); + do { + String x75; + } while (0); + do { + String x76; + } while (0); + do { + String x77; + } while (0); + do { + String x78; + } while (0); + do { + String x79; + } while (0); + do { + String x80; + } while (0); + do { + String x81; + } while (0); + do { + String x82; + } while (0); + do { + String x83; + } while (0); + do { + String x84; + } while (0); + do { + String x85; + } while (0); + do { + String x86; + } while (0); + do { + String x87; + } while (0); + do { + String x88; + } while (0); + do { + String x89; + } while (0); + do { + String x90; + } while (0); + do { + String x91; + } while (0); + do { + String x92; + } while (0); + do { + String x93; + } while (0); + do { + String x94; + } while (0); + do { + String x95; + } while (0); + do { + String x96; + } while (0); + do { + String x97; + } while (0); + do { + String x98; + } while (0); + do { + String x99; + } while (0); + do { + String x100; + } while (0); + do { + String x101; + } while (0); + do { + String x102; + } while (0); + do { + String x103; + } while (0); + do { + String x104; + } while (0); + do { + String x105; + } while (0); + do { + String x106; + } while (0); + do { + String x107; + } while (0); + do { + String x108; + } while (0); + do { + String x109; + } while (0); + do { + String x110; + } while (0); + do { + String x111; + } while (0); + do { + String x112; + } while (0); + do { + String x113; + } while (0); + do { + String x114; + } while (0); + do { + String x115; + } while (0); + do { + String x116; + } while (0); + do { + String x117; + } while (0); + do { + String x118; + } while (0); + do { + String x119; + } while (0); + do { + String x120; + } while (0); + do { + String x121; + } while (0); + do { + String x122; + } while (0); + do { + String x123; + } while (0); + do { + String x124; + } while (0); + do { + String x125; + } while (0); + do { + String x126; + } while (0); + do { + String x127; + } while (0); + do { + String x128; + } while (0); + do { + String x129; + } while (0); + do { + String x130; + } while (0); + do { + String x131; + } while (0); + do { + String x132; + } while (0); + do { + String x133; + } while (0); + do { + String x134; + } while (0); + do { + String x135; + } while (0); + do { + String x136; + } while (0); + do { + String x137; + } while (0); + do { + String x138; + } while (0); + do { + String x139; + } while (0); + do { + String x140; + } while (0); + do { + String x141; + } while (0); + do { + String x142; + } while (0); + do { + String x143; + } while (0); + do { + String x144; + } while (0); + do { + String x145; + } while (0); + do { + String x146; + } while (0); + do { + String x147; + } while (0); + do { + String x148; + } while (0); + do { + String x149; + } while (0); + do { + String x150; + } while (0); + do { + String x151; + } while (0); + do { + String x152; + } while (0); + do { + String x153; + } while (0); + do { + String x154; + } while (0); + do { + String x155; + } while (0); + do { + String x156; + } while (0); + do { + String x157; + } while (0); + do { + String x158; + } while (0); + do { + String x159; + } while (0); + do { + String x160; + } while (0); + do { + String x161; + } while (0); + do { + String x162; + } while (0); + do { + String x163; + } while (0); + do { + String x164; + } while (0); + do { + String x165; + } while (0); + do { + String x166; + } while (0); + do { + String x167; + } while (0); + do { + String x168; + } while (0); + do { + String x169; + } while (0); + do { + String x170; + } while (0); + do { + String x171; + } while (0); + do { + String x172; + } while (0); + do { + String x173; + } while (0); + do { + String x174; + } while (0); + do { + String x175; + } while (0); + do { + String x176; + } while (0); + do { + String x177; + } while (0); + do { + String x178; + } while (0); + do { + String x179; + } while (0); + do { + String x180; + } while (0); + do { + String x181; + } while (0); + do { + String x182; + } while (0); + do { + String x183; + } while (0); + do { + String x184; + } while (0); + do { + String x185; + } while (0); + do { + String x186; + } while (0); + do { + String x187; + } while (0); + do { + String x188; + } while (0); + do { + String x189; + } while (0); + do { + String x190; + } while (0); + do { + String x191; + } while (0); + do { + String x192; + } while (0); + do { + String x193; + } while (0); + do { + String x194; + } while (0); + do { + String x195; + } while (0); + do { + String x196; + } while (0); + do { + String x197; + } while (0); + do { + String x198; + } while (0); + do { + String x199; + } while (0); + do { + String x200; + } while (0); + do { + String x201; + } while (0); + do { + String x202; + } while (0); + do { + String x203; + } while (0); + do { + String x204; + } while (0); + do { + String x205; + } while (0); + do { + String x206; + } while (0); + do { + String x207; + } while (0); + do { + String x208; + } while (0); + do { + String x209; + } while (0); + do { + String x210; + } while (0); + do { + String x211; + } while (0); + do { + String x212; + } while (0); + do { + String x213; + } while (0); + do { + String x214; + } while (0); + do { + String x215; + } while (0); + do { + String x216; + } while (0); + do { + String x217; + } while (0); + do { + String x218; + } while (0); + do { + String x219; + } while (0); + do { + String x220; + } while (0); + do { + String x221; + } while (0); + do { + String x222; + } while (0); + do { + String x223; + } while (0); + do { + String x224; + } while (0); + do { + String x225; + } while (0); + do { + String x226; + } while (0); + do { + String x227; + } while (0); + do { + String x228; + } while (0); + do { + String x229; + } while (0); + do { + String x230; + } while (0); + do { + String x231; + } while (0); + do { + String x232; + } while (0); + do { + String x233; + } while (0); + do { + String x234; + } while (0); + do { + String x235; + } while (0); + do { + String x236; + } while (0); + do { + String x237; + } while (0); + do { + String x238; + } while (0); + do { + String x239; + } while (0); + do { + String x240; + } while (0); + do { + String x241; + } while (0); + do { + String x242; + } while (0); + do { + String x243; + } while (0); + do { + String x244; + } while (0); + do { + String x245; + } while (0); + do { + String x246; + } while (0); + do { + String x247; + } while (0); + do { + String x248; + } while (0); + do { + String x249; + } while (0); + do { + String x250; + } while (0); + do { + String x251; + } while (0); + do { + String x252; + } while (0); + do { + String x253; + } while (0); + do { + String x254; + } while (0); + do { + String x255; + } while (0); + do { + String x256; + } while (0); + do { + String x257; + } while (0); + do { + String x258; + } while (0); + do { + String x259; + } while (0); + do { + String x260; + } while (0); + do { + String x261; + } while (0); + do { + String x262; + } while (0); + do { + String x263; + } while (0); + do { + String x264; + } while (0); + do { + String x265; + } while (0); + do { + String x266; + } while (0); + do { + String x267; + } while (0); + do { + String x268; + } while (0); + do { + String x269; + } while (0); + do { + String x270; + } while (0); + do { + String x271; + } while (0); + do { + String x272; + } while (0); + do { + String x273; + } while (0); + do { + String x274; + } while (0); + do { + String x275; + } while (0); + do { + String x276; + } while (0); + do { + String x277; + } while (0); + do { + String x278; + } while (0); + do { + String x279; + } while (0); + do { + String x280; + } while (0); + do { + String x281; + } while (0); + do { + String x282; + } while (0); + do { + String x283; + } while (0); + do { + String x284; + } while (0); + do { + String x285; + } while (0); + do { + String x286; + } while (0); + do { + String x287; + } while (0); + do { + String x288; + } while (0); + do { + String x289; + } while (0); + do { + String x290; + } while (0); + do { + String x291; + } while (0); + do { + String x292; + } while (0); + do { + String x293; + } while (0); + do { + String x294; + } while (0); + do { + String x295; + } while (0); + do { + String x296; + } while (0); + do { + String x297; + } while (0); + do { + String x298; + } while (0); + do { + String x299; + } while (0); + do { + String x300; + } while (0); + do { + String x301; + } while (0); + do { + String x302; + } while (0); + do { + String x303; + } while (0); + do { + String x304; + } while (0); + do { + String x305; + } while (0); + do { + String x306; + } while (0); + do { + String x307; + } while (0); + do { + String x308; + } while (0); + do { + String x309; + } while (0); + do { + String x310; + } while (0); + do { + String x311; + } while (0); + do { + String x312; + } while (0); + do { + String x313; + } while (0); + do { + String x314; + } while (0); + do { + String x315; + } while (0); + do { + String x316; + } while (0); + do { + String x317; + } while (0); + do { + String x318; + } while (0); + do { + String x319; + } while (0); + do { + String x320; + } while (0); + do { + String x321; + } while (0); + do { + String x322; + } while (0); + do { + String x323; + } while (0); + do { + String x324; + } while (0); + do { + String x325; + } while (0); + do { + String x326; + } while (0); + do { + String x327; + } while (0); + do { + String x328; + } while (0); + do { + String x329; + } while (0); + do { + String x330; + } while (0); + do { + String x331; + } while (0); + do { + String x332; + } while (0); + do { + String x333; + } while (0); + do { + String x334; + } while (0); + do { + String x335; + } while (0); + do { + String x336; + } while (0); + do { + String x337; + } while (0); + do { + String x338; + } while (0); + do { + String x339; + } while (0); + do { + String x340; + } while (0); + do { + String x341; + } while (0); + do { + String x342; + } while (0); + do { + String x343; + } while (0); + do { + String x344; + } while (0); + do { + String x345; + } while (0); + do { + String x346; + } while (0); + do { + String x347; + } while (0); + do { + String x348; + } while (0); + do { + String x349; + } while (0); + do { + String x350; + } while (0); + do { + String x351; + } while (0); + do { + String x352; + } while (0); + do { + String x353; + } while (0); + do { + String x354; + } while (0); + do { + String x355; + } while (0); + do { + String x356; + } while (0); + do { + String x357; + } while (0); + do { + String x358; + } while (0); + do { + String x359; + } while (0); + do { + String x360; + } while (0); + do { + String x361; + } while (0); + do { + String x362; + } while (0); + do { + String x363; + } while (0); + do { + String x364; + } while (0); + do { + String x365; + } while (0); + do { + String x366; + } while (0); + do { + String x367; + } while (0); + do { + String x368; + } while (0); + do { + String x369; + } while (0); + do { + String x370; + } while (0); + do { + String x371; + } while (0); + do { + String x372; + } while (0); + do { + String x373; + } while (0); + do { + String x374; + } while (0); + do { + String x375; + } while (0); + do { + String x376; + } while (0); + do { + String x377; + } while (0); + do { + String x378; + } while (0); + do { + String x379; + } while (0); + do { + String x380; + } while (0); + do { + String x381; + } while (0); + do { + String x382; + } while (0); + do { + String x383; + } while (0); + do { + String x384; + } while (0); + do { + String x385; + } while (0); + do { + String x386; + } while (0); + do { + String x387; + } while (0); + do { + String x388; + } while (0); + do { + String x389; + } while (0); + do { + String x390; + } while (0); + do { + String x391; + } while (0); + do { + String x392; + } while (0); + do { + String x393; + } while (0); + do { + String x394; + } while (0); + do { + String x395; + } while (0); + do { + String x396; + } while (0); + do { + String x397; + } while (0); + do { + String x398; + } while (0); + do { + String x399; + } while (0); + do { + String x400; + } while (0); + do { + String x401; + } while (0); + do { + String x402; + } while (0); + do { + String x403; + } while (0); + do { + String x404; + } while (0); + do { + String x405; + } while (0); + do { + String x406; + } while (0); + do { + String x407; + } while (0); + do { + String x408; + } while (0); + do { + String x409; + } while (0); + do { + String x410; + } while (0); + do { + String x411; + } while (0); + do { + String x412; + } while (0); + do { + String x413; + } while (0); + do { + String x414; + } while (0); + do { + String x415; + } while (0); + do { + String x416; + } while (0); + do { + String x417; + } while (0); + do { + String x418; + } while (0); + do { + String x419; + } while (0); + do { + String x420; + } while (0); + do { + String x421; + } while (0); + do { + String x422; + } while (0); + do { + String x423; + } while (0); + do { + String x424; + } while (0); + do { + String x425; + } while (0); + do { + String x426; + } while (0); + do { + String x427; + } while (0); + do { + String x428; + } while (0); + do { + String x429; + } while (0); + do { + String x430; + } while (0); + do { + String x431; + } while (0); + do { + String x432; + } while (0); + do { + String x433; + } while (0); + do { + String x434; + } while (0); + do { + String x435; + } while (0); + do { + String x436; + } while (0); + do { + String x437; + } while (0); + do { + String x438; + } while (0); + do { + String x439; + } while (0); + do { + String x440; + } while (0); + do { + String x441; + } while (0); + do { + String x442; + } while (0); + do { + String x443; + } while (0); + do { + String x444; + } while (0); + do { + String x445; + } while (0); + do { + String x446; + } while (0); + do { + String x447; + } while (0); + do { + String x448; + } while (0); + do { + String x449; + } while (0); + do { + String x450; + } while (0); + do { + String x451; + } while (0); + do { + String x452; + } while (0); + do { + String x453; + } while (0); + do { + String x454; + } while (0); + do { + String x455; + } while (0); + do { + String x456; + } while (0); + do { + String x457; + } while (0); + do { + String x458; + } while (0); + do { + String x459; + } while (0); + do { + String x460; + } while (0); + do { + String x461; + } while (0); + do { + String x462; + } while (0); + do { + String x463; + } while (0); + do { + String x464; + } while (0); + do { + String x465; + } while (0); + do { + String x466; + } while (0); + do { + String x467; + } while (0); + do { + String x468; + } while (0); + do { + String x469; + } while (0); + do { + String x470; + } while (0); + do { + String x471; + } while (0); + do { + String x472; + } while (0); + do { + String x473; + } while (0); + do { + String x474; + } while (0); + do { + String x475; + } while (0); + do { + String x476; + } while (0); + do { + String x477; + } while (0); + do { + String x478; + } while (0); + do { + String x479; + } while (0); + do { + String x480; + } while (0); + do { + String x481; + } while (0); + do { + String x482; + } while (0); + do { + String x483; + } while (0); + do { + String x484; + } while (0); + do { + String x485; + } while (0); + do { + String x486; + } while (0); + do { + String x487; + } while (0); + do { + String x488; + } while (0); + do { + String x489; + } while (0); + do { + String x490; + } while (0); + do { + String x491; + } while (0); + do { + String x492; + } while (0); + do { + String x493; + } while (0); + do { + String x494; + } while (0); + do { + String x495; + } while (0); + do { + String x496; + } while (0); + do { + String x497; + } while (0); + do { + String x498; + } while (0); + do { + String x499; + } while (0); + do { + String x500; + } while (0); + do { + String x501; + } while (0); + do { + String x502; + } while (0); + do { + String x503; + } while (0); + do { + String x504; + } while (0); + do { + String x505; + } while (0); + do { + String x506; + } while (0); + do { + String x507; + } while (0); + do { + String x508; + } while (0); + do { + String x509; + } while (0); + do { + String x510; + } while (0); + do { + String x511; + } while (0); + do { + String x512; + } while (0); + do { + String x513; + } while (0); + do { + String x514; + } while (0); + do { + String x515; + } while (0); + do { + String x516; + } while (0); + do { + String x517; + } while (0); + do { + String x518; + } while (0); + do { + String x519; + } while (0); + do { + String x520; + } while (0); + do { + String x521; + } while (0); + do { + String x522; + } while (0); + do { + String x523; + } while (0); + do { + String x524; + } while (0); + do { + String x525; + } while (0); + do { + String x526; + } while (0); + do { + String x527; + } while (0); + do { + String x528; + } while (0); + do { + String x529; + } while (0); + do { + String x530; + } while (0); + do { + String x531; + } while (0); + do { + String x532; + } while (0); + do { + String x533; + } while (0); + do { + String x534; + } while (0); + do { + String x535; + } while (0); + do { + String x536; + } while (0); + do { + String x537; + } while (0); + do { + String x538; + } while (0); + do { + String x539; + } while (0); + do { + String x540; + } while (0); + do { + String x541; + } while (0); + do { + String x542; + } while (0); + do { + String x543; + } while (0); + do { + String x544; + } while (0); + do { + String x545; + } while (0); + do { + String x546; + } while (0); + do { + String x547; + } while (0); + do { + String x548; + } while (0); + do { + String x549; + } while (0); + do { + String x550; + } while (0); + do { + String x551; + } while (0); + do { + String x552; + } while (0); + do { + String x553; + } while (0); + do { + String x554; + } while (0); + do { + String x555; + } while (0); + do { + String x556; + } while (0); + do { + String x557; + } while (0); + do { + String x558; + } while (0); + do { + String x559; + } while (0); + do { + String x560; + } while (0); + do { + String x561; + } while (0); + do { + String x562; + } while (0); + do { + String x563; + } while (0); + do { + String x564; + } while (0); + do { + String x565; + } while (0); + do { + String x566; + } while (0); + do { + String x567; + } while (0); + do { + String x568; + } while (0); + do { + String x569; + } while (0); + do { + String x570; + } while (0); + do { + String x571; + } while (0); + do { + String x572; + } while (0); + do { + String x573; + } while (0); + do { + String x574; + } while (0); + do { + String x575; + } while (0); + do { + String x576; + } while (0); + do { + String x577; + } while (0); + do { + String x578; + } while (0); + do { + String x579; + } while (0); + do { + String x580; + } while (0); + do { + String x581; + } while (0); + do { + String x582; + } while (0); + do { + String x583; + } while (0); + do { + String x584; + } while (0); + do { + String x585; + } while (0); + do { + String x586; + } while (0); + do { + String x587; + } while (0); + do { + String x588; + } while (0); + do { + String x589; + } while (0); + do { + String x590; + } while (0); + do { + String x591; + } while (0); + do { + String x592; + } while (0); + do { + String x593; + } while (0); + do { + String x594; + } while (0); + do { + String x595; + } while (0); + do { + String x596; + } while (0); + do { + String x597; + } while (0); + do { + String x598; + } while (0); + do { + String x599; + } while (0); + do { + String x600; + } while (0); + do { + String x601; + } while (0); + do { + String x602; + } while (0); + do { + String x603; + } while (0); + do { + String x604; + } while (0); + do { + String x605; + } while (0); + do { + String x606; + } while (0); + do { + String x607; + } while (0); + do { + String x608; + } while (0); + do { + String x609; + } while (0); + do { + String x610; + } while (0); + do { + String x611; + } while (0); + do { + String x612; + } while (0); + do { + String x613; + } while (0); + do { + String x614; + } while (0); + do { + String x615; + } while (0); + do { + String x616; + } while (0); + do { + String x617; + } while (0); + do { + String x618; + } while (0); + do { + String x619; + } while (0); + do { + String x620; + } while (0); + do { + String x621; + } while (0); + do { + String x622; + } while (0); + do { + String x623; + } while (0); + do { + String x624; + } while (0); + do { + String x625; + } while (0); + do { + String x626; + } while (0); + do { + String x627; + } while (0); + do { + String x628; + } while (0); + do { + String x629; + } while (0); + do { + String x630; + } while (0); + do { + String x631; + } while (0); + do { + String x632; + } while (0); + do { + String x633; + } while (0); + do { + String x634; + } while (0); + do { + String x635; + } while (0); + do { + String x636; + } while (0); + do { + String x637; + } while (0); + do { + String x638; + } while (0); + do { + String x639; + } while (0); + do { + String x640; + } while (0); + do { + String x641; + } while (0); + do { + String x642; + } while (0); + do { + String x643; + } while (0); + do { + String x644; + } while (0); + do { + String x645; + } while (0); + do { + String x646; + } while (0); + do { + String x647; + } while (0); + do { + String x648; + } while (0); + do { + String x649; + } while (0); + do { + String x650; + } while (0); + do { + String x651; + } while (0); + do { + String x652; + } while (0); + do { + String x653; + } while (0); + do { + String x654; + } while (0); + do { + String x655; + } while (0); + do { + String x656; + } while (0); + do { + String x657; + } while (0); + do { + String x658; + } while (0); + do { + String x659; + } while (0); + do { + String x660; + } while (0); + do { + String x661; + } while (0); + do { + String x662; + } while (0); + do { + String x663; + } while (0); + do { + String x664; + } while (0); + do { + String x665; + } while (0); + do { + String x666; + } while (0); + do { + String x667; + } while (0); + do { + String x668; + } while (0); + do { + String x669; + } while (0); + do { + String x670; + } while (0); + do { + String x671; + } while (0); + do { + String x672; + } while (0); + do { + String x673; + } while (0); + do { + String x674; + } while (0); + do { + String x675; + } while (0); + do { + String x676; + } while (0); + do { + String x677; + } while (0); + do { + String x678; + } while (0); + do { + String x679; + } while (0); + do { + String x680; + } while (0); + do { + String x681; + } while (0); + do { + String x682; + } while (0); + do { + String x683; + } while (0); + do { + String x684; + } while (0); + do { + String x685; + } while (0); + do { + String x686; + } while (0); + do { + String x687; + } while (0); + do { + String x688; + } while (0); + do { + String x689; + } while (0); + do { + String x690; + } while (0); + do { + String x691; + } while (0); + do { + String x692; + } while (0); + do { + String x693; + } while (0); + do { + String x694; + } while (0); + do { + String x695; + } while (0); + do { + String x696; + } while (0); + do { + String x697; + } while (0); + do { + String x698; + } while (0); + do { + String x699; + } while (0); + do { + String x700; + } while (0); + do { + String x701; + } while (0); + do { + String x702; + } while (0); + do { + String x703; + } while (0); + do { + String x704; + } while (0); + do { + String x705; + } while (0); + do { + String x706; + } while (0); + do { + String x707; + } while (0); + do { + String x708; + } while (0); + do { + String x709; + } while (0); + do { + String x710; + } while (0); + do { + String x711; + } while (0); + do { + String x712; + } while (0); + do { + String x713; + } while (0); + do { + String x714; + } while (0); + do { + String x715; + } while (0); + do { + String x716; + } while (0); + do { + String x717; + } while (0); + do { + String x718; + } while (0); + do { + String x719; + } while (0); + do { + String x720; + } while (0); + do { + String x721; + } while (0); + do { + String x722; + } while (0); + do { + String x723; + } while (0); + do { + String x724; + } while (0); + do { + String x725; + } while (0); + do { + String x726; + } while (0); + do { + String x727; + } while (0); + do { + String x728; + } while (0); + do { + String x729; + } while (0); + do { + String x730; + } while (0); + do { + String x731; + } while (0); + do { + String x732; + } while (0); + do { + String x733; + } while (0); + do { + String x734; + } while (0); + do { + String x735; + } while (0); + do { + String x736; + } while (0); + do { + String x737; + } while (0); + do { + String x738; + } while (0); + do { + String x739; + } while (0); + do { + String x740; + } while (0); + do { + String x741; + } while (0); + do { + String x742; + } while (0); + do { + String x743; + } while (0); + do { + String x744; + } while (0); + do { + String x745; + } while (0); + do { + String x746; + } while (0); + do { + String x747; + } while (0); + do { + String x748; + } while (0); + do { + String x749; + } while (0); + do { + String x750; + } while (0); + do { + String x751; + } while (0); + do { + String x752; + } while (0); + do { + String x753; + } while (0); + do { + String x754; + } while (0); + do { + String x755; + } while (0); + do { + String x756; + } while (0); + do { + String x757; + } while (0); + do { + String x758; + } while (0); + do { + String x759; + } while (0); + do { + String x760; + } while (0); + do { + String x761; + } while (0); + do { + String x762; + } while (0); + do { + String x763; + } while (0); + do { + String x764; + } while (0); + do { + String x765; + } while (0); + do { + String x766; + } while (0); + do { + String x767; + } while (0); + do { + String x768; + } while (0); + do { + String x769; + } while (0); + do { + String x770; + } while (0); + do { + String x771; + } while (0); + do { + String x772; + } while (0); + do { + String x773; + } while (0); + do { + String x774; + } while (0); + do { + String x775; + } while (0); + do { + String x776; + } while (0); + do { + String x777; + } while (0); + do { + String x778; + } while (0); + do { + String x779; + } while (0); + do { + String x780; + } while (0); + do { + String x781; + } while (0); + do { + String x782; + } while (0); + do { + String x783; + } while (0); + do { + String x784; + } while (0); + do { + String x785; + } while (0); + do { + String x786; + } while (0); + do { + String x787; + } while (0); + do { + String x788; + } while (0); + do { + String x789; + } while (0); + do { + String x790; + } while (0); + do { + String x791; + } while (0); + do { + String x792; + } while (0); + do { + String x793; + } while (0); + do { + String x794; + } while (0); + do { + String x795; + } while (0); + do { + String x796; + } while (0); + do { + String x797; + } while (0); + do { + String x798; + } while (0); + do { + String x799; + } while (0); + do { + String x800; + } while (0); + do { + String x801; + } while (0); + do { + String x802; + } while (0); + do { + String x803; + } while (0); + do { + String x804; + } while (0); + do { + String x805; + } while (0); + do { + String x806; + } while (0); + do { + String x807; + } while (0); + do { + String x808; + } while (0); + do { + String x809; + } while (0); + do { + String x810; + } while (0); + do { + String x811; + } while (0); + do { + String x812; + } while (0); + do { + String x813; + } while (0); + do { + String x814; + } while (0); + do { + String x815; + } while (0); + do { + String x816; + } while (0); + do { + String x817; + } while (0); + do { + String x818; + } while (0); + do { + String x819; + } while (0); + do { + String x820; + } while (0); + do { + String x821; + } while (0); + do { + String x822; + } while (0); + do { + String x823; + } while (0); + do { + String x824; + } while (0); + do { + String x825; + } while (0); + do { + String x826; + } while (0); + do { + String x827; + } while (0); + do { + String x828; + } while (0); + do { + String x829; + } while (0); + do { + String x830; + } while (0); + do { + String x831; + } while (0); + do { + String x832; + } while (0); + do { + String x833; + } while (0); + do { + String x834; + } while (0); + do { + String x835; + } while (0); + do { + String x836; + } while (0); + do { + String x837; + } while (0); + do { + String x838; + } while (0); + do { + String x839; + } while (0); + do { + String x840; + } while (0); + do { + String x841; + } while (0); + do { + String x842; + } while (0); + do { + String x843; + } while (0); + do { + String x844; + } while (0); + do { + String x845; + } while (0); + do { + String x846; + } while (0); + do { + String x847; + } while (0); + do { + String x848; + } while (0); + do { + String x849; + } while (0); + do { + String x850; + } while (0); + do { + String x851; + } while (0); + do { + String x852; + } while (0); + do { + String x853; + } while (0); + do { + String x854; + } while (0); + do { + String x855; + } while (0); + do { + String x856; + } while (0); + do { + String x857; + } while (0); + do { + String x858; + } while (0); + do { + String x859; + } while (0); + do { + String x860; + } while (0); + do { + String x861; + } while (0); + do { + String x862; + } while (0); + do { + String x863; + } while (0); + do { + String x864; + } while (0); + do { + String x865; + } while (0); + do { + String x866; + } while (0); + do { + String x867; + } while (0); + do { + String x868; + } while (0); + do { + String x869; + } while (0); + do { + String x870; + } while (0); + do { + String x871; + } while (0); + do { + String x872; + } while (0); + do { + String x873; + } while (0); + do { + String x874; + } while (0); + do { + String x875; + } while (0); + do { + String x876; + } while (0); + do { + String x877; + } while (0); + do { + String x878; + } while (0); + do { + String x879; + } while (0); + do { + String x880; + } while (0); + do { + String x881; + } while (0); + do { + String x882; + } while (0); + do { + String x883; + } while (0); + do { + String x884; + } while (0); + do { + String x885; + } while (0); + do { + String x886; + } while (0); + do { + String x887; + } while (0); + do { + String x888; + } while (0); + do { + String x889; + } while (0); + do { + String x890; + } while (0); + do { + String x891; + } while (0); + do { + String x892; + } while (0); + do { + String x893; + } while (0); + do { + String x894; + } while (0); + do { + String x895; + } while (0); + do { + String x896; + } while (0); + do { + String x897; + } while (0); + do { + String x898; + } while (0); + do { + String x899; + } while (0); + do { + String x900; + } while (0); + do { + String x901; + } while (0); + do { + String x902; + } while (0); + do { + String x903; + } while (0); + do { + String x904; + } while (0); + do { + String x905; + } while (0); + do { + String x906; + } while (0); + do { + String x907; + } while (0); + do { + String x908; + } while (0); + do { + String x909; + } while (0); + do { + String x910; + } while (0); + do { + String x911; + } while (0); + do { + String x912; + } while (0); + do { + String x913; + } while (0); + do { + String x914; + } while (0); + do { + String x915; + } while (0); + do { + String x916; + } while (0); + do { + String x917; + } while (0); + do { + String x918; + } while (0); + do { + String x919; + } while (0); + do { + String x920; + } while (0); + do { + String x921; + } while (0); + do { + String x922; + } while (0); + do { + String x923; + } while (0); + do { + String x924; + } while (0); + do { + String x925; + } while (0); + do { + String x926; + } while (0); + do { + String x927; + } while (0); + do { + String x928; + } while (0); + do { + String x929; + } while (0); + do { + String x930; + } while (0); + do { + String x931; + } while (0); + do { + String x932; + } while (0); + do { + String x933; + } while (0); + do { + String x934; + } while (0); + do { + String x935; + } while (0); + do { + String x936; + } while (0); + do { + String x937; + } while (0); + do { + String x938; + } while (0); + do { + String x939; + } while (0); + do { + String x940; + } while (0); + do { + String x941; + } while (0); + do { + String x942; + } while (0); + do { + String x943; + } while (0); + do { + String x944; + } while (0); + do { + String x945; + } while (0); + do { + String x946; + } while (0); + do { + String x947; + } while (0); + do { + String x948; + } while (0); + do { + String x949; + } while (0); + do { + String x950; + } while (0); + do { + String x951; + } while (0); + do { + String x952; + } while (0); + do { + String x953; + } while (0); + do { + String x954; + } while (0); + do { + String x955; + } while (0); + do { + String x956; + } while (0); + do { + String x957; + } while (0); + do { + String x958; + } while (0); + do { + String x959; + } while (0); + do { + String x960; + } while (0); + do { + String x961; + } while (0); + do { + String x962; + } while (0); + do { + String x963; + } while (0); + do { + String x964; + } while (0); + do { + String x965; + } while (0); + do { + String x966; + } while (0); + do { + String x967; + } while (0); + do { + String x968; + } while (0); + do { + String x969; + } while (0); + do { + String x970; + } while (0); + do { + String x971; + } while (0); + do { + String x972; + } while (0); + do { + String x973; + } while (0); + do { + String x974; + } while (0); + do { + String x975; + } while (0); + do { + String x976; + } while (0); + do { + String x977; + } while (0); + do { + String x978; + } while (0); + do { + String x979; + } while (0); + do { + String x980; + } while (0); + do { + String x981; + } while (0); + do { + String x982; + } while (0); + do { + String x983; + } while (0); + do { + String x984; + } while (0); + do { + String x985; + } while (0); + do { + String x986; + } while (0); + do { + String x987; + } while (0); + do { + String x988; + } while (0); + do { + String x989; + } while (0); + do { + String x990; + } while (0); + do { + String x991; + } while (0); + do { + String x992; + } while (0); + do { + String x993; + } while (0); + do { + String x994; + } while (0); + do { + String x995; + } while (0); + do { + String x996; + } while (0); + do { + String x997; + } while (0); + do { + String x998; + } while (0); + do { + String x999; + } while (0); + do { + String x1000; + } while (0); + do { + String x1001; + } while (0); + do { + String x1002; + } while (0); + do { + String x1003; + } while (0); + do { + String x1004; + } while (0); + do { + String x1005; + } while (0); + do { + String x1006; + } while (0); + do { + String x1007; + } while (0); + do { + String x1008; + } while (0); + do { + String x1009; + } while (0); + do { + String x1010; + } while (0); + do { + String x1011; + } while (0); + do { + String x1012; + } while (0); + do { + String x1013; + } while (0); + do { + String x1014; + } while (0); + do { + String x1015; + } while (0); + do { + String x1016; + } while (0); + do { + String x1017; + } while (0); + do { + String x1018; + } while (0); + do { + String x1019; + } while (0); + do { + String x1020; + } while (0); + do { + String x1021; + } while (0); + do { + String x1022; + } while (0); + do { + String x1023; + } while (0); + do { + String x1024; + } while (0); +} + +// semmle-extractor-options: -std=c++20 --clang diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 75e2cb4a67c02..706606a19180b 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -14289,68 +14289,67 @@ ir.cpp: # 2216| mu2216_7(ClassWithDestructor) = Store[#temp2216:45] : &:r2216_4, r2216_6 # 2216| r2216_8(ClassWithDestructor) = Load[#temp2216:45] : &:r2216_4, ~m? # 2216| v2216_9(void) = Call[vector] : func:r2216_3, this:r2216_1, 0:r2216_8 -# 2216| mu2216_10(unknown) = ^CallSideEffect : ~m? -# 2216| mu2216_11(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 -# 2216| r2216_12(glval) = CopyValue : r2216_4 -# 2216| r2216_13(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_14(void) = Call[~ClassWithDestructor] : func:r2216_13, this:r2216_12 -# 2216| mu2216_15(unknown) = ^CallSideEffect : ~m? -# 2216| v2216_16(void) = ^IndirectReadSideEffect[-1] : &:r2216_12, ~m? -# 2216| mu2216_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_12 -# 2216| r2216_18(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_19(glval>) = VariableAddress[ys] : -# 2216| r2216_20(vector &) = CopyValue : r2216_19 -# 2216| mu2216_21(vector &) = Store[(__range)] : &:r2216_18, r2216_20 -# 2216| r2216_22(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_23(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_24(vector &) = Load[(__range)] : &:r2216_23, ~m? -#-----| r0_1(glval>) = CopyValue : r2216_24 +# 2216| mu2216_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_1 +# 2216| r2216_11(glval) = CopyValue : r2216_4 +# 2216| r2216_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2216| v2216_13(void) = Call[~ClassWithDestructor] : func:r2216_12, this:r2216_11 +# 2216| mu2216_14(unknown) = ^CallSideEffect : ~m? +# 2216| v2216_15(void) = ^IndirectReadSideEffect[-1] : &:r2216_11, ~m? +# 2216| mu2216_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_11 +# 2216| r2216_17(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_18(glval>) = VariableAddress[ys] : +# 2216| r2216_19(vector &) = CopyValue : r2216_18 +# 2216| mu2216_20(vector &) = Store[(__range)] : &:r2216_17, r2216_19 +# 2216| r2216_21(glval>) = VariableAddress[(__begin)] : +# 2216| r2216_22(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_23(vector &) = Load[(__range)] : &:r2216_22, ~m? +#-----| r0_1(glval>) = CopyValue : r2216_23 #-----| r0_2(glval>) = Convert : r0_1 -# 2216| r2216_25(glval) = FunctionAddress[begin] : -# 2216| r2216_26(iterator) = Call[begin] : func:r2216_25, this:r0_2 +# 2216| r2216_24(glval) = FunctionAddress[begin] : +# 2216| r2216_25(iterator) = Call[begin] : func:r2216_24, this:r0_2 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2216| mu2216_27(iterator) = Store[(__begin)] : &:r2216_22, r2216_26 -# 2216| r2216_28(glval>) = VariableAddress[(__end)] : -# 2216| r2216_29(glval &>) = VariableAddress[(__range)] : -# 2216| r2216_30(vector &) = Load[(__range)] : &:r2216_29, ~m? -#-----| r0_4(glval>) = CopyValue : r2216_30 +# 2216| mu2216_26(iterator) = Store[(__begin)] : &:r2216_21, r2216_25 +# 2216| r2216_27(glval>) = VariableAddress[(__end)] : +# 2216| r2216_28(glval &>) = VariableAddress[(__range)] : +# 2216| r2216_29(vector &) = Load[(__range)] : &:r2216_28, ~m? +#-----| r0_4(glval>) = CopyValue : r2216_29 #-----| r0_5(glval>) = Convert : r0_4 -# 2216| r2216_31(glval) = FunctionAddress[end] : -# 2216| r2216_32(iterator) = Call[end] : func:r2216_31, this:r0_5 +# 2216| r2216_30(glval) = FunctionAddress[end] : +# 2216| r2216_31(iterator) = Call[end] : func:r2216_30, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2216| mu2216_33(iterator) = Store[(__end)] : &:r2216_28, r2216_32 +# 2216| mu2216_32(iterator) = Store[(__end)] : &:r2216_27, r2216_31 #-----| Goto -> Block 10 # 2216| Block 10 -# 2216| r2216_34(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2216_34 -# 2216| r2216_35(glval) = FunctionAddress[operator!=] : +# 2216| r2216_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2216_33 +# 2216| r2216_34(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2216| r2216_36(glval) = FunctionAddress[iterator] : -# 2216| r2216_37(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2216_37 +# 2216| r2216_35(glval) = FunctionAddress[iterator] : +# 2216| r2216_36(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2216_36 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2216| v2216_38(void) = Call[iterator] : func:r2216_36, this:r0_8, 0:r0_11 -# 2216| mu2216_39(unknown) = ^CallSideEffect : ~m? +# 2216| v2216_37(void) = Call[iterator] : func:r2216_35, this:r0_8, 0:r0_11 +# 2216| mu2216_38(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2216| mu2216_40(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2216| mu2216_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2216| r2216_41(bool) = Call[operator!=] : func:r2216_35, this:r0_7, 0:r0_13 +# 2216| r2216_40(bool) = Call[operator!=] : func:r2216_34, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2216| v2216_42(void) = ConditionalBranch : r2216_41 +# 2216| v2216_41(void) = ConditionalBranch : r2216_40 #-----| False -> Block 12 #-----| True -> Block 11 # 2216| Block 11 -# 2216| r2216_43(glval) = VariableAddress[y] : -# 2216| r2216_44(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2216_44 -# 2216| r2216_45(glval) = FunctionAddress[operator*] : -# 2216| r2216_46(ClassWithDestructor &) = Call[operator*] : func:r2216_45, this:r0_15 +# 2216| r2216_42(glval) = VariableAddress[y] : +# 2216| r2216_43(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2216_43 +# 2216| r2216_44(glval) = FunctionAddress[operator*] : +# 2216| r2216_45(ClassWithDestructor &) = Call[operator*] : func:r2216_44, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2216| r2216_47(ClassWithDestructor) = Load[?] : &:r2216_46, ~m? -# 2216| mu2216_48(ClassWithDestructor) = Store[y] : &:r2216_43, r2216_47 +# 2216| r2216_46(ClassWithDestructor) = Load[?] : &:r2216_45, ~m? +# 2216| mu2216_47(ClassWithDestructor) = Store[y] : &:r2216_42, r2216_46 # 2217| r2217_1(glval) = VariableAddress[y] : # 2217| r2217_2(glval) = FunctionAddress[set_x] : # 2217| r2217_3(char) = Constant[97] : @@ -14358,27 +14357,26 @@ ir.cpp: # 2217| mu2217_5(unknown) = ^CallSideEffect : ~m? # 2217| v2217_6(void) = ^IndirectReadSideEffect[-1] : &:r2217_1, ~m? # 2217| mu2217_7(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2217_1 -# 2216| r2216_49(glval>) = VariableAddress[(__begin)] : -# 2216| r2216_50(glval) = FunctionAddress[operator++] : -# 2216| r2216_51(iterator &) = Call[operator++] : func:r2216_50, this:r2216_49 -# 2216| v2216_52(void) = ^IndirectReadSideEffect[-1] : &:r2216_49, ~m? -# 2216| mu2216_53(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_49 -# 2216| r2216_54(glval) = VariableAddress[y] : -# 2216| r2216_55(glval) = FunctionAddress[~ClassWithDestructor] : -# 2216| v2216_56(void) = Call[~ClassWithDestructor] : func:r2216_55, this:r2216_54 -# 2216| mu2216_57(unknown) = ^CallSideEffect : ~m? -# 2216| v2216_58(void) = ^IndirectReadSideEffect[-1] : &:r2216_54, ~m? -# 2216| mu2216_59(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_54 -# 2216| r2216_60(glval>) = CopyValue : r2216_51 +# 2216| r2216_48(glval>) = VariableAddress[(__begin)] : +# 2216| r2216_49(glval) = FunctionAddress[operator++] : +# 2216| r2216_50(iterator &) = Call[operator++] : func:r2216_49, this:r2216_48 +# 2216| v2216_51(void) = ^IndirectReadSideEffect[-1] : &:r2216_48, ~m? +# 2216| mu2216_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2216_48 +# 2216| r2216_53(glval) = VariableAddress[y] : +# 2216| r2216_54(glval) = FunctionAddress[~ClassWithDestructor] : +# 2216| v2216_55(void) = Call[~ClassWithDestructor] : func:r2216_54, this:r2216_53 +# 2216| mu2216_56(unknown) = ^CallSideEffect : ~m? +# 2216| v2216_57(void) = ^IndirectReadSideEffect[-1] : &:r2216_53, ~m? +# 2216| mu2216_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2216_53 +# 2216| r2216_59(glval>) = CopyValue : r2216_50 #-----| Goto (back edge) -> Block 10 # 2216| Block 12 -# 2216| r2216_61(glval>) = VariableAddress[ys] : -# 2216| r2216_62(glval) = FunctionAddress[~vector] : -# 2216| v2216_63(void) = Call[~vector] : func:r2216_62, this:r2216_61 -# 2216| mu2216_64(unknown) = ^CallSideEffect : ~m? -# 2216| v2216_65(void) = ^IndirectReadSideEffect[-1] : &:r2216_61, ~m? -# 2216| mu2216_66(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2216_61 +# 2216| r2216_60(glval>) = VariableAddress[ys] : +# 2216| r2216_61(glval) = FunctionAddress[~vector] : +# 2216| v2216_62(void) = Call[~vector] : func:r2216_61, this:r2216_60 +# 2216| v2216_63(void) = ^IndirectReadSideEffect[-1] : &:r2216_60, ~m? +# 2216| mu2216_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2216_60 # 2219| r2219_1(glval>) = VariableAddress[ys] : # 2219| mu2219_2(vector) = Uninitialized[ys] : &:r2219_1 # 2219| r2219_3(glval) = FunctionAddress[vector] : @@ -14388,83 +14386,82 @@ ir.cpp: # 2219| mu2219_7(ClassWithDestructor) = Store[#temp2219:45] : &:r2219_4, r2219_6 # 2219| r2219_8(ClassWithDestructor) = Load[#temp2219:45] : &:r2219_4, ~m? # 2219| v2219_9(void) = Call[vector] : func:r2219_3, this:r2219_1, 0:r2219_8 -# 2219| mu2219_10(unknown) = ^CallSideEffect : ~m? -# 2219| mu2219_11(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 -# 2219| r2219_12(glval) = CopyValue : r2219_4 -# 2219| r2219_13(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_14(void) = Call[~ClassWithDestructor] : func:r2219_13, this:r2219_12 -# 2219| mu2219_15(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_16(void) = ^IndirectReadSideEffect[-1] : &:r2219_12, ~m? -# 2219| mu2219_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_12 -# 2219| r2219_18(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_19(glval>) = VariableAddress[ys] : -# 2219| r2219_20(vector &) = CopyValue : r2219_19 -# 2219| mu2219_21(vector &) = Store[(__range)] : &:r2219_18, r2219_20 -# 2219| r2219_22(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_23(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_24(vector &) = Load[(__range)] : &:r2219_23, ~m? -#-----| r0_17(glval>) = CopyValue : r2219_24 +# 2219| mu2219_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_1 +# 2219| r2219_11(glval) = CopyValue : r2219_4 +# 2219| r2219_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_13(void) = Call[~ClassWithDestructor] : func:r2219_12, this:r2219_11 +# 2219| mu2219_14(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_15(void) = ^IndirectReadSideEffect[-1] : &:r2219_11, ~m? +# 2219| mu2219_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_11 +# 2219| r2219_17(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_18(glval>) = VariableAddress[ys] : +# 2219| r2219_19(vector &) = CopyValue : r2219_18 +# 2219| mu2219_20(vector &) = Store[(__range)] : &:r2219_17, r2219_19 +# 2219| r2219_21(glval>) = VariableAddress[(__begin)] : +# 2219| r2219_22(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_23(vector &) = Load[(__range)] : &:r2219_22, ~m? +#-----| r0_17(glval>) = CopyValue : r2219_23 #-----| r0_18(glval>) = Convert : r0_17 -# 2219| r2219_25(glval) = FunctionAddress[begin] : -# 2219| r2219_26(iterator) = Call[begin] : func:r2219_25, this:r0_18 +# 2219| r2219_24(glval) = FunctionAddress[begin] : +# 2219| r2219_25(iterator) = Call[begin] : func:r2219_24, this:r0_18 #-----| v0_19(void) = ^IndirectReadSideEffect[-1] : &:r0_18, ~m? -# 2219| mu2219_27(iterator) = Store[(__begin)] : &:r2219_22, r2219_26 -# 2219| r2219_28(glval>) = VariableAddress[(__end)] : -# 2219| r2219_29(glval &>) = VariableAddress[(__range)] : -# 2219| r2219_30(vector &) = Load[(__range)] : &:r2219_29, ~m? -#-----| r0_20(glval>) = CopyValue : r2219_30 +# 2219| mu2219_26(iterator) = Store[(__begin)] : &:r2219_21, r2219_25 +# 2219| r2219_27(glval>) = VariableAddress[(__end)] : +# 2219| r2219_28(glval &>) = VariableAddress[(__range)] : +# 2219| r2219_29(vector &) = Load[(__range)] : &:r2219_28, ~m? +#-----| r0_20(glval>) = CopyValue : r2219_29 #-----| r0_21(glval>) = Convert : r0_20 -# 2219| r2219_31(glval) = FunctionAddress[end] : -# 2219| r2219_32(iterator) = Call[end] : func:r2219_31, this:r0_21 +# 2219| r2219_30(glval) = FunctionAddress[end] : +# 2219| r2219_31(iterator) = Call[end] : func:r2219_30, this:r0_21 #-----| v0_22(void) = ^IndirectReadSideEffect[-1] : &:r0_21, ~m? -# 2219| mu2219_33(iterator) = Store[(__end)] : &:r2219_28, r2219_32 +# 2219| mu2219_32(iterator) = Store[(__end)] : &:r2219_27, r2219_31 #-----| Goto -> Block 13 # 2219| Block 13 -# 2219| r2219_34(glval>) = VariableAddress[(__begin)] : -#-----| r0_23(glval>) = Convert : r2219_34 -# 2219| r2219_35(glval) = FunctionAddress[operator!=] : +# 2219| r2219_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_23(glval>) = Convert : r2219_33 +# 2219| r2219_34(glval) = FunctionAddress[operator!=] : #-----| r0_24(glval>) = VariableAddress[#temp0:0] : #-----| mu0_25(iterator) = Uninitialized[#temp0:0] : &:r0_24 -# 2219| r2219_36(glval) = FunctionAddress[iterator] : -# 2219| r2219_37(glval>) = VariableAddress[(__end)] : -#-----| r0_26(glval>) = Convert : r2219_37 +# 2219| r2219_35(glval) = FunctionAddress[iterator] : +# 2219| r2219_36(glval>) = VariableAddress[(__end)] : +#-----| r0_26(glval>) = Convert : r2219_36 #-----| r0_27(iterator &) = CopyValue : r0_26 -# 2219| v2219_38(void) = Call[iterator] : func:r2219_36, this:r0_24, 0:r0_27 -# 2219| mu2219_39(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_37(void) = Call[iterator] : func:r2219_35, this:r0_24, 0:r0_27 +# 2219| mu2219_38(unknown) = ^CallSideEffect : ~m? #-----| v0_28(void) = ^BufferReadSideEffect[0] : &:r0_27, ~m? -# 2219| mu2219_40(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 +# 2219| mu2219_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_24 #-----| r0_29(iterator) = Load[#temp0:0] : &:r0_24, ~m? -# 2219| r2219_41(bool) = Call[operator!=] : func:r2219_35, this:r0_23, 0:r0_29 +# 2219| r2219_40(bool) = Call[operator!=] : func:r2219_34, this:r0_23, 0:r0_29 #-----| v0_30(void) = ^IndirectReadSideEffect[-1] : &:r0_23, ~m? -# 2219| v2219_42(void) = ConditionalBranch : r2219_41 +# 2219| v2219_41(void) = ConditionalBranch : r2219_40 #-----| False -> Block 17 #-----| True -> Block 15 # 2219| Block 14 -# 2219| r2219_43(glval>) = VariableAddress[(__begin)] : -# 2219| r2219_44(glval) = FunctionAddress[operator++] : -# 2219| r2219_45(iterator &) = Call[operator++] : func:r2219_44, this:r2219_43 -# 2219| v2219_46(void) = ^IndirectReadSideEffect[-1] : &:r2219_43, ~m? -# 2219| mu2219_47(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_43 -# 2219| r2219_48(glval) = VariableAddress[y] : -# 2219| r2219_49(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_50(void) = Call[~ClassWithDestructor] : func:r2219_49, this:r2219_48 -# 2219| mu2219_51(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_52(void) = ^IndirectReadSideEffect[-1] : &:r2219_48, ~m? -# 2219| mu2219_53(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_48 -# 2219| r2219_54(glval>) = CopyValue : r2219_45 +# 2219| r2219_42(glval>) = VariableAddress[(__begin)] : +# 2219| r2219_43(glval) = FunctionAddress[operator++] : +# 2219| r2219_44(iterator &) = Call[operator++] : func:r2219_43, this:r2219_42 +# 2219| v2219_45(void) = ^IndirectReadSideEffect[-1] : &:r2219_42, ~m? +# 2219| mu2219_46(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2219_42 +# 2219| r2219_47(glval) = VariableAddress[y] : +# 2219| r2219_48(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_49(void) = Call[~ClassWithDestructor] : func:r2219_48, this:r2219_47 +# 2219| mu2219_50(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_51(void) = ^IndirectReadSideEffect[-1] : &:r2219_47, ~m? +# 2219| mu2219_52(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_47 +# 2219| r2219_53(glval>) = CopyValue : r2219_44 #-----| Goto (back edge) -> Block 13 # 2219| Block 15 -# 2219| r2219_55(glval) = VariableAddress[y] : -# 2219| r2219_56(glval>) = VariableAddress[(__begin)] : -#-----| r0_31(glval>) = Convert : r2219_56 -# 2219| r2219_57(glval) = FunctionAddress[operator*] : -# 2219| r2219_58(ClassWithDestructor &) = Call[operator*] : func:r2219_57, this:r0_31 +# 2219| r2219_54(glval) = VariableAddress[y] : +# 2219| r2219_55(glval>) = VariableAddress[(__begin)] : +#-----| r0_31(glval>) = Convert : r2219_55 +# 2219| r2219_56(glval) = FunctionAddress[operator*] : +# 2219| r2219_57(ClassWithDestructor &) = Call[operator*] : func:r2219_56, this:r0_31 #-----| v0_32(void) = ^IndirectReadSideEffect[-1] : &:r0_31, ~m? -# 2219| r2219_59(ClassWithDestructor) = Load[?] : &:r2219_58, ~m? -# 2219| mu2219_60(ClassWithDestructor) = Store[y] : &:r2219_55, r2219_59 +# 2219| r2219_58(ClassWithDestructor) = Load[?] : &:r2219_57, ~m? +# 2219| mu2219_59(ClassWithDestructor) = Store[y] : &:r2219_54, r2219_58 # 2220| r2220_1(glval) = VariableAddress[y] : # 2220| r2220_2(glval) = FunctionAddress[set_x] : # 2220| r2220_3(char) = Constant[97] : @@ -14487,18 +14484,17 @@ ir.cpp: # 2222| Block 16 # 2222| v2222_1(void) = NoOp : -# 2219| r2219_61(glval) = VariableAddress[y] : -# 2219| r2219_62(glval) = FunctionAddress[~ClassWithDestructor] : -# 2219| v2219_63(void) = Call[~ClassWithDestructor] : func:r2219_62, this:r2219_61 -# 2219| mu2219_64(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_65(void) = ^IndirectReadSideEffect[-1] : &:r2219_61, ~m? -# 2219| mu2219_66(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_61 -# 2219| r2219_67(glval>) = VariableAddress[ys] : -# 2219| r2219_68(glval) = FunctionAddress[~vector] : -# 2219| v2219_69(void) = Call[~vector] : func:r2219_68, this:r2219_67 -# 2219| mu2219_70(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_71(void) = ^IndirectReadSideEffect[-1] : &:r2219_67, ~m? -# 2219| mu2219_72(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_67 +# 2219| r2219_60(glval) = VariableAddress[y] : +# 2219| r2219_61(glval) = FunctionAddress[~ClassWithDestructor] : +# 2219| v2219_62(void) = Call[~ClassWithDestructor] : func:r2219_61, this:r2219_60 +# 2219| mu2219_63(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_64(void) = ^IndirectReadSideEffect[-1] : &:r2219_60, ~m? +# 2219| mu2219_65(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2219_60 +# 2219| r2219_66(glval>) = VariableAddress[ys] : +# 2219| r2219_67(glval) = FunctionAddress[~vector] : +# 2219| v2219_68(void) = Call[~vector] : func:r2219_67, this:r2219_66 +# 2219| v2219_69(void) = ^IndirectReadSideEffect[-1] : &:r2219_66, ~m? +# 2219| mu2219_70(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_66 # 2234| r2234_1(glval) = VariableAddress[x] : # 2234| r2234_2(glval) = FunctionAddress[~ClassWithDestructor] : # 2234| v2234_3(void) = Call[~ClassWithDestructor] : func:r2234_2, this:r2234_1 @@ -14508,82 +14504,80 @@ ir.cpp: #-----| Goto -> Block 1 # 2219| Block 17 -# 2219| r2219_73(glval>) = VariableAddress[ys] : -# 2219| r2219_74(glval) = FunctionAddress[~vector] : -# 2219| v2219_75(void) = Call[~vector] : func:r2219_74, this:r2219_73 -# 2219| mu2219_76(unknown) = ^CallSideEffect : ~m? -# 2219| v2219_77(void) = ^IndirectReadSideEffect[-1] : &:r2219_73, ~m? -# 2219| mu2219_78(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2219_73 -# 2225| r2225_1(glval>) = VariableAddress[ys] : -# 2225| mu2225_2(vector) = Uninitialized[ys] : &:r2225_1 -# 2225| r2225_3(glval) = FunctionAddress[vector] : -# 2225| r2225_4(int) = Constant[1] : -# 2225| v2225_5(void) = Call[vector] : func:r2225_3, this:r2225_1, 0:r2225_4 -# 2225| mu2225_6(unknown) = ^CallSideEffect : ~m? -# 2225| mu2225_7(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_1 -# 2225| r2225_8(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_9(glval>) = VariableAddress[ys] : -# 2225| r2225_10(vector &) = CopyValue : r2225_9 -# 2225| mu2225_11(vector &) = Store[(__range)] : &:r2225_8, r2225_10 -# 2225| r2225_12(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_13(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_14(vector &) = Load[(__range)] : &:r2225_13, ~m? -#-----| r0_33(glval>) = CopyValue : r2225_14 -#-----| r0_34(glval>) = Convert : r0_33 -# 2225| r2225_15(glval) = FunctionAddress[begin] : -# 2225| r2225_16(iterator) = Call[begin] : func:r2225_15, this:r0_34 -#-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, ~m? -# 2225| mu2225_17(iterator) = Store[(__begin)] : &:r2225_12, r2225_16 -# 2225| r2225_18(glval>) = VariableAddress[(__end)] : -# 2225| r2225_19(glval &>) = VariableAddress[(__range)] : -# 2225| r2225_20(vector &) = Load[(__range)] : &:r2225_19, ~m? -#-----| r0_36(glval>) = CopyValue : r2225_20 -#-----| r0_37(glval>) = Convert : r0_36 -# 2225| r2225_21(glval) = FunctionAddress[end] : -# 2225| r2225_22(iterator) = Call[end] : func:r2225_21, this:r0_37 -#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? -# 2225| mu2225_23(iterator) = Store[(__end)] : &:r2225_18, r2225_22 +# 2219| r2219_71(glval>) = VariableAddress[ys] : +# 2219| r2219_72(glval) = FunctionAddress[~vector] : +# 2219| v2219_73(void) = Call[~vector] : func:r2219_72, this:r2219_71 +# 2219| v2219_74(void) = ^IndirectReadSideEffect[-1] : &:r2219_71, ~m? +# 2219| mu2219_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2219_71 +# 2225| r2225_1(glval>) = VariableAddress[ys] : +# 2225| mu2225_2(vector) = Uninitialized[ys] : &:r2225_1 +# 2225| r2225_3(glval) = FunctionAddress[vector] : +# 2225| r2225_4(int) = Constant[1] : +# 2225| v2225_5(void) = Call[vector] : func:r2225_3, this:r2225_1, 0:r2225_4 +# 2225| mu2225_6(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_1 +# 2225| r2225_7(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_8(glval>) = VariableAddress[ys] : +# 2225| r2225_9(vector &) = CopyValue : r2225_8 +# 2225| mu2225_10(vector &) = Store[(__range)] : &:r2225_7, r2225_9 +# 2225| r2225_11(glval>) = VariableAddress[(__begin)] : +# 2225| r2225_12(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_13(vector &) = Load[(__range)] : &:r2225_12, ~m? +#-----| r0_33(glval>) = CopyValue : r2225_13 +#-----| r0_34(glval>) = Convert : r0_33 +# 2225| r2225_14(glval) = FunctionAddress[begin] : +# 2225| r2225_15(iterator) = Call[begin] : func:r2225_14, this:r0_34 +#-----| v0_35(void) = ^IndirectReadSideEffect[-1] : &:r0_34, ~m? +# 2225| mu2225_16(iterator) = Store[(__begin)] : &:r2225_11, r2225_15 +# 2225| r2225_17(glval>) = VariableAddress[(__end)] : +# 2225| r2225_18(glval &>) = VariableAddress[(__range)] : +# 2225| r2225_19(vector &) = Load[(__range)] : &:r2225_18, ~m? +#-----| r0_36(glval>) = CopyValue : r2225_19 +#-----| r0_37(glval>) = Convert : r0_36 +# 2225| r2225_20(glval) = FunctionAddress[end] : +# 2225| r2225_21(iterator) = Call[end] : func:r2225_20, this:r0_37 +#-----| v0_38(void) = ^IndirectReadSideEffect[-1] : &:r0_37, ~m? +# 2225| mu2225_22(iterator) = Store[(__end)] : &:r2225_17, r2225_21 #-----| Goto -> Block 18 # 2225| Block 18 -# 2225| r2225_24(glval>) = VariableAddress[(__begin)] : -#-----| r0_39(glval>) = Convert : r2225_24 -# 2225| r2225_25(glval) = FunctionAddress[operator!=] : +# 2225| r2225_23(glval>) = VariableAddress[(__begin)] : +#-----| r0_39(glval>) = Convert : r2225_23 +# 2225| r2225_24(glval) = FunctionAddress[operator!=] : #-----| r0_40(glval>) = VariableAddress[#temp0:0] : #-----| mu0_41(iterator) = Uninitialized[#temp0:0] : &:r0_40 -# 2225| r2225_26(glval) = FunctionAddress[iterator] : -# 2225| r2225_27(glval>) = VariableAddress[(__end)] : -#-----| r0_42(glval>) = Convert : r2225_27 +# 2225| r2225_25(glval) = FunctionAddress[iterator] : +# 2225| r2225_26(glval>) = VariableAddress[(__end)] : +#-----| r0_42(glval>) = Convert : r2225_26 #-----| r0_43(iterator &) = CopyValue : r0_42 -# 2225| v2225_28(void) = Call[iterator] : func:r2225_26, this:r0_40, 0:r0_43 -# 2225| mu2225_29(unknown) = ^CallSideEffect : ~m? +# 2225| v2225_27(void) = Call[iterator] : func:r2225_25, this:r0_40, 0:r0_43 +# 2225| mu2225_28(unknown) = ^CallSideEffect : ~m? #-----| v0_44(void) = ^BufferReadSideEffect[0] : &:r0_43, ~m? -# 2225| mu2225_30(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 +# 2225| mu2225_29(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_40 #-----| r0_45(iterator) = Load[#temp0:0] : &:r0_40, ~m? -# 2225| r2225_31(bool) = Call[operator!=] : func:r2225_25, this:r0_39, 0:r0_45 +# 2225| r2225_30(bool) = Call[operator!=] : func:r2225_24, this:r0_39, 0:r0_45 #-----| v0_46(void) = ^IndirectReadSideEffect[-1] : &:r0_39, ~m? -# 2225| v2225_32(void) = ConditionalBranch : r2225_31 +# 2225| v2225_31(void) = ConditionalBranch : r2225_30 #-----| False -> Block 22 #-----| True -> Block 20 # 2225| Block 19 -# 2225| r2225_33(glval>) = VariableAddress[(__begin)] : -# 2225| r2225_34(glval) = FunctionAddress[operator++] : -# 2225| r2225_35(iterator &) = Call[operator++] : func:r2225_34, this:r2225_33 -# 2225| v2225_36(void) = ^IndirectReadSideEffect[-1] : &:r2225_33, ~m? -# 2225| mu2225_37(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_33 -# 2225| r2225_38(glval>) = CopyValue : r2225_35 +# 2225| r2225_32(glval>) = VariableAddress[(__begin)] : +# 2225| r2225_33(glval) = FunctionAddress[operator++] : +# 2225| r2225_34(iterator &) = Call[operator++] : func:r2225_33, this:r2225_32 +# 2225| v2225_35(void) = ^IndirectReadSideEffect[-1] : &:r2225_32, ~m? +# 2225| mu2225_36(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2225_32 +# 2225| r2225_37(glval>) = CopyValue : r2225_34 #-----| Goto (back edge) -> Block 18 # 2225| Block 20 -# 2225| r2225_39(glval) = VariableAddress[y] : -# 2225| r2225_40(glval>) = VariableAddress[(__begin)] : -#-----| r0_47(glval>) = Convert : r2225_40 -# 2225| r2225_41(glval) = FunctionAddress[operator*] : -# 2225| r2225_42(int &) = Call[operator*] : func:r2225_41, this:r0_47 +# 2225| r2225_38(glval) = VariableAddress[y] : +# 2225| r2225_39(glval>) = VariableAddress[(__begin)] : +#-----| r0_47(glval>) = Convert : r2225_39 +# 2225| r2225_40(glval) = FunctionAddress[operator*] : +# 2225| r2225_41(int &) = Call[operator*] : func:r2225_40, this:r0_47 #-----| v0_48(void) = ^IndirectReadSideEffect[-1] : &:r0_47, ~m? -# 2225| r2225_43(int) = Load[?] : &:r2225_42, ~m? -# 2225| mu2225_44(int) = Store[y] : &:r2225_39, r2225_43 +# 2225| r2225_42(int) = Load[?] : &:r2225_41, ~m? +# 2225| mu2225_43(int) = Store[y] : &:r2225_38, r2225_42 # 2226| r2226_1(glval) = VariableAddress[y] : # 2226| r2226_2(int) = Load[y] : &:r2226_1, ~m? # 2226| r2226_3(int) = Constant[1] : @@ -14594,12 +14588,11 @@ ir.cpp: # 2227| Block 21 # 2227| v2227_1(void) = NoOp : -# 2225| r2225_45(glval>) = VariableAddress[ys] : -# 2225| r2225_46(glval) = FunctionAddress[~vector] : -# 2225| v2225_47(void) = Call[~vector] : func:r2225_46, this:r2225_45 -# 2225| mu2225_48(unknown) = ^CallSideEffect : ~m? -# 2225| v2225_49(void) = ^IndirectReadSideEffect[-1] : &:r2225_45, ~m? -# 2225| mu2225_50(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_45 +# 2225| r2225_44(glval>) = VariableAddress[ys] : +# 2225| r2225_45(glval) = FunctionAddress[~vector] : +# 2225| v2225_46(void) = Call[~vector] : func:r2225_45, this:r2225_44 +# 2225| v2225_47(void) = ^IndirectReadSideEffect[-1] : &:r2225_44, ~m? +# 2225| mu2225_48(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_44 # 2234| r2234_7(glval) = VariableAddress[x] : # 2234| r2234_8(glval) = FunctionAddress[~ClassWithDestructor] : # 2234| v2234_9(void) = Call[~ClassWithDestructor] : func:r2234_8, this:r2234_7 @@ -14609,12 +14602,11 @@ ir.cpp: #-----| Goto -> Block 1 # 2225| Block 22 -# 2225| r2225_51(glval>) = VariableAddress[ys] : -# 2225| r2225_52(glval) = FunctionAddress[~vector] : -# 2225| v2225_53(void) = Call[~vector] : func:r2225_52, this:r2225_51 -# 2225| mu2225_54(unknown) = ^CallSideEffect : ~m? -# 2225| v2225_55(void) = ^IndirectReadSideEffect[-1] : &:r2225_51, ~m? -# 2225| mu2225_56(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2225_51 +# 2225| r2225_49(glval>) = VariableAddress[ys] : +# 2225| r2225_50(glval) = FunctionAddress[~vector] : +# 2225| v2225_51(void) = Call[~vector] : func:r2225_50, this:r2225_49 +# 2225| v2225_52(void) = ^IndirectReadSideEffect[-1] : &:r2225_49, ~m? +# 2225| mu2225_53(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2225_49 # 2230| r2230_1(glval>) = VariableAddress[ys] : # 2230| mu2230_2(vector) = Uninitialized[ys] : &:r2230_1 # 2230| r2230_3(glval) = FunctionAddress[vector] : @@ -14624,68 +14616,67 @@ ir.cpp: # 2230| mu2230_7(ClassWithDestructor) = Store[#temp2230:45] : &:r2230_4, r2230_6 # 2230| r2230_8(ClassWithDestructor) = Load[#temp2230:45] : &:r2230_4, ~m? # 2230| v2230_9(void) = Call[vector] : func:r2230_3, this:r2230_1, 0:r2230_8 -# 2230| mu2230_10(unknown) = ^CallSideEffect : ~m? -# 2230| mu2230_11(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2230_1 -# 2230| r2230_12(glval) = CopyValue : r2230_4 -# 2230| r2230_13(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_14(void) = Call[~ClassWithDestructor] : func:r2230_13, this:r2230_12 -# 2230| mu2230_15(unknown) = ^CallSideEffect : ~m? -# 2230| v2230_16(void) = ^IndirectReadSideEffect[-1] : &:r2230_12, ~m? -# 2230| mu2230_17(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_12 -# 2230| r2230_18(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_19(glval>) = VariableAddress[ys] : -# 2230| r2230_20(vector &) = CopyValue : r2230_19 -# 2230| mu2230_21(vector &) = Store[(__range)] : &:r2230_18, r2230_20 -# 2230| r2230_22(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_23(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_24(vector &) = Load[(__range)] : &:r2230_23, ~m? -#-----| r0_49(glval>) = CopyValue : r2230_24 +# 2230| mu2230_10(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_1 +# 2230| r2230_11(glval) = CopyValue : r2230_4 +# 2230| r2230_12(glval) = FunctionAddress[~ClassWithDestructor] : +# 2230| v2230_13(void) = Call[~ClassWithDestructor] : func:r2230_12, this:r2230_11 +# 2230| mu2230_14(unknown) = ^CallSideEffect : ~m? +# 2230| v2230_15(void) = ^IndirectReadSideEffect[-1] : &:r2230_11, ~m? +# 2230| mu2230_16(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_11 +# 2230| r2230_17(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_18(glval>) = VariableAddress[ys] : +# 2230| r2230_19(vector &) = CopyValue : r2230_18 +# 2230| mu2230_20(vector &) = Store[(__range)] : &:r2230_17, r2230_19 +# 2230| r2230_21(glval>) = VariableAddress[(__begin)] : +# 2230| r2230_22(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_23(vector &) = Load[(__range)] : &:r2230_22, ~m? +#-----| r0_49(glval>) = CopyValue : r2230_23 #-----| r0_50(glval>) = Convert : r0_49 -# 2230| r2230_25(glval) = FunctionAddress[begin] : -# 2230| r2230_26(iterator) = Call[begin] : func:r2230_25, this:r0_50 +# 2230| r2230_24(glval) = FunctionAddress[begin] : +# 2230| r2230_25(iterator) = Call[begin] : func:r2230_24, this:r0_50 #-----| v0_51(void) = ^IndirectReadSideEffect[-1] : &:r0_50, ~m? -# 2230| mu2230_27(iterator) = Store[(__begin)] : &:r2230_22, r2230_26 -# 2230| r2230_28(glval>) = VariableAddress[(__end)] : -# 2230| r2230_29(glval &>) = VariableAddress[(__range)] : -# 2230| r2230_30(vector &) = Load[(__range)] : &:r2230_29, ~m? -#-----| r0_52(glval>) = CopyValue : r2230_30 +# 2230| mu2230_26(iterator) = Store[(__begin)] : &:r2230_21, r2230_25 +# 2230| r2230_27(glval>) = VariableAddress[(__end)] : +# 2230| r2230_28(glval &>) = VariableAddress[(__range)] : +# 2230| r2230_29(vector &) = Load[(__range)] : &:r2230_28, ~m? +#-----| r0_52(glval>) = CopyValue : r2230_29 #-----| r0_53(glval>) = Convert : r0_52 -# 2230| r2230_31(glval) = FunctionAddress[end] : -# 2230| r2230_32(iterator) = Call[end] : func:r2230_31, this:r0_53 +# 2230| r2230_30(glval) = FunctionAddress[end] : +# 2230| r2230_31(iterator) = Call[end] : func:r2230_30, this:r0_53 #-----| v0_54(void) = ^IndirectReadSideEffect[-1] : &:r0_53, ~m? -# 2230| mu2230_33(iterator) = Store[(__end)] : &:r2230_28, r2230_32 +# 2230| mu2230_32(iterator) = Store[(__end)] : &:r2230_27, r2230_31 #-----| Goto -> Block 23 # 2230| Block 23 -# 2230| r2230_34(glval>) = VariableAddress[(__begin)] : -#-----| r0_55(glval>) = Convert : r2230_34 -# 2230| r2230_35(glval) = FunctionAddress[operator!=] : +# 2230| r2230_33(glval>) = VariableAddress[(__begin)] : +#-----| r0_55(glval>) = Convert : r2230_33 +# 2230| r2230_34(glval) = FunctionAddress[operator!=] : #-----| r0_56(glval>) = VariableAddress[#temp0:0] : #-----| mu0_57(iterator) = Uninitialized[#temp0:0] : &:r0_56 -# 2230| r2230_36(glval) = FunctionAddress[iterator] : -# 2230| r2230_37(glval>) = VariableAddress[(__end)] : -#-----| r0_58(glval>) = Convert : r2230_37 +# 2230| r2230_35(glval) = FunctionAddress[iterator] : +# 2230| r2230_36(glval>) = VariableAddress[(__end)] : +#-----| r0_58(glval>) = Convert : r2230_36 #-----| r0_59(iterator &) = CopyValue : r0_58 -# 2230| v2230_38(void) = Call[iterator] : func:r2230_36, this:r0_56, 0:r0_59 -# 2230| mu2230_39(unknown) = ^CallSideEffect : ~m? +# 2230| v2230_37(void) = Call[iterator] : func:r2230_35, this:r0_56, 0:r0_59 +# 2230| mu2230_38(unknown) = ^CallSideEffect : ~m? #-----| v0_60(void) = ^BufferReadSideEffect[0] : &:r0_59, ~m? -# 2230| mu2230_40(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 +# 2230| mu2230_39(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_56 #-----| r0_61(iterator) = Load[#temp0:0] : &:r0_56, ~m? -# 2230| r2230_41(bool) = Call[operator!=] : func:r2230_35, this:r0_55, 0:r0_61 +# 2230| r2230_40(bool) = Call[operator!=] : func:r2230_34, this:r0_55, 0:r0_61 #-----| v0_62(void) = ^IndirectReadSideEffect[-1] : &:r0_55, ~m? -# 2230| v2230_42(void) = ConditionalBranch : r2230_41 +# 2230| v2230_41(void) = ConditionalBranch : r2230_40 #-----| False -> Block 25 #-----| True -> Block 24 # 2230| Block 24 -# 2230| r2230_43(glval) = VariableAddress[y] : -# 2230| r2230_44(glval>) = VariableAddress[(__begin)] : -#-----| r0_63(glval>) = Convert : r2230_44 -# 2230| r2230_45(glval) = FunctionAddress[operator*] : -# 2230| r2230_46(ClassWithDestructor &) = Call[operator*] : func:r2230_45, this:r0_63 +# 2230| r2230_42(glval) = VariableAddress[y] : +# 2230| r2230_43(glval>) = VariableAddress[(__begin)] : +#-----| r0_63(glval>) = Convert : r2230_43 +# 2230| r2230_44(glval) = FunctionAddress[operator*] : +# 2230| r2230_45(ClassWithDestructor &) = Call[operator*] : func:r2230_44, this:r0_63 #-----| v0_64(void) = ^IndirectReadSideEffect[-1] : &:r0_63, ~m? -# 2230| r2230_47(ClassWithDestructor) = Load[?] : &:r2230_46, ~m? -# 2230| mu2230_48(ClassWithDestructor) = Store[y] : &:r2230_43, r2230_47 +# 2230| r2230_46(ClassWithDestructor) = Load[?] : &:r2230_45, ~m? +# 2230| mu2230_47(ClassWithDestructor) = Store[y] : &:r2230_42, r2230_46 # 2231| r2231_1(glval) = VariableAddress[z1] : # 2231| mu2231_2(ClassWithDestructor) = Uninitialized[z1] : &:r2231_1 # 2231| r2231_3(glval) = FunctionAddress[ClassWithDestructor] : @@ -14710,27 +14701,26 @@ ir.cpp: # 2233| mu2233_10(unknown) = ^CallSideEffect : ~m? # 2233| v2233_11(void) = ^IndirectReadSideEffect[-1] : &:r2233_7, ~m? # 2233| mu2233_12(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2233_7 -# 2230| r2230_49(glval>) = VariableAddress[(__begin)] : -# 2230| r2230_50(glval) = FunctionAddress[operator++] : -# 2230| r2230_51(iterator &) = Call[operator++] : func:r2230_50, this:r2230_49 -# 2230| v2230_52(void) = ^IndirectReadSideEffect[-1] : &:r2230_49, ~m? -# 2230| mu2230_53(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_49 -# 2230| r2230_54(glval) = VariableAddress[y] : -# 2230| r2230_55(glval) = FunctionAddress[~ClassWithDestructor] : -# 2230| v2230_56(void) = Call[~ClassWithDestructor] : func:r2230_55, this:r2230_54 -# 2230| mu2230_57(unknown) = ^CallSideEffect : ~m? -# 2230| v2230_58(void) = ^IndirectReadSideEffect[-1] : &:r2230_54, ~m? -# 2230| mu2230_59(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_54 -# 2230| r2230_60(glval>) = CopyValue : r2230_51 +# 2230| r2230_48(glval>) = VariableAddress[(__begin)] : +# 2230| r2230_49(glval) = FunctionAddress[operator++] : +# 2230| r2230_50(iterator &) = Call[operator++] : func:r2230_49, this:r2230_48 +# 2230| v2230_51(void) = ^IndirectReadSideEffect[-1] : &:r2230_48, ~m? +# 2230| mu2230_52(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2230_48 +# 2230| r2230_53(glval) = VariableAddress[y] : +# 2230| r2230_54(glval) = FunctionAddress[~ClassWithDestructor] : +# 2230| v2230_55(void) = Call[~ClassWithDestructor] : func:r2230_54, this:r2230_53 +# 2230| mu2230_56(unknown) = ^CallSideEffect : ~m? +# 2230| v2230_57(void) = ^IndirectReadSideEffect[-1] : &:r2230_53, ~m? +# 2230| mu2230_58(ClassWithDestructor) = ^IndirectMayWriteSideEffect[-1] : &:r2230_53 +# 2230| r2230_59(glval>) = CopyValue : r2230_50 #-----| Goto (back edge) -> Block 23 # 2230| Block 25 -# 2230| r2230_61(glval>) = VariableAddress[ys] : -# 2230| r2230_62(glval) = FunctionAddress[~vector] : -# 2230| v2230_63(void) = Call[~vector] : func:r2230_62, this:r2230_61 -# 2230| mu2230_64(unknown) = ^CallSideEffect : ~m? -# 2230| v2230_65(void) = ^IndirectReadSideEffect[-1] : &:r2230_61, ~m? -# 2230| mu2230_66(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2230_61 +# 2230| r2230_60(glval>) = VariableAddress[ys] : +# 2230| r2230_61(glval) = FunctionAddress[~vector] : +# 2230| v2230_62(void) = Call[~vector] : func:r2230_61, this:r2230_60 +# 2230| v2230_63(void) = ^IndirectReadSideEffect[-1] : &:r2230_60, ~m? +# 2230| mu2230_64(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2230_60 # 2234| v2234_13(void) = NoOp : # 2234| r2234_14(glval) = VariableAddress[x] : # 2234| r2234_15(glval) = FunctionAddress[~ClassWithDestructor] : @@ -15260,94 +15250,93 @@ ir.cpp: #-----| Goto (back edge) -> Block 1 # 2304| Block 3 -# 2304| r2304_24(glval) = VariableAddress[s] : -# 2304| r2304_25(glval) = FunctionAddress[~String] : -# 2304| v2304_26(void) = Call[~String] : func:r2304_25, this:r2304_24 -# 2304| mu2304_27(unknown) = ^CallSideEffect : ~m? -# 2304| v2304_28(void) = ^IndirectReadSideEffect[-1] : &:r2304_24, ~m? -# 2304| mu2304_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_24 -# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : -# 2308| mu2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 -# 2308| r2308_4(glval) = FunctionAddress[vector] : -# 2308| r2308_5(glval) = VariableAddress[#temp2308:40] : -# 2308| mu2308_6(String) = Uninitialized[#temp2308:40] : &:r2308_5 -# 2308| r2308_7(glval) = FunctionAddress[String] : -# 2308| r2308_8(glval) = StringConstant["hello"] : -# 2308| r2308_9(char *) = Convert : r2308_8 -# 2308| v2308_10(void) = Call[String] : func:r2308_7, this:r2308_5, 0:r2308_9 -# 2308| mu2308_11(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_12(void) = ^BufferReadSideEffect[0] : &:r2308_9, ~m? -# 2308| mu2308_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_5 -# 2308| r2308_14(String) = Load[#temp2308:40] : &:r2308_5, ~m? -# 2308| v2308_15(void) = Call[vector] : func:r2308_4, this:r2308_2, 0:r2308_14 -# 2308| mu2308_16(unknown) = ^CallSideEffect : ~m? -# 2308| mu2308_17(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2308_2 -# 2308| r2308_18(glval) = CopyValue : r2308_5 -# 2308| r2308_19(glval) = FunctionAddress[~String] : -# 2308| v2308_20(void) = Call[~String] : func:r2308_19, this:r2308_18 -# 2308| mu2308_21(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_22(void) = ^IndirectReadSideEffect[-1] : &:r2308_18, ~m? -# 2308| mu2308_23(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_18 -# 2308| r2308_24(vector &) = CopyValue : r2308_2 -# 2308| mu2308_25(vector &&) = Store[(__range)] : &:r2308_1, r2308_24 -# 2308| r2308_26(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_27(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_28(vector &&) = Load[(__range)] : &:r2308_27, ~m? -#-----| r0_1(glval>) = CopyValue : r2308_28 -#-----| r0_2(glval>) = Convert : r0_1 -# 2308| r2308_29(glval) = FunctionAddress[begin] : -# 2308| r2308_30(iterator) = Call[begin] : func:r2308_29, this:r0_2 -#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2308| mu2308_31(iterator) = Store[(__begin)] : &:r2308_26, r2308_30 -# 2308| r2308_32(glval>) = VariableAddress[(__end)] : -# 2308| r2308_33(glval &&>) = VariableAddress[(__range)] : -# 2308| r2308_34(vector &&) = Load[(__range)] : &:r2308_33, ~m? -#-----| r0_4(glval>) = CopyValue : r2308_34 -#-----| r0_5(glval>) = Convert : r0_4 -# 2308| r2308_35(glval) = FunctionAddress[end] : -# 2308| r2308_36(iterator) = Call[end] : func:r2308_35, this:r0_5 -#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2308| mu2308_37(iterator) = Store[(__end)] : &:r2308_32, r2308_36 +# 2304| r2304_24(glval) = VariableAddress[s] : +# 2304| r2304_25(glval) = FunctionAddress[~String] : +# 2304| v2304_26(void) = Call[~String] : func:r2304_25, this:r2304_24 +# 2304| mu2304_27(unknown) = ^CallSideEffect : ~m? +# 2304| v2304_28(void) = ^IndirectReadSideEffect[-1] : &:r2304_24, ~m? +# 2304| mu2304_29(String) = ^IndirectMayWriteSideEffect[-1] : &:r2304_24 +# 2308| r2308_1(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_2(glval>) = VariableAddress[#temp2308:20] : +# 2308| mu2308_3(vector) = Uninitialized[#temp2308:20] : &:r2308_2 +# 2308| r2308_4(glval) = FunctionAddress[vector] : +# 2308| r2308_5(glval) = VariableAddress[#temp2308:40] : +# 2308| mu2308_6(String) = Uninitialized[#temp2308:40] : &:r2308_5 +# 2308| r2308_7(glval) = FunctionAddress[String] : +# 2308| r2308_8(glval) = StringConstant["hello"] : +# 2308| r2308_9(char *) = Convert : r2308_8 +# 2308| v2308_10(void) = Call[String] : func:r2308_7, this:r2308_5, 0:r2308_9 +# 2308| mu2308_11(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_12(void) = ^BufferReadSideEffect[0] : &:r2308_9, ~m? +# 2308| mu2308_13(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_5 +# 2308| r2308_14(String) = Load[#temp2308:40] : &:r2308_5, ~m? +# 2308| v2308_15(void) = Call[vector] : func:r2308_4, this:r2308_2, 0:r2308_14 +# 2308| mu2308_16(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_2 +# 2308| r2308_17(glval) = CopyValue : r2308_5 +# 2308| r2308_18(glval) = FunctionAddress[~String] : +# 2308| v2308_19(void) = Call[~String] : func:r2308_18, this:r2308_17 +# 2308| mu2308_20(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_21(void) = ^IndirectReadSideEffect[-1] : &:r2308_17, ~m? +# 2308| mu2308_22(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_17 +# 2308| r2308_23(vector &) = CopyValue : r2308_2 +# 2308| mu2308_24(vector &&) = Store[(__range)] : &:r2308_1, r2308_23 +# 2308| r2308_25(glval>) = VariableAddress[(__begin)] : +# 2308| r2308_26(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_27(vector &&) = Load[(__range)] : &:r2308_26, ~m? +#-----| r0_1(glval>) = CopyValue : r2308_27 +#-----| r0_2(glval>) = Convert : r0_1 +# 2308| r2308_28(glval) = FunctionAddress[begin] : +# 2308| r2308_29(iterator) = Call[begin] : func:r2308_28, this:r0_2 +#-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? +# 2308| mu2308_30(iterator) = Store[(__begin)] : &:r2308_25, r2308_29 +# 2308| r2308_31(glval>) = VariableAddress[(__end)] : +# 2308| r2308_32(glval &&>) = VariableAddress[(__range)] : +# 2308| r2308_33(vector &&) = Load[(__range)] : &:r2308_32, ~m? +#-----| r0_4(glval>) = CopyValue : r2308_33 +#-----| r0_5(glval>) = Convert : r0_4 +# 2308| r2308_34(glval) = FunctionAddress[end] : +# 2308| r2308_35(iterator) = Call[end] : func:r2308_34, this:r0_5 +#-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? +# 2308| mu2308_36(iterator) = Store[(__end)] : &:r2308_31, r2308_35 #-----| Goto -> Block 4 # 2308| Block 4 -# 2308| r2308_38(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2308_38 -# 2308| r2308_39(glval) = FunctionAddress[operator!=] : +# 2308| r2308_37(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2308_37 +# 2308| r2308_38(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2308| r2308_40(glval) = FunctionAddress[iterator] : -# 2308| r2308_41(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2308_41 +# 2308| r2308_39(glval) = FunctionAddress[iterator] : +# 2308| r2308_40(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2308_40 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2308| v2308_42(void) = Call[iterator] : func:r2308_40, this:r0_8, 0:r0_11 -# 2308| mu2308_43(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_41(void) = Call[iterator] : func:r2308_39, this:r0_8, 0:r0_11 +# 2308| mu2308_42(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2308| mu2308_44(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2308| mu2308_43(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2308| r2308_45(bool) = Call[operator!=] : func:r2308_39, this:r0_7, 0:r0_13 +# 2308| r2308_44(bool) = Call[operator!=] : func:r2308_38, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2308| v2308_46(void) = ConditionalBranch : r2308_45 +# 2308| v2308_45(void) = ConditionalBranch : r2308_44 #-----| False -> Block 6 #-----| True -> Block 5 # 2308| Block 5 -# 2308| r2308_47(glval) = VariableAddress[s] : -# 2308| mu2308_48(String) = Uninitialized[s] : &:r2308_47 -# 2308| r2308_49(glval) = FunctionAddress[String] : -# 2308| r2308_50(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2308_50 -# 2308| r2308_51(glval) = FunctionAddress[operator*] : -# 2308| r2308_52(String &) = Call[operator*] : func:r2308_51, this:r0_15 +# 2308| r2308_46(glval) = VariableAddress[s] : +# 2308| mu2308_47(String) = Uninitialized[s] : &:r2308_46 +# 2308| r2308_48(glval) = FunctionAddress[String] : +# 2308| r2308_49(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2308_49 +# 2308| r2308_50(glval) = FunctionAddress[operator*] : +# 2308| r2308_51(String &) = Call[operator*] : func:r2308_50, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2308| r2308_53(glval) = CopyValue : r2308_52 -# 2308| r2308_54(glval) = Convert : r2308_53 -# 2308| r2308_55(String &) = CopyValue : r2308_54 -# 2308| v2308_56(void) = Call[String] : func:r2308_49, this:r2308_47, 0:r2308_55 -# 2308| mu2308_57(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_58(void) = ^BufferReadSideEffect[0] : &:r2308_55, ~m? -# 2308| mu2308_59(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_47 +# 2308| r2308_52(glval) = CopyValue : r2308_51 +# 2308| r2308_53(glval) = Convert : r2308_52 +# 2308| r2308_54(String &) = CopyValue : r2308_53 +# 2308| v2308_55(void) = Call[String] : func:r2308_48, this:r2308_46, 0:r2308_54 +# 2308| mu2308_56(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_57(void) = ^BufferReadSideEffect[0] : &:r2308_54, ~m? +# 2308| mu2308_58(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_46 # 2309| r2309_1(glval) = VariableAddress[s2] : # 2309| mu2309_2(String) = Uninitialized[s2] : &:r2309_1 # 2309| r2309_3(glval) = FunctionAddress[String] : @@ -15360,45 +15349,44 @@ ir.cpp: # 2310| mu2310_4(unknown) = ^CallSideEffect : ~m? # 2310| v2310_5(void) = ^IndirectReadSideEffect[-1] : &:r2310_1, ~m? # 2310| mu2310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2310_1 -# 2308| r2308_60(glval>) = VariableAddress[(__begin)] : -# 2308| r2308_61(glval) = FunctionAddress[operator++] : -# 2308| r2308_62(iterator &) = Call[operator++] : func:r2308_61, this:r2308_60 -# 2308| v2308_63(void) = ^IndirectReadSideEffect[-1] : &:r2308_60, ~m? -# 2308| mu2308_64(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_60 -# 2308| r2308_65(glval) = VariableAddress[s] : -# 2308| r2308_66(glval) = FunctionAddress[~String] : -# 2308| v2308_67(void) = Call[~String] : func:r2308_66, this:r2308_65 -# 2308| mu2308_68(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_69(void) = ^IndirectReadSideEffect[-1] : &:r2308_65, ~m? -# 2308| mu2308_70(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_65 -# 2308| r2308_71(glval>) = CopyValue : r2308_62 +# 2308| r2308_59(glval>) = VariableAddress[(__begin)] : +# 2308| r2308_60(glval) = FunctionAddress[operator++] : +# 2308| r2308_61(iterator &) = Call[operator++] : func:r2308_60, this:r2308_59 +# 2308| v2308_62(void) = ^IndirectReadSideEffect[-1] : &:r2308_59, ~m? +# 2308| mu2308_63(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2308_59 +# 2308| r2308_64(glval) = VariableAddress[s] : +# 2308| r2308_65(glval) = FunctionAddress[~String] : +# 2308| v2308_66(void) = Call[~String] : func:r2308_65, this:r2308_64 +# 2308| mu2308_67(unknown) = ^CallSideEffect : ~m? +# 2308| v2308_68(void) = ^IndirectReadSideEffect[-1] : &:r2308_64, ~m? +# 2308| mu2308_69(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_64 +# 2308| r2308_70(glval>) = CopyValue : r2308_61 #-----| Goto (back edge) -> Block 4 # 2308| Block 6 -# 2308| r2308_72(glval>) = CopyValue : r2308_2 -# 2308| r2308_73(glval) = FunctionAddress[~vector] : -# 2308| v2308_74(void) = Call[~vector] : func:r2308_73, this:r2308_72 -# 2308| mu2308_75(unknown) = ^CallSideEffect : ~m? -# 2308| v2308_76(void) = ^IndirectReadSideEffect[-1] : &:r2308_72, ~m? -# 2308| mu2308_77(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2308_72 -# 2312| r2312_1(glval) = VariableAddress[s] : -# 2312| mu2312_2(String) = Uninitialized[s] : &:r2312_1 -# 2312| r2312_3(glval) = FunctionAddress[String] : -# 2312| r2312_4(glval) = StringConstant["hello"] : -# 2312| r2312_5(char *) = Convert : r2312_4 -# 2312| v2312_6(void) = Call[String] : func:r2312_3, this:r2312_1, 0:r2312_5 -# 2312| mu2312_7(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_8(void) = ^BufferReadSideEffect[0] : &:r2312_5, ~m? -# 2312| mu2312_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 -# 2312| r2312_10(glval) = VariableAddress[s2] : -# 2312| mu2312_11(String) = Uninitialized[s2] : &:r2312_10 -# 2312| r2312_12(glval) = FunctionAddress[String] : -# 2312| r2312_13(glval) = StringConstant["world"] : -# 2312| r2312_14(char *) = Convert : r2312_13 -# 2312| v2312_15(void) = Call[String] : func:r2312_12, this:r2312_10, 0:r2312_14 -# 2312| mu2312_16(unknown) = ^CallSideEffect : ~m? -# 2312| v2312_17(void) = ^BufferReadSideEffect[0] : &:r2312_14, ~m? -# 2312| mu2312_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_10 +# 2308| r2308_71(glval>) = CopyValue : r2308_2 +# 2308| r2308_72(glval) = FunctionAddress[~vector] : +# 2308| v2308_73(void) = Call[~vector] : func:r2308_72, this:r2308_71 +# 2308| v2308_74(void) = ^IndirectReadSideEffect[-1] : &:r2308_71, ~m? +# 2308| mu2308_75(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2308_71 +# 2312| r2312_1(glval) = VariableAddress[s] : +# 2312| mu2312_2(String) = Uninitialized[s] : &:r2312_1 +# 2312| r2312_3(glval) = FunctionAddress[String] : +# 2312| r2312_4(glval) = StringConstant["hello"] : +# 2312| r2312_5(char *) = Convert : r2312_4 +# 2312| v2312_6(void) = Call[String] : func:r2312_3, this:r2312_1, 0:r2312_5 +# 2312| mu2312_7(unknown) = ^CallSideEffect : ~m? +# 2312| v2312_8(void) = ^BufferReadSideEffect[0] : &:r2312_5, ~m? +# 2312| mu2312_9(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2312| r2312_10(glval) = VariableAddress[s2] : +# 2312| mu2312_11(String) = Uninitialized[s2] : &:r2312_10 +# 2312| r2312_12(glval) = FunctionAddress[String] : +# 2312| r2312_13(glval) = StringConstant["world"] : +# 2312| r2312_14(char *) = Convert : r2312_13 +# 2312| v2312_15(void) = Call[String] : func:r2312_12, this:r2312_10, 0:r2312_14 +# 2312| mu2312_16(unknown) = ^CallSideEffect : ~m? +# 2312| v2312_17(void) = ^BufferReadSideEffect[0] : &:r2312_14, ~m? +# 2312| mu2312_18(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_10 #-----| Goto -> Block 7 # 2312| Block 7 @@ -16038,60 +16026,59 @@ ir.cpp: # 2431| r2431_24(glval) = VariableAddress[x] : # 2431| r2431_25(char) = Load[x] : &:r2431_24, ~m? # 2431| v2431_26(void) = Call[vector] : func:r2431_23, this:r2431_21, 0:r2431_25 -# 2431| mu2431_27(unknown) = ^CallSideEffect : ~m? -# 2431| mu2431_28(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2431_21 -# 2431| r2431_29(vector &) = CopyValue : r2431_21 -# 2431| mu2431_30(vector &&) = Store[(__range)] : &:r2431_20, r2431_29 -# 2431| r2431_31(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_32(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_33(vector &&) = Load[(__range)] : &:r2431_32, ~m? -#-----| r0_1(glval>) = CopyValue : r2431_33 +# 2431| mu2431_27(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_21 +# 2431| r2431_28(vector &) = CopyValue : r2431_21 +# 2431| mu2431_29(vector &&) = Store[(__range)] : &:r2431_20, r2431_28 +# 2431| r2431_30(glval>) = VariableAddress[(__begin)] : +# 2431| r2431_31(glval &&>) = VariableAddress[(__range)] : +# 2431| r2431_32(vector &&) = Load[(__range)] : &:r2431_31, ~m? +#-----| r0_1(glval>) = CopyValue : r2431_32 #-----| r0_2(glval>) = Convert : r0_1 -# 2431| r2431_34(glval) = FunctionAddress[begin] : -# 2431| r2431_35(iterator) = Call[begin] : func:r2431_34, this:r0_2 +# 2431| r2431_33(glval) = FunctionAddress[begin] : +# 2431| r2431_34(iterator) = Call[begin] : func:r2431_33, this:r0_2 #-----| v0_3(void) = ^IndirectReadSideEffect[-1] : &:r0_2, ~m? -# 2431| mu2431_36(iterator) = Store[(__begin)] : &:r2431_31, r2431_35 -# 2431| r2431_37(glval>) = VariableAddress[(__end)] : -# 2431| r2431_38(glval &&>) = VariableAddress[(__range)] : -# 2431| r2431_39(vector &&) = Load[(__range)] : &:r2431_38, ~m? -#-----| r0_4(glval>) = CopyValue : r2431_39 +# 2431| mu2431_35(iterator) = Store[(__begin)] : &:r2431_30, r2431_34 +# 2431| r2431_36(glval>) = VariableAddress[(__end)] : +# 2431| r2431_37(glval &&>) = VariableAddress[(__range)] : +# 2431| r2431_38(vector &&) = Load[(__range)] : &:r2431_37, ~m? +#-----| r0_4(glval>) = CopyValue : r2431_38 #-----| r0_5(glval>) = Convert : r0_4 -# 2431| r2431_40(glval) = FunctionAddress[end] : -# 2431| r2431_41(iterator) = Call[end] : func:r2431_40, this:r0_5 +# 2431| r2431_39(glval) = FunctionAddress[end] : +# 2431| r2431_40(iterator) = Call[end] : func:r2431_39, this:r0_5 #-----| v0_6(void) = ^IndirectReadSideEffect[-1] : &:r0_5, ~m? -# 2431| mu2431_42(iterator) = Store[(__end)] : &:r2431_37, r2431_41 +# 2431| mu2431_41(iterator) = Store[(__end)] : &:r2431_36, r2431_40 #-----| Goto -> Block 11 # 2431| Block 11 -# 2431| r2431_43(glval>) = VariableAddress[(__begin)] : -#-----| r0_7(glval>) = Convert : r2431_43 -# 2431| r2431_44(glval) = FunctionAddress[operator!=] : +# 2431| r2431_42(glval>) = VariableAddress[(__begin)] : +#-----| r0_7(glval>) = Convert : r2431_42 +# 2431| r2431_43(glval) = FunctionAddress[operator!=] : #-----| r0_8(glval>) = VariableAddress[#temp0:0] : #-----| mu0_9(iterator) = Uninitialized[#temp0:0] : &:r0_8 -# 2431| r2431_45(glval) = FunctionAddress[iterator] : -# 2431| r2431_46(glval>) = VariableAddress[(__end)] : -#-----| r0_10(glval>) = Convert : r2431_46 +# 2431| r2431_44(glval) = FunctionAddress[iterator] : +# 2431| r2431_45(glval>) = VariableAddress[(__end)] : +#-----| r0_10(glval>) = Convert : r2431_45 #-----| r0_11(iterator &) = CopyValue : r0_10 -# 2431| v2431_47(void) = Call[iterator] : func:r2431_45, this:r0_8, 0:r0_11 -# 2431| mu2431_48(unknown) = ^CallSideEffect : ~m? +# 2431| v2431_46(void) = Call[iterator] : func:r2431_44, this:r0_8, 0:r0_11 +# 2431| mu2431_47(unknown) = ^CallSideEffect : ~m? #-----| v0_12(void) = ^BufferReadSideEffect[0] : &:r0_11, ~m? -# 2431| mu2431_49(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 +# 2431| mu2431_48(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r0_8 #-----| r0_13(iterator) = Load[#temp0:0] : &:r0_8, ~m? -# 2431| r2431_50(bool) = Call[operator!=] : func:r2431_44, this:r0_7, 0:r0_13 +# 2431| r2431_49(bool) = Call[operator!=] : func:r2431_43, this:r0_7, 0:r0_13 #-----| v0_14(void) = ^IndirectReadSideEffect[-1] : &:r0_7, ~m? -# 2431| v2431_51(void) = ConditionalBranch : r2431_50 +# 2431| v2431_50(void) = ConditionalBranch : r2431_49 #-----| False -> Block 13 #-----| True -> Block 12 # 2431| Block 12 -# 2431| r2431_52(glval) = VariableAddress[y] : -# 2431| r2431_53(glval>) = VariableAddress[(__begin)] : -#-----| r0_15(glval>) = Convert : r2431_53 -# 2431| r2431_54(glval) = FunctionAddress[operator*] : -# 2431| r2431_55(char &) = Call[operator*] : func:r2431_54, this:r0_15 +# 2431| r2431_51(glval) = VariableAddress[y] : +# 2431| r2431_52(glval>) = VariableAddress[(__begin)] : +#-----| r0_15(glval>) = Convert : r2431_52 +# 2431| r2431_53(glval) = FunctionAddress[operator*] : +# 2431| r2431_54(char &) = Call[operator*] : func:r2431_53, this:r0_15 #-----| v0_16(void) = ^IndirectReadSideEffect[-1] : &:r0_15, ~m? -# 2431| r2431_56(char) = Load[?] : &:r2431_55, ~m? -# 2431| mu2431_57(char) = Store[y] : &:r2431_52, r2431_56 +# 2431| r2431_55(char) = Load[?] : &:r2431_54, ~m? +# 2431| mu2431_56(char) = Store[y] : &:r2431_51, r2431_55 # 2432| r2432_1(glval) = VariableAddress[x] : # 2432| r2432_2(char) = Load[x] : &:r2432_1, ~m? # 2432| r2432_3(int) = Convert : r2432_2 @@ -16101,25 +16088,24 @@ ir.cpp: # 2432| r2432_7(int) = Add : r2432_6, r2432_3 # 2432| r2432_8(char) = Convert : r2432_7 # 2432| mu2432_9(char) = Store[y] : &:r2432_4, r2432_8 -# 2431| r2431_58(glval>) = VariableAddress[(__begin)] : -# 2431| r2431_59(glval) = FunctionAddress[operator++] : -# 2431| r2431_60(iterator &) = Call[operator++] : func:r2431_59, this:r2431_58 -# 2431| v2431_61(void) = ^IndirectReadSideEffect[-1] : &:r2431_58, ~m? -# 2431| mu2431_62(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_58 -# 2431| r2431_63(glval>) = CopyValue : r2431_60 +# 2431| r2431_57(glval>) = VariableAddress[(__begin)] : +# 2431| r2431_58(glval) = FunctionAddress[operator++] : +# 2431| r2431_59(iterator &) = Call[operator++] : func:r2431_58, this:r2431_57 +# 2431| v2431_60(void) = ^IndirectReadSideEffect[-1] : &:r2431_57, ~m? +# 2431| mu2431_61(iterator) = ^IndirectMayWriteSideEffect[-1] : &:r2431_57 +# 2431| r2431_62(glval>) = CopyValue : r2431_59 #-----| Goto (back edge) -> Block 11 # 2431| Block 13 -# 2431| r2431_64(glval>) = CopyValue : r2431_21 -# 2431| r2431_65(glval) = FunctionAddress[~vector] : -# 2431| v2431_66(void) = Call[~vector] : func:r2431_65, this:r2431_64 -# 2431| mu2431_67(unknown) = ^CallSideEffect : ~m? -# 2431| v2431_68(void) = ^IndirectReadSideEffect[-1] : &:r2431_64, ~m? -# 2431| mu2431_69(vector) = ^IndirectMayWriteSideEffect[-1] : &:r2431_64 -# 2433| v2433_1(void) = NoOp : -# 2411| v2411_4(void) = ReturnVoid : -# 2411| v2411_5(void) = AliasedUse : ~m? -# 2411| v2411_6(void) = ExitFunction : +# 2431| r2431_63(glval>) = CopyValue : r2431_21 +# 2431| r2431_64(glval) = FunctionAddress[~vector] : +# 2431| v2431_65(void) = Call[~vector] : func:r2431_64, this:r2431_63 +# 2431| v2431_66(void) = ^IndirectReadSideEffect[-1] : &:r2431_63, ~m? +# 2431| mu2431_67(vector) = ^IndirectMustWriteSideEffect[-1] : &:r2431_63 +# 2433| v2433_1(void) = NoOp : +# 2411| v2411_4(void) = ReturnVoid : +# 2411| v2411_5(void) = AliasedUse : ~m? +# 2411| v2411_6(void) = ExitFunction : # 2435| void param_with_destructor_by_value(ClassWithDestructor) # 2435| Block 0 @@ -17191,6 +17177,18470 @@ ir.cpp: # 2684| v2684_7(void) = AliasedUse : ~m? # 2684| v2684_8(void) = ExitFunction : +many-defs-per-use.cpp: +# 17| void many_defs_per_use() +# 17| Block 0 +# 17| v17_1(void) = EnterFunction : +# 17| mu17_2(unknown) = AliasedDefinition : +# 17| mu17_3(unknown) = InitializeNonLocal : +#-----| Goto -> Block 1 + +# 19| Block 1 +# 19| r19_1(glval) = VariableAddress[x0] : +# 19| mu19_2(String) = Uninitialized[x0] : &:r19_1 +# 19| r19_3(glval) = FunctionAddress[String] : +# 19| v19_4(void) = Call[String] : func:r19_3, this:r19_1 +# 19| mu19_5(unknown) = ^CallSideEffect : ~m? +# 19| mu19_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r19_1 +# 20| r20_1(glval) = VariableAddress[x0] : +# 20| r20_2(glval) = FunctionAddress[~String] : +# 20| v20_3(void) = Call[~String] : func:r20_2, this:r20_1 +# 20| mu20_4(unknown) = ^CallSideEffect : ~m? +# 20| v20_5(void) = ^IndirectReadSideEffect[-1] : &:r20_1, ~m? +# 20| mu20_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r20_1 +# 20| r20_7(bool) = Constant[0] : +# 20| v20_8(void) = ConditionalBranch : r20_7 +#-----| False -> Block 2 +#-----| True (back edge) -> Block 1 + +# 22| Block 2 +# 22| r22_1(glval) = VariableAddress[x1] : +# 22| mu22_2(String) = Uninitialized[x1] : &:r22_1 +# 22| r22_3(glval) = FunctionAddress[String] : +# 22| v22_4(void) = Call[String] : func:r22_3, this:r22_1 +# 22| mu22_5(unknown) = ^CallSideEffect : ~m? +# 22| mu22_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r22_1 +# 23| r23_1(glval) = VariableAddress[x1] : +# 23| r23_2(glval) = FunctionAddress[~String] : +# 23| v23_3(void) = Call[~String] : func:r23_2, this:r23_1 +# 23| mu23_4(unknown) = ^CallSideEffect : ~m? +# 23| v23_5(void) = ^IndirectReadSideEffect[-1] : &:r23_1, ~m? +# 23| mu23_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r23_1 +# 23| r23_7(bool) = Constant[0] : +# 23| v23_8(void) = ConditionalBranch : r23_7 +#-----| False -> Block 3 +#-----| True (back edge) -> Block 2 + +# 25| Block 3 +# 25| r25_1(glval) = VariableAddress[x2] : +# 25| mu25_2(String) = Uninitialized[x2] : &:r25_1 +# 25| r25_3(glval) = FunctionAddress[String] : +# 25| v25_4(void) = Call[String] : func:r25_3, this:r25_1 +# 25| mu25_5(unknown) = ^CallSideEffect : ~m? +# 25| mu25_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r25_1 +# 26| r26_1(glval) = VariableAddress[x2] : +# 26| r26_2(glval) = FunctionAddress[~String] : +# 26| v26_3(void) = Call[~String] : func:r26_2, this:r26_1 +# 26| mu26_4(unknown) = ^CallSideEffect : ~m? +# 26| v26_5(void) = ^IndirectReadSideEffect[-1] : &:r26_1, ~m? +# 26| mu26_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r26_1 +# 26| r26_7(bool) = Constant[0] : +# 26| v26_8(void) = ConditionalBranch : r26_7 +#-----| False -> Block 4 +#-----| True (back edge) -> Block 3 + +# 28| Block 4 +# 28| r28_1(glval) = VariableAddress[x3] : +# 28| mu28_2(String) = Uninitialized[x3] : &:r28_1 +# 28| r28_3(glval) = FunctionAddress[String] : +# 28| v28_4(void) = Call[String] : func:r28_3, this:r28_1 +# 28| mu28_5(unknown) = ^CallSideEffect : ~m? +# 28| mu28_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r28_1 +# 29| r29_1(glval) = VariableAddress[x3] : +# 29| r29_2(glval) = FunctionAddress[~String] : +# 29| v29_3(void) = Call[~String] : func:r29_2, this:r29_1 +# 29| mu29_4(unknown) = ^CallSideEffect : ~m? +# 29| v29_5(void) = ^IndirectReadSideEffect[-1] : &:r29_1, ~m? +# 29| mu29_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r29_1 +# 29| r29_7(bool) = Constant[0] : +# 29| v29_8(void) = ConditionalBranch : r29_7 +#-----| False -> Block 5 +#-----| True (back edge) -> Block 4 + +# 31| Block 5 +# 31| r31_1(glval) = VariableAddress[x4] : +# 31| mu31_2(String) = Uninitialized[x4] : &:r31_1 +# 31| r31_3(glval) = FunctionAddress[String] : +# 31| v31_4(void) = Call[String] : func:r31_3, this:r31_1 +# 31| mu31_5(unknown) = ^CallSideEffect : ~m? +# 31| mu31_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r31_1 +# 32| r32_1(glval) = VariableAddress[x4] : +# 32| r32_2(glval) = FunctionAddress[~String] : +# 32| v32_3(void) = Call[~String] : func:r32_2, this:r32_1 +# 32| mu32_4(unknown) = ^CallSideEffect : ~m? +# 32| v32_5(void) = ^IndirectReadSideEffect[-1] : &:r32_1, ~m? +# 32| mu32_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r32_1 +# 32| r32_7(bool) = Constant[0] : +# 32| v32_8(void) = ConditionalBranch : r32_7 +#-----| False -> Block 6 +#-----| True (back edge) -> Block 5 + +# 34| Block 6 +# 34| r34_1(glval) = VariableAddress[x5] : +# 34| mu34_2(String) = Uninitialized[x5] : &:r34_1 +# 34| r34_3(glval) = FunctionAddress[String] : +# 34| v34_4(void) = Call[String] : func:r34_3, this:r34_1 +# 34| mu34_5(unknown) = ^CallSideEffect : ~m? +# 34| mu34_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r34_1 +# 35| r35_1(glval) = VariableAddress[x5] : +# 35| r35_2(glval) = FunctionAddress[~String] : +# 35| v35_3(void) = Call[~String] : func:r35_2, this:r35_1 +# 35| mu35_4(unknown) = ^CallSideEffect : ~m? +# 35| v35_5(void) = ^IndirectReadSideEffect[-1] : &:r35_1, ~m? +# 35| mu35_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r35_1 +# 35| r35_7(bool) = Constant[0] : +# 35| v35_8(void) = ConditionalBranch : r35_7 +#-----| False -> Block 7 +#-----| True (back edge) -> Block 6 + +# 37| Block 7 +# 37| r37_1(glval) = VariableAddress[x6] : +# 37| mu37_2(String) = Uninitialized[x6] : &:r37_1 +# 37| r37_3(glval) = FunctionAddress[String] : +# 37| v37_4(void) = Call[String] : func:r37_3, this:r37_1 +# 37| mu37_5(unknown) = ^CallSideEffect : ~m? +# 37| mu37_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r37_1 +# 38| r38_1(glval) = VariableAddress[x6] : +# 38| r38_2(glval) = FunctionAddress[~String] : +# 38| v38_3(void) = Call[~String] : func:r38_2, this:r38_1 +# 38| mu38_4(unknown) = ^CallSideEffect : ~m? +# 38| v38_5(void) = ^IndirectReadSideEffect[-1] : &:r38_1, ~m? +# 38| mu38_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r38_1 +# 38| r38_7(bool) = Constant[0] : +# 38| v38_8(void) = ConditionalBranch : r38_7 +#-----| False -> Block 8 +#-----| True (back edge) -> Block 7 + +# 40| Block 8 +# 40| r40_1(glval) = VariableAddress[x7] : +# 40| mu40_2(String) = Uninitialized[x7] : &:r40_1 +# 40| r40_3(glval) = FunctionAddress[String] : +# 40| v40_4(void) = Call[String] : func:r40_3, this:r40_1 +# 40| mu40_5(unknown) = ^CallSideEffect : ~m? +# 40| mu40_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r40_1 +# 41| r41_1(glval) = VariableAddress[x7] : +# 41| r41_2(glval) = FunctionAddress[~String] : +# 41| v41_3(void) = Call[~String] : func:r41_2, this:r41_1 +# 41| mu41_4(unknown) = ^CallSideEffect : ~m? +# 41| v41_5(void) = ^IndirectReadSideEffect[-1] : &:r41_1, ~m? +# 41| mu41_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r41_1 +# 41| r41_7(bool) = Constant[0] : +# 41| v41_8(void) = ConditionalBranch : r41_7 +#-----| False -> Block 9 +#-----| True (back edge) -> Block 8 + +# 43| Block 9 +# 43| r43_1(glval) = VariableAddress[x8] : +# 43| mu43_2(String) = Uninitialized[x8] : &:r43_1 +# 43| r43_3(glval) = FunctionAddress[String] : +# 43| v43_4(void) = Call[String] : func:r43_3, this:r43_1 +# 43| mu43_5(unknown) = ^CallSideEffect : ~m? +# 43| mu43_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r43_1 +# 44| r44_1(glval) = VariableAddress[x8] : +# 44| r44_2(glval) = FunctionAddress[~String] : +# 44| v44_3(void) = Call[~String] : func:r44_2, this:r44_1 +# 44| mu44_4(unknown) = ^CallSideEffect : ~m? +# 44| v44_5(void) = ^IndirectReadSideEffect[-1] : &:r44_1, ~m? +# 44| mu44_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r44_1 +# 44| r44_7(bool) = Constant[0] : +# 44| v44_8(void) = ConditionalBranch : r44_7 +#-----| False -> Block 10 +#-----| True (back edge) -> Block 9 + +# 46| Block 10 +# 46| r46_1(glval) = VariableAddress[x9] : +# 46| mu46_2(String) = Uninitialized[x9] : &:r46_1 +# 46| r46_3(glval) = FunctionAddress[String] : +# 46| v46_4(void) = Call[String] : func:r46_3, this:r46_1 +# 46| mu46_5(unknown) = ^CallSideEffect : ~m? +# 46| mu46_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r46_1 +# 47| r47_1(glval) = VariableAddress[x9] : +# 47| r47_2(glval) = FunctionAddress[~String] : +# 47| v47_3(void) = Call[~String] : func:r47_2, this:r47_1 +# 47| mu47_4(unknown) = ^CallSideEffect : ~m? +# 47| v47_5(void) = ^IndirectReadSideEffect[-1] : &:r47_1, ~m? +# 47| mu47_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r47_1 +# 47| r47_7(bool) = Constant[0] : +# 47| v47_8(void) = ConditionalBranch : r47_7 +#-----| False -> Block 11 +#-----| True (back edge) -> Block 10 + +# 49| Block 11 +# 49| r49_1(glval) = VariableAddress[x10] : +# 49| mu49_2(String) = Uninitialized[x10] : &:r49_1 +# 49| r49_3(glval) = FunctionAddress[String] : +# 49| v49_4(void) = Call[String] : func:r49_3, this:r49_1 +# 49| mu49_5(unknown) = ^CallSideEffect : ~m? +# 49| mu49_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r49_1 +# 50| r50_1(glval) = VariableAddress[x10] : +# 50| r50_2(glval) = FunctionAddress[~String] : +# 50| v50_3(void) = Call[~String] : func:r50_2, this:r50_1 +# 50| mu50_4(unknown) = ^CallSideEffect : ~m? +# 50| v50_5(void) = ^IndirectReadSideEffect[-1] : &:r50_1, ~m? +# 50| mu50_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r50_1 +# 50| r50_7(bool) = Constant[0] : +# 50| v50_8(void) = ConditionalBranch : r50_7 +#-----| False -> Block 12 +#-----| True (back edge) -> Block 11 + +# 52| Block 12 +# 52| r52_1(glval) = VariableAddress[x11] : +# 52| mu52_2(String) = Uninitialized[x11] : &:r52_1 +# 52| r52_3(glval) = FunctionAddress[String] : +# 52| v52_4(void) = Call[String] : func:r52_3, this:r52_1 +# 52| mu52_5(unknown) = ^CallSideEffect : ~m? +# 52| mu52_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r52_1 +# 53| r53_1(glval) = VariableAddress[x11] : +# 53| r53_2(glval) = FunctionAddress[~String] : +# 53| v53_3(void) = Call[~String] : func:r53_2, this:r53_1 +# 53| mu53_4(unknown) = ^CallSideEffect : ~m? +# 53| v53_5(void) = ^IndirectReadSideEffect[-1] : &:r53_1, ~m? +# 53| mu53_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r53_1 +# 53| r53_7(bool) = Constant[0] : +# 53| v53_8(void) = ConditionalBranch : r53_7 +#-----| False -> Block 13 +#-----| True (back edge) -> Block 12 + +# 55| Block 13 +# 55| r55_1(glval) = VariableAddress[x12] : +# 55| mu55_2(String) = Uninitialized[x12] : &:r55_1 +# 55| r55_3(glval) = FunctionAddress[String] : +# 55| v55_4(void) = Call[String] : func:r55_3, this:r55_1 +# 55| mu55_5(unknown) = ^CallSideEffect : ~m? +# 55| mu55_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r55_1 +# 56| r56_1(glval) = VariableAddress[x12] : +# 56| r56_2(glval) = FunctionAddress[~String] : +# 56| v56_3(void) = Call[~String] : func:r56_2, this:r56_1 +# 56| mu56_4(unknown) = ^CallSideEffect : ~m? +# 56| v56_5(void) = ^IndirectReadSideEffect[-1] : &:r56_1, ~m? +# 56| mu56_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r56_1 +# 56| r56_7(bool) = Constant[0] : +# 56| v56_8(void) = ConditionalBranch : r56_7 +#-----| False -> Block 14 +#-----| True (back edge) -> Block 13 + +# 58| Block 14 +# 58| r58_1(glval) = VariableAddress[x13] : +# 58| mu58_2(String) = Uninitialized[x13] : &:r58_1 +# 58| r58_3(glval) = FunctionAddress[String] : +# 58| v58_4(void) = Call[String] : func:r58_3, this:r58_1 +# 58| mu58_5(unknown) = ^CallSideEffect : ~m? +# 58| mu58_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r58_1 +# 59| r59_1(glval) = VariableAddress[x13] : +# 59| r59_2(glval) = FunctionAddress[~String] : +# 59| v59_3(void) = Call[~String] : func:r59_2, this:r59_1 +# 59| mu59_4(unknown) = ^CallSideEffect : ~m? +# 59| v59_5(void) = ^IndirectReadSideEffect[-1] : &:r59_1, ~m? +# 59| mu59_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r59_1 +# 59| r59_7(bool) = Constant[0] : +# 59| v59_8(void) = ConditionalBranch : r59_7 +#-----| False -> Block 15 +#-----| True (back edge) -> Block 14 + +# 61| Block 15 +# 61| r61_1(glval) = VariableAddress[x14] : +# 61| mu61_2(String) = Uninitialized[x14] : &:r61_1 +# 61| r61_3(glval) = FunctionAddress[String] : +# 61| v61_4(void) = Call[String] : func:r61_3, this:r61_1 +# 61| mu61_5(unknown) = ^CallSideEffect : ~m? +# 61| mu61_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r61_1 +# 62| r62_1(glval) = VariableAddress[x14] : +# 62| r62_2(glval) = FunctionAddress[~String] : +# 62| v62_3(void) = Call[~String] : func:r62_2, this:r62_1 +# 62| mu62_4(unknown) = ^CallSideEffect : ~m? +# 62| v62_5(void) = ^IndirectReadSideEffect[-1] : &:r62_1, ~m? +# 62| mu62_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r62_1 +# 62| r62_7(bool) = Constant[0] : +# 62| v62_8(void) = ConditionalBranch : r62_7 +#-----| False -> Block 16 +#-----| True (back edge) -> Block 15 + +# 64| Block 16 +# 64| r64_1(glval) = VariableAddress[x15] : +# 64| mu64_2(String) = Uninitialized[x15] : &:r64_1 +# 64| r64_3(glval) = FunctionAddress[String] : +# 64| v64_4(void) = Call[String] : func:r64_3, this:r64_1 +# 64| mu64_5(unknown) = ^CallSideEffect : ~m? +# 64| mu64_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r64_1 +# 65| r65_1(glval) = VariableAddress[x15] : +# 65| r65_2(glval) = FunctionAddress[~String] : +# 65| v65_3(void) = Call[~String] : func:r65_2, this:r65_1 +# 65| mu65_4(unknown) = ^CallSideEffect : ~m? +# 65| v65_5(void) = ^IndirectReadSideEffect[-1] : &:r65_1, ~m? +# 65| mu65_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r65_1 +# 65| r65_7(bool) = Constant[0] : +# 65| v65_8(void) = ConditionalBranch : r65_7 +#-----| False -> Block 17 +#-----| True (back edge) -> Block 16 + +# 67| Block 17 +# 67| r67_1(glval) = VariableAddress[x16] : +# 67| mu67_2(String) = Uninitialized[x16] : &:r67_1 +# 67| r67_3(glval) = FunctionAddress[String] : +# 67| v67_4(void) = Call[String] : func:r67_3, this:r67_1 +# 67| mu67_5(unknown) = ^CallSideEffect : ~m? +# 67| mu67_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r67_1 +# 68| r68_1(glval) = VariableAddress[x16] : +# 68| r68_2(glval) = FunctionAddress[~String] : +# 68| v68_3(void) = Call[~String] : func:r68_2, this:r68_1 +# 68| mu68_4(unknown) = ^CallSideEffect : ~m? +# 68| v68_5(void) = ^IndirectReadSideEffect[-1] : &:r68_1, ~m? +# 68| mu68_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r68_1 +# 68| r68_7(bool) = Constant[0] : +# 68| v68_8(void) = ConditionalBranch : r68_7 +#-----| False -> Block 18 +#-----| True (back edge) -> Block 17 + +# 70| Block 18 +# 70| r70_1(glval) = VariableAddress[x17] : +# 70| mu70_2(String) = Uninitialized[x17] : &:r70_1 +# 70| r70_3(glval) = FunctionAddress[String] : +# 70| v70_4(void) = Call[String] : func:r70_3, this:r70_1 +# 70| mu70_5(unknown) = ^CallSideEffect : ~m? +# 70| mu70_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r70_1 +# 71| r71_1(glval) = VariableAddress[x17] : +# 71| r71_2(glval) = FunctionAddress[~String] : +# 71| v71_3(void) = Call[~String] : func:r71_2, this:r71_1 +# 71| mu71_4(unknown) = ^CallSideEffect : ~m? +# 71| v71_5(void) = ^IndirectReadSideEffect[-1] : &:r71_1, ~m? +# 71| mu71_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r71_1 +# 71| r71_7(bool) = Constant[0] : +# 71| v71_8(void) = ConditionalBranch : r71_7 +#-----| False -> Block 19 +#-----| True (back edge) -> Block 18 + +# 73| Block 19 +# 73| r73_1(glval) = VariableAddress[x18] : +# 73| mu73_2(String) = Uninitialized[x18] : &:r73_1 +# 73| r73_3(glval) = FunctionAddress[String] : +# 73| v73_4(void) = Call[String] : func:r73_3, this:r73_1 +# 73| mu73_5(unknown) = ^CallSideEffect : ~m? +# 73| mu73_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r73_1 +# 74| r74_1(glval) = VariableAddress[x18] : +# 74| r74_2(glval) = FunctionAddress[~String] : +# 74| v74_3(void) = Call[~String] : func:r74_2, this:r74_1 +# 74| mu74_4(unknown) = ^CallSideEffect : ~m? +# 74| v74_5(void) = ^IndirectReadSideEffect[-1] : &:r74_1, ~m? +# 74| mu74_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r74_1 +# 74| r74_7(bool) = Constant[0] : +# 74| v74_8(void) = ConditionalBranch : r74_7 +#-----| False -> Block 20 +#-----| True (back edge) -> Block 19 + +# 76| Block 20 +# 76| r76_1(glval) = VariableAddress[x19] : +# 76| mu76_2(String) = Uninitialized[x19] : &:r76_1 +# 76| r76_3(glval) = FunctionAddress[String] : +# 76| v76_4(void) = Call[String] : func:r76_3, this:r76_1 +# 76| mu76_5(unknown) = ^CallSideEffect : ~m? +# 76| mu76_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r76_1 +# 77| r77_1(glval) = VariableAddress[x19] : +# 77| r77_2(glval) = FunctionAddress[~String] : +# 77| v77_3(void) = Call[~String] : func:r77_2, this:r77_1 +# 77| mu77_4(unknown) = ^CallSideEffect : ~m? +# 77| v77_5(void) = ^IndirectReadSideEffect[-1] : &:r77_1, ~m? +# 77| mu77_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r77_1 +# 77| r77_7(bool) = Constant[0] : +# 77| v77_8(void) = ConditionalBranch : r77_7 +#-----| False -> Block 21 +#-----| True (back edge) -> Block 20 + +# 79| Block 21 +# 79| r79_1(glval) = VariableAddress[x20] : +# 79| mu79_2(String) = Uninitialized[x20] : &:r79_1 +# 79| r79_3(glval) = FunctionAddress[String] : +# 79| v79_4(void) = Call[String] : func:r79_3, this:r79_1 +# 79| mu79_5(unknown) = ^CallSideEffect : ~m? +# 79| mu79_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r79_1 +# 80| r80_1(glval) = VariableAddress[x20] : +# 80| r80_2(glval) = FunctionAddress[~String] : +# 80| v80_3(void) = Call[~String] : func:r80_2, this:r80_1 +# 80| mu80_4(unknown) = ^CallSideEffect : ~m? +# 80| v80_5(void) = ^IndirectReadSideEffect[-1] : &:r80_1, ~m? +# 80| mu80_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r80_1 +# 80| r80_7(bool) = Constant[0] : +# 80| v80_8(void) = ConditionalBranch : r80_7 +#-----| False -> Block 22 +#-----| True (back edge) -> Block 21 + +# 82| Block 22 +# 82| r82_1(glval) = VariableAddress[x21] : +# 82| mu82_2(String) = Uninitialized[x21] : &:r82_1 +# 82| r82_3(glval) = FunctionAddress[String] : +# 82| v82_4(void) = Call[String] : func:r82_3, this:r82_1 +# 82| mu82_5(unknown) = ^CallSideEffect : ~m? +# 82| mu82_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r82_1 +# 83| r83_1(glval) = VariableAddress[x21] : +# 83| r83_2(glval) = FunctionAddress[~String] : +# 83| v83_3(void) = Call[~String] : func:r83_2, this:r83_1 +# 83| mu83_4(unknown) = ^CallSideEffect : ~m? +# 83| v83_5(void) = ^IndirectReadSideEffect[-1] : &:r83_1, ~m? +# 83| mu83_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r83_1 +# 83| r83_7(bool) = Constant[0] : +# 83| v83_8(void) = ConditionalBranch : r83_7 +#-----| False -> Block 23 +#-----| True (back edge) -> Block 22 + +# 85| Block 23 +# 85| r85_1(glval) = VariableAddress[x22] : +# 85| mu85_2(String) = Uninitialized[x22] : &:r85_1 +# 85| r85_3(glval) = FunctionAddress[String] : +# 85| v85_4(void) = Call[String] : func:r85_3, this:r85_1 +# 85| mu85_5(unknown) = ^CallSideEffect : ~m? +# 85| mu85_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r85_1 +# 86| r86_1(glval) = VariableAddress[x22] : +# 86| r86_2(glval) = FunctionAddress[~String] : +# 86| v86_3(void) = Call[~String] : func:r86_2, this:r86_1 +# 86| mu86_4(unknown) = ^CallSideEffect : ~m? +# 86| v86_5(void) = ^IndirectReadSideEffect[-1] : &:r86_1, ~m? +# 86| mu86_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r86_1 +# 86| r86_7(bool) = Constant[0] : +# 86| v86_8(void) = ConditionalBranch : r86_7 +#-----| False -> Block 24 +#-----| True (back edge) -> Block 23 + +# 88| Block 24 +# 88| r88_1(glval) = VariableAddress[x23] : +# 88| mu88_2(String) = Uninitialized[x23] : &:r88_1 +# 88| r88_3(glval) = FunctionAddress[String] : +# 88| v88_4(void) = Call[String] : func:r88_3, this:r88_1 +# 88| mu88_5(unknown) = ^CallSideEffect : ~m? +# 88| mu88_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r88_1 +# 89| r89_1(glval) = VariableAddress[x23] : +# 89| r89_2(glval) = FunctionAddress[~String] : +# 89| v89_3(void) = Call[~String] : func:r89_2, this:r89_1 +# 89| mu89_4(unknown) = ^CallSideEffect : ~m? +# 89| v89_5(void) = ^IndirectReadSideEffect[-1] : &:r89_1, ~m? +# 89| mu89_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r89_1 +# 89| r89_7(bool) = Constant[0] : +# 89| v89_8(void) = ConditionalBranch : r89_7 +#-----| False -> Block 25 +#-----| True (back edge) -> Block 24 + +# 91| Block 25 +# 91| r91_1(glval) = VariableAddress[x24] : +# 91| mu91_2(String) = Uninitialized[x24] : &:r91_1 +# 91| r91_3(glval) = FunctionAddress[String] : +# 91| v91_4(void) = Call[String] : func:r91_3, this:r91_1 +# 91| mu91_5(unknown) = ^CallSideEffect : ~m? +# 91| mu91_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r91_1 +# 92| r92_1(glval) = VariableAddress[x24] : +# 92| r92_2(glval) = FunctionAddress[~String] : +# 92| v92_3(void) = Call[~String] : func:r92_2, this:r92_1 +# 92| mu92_4(unknown) = ^CallSideEffect : ~m? +# 92| v92_5(void) = ^IndirectReadSideEffect[-1] : &:r92_1, ~m? +# 92| mu92_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r92_1 +# 92| r92_7(bool) = Constant[0] : +# 92| v92_8(void) = ConditionalBranch : r92_7 +#-----| False -> Block 26 +#-----| True (back edge) -> Block 25 + +# 94| Block 26 +# 94| r94_1(glval) = VariableAddress[x25] : +# 94| mu94_2(String) = Uninitialized[x25] : &:r94_1 +# 94| r94_3(glval) = FunctionAddress[String] : +# 94| v94_4(void) = Call[String] : func:r94_3, this:r94_1 +# 94| mu94_5(unknown) = ^CallSideEffect : ~m? +# 94| mu94_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r94_1 +# 95| r95_1(glval) = VariableAddress[x25] : +# 95| r95_2(glval) = FunctionAddress[~String] : +# 95| v95_3(void) = Call[~String] : func:r95_2, this:r95_1 +# 95| mu95_4(unknown) = ^CallSideEffect : ~m? +# 95| v95_5(void) = ^IndirectReadSideEffect[-1] : &:r95_1, ~m? +# 95| mu95_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r95_1 +# 95| r95_7(bool) = Constant[0] : +# 95| v95_8(void) = ConditionalBranch : r95_7 +#-----| False -> Block 27 +#-----| True (back edge) -> Block 26 + +# 97| Block 27 +# 97| r97_1(glval) = VariableAddress[x26] : +# 97| mu97_2(String) = Uninitialized[x26] : &:r97_1 +# 97| r97_3(glval) = FunctionAddress[String] : +# 97| v97_4(void) = Call[String] : func:r97_3, this:r97_1 +# 97| mu97_5(unknown) = ^CallSideEffect : ~m? +# 97| mu97_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r97_1 +# 98| r98_1(glval) = VariableAddress[x26] : +# 98| r98_2(glval) = FunctionAddress[~String] : +# 98| v98_3(void) = Call[~String] : func:r98_2, this:r98_1 +# 98| mu98_4(unknown) = ^CallSideEffect : ~m? +# 98| v98_5(void) = ^IndirectReadSideEffect[-1] : &:r98_1, ~m? +# 98| mu98_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r98_1 +# 98| r98_7(bool) = Constant[0] : +# 98| v98_8(void) = ConditionalBranch : r98_7 +#-----| False -> Block 28 +#-----| True (back edge) -> Block 27 + +# 100| Block 28 +# 100| r100_1(glval) = VariableAddress[x27] : +# 100| mu100_2(String) = Uninitialized[x27] : &:r100_1 +# 100| r100_3(glval) = FunctionAddress[String] : +# 100| v100_4(void) = Call[String] : func:r100_3, this:r100_1 +# 100| mu100_5(unknown) = ^CallSideEffect : ~m? +# 100| mu100_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r100_1 +# 101| r101_1(glval) = VariableAddress[x27] : +# 101| r101_2(glval) = FunctionAddress[~String] : +# 101| v101_3(void) = Call[~String] : func:r101_2, this:r101_1 +# 101| mu101_4(unknown) = ^CallSideEffect : ~m? +# 101| v101_5(void) = ^IndirectReadSideEffect[-1] : &:r101_1, ~m? +# 101| mu101_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r101_1 +# 101| r101_7(bool) = Constant[0] : +# 101| v101_8(void) = ConditionalBranch : r101_7 +#-----| False -> Block 29 +#-----| True (back edge) -> Block 28 + +# 103| Block 29 +# 103| r103_1(glval) = VariableAddress[x28] : +# 103| mu103_2(String) = Uninitialized[x28] : &:r103_1 +# 103| r103_3(glval) = FunctionAddress[String] : +# 103| v103_4(void) = Call[String] : func:r103_3, this:r103_1 +# 103| mu103_5(unknown) = ^CallSideEffect : ~m? +# 103| mu103_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r103_1 +# 104| r104_1(glval) = VariableAddress[x28] : +# 104| r104_2(glval) = FunctionAddress[~String] : +# 104| v104_3(void) = Call[~String] : func:r104_2, this:r104_1 +# 104| mu104_4(unknown) = ^CallSideEffect : ~m? +# 104| v104_5(void) = ^IndirectReadSideEffect[-1] : &:r104_1, ~m? +# 104| mu104_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r104_1 +# 104| r104_7(bool) = Constant[0] : +# 104| v104_8(void) = ConditionalBranch : r104_7 +#-----| False -> Block 30 +#-----| True (back edge) -> Block 29 + +# 106| Block 30 +# 106| r106_1(glval) = VariableAddress[x29] : +# 106| mu106_2(String) = Uninitialized[x29] : &:r106_1 +# 106| r106_3(glval) = FunctionAddress[String] : +# 106| v106_4(void) = Call[String] : func:r106_3, this:r106_1 +# 106| mu106_5(unknown) = ^CallSideEffect : ~m? +# 106| mu106_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r106_1 +# 107| r107_1(glval) = VariableAddress[x29] : +# 107| r107_2(glval) = FunctionAddress[~String] : +# 107| v107_3(void) = Call[~String] : func:r107_2, this:r107_1 +# 107| mu107_4(unknown) = ^CallSideEffect : ~m? +# 107| v107_5(void) = ^IndirectReadSideEffect[-1] : &:r107_1, ~m? +# 107| mu107_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r107_1 +# 107| r107_7(bool) = Constant[0] : +# 107| v107_8(void) = ConditionalBranch : r107_7 +#-----| False -> Block 31 +#-----| True (back edge) -> Block 30 + +# 109| Block 31 +# 109| r109_1(glval) = VariableAddress[x30] : +# 109| mu109_2(String) = Uninitialized[x30] : &:r109_1 +# 109| r109_3(glval) = FunctionAddress[String] : +# 109| v109_4(void) = Call[String] : func:r109_3, this:r109_1 +# 109| mu109_5(unknown) = ^CallSideEffect : ~m? +# 109| mu109_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r109_1 +# 110| r110_1(glval) = VariableAddress[x30] : +# 110| r110_2(glval) = FunctionAddress[~String] : +# 110| v110_3(void) = Call[~String] : func:r110_2, this:r110_1 +# 110| mu110_4(unknown) = ^CallSideEffect : ~m? +# 110| v110_5(void) = ^IndirectReadSideEffect[-1] : &:r110_1, ~m? +# 110| mu110_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r110_1 +# 110| r110_7(bool) = Constant[0] : +# 110| v110_8(void) = ConditionalBranch : r110_7 +#-----| False -> Block 32 +#-----| True (back edge) -> Block 31 + +# 112| Block 32 +# 112| r112_1(glval) = VariableAddress[x31] : +# 112| mu112_2(String) = Uninitialized[x31] : &:r112_1 +# 112| r112_3(glval) = FunctionAddress[String] : +# 112| v112_4(void) = Call[String] : func:r112_3, this:r112_1 +# 112| mu112_5(unknown) = ^CallSideEffect : ~m? +# 112| mu112_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r112_1 +# 113| r113_1(glval) = VariableAddress[x31] : +# 113| r113_2(glval) = FunctionAddress[~String] : +# 113| v113_3(void) = Call[~String] : func:r113_2, this:r113_1 +# 113| mu113_4(unknown) = ^CallSideEffect : ~m? +# 113| v113_5(void) = ^IndirectReadSideEffect[-1] : &:r113_1, ~m? +# 113| mu113_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r113_1 +# 113| r113_7(bool) = Constant[0] : +# 113| v113_8(void) = ConditionalBranch : r113_7 +#-----| False -> Block 33 +#-----| True (back edge) -> Block 32 + +# 115| Block 33 +# 115| r115_1(glval) = VariableAddress[x32] : +# 115| mu115_2(String) = Uninitialized[x32] : &:r115_1 +# 115| r115_3(glval) = FunctionAddress[String] : +# 115| v115_4(void) = Call[String] : func:r115_3, this:r115_1 +# 115| mu115_5(unknown) = ^CallSideEffect : ~m? +# 115| mu115_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r115_1 +# 116| r116_1(glval) = VariableAddress[x32] : +# 116| r116_2(glval) = FunctionAddress[~String] : +# 116| v116_3(void) = Call[~String] : func:r116_2, this:r116_1 +# 116| mu116_4(unknown) = ^CallSideEffect : ~m? +# 116| v116_5(void) = ^IndirectReadSideEffect[-1] : &:r116_1, ~m? +# 116| mu116_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r116_1 +# 116| r116_7(bool) = Constant[0] : +# 116| v116_8(void) = ConditionalBranch : r116_7 +#-----| False -> Block 34 +#-----| True (back edge) -> Block 33 + +# 118| Block 34 +# 118| r118_1(glval) = VariableAddress[x33] : +# 118| mu118_2(String) = Uninitialized[x33] : &:r118_1 +# 118| r118_3(glval) = FunctionAddress[String] : +# 118| v118_4(void) = Call[String] : func:r118_3, this:r118_1 +# 118| mu118_5(unknown) = ^CallSideEffect : ~m? +# 118| mu118_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r118_1 +# 119| r119_1(glval) = VariableAddress[x33] : +# 119| r119_2(glval) = FunctionAddress[~String] : +# 119| v119_3(void) = Call[~String] : func:r119_2, this:r119_1 +# 119| mu119_4(unknown) = ^CallSideEffect : ~m? +# 119| v119_5(void) = ^IndirectReadSideEffect[-1] : &:r119_1, ~m? +# 119| mu119_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r119_1 +# 119| r119_7(bool) = Constant[0] : +# 119| v119_8(void) = ConditionalBranch : r119_7 +#-----| False -> Block 35 +#-----| True (back edge) -> Block 34 + +# 121| Block 35 +# 121| r121_1(glval) = VariableAddress[x34] : +# 121| mu121_2(String) = Uninitialized[x34] : &:r121_1 +# 121| r121_3(glval) = FunctionAddress[String] : +# 121| v121_4(void) = Call[String] : func:r121_3, this:r121_1 +# 121| mu121_5(unknown) = ^CallSideEffect : ~m? +# 121| mu121_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r121_1 +# 122| r122_1(glval) = VariableAddress[x34] : +# 122| r122_2(glval) = FunctionAddress[~String] : +# 122| v122_3(void) = Call[~String] : func:r122_2, this:r122_1 +# 122| mu122_4(unknown) = ^CallSideEffect : ~m? +# 122| v122_5(void) = ^IndirectReadSideEffect[-1] : &:r122_1, ~m? +# 122| mu122_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r122_1 +# 122| r122_7(bool) = Constant[0] : +# 122| v122_8(void) = ConditionalBranch : r122_7 +#-----| False -> Block 36 +#-----| True (back edge) -> Block 35 + +# 124| Block 36 +# 124| r124_1(glval) = VariableAddress[x35] : +# 124| mu124_2(String) = Uninitialized[x35] : &:r124_1 +# 124| r124_3(glval) = FunctionAddress[String] : +# 124| v124_4(void) = Call[String] : func:r124_3, this:r124_1 +# 124| mu124_5(unknown) = ^CallSideEffect : ~m? +# 124| mu124_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r124_1 +# 125| r125_1(glval) = VariableAddress[x35] : +# 125| r125_2(glval) = FunctionAddress[~String] : +# 125| v125_3(void) = Call[~String] : func:r125_2, this:r125_1 +# 125| mu125_4(unknown) = ^CallSideEffect : ~m? +# 125| v125_5(void) = ^IndirectReadSideEffect[-1] : &:r125_1, ~m? +# 125| mu125_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r125_1 +# 125| r125_7(bool) = Constant[0] : +# 125| v125_8(void) = ConditionalBranch : r125_7 +#-----| False -> Block 37 +#-----| True (back edge) -> Block 36 + +# 127| Block 37 +# 127| r127_1(glval) = VariableAddress[x36] : +# 127| mu127_2(String) = Uninitialized[x36] : &:r127_1 +# 127| r127_3(glval) = FunctionAddress[String] : +# 127| v127_4(void) = Call[String] : func:r127_3, this:r127_1 +# 127| mu127_5(unknown) = ^CallSideEffect : ~m? +# 127| mu127_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r127_1 +# 128| r128_1(glval) = VariableAddress[x36] : +# 128| r128_2(glval) = FunctionAddress[~String] : +# 128| v128_3(void) = Call[~String] : func:r128_2, this:r128_1 +# 128| mu128_4(unknown) = ^CallSideEffect : ~m? +# 128| v128_5(void) = ^IndirectReadSideEffect[-1] : &:r128_1, ~m? +# 128| mu128_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r128_1 +# 128| r128_7(bool) = Constant[0] : +# 128| v128_8(void) = ConditionalBranch : r128_7 +#-----| False -> Block 38 +#-----| True (back edge) -> Block 37 + +# 130| Block 38 +# 130| r130_1(glval) = VariableAddress[x37] : +# 130| mu130_2(String) = Uninitialized[x37] : &:r130_1 +# 130| r130_3(glval) = FunctionAddress[String] : +# 130| v130_4(void) = Call[String] : func:r130_3, this:r130_1 +# 130| mu130_5(unknown) = ^CallSideEffect : ~m? +# 130| mu130_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r130_1 +# 131| r131_1(glval) = VariableAddress[x37] : +# 131| r131_2(glval) = FunctionAddress[~String] : +# 131| v131_3(void) = Call[~String] : func:r131_2, this:r131_1 +# 131| mu131_4(unknown) = ^CallSideEffect : ~m? +# 131| v131_5(void) = ^IndirectReadSideEffect[-1] : &:r131_1, ~m? +# 131| mu131_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r131_1 +# 131| r131_7(bool) = Constant[0] : +# 131| v131_8(void) = ConditionalBranch : r131_7 +#-----| False -> Block 39 +#-----| True (back edge) -> Block 38 + +# 133| Block 39 +# 133| r133_1(glval) = VariableAddress[x38] : +# 133| mu133_2(String) = Uninitialized[x38] : &:r133_1 +# 133| r133_3(glval) = FunctionAddress[String] : +# 133| v133_4(void) = Call[String] : func:r133_3, this:r133_1 +# 133| mu133_5(unknown) = ^CallSideEffect : ~m? +# 133| mu133_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r133_1 +# 134| r134_1(glval) = VariableAddress[x38] : +# 134| r134_2(glval) = FunctionAddress[~String] : +# 134| v134_3(void) = Call[~String] : func:r134_2, this:r134_1 +# 134| mu134_4(unknown) = ^CallSideEffect : ~m? +# 134| v134_5(void) = ^IndirectReadSideEffect[-1] : &:r134_1, ~m? +# 134| mu134_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r134_1 +# 134| r134_7(bool) = Constant[0] : +# 134| v134_8(void) = ConditionalBranch : r134_7 +#-----| False -> Block 40 +#-----| True (back edge) -> Block 39 + +# 136| Block 40 +# 136| r136_1(glval) = VariableAddress[x39] : +# 136| mu136_2(String) = Uninitialized[x39] : &:r136_1 +# 136| r136_3(glval) = FunctionAddress[String] : +# 136| v136_4(void) = Call[String] : func:r136_3, this:r136_1 +# 136| mu136_5(unknown) = ^CallSideEffect : ~m? +# 136| mu136_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r136_1 +# 137| r137_1(glval) = VariableAddress[x39] : +# 137| r137_2(glval) = FunctionAddress[~String] : +# 137| v137_3(void) = Call[~String] : func:r137_2, this:r137_1 +# 137| mu137_4(unknown) = ^CallSideEffect : ~m? +# 137| v137_5(void) = ^IndirectReadSideEffect[-1] : &:r137_1, ~m? +# 137| mu137_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r137_1 +# 137| r137_7(bool) = Constant[0] : +# 137| v137_8(void) = ConditionalBranch : r137_7 +#-----| False -> Block 41 +#-----| True (back edge) -> Block 40 + +# 139| Block 41 +# 139| r139_1(glval) = VariableAddress[x40] : +# 139| mu139_2(String) = Uninitialized[x40] : &:r139_1 +# 139| r139_3(glval) = FunctionAddress[String] : +# 139| v139_4(void) = Call[String] : func:r139_3, this:r139_1 +# 139| mu139_5(unknown) = ^CallSideEffect : ~m? +# 139| mu139_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r139_1 +# 140| r140_1(glval) = VariableAddress[x40] : +# 140| r140_2(glval) = FunctionAddress[~String] : +# 140| v140_3(void) = Call[~String] : func:r140_2, this:r140_1 +# 140| mu140_4(unknown) = ^CallSideEffect : ~m? +# 140| v140_5(void) = ^IndirectReadSideEffect[-1] : &:r140_1, ~m? +# 140| mu140_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r140_1 +# 140| r140_7(bool) = Constant[0] : +# 140| v140_8(void) = ConditionalBranch : r140_7 +#-----| False -> Block 42 +#-----| True (back edge) -> Block 41 + +# 142| Block 42 +# 142| r142_1(glval) = VariableAddress[x41] : +# 142| mu142_2(String) = Uninitialized[x41] : &:r142_1 +# 142| r142_3(glval) = FunctionAddress[String] : +# 142| v142_4(void) = Call[String] : func:r142_3, this:r142_1 +# 142| mu142_5(unknown) = ^CallSideEffect : ~m? +# 142| mu142_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r142_1 +# 143| r143_1(glval) = VariableAddress[x41] : +# 143| r143_2(glval) = FunctionAddress[~String] : +# 143| v143_3(void) = Call[~String] : func:r143_2, this:r143_1 +# 143| mu143_4(unknown) = ^CallSideEffect : ~m? +# 143| v143_5(void) = ^IndirectReadSideEffect[-1] : &:r143_1, ~m? +# 143| mu143_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r143_1 +# 143| r143_7(bool) = Constant[0] : +# 143| v143_8(void) = ConditionalBranch : r143_7 +#-----| False -> Block 43 +#-----| True (back edge) -> Block 42 + +# 145| Block 43 +# 145| r145_1(glval) = VariableAddress[x42] : +# 145| mu145_2(String) = Uninitialized[x42] : &:r145_1 +# 145| r145_3(glval) = FunctionAddress[String] : +# 145| v145_4(void) = Call[String] : func:r145_3, this:r145_1 +# 145| mu145_5(unknown) = ^CallSideEffect : ~m? +# 145| mu145_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r145_1 +# 146| r146_1(glval) = VariableAddress[x42] : +# 146| r146_2(glval) = FunctionAddress[~String] : +# 146| v146_3(void) = Call[~String] : func:r146_2, this:r146_1 +# 146| mu146_4(unknown) = ^CallSideEffect : ~m? +# 146| v146_5(void) = ^IndirectReadSideEffect[-1] : &:r146_1, ~m? +# 146| mu146_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r146_1 +# 146| r146_7(bool) = Constant[0] : +# 146| v146_8(void) = ConditionalBranch : r146_7 +#-----| False -> Block 44 +#-----| True (back edge) -> Block 43 + +# 148| Block 44 +# 148| r148_1(glval) = VariableAddress[x43] : +# 148| mu148_2(String) = Uninitialized[x43] : &:r148_1 +# 148| r148_3(glval) = FunctionAddress[String] : +# 148| v148_4(void) = Call[String] : func:r148_3, this:r148_1 +# 148| mu148_5(unknown) = ^CallSideEffect : ~m? +# 148| mu148_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r148_1 +# 149| r149_1(glval) = VariableAddress[x43] : +# 149| r149_2(glval) = FunctionAddress[~String] : +# 149| v149_3(void) = Call[~String] : func:r149_2, this:r149_1 +# 149| mu149_4(unknown) = ^CallSideEffect : ~m? +# 149| v149_5(void) = ^IndirectReadSideEffect[-1] : &:r149_1, ~m? +# 149| mu149_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r149_1 +# 149| r149_7(bool) = Constant[0] : +# 149| v149_8(void) = ConditionalBranch : r149_7 +#-----| False -> Block 45 +#-----| True (back edge) -> Block 44 + +# 151| Block 45 +# 151| r151_1(glval) = VariableAddress[x44] : +# 151| mu151_2(String) = Uninitialized[x44] : &:r151_1 +# 151| r151_3(glval) = FunctionAddress[String] : +# 151| v151_4(void) = Call[String] : func:r151_3, this:r151_1 +# 151| mu151_5(unknown) = ^CallSideEffect : ~m? +# 151| mu151_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r151_1 +# 152| r152_1(glval) = VariableAddress[x44] : +# 152| r152_2(glval) = FunctionAddress[~String] : +# 152| v152_3(void) = Call[~String] : func:r152_2, this:r152_1 +# 152| mu152_4(unknown) = ^CallSideEffect : ~m? +# 152| v152_5(void) = ^IndirectReadSideEffect[-1] : &:r152_1, ~m? +# 152| mu152_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r152_1 +# 152| r152_7(bool) = Constant[0] : +# 152| v152_8(void) = ConditionalBranch : r152_7 +#-----| False -> Block 46 +#-----| True (back edge) -> Block 45 + +# 154| Block 46 +# 154| r154_1(glval) = VariableAddress[x45] : +# 154| mu154_2(String) = Uninitialized[x45] : &:r154_1 +# 154| r154_3(glval) = FunctionAddress[String] : +# 154| v154_4(void) = Call[String] : func:r154_3, this:r154_1 +# 154| mu154_5(unknown) = ^CallSideEffect : ~m? +# 154| mu154_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r154_1 +# 155| r155_1(glval) = VariableAddress[x45] : +# 155| r155_2(glval) = FunctionAddress[~String] : +# 155| v155_3(void) = Call[~String] : func:r155_2, this:r155_1 +# 155| mu155_4(unknown) = ^CallSideEffect : ~m? +# 155| v155_5(void) = ^IndirectReadSideEffect[-1] : &:r155_1, ~m? +# 155| mu155_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r155_1 +# 155| r155_7(bool) = Constant[0] : +# 155| v155_8(void) = ConditionalBranch : r155_7 +#-----| False -> Block 47 +#-----| True (back edge) -> Block 46 + +# 157| Block 47 +# 157| r157_1(glval) = VariableAddress[x46] : +# 157| mu157_2(String) = Uninitialized[x46] : &:r157_1 +# 157| r157_3(glval) = FunctionAddress[String] : +# 157| v157_4(void) = Call[String] : func:r157_3, this:r157_1 +# 157| mu157_5(unknown) = ^CallSideEffect : ~m? +# 157| mu157_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r157_1 +# 158| r158_1(glval) = VariableAddress[x46] : +# 158| r158_2(glval) = FunctionAddress[~String] : +# 158| v158_3(void) = Call[~String] : func:r158_2, this:r158_1 +# 158| mu158_4(unknown) = ^CallSideEffect : ~m? +# 158| v158_5(void) = ^IndirectReadSideEffect[-1] : &:r158_1, ~m? +# 158| mu158_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r158_1 +# 158| r158_7(bool) = Constant[0] : +# 158| v158_8(void) = ConditionalBranch : r158_7 +#-----| False -> Block 48 +#-----| True (back edge) -> Block 47 + +# 160| Block 48 +# 160| r160_1(glval) = VariableAddress[x47] : +# 160| mu160_2(String) = Uninitialized[x47] : &:r160_1 +# 160| r160_3(glval) = FunctionAddress[String] : +# 160| v160_4(void) = Call[String] : func:r160_3, this:r160_1 +# 160| mu160_5(unknown) = ^CallSideEffect : ~m? +# 160| mu160_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r160_1 +# 161| r161_1(glval) = VariableAddress[x47] : +# 161| r161_2(glval) = FunctionAddress[~String] : +# 161| v161_3(void) = Call[~String] : func:r161_2, this:r161_1 +# 161| mu161_4(unknown) = ^CallSideEffect : ~m? +# 161| v161_5(void) = ^IndirectReadSideEffect[-1] : &:r161_1, ~m? +# 161| mu161_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r161_1 +# 161| r161_7(bool) = Constant[0] : +# 161| v161_8(void) = ConditionalBranch : r161_7 +#-----| False -> Block 49 +#-----| True (back edge) -> Block 48 + +# 163| Block 49 +# 163| r163_1(glval) = VariableAddress[x48] : +# 163| mu163_2(String) = Uninitialized[x48] : &:r163_1 +# 163| r163_3(glval) = FunctionAddress[String] : +# 163| v163_4(void) = Call[String] : func:r163_3, this:r163_1 +# 163| mu163_5(unknown) = ^CallSideEffect : ~m? +# 163| mu163_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r163_1 +# 164| r164_1(glval) = VariableAddress[x48] : +# 164| r164_2(glval) = FunctionAddress[~String] : +# 164| v164_3(void) = Call[~String] : func:r164_2, this:r164_1 +# 164| mu164_4(unknown) = ^CallSideEffect : ~m? +# 164| v164_5(void) = ^IndirectReadSideEffect[-1] : &:r164_1, ~m? +# 164| mu164_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r164_1 +# 164| r164_7(bool) = Constant[0] : +# 164| v164_8(void) = ConditionalBranch : r164_7 +#-----| False -> Block 50 +#-----| True (back edge) -> Block 49 + +# 166| Block 50 +# 166| r166_1(glval) = VariableAddress[x49] : +# 166| mu166_2(String) = Uninitialized[x49] : &:r166_1 +# 166| r166_3(glval) = FunctionAddress[String] : +# 166| v166_4(void) = Call[String] : func:r166_3, this:r166_1 +# 166| mu166_5(unknown) = ^CallSideEffect : ~m? +# 166| mu166_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r166_1 +# 167| r167_1(glval) = VariableAddress[x49] : +# 167| r167_2(glval) = FunctionAddress[~String] : +# 167| v167_3(void) = Call[~String] : func:r167_2, this:r167_1 +# 167| mu167_4(unknown) = ^CallSideEffect : ~m? +# 167| v167_5(void) = ^IndirectReadSideEffect[-1] : &:r167_1, ~m? +# 167| mu167_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r167_1 +# 167| r167_7(bool) = Constant[0] : +# 167| v167_8(void) = ConditionalBranch : r167_7 +#-----| False -> Block 51 +#-----| True (back edge) -> Block 50 + +# 169| Block 51 +# 169| r169_1(glval) = VariableAddress[x50] : +# 169| mu169_2(String) = Uninitialized[x50] : &:r169_1 +# 169| r169_3(glval) = FunctionAddress[String] : +# 169| v169_4(void) = Call[String] : func:r169_3, this:r169_1 +# 169| mu169_5(unknown) = ^CallSideEffect : ~m? +# 169| mu169_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r169_1 +# 170| r170_1(glval) = VariableAddress[x50] : +# 170| r170_2(glval) = FunctionAddress[~String] : +# 170| v170_3(void) = Call[~String] : func:r170_2, this:r170_1 +# 170| mu170_4(unknown) = ^CallSideEffect : ~m? +# 170| v170_5(void) = ^IndirectReadSideEffect[-1] : &:r170_1, ~m? +# 170| mu170_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r170_1 +# 170| r170_7(bool) = Constant[0] : +# 170| v170_8(void) = ConditionalBranch : r170_7 +#-----| False -> Block 52 +#-----| True (back edge) -> Block 51 + +# 172| Block 52 +# 172| r172_1(glval) = VariableAddress[x51] : +# 172| mu172_2(String) = Uninitialized[x51] : &:r172_1 +# 172| r172_3(glval) = FunctionAddress[String] : +# 172| v172_4(void) = Call[String] : func:r172_3, this:r172_1 +# 172| mu172_5(unknown) = ^CallSideEffect : ~m? +# 172| mu172_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r172_1 +# 173| r173_1(glval) = VariableAddress[x51] : +# 173| r173_2(glval) = FunctionAddress[~String] : +# 173| v173_3(void) = Call[~String] : func:r173_2, this:r173_1 +# 173| mu173_4(unknown) = ^CallSideEffect : ~m? +# 173| v173_5(void) = ^IndirectReadSideEffect[-1] : &:r173_1, ~m? +# 173| mu173_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r173_1 +# 173| r173_7(bool) = Constant[0] : +# 173| v173_8(void) = ConditionalBranch : r173_7 +#-----| False -> Block 53 +#-----| True (back edge) -> Block 52 + +# 175| Block 53 +# 175| r175_1(glval) = VariableAddress[x52] : +# 175| mu175_2(String) = Uninitialized[x52] : &:r175_1 +# 175| r175_3(glval) = FunctionAddress[String] : +# 175| v175_4(void) = Call[String] : func:r175_3, this:r175_1 +# 175| mu175_5(unknown) = ^CallSideEffect : ~m? +# 175| mu175_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r175_1 +# 176| r176_1(glval) = VariableAddress[x52] : +# 176| r176_2(glval) = FunctionAddress[~String] : +# 176| v176_3(void) = Call[~String] : func:r176_2, this:r176_1 +# 176| mu176_4(unknown) = ^CallSideEffect : ~m? +# 176| v176_5(void) = ^IndirectReadSideEffect[-1] : &:r176_1, ~m? +# 176| mu176_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r176_1 +# 176| r176_7(bool) = Constant[0] : +# 176| v176_8(void) = ConditionalBranch : r176_7 +#-----| False -> Block 54 +#-----| True (back edge) -> Block 53 + +# 178| Block 54 +# 178| r178_1(glval) = VariableAddress[x53] : +# 178| mu178_2(String) = Uninitialized[x53] : &:r178_1 +# 178| r178_3(glval) = FunctionAddress[String] : +# 178| v178_4(void) = Call[String] : func:r178_3, this:r178_1 +# 178| mu178_5(unknown) = ^CallSideEffect : ~m? +# 178| mu178_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r178_1 +# 179| r179_1(glval) = VariableAddress[x53] : +# 179| r179_2(glval) = FunctionAddress[~String] : +# 179| v179_3(void) = Call[~String] : func:r179_2, this:r179_1 +# 179| mu179_4(unknown) = ^CallSideEffect : ~m? +# 179| v179_5(void) = ^IndirectReadSideEffect[-1] : &:r179_1, ~m? +# 179| mu179_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r179_1 +# 179| r179_7(bool) = Constant[0] : +# 179| v179_8(void) = ConditionalBranch : r179_7 +#-----| False -> Block 55 +#-----| True (back edge) -> Block 54 + +# 181| Block 55 +# 181| r181_1(glval) = VariableAddress[x54] : +# 181| mu181_2(String) = Uninitialized[x54] : &:r181_1 +# 181| r181_3(glval) = FunctionAddress[String] : +# 181| v181_4(void) = Call[String] : func:r181_3, this:r181_1 +# 181| mu181_5(unknown) = ^CallSideEffect : ~m? +# 181| mu181_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r181_1 +# 182| r182_1(glval) = VariableAddress[x54] : +# 182| r182_2(glval) = FunctionAddress[~String] : +# 182| v182_3(void) = Call[~String] : func:r182_2, this:r182_1 +# 182| mu182_4(unknown) = ^CallSideEffect : ~m? +# 182| v182_5(void) = ^IndirectReadSideEffect[-1] : &:r182_1, ~m? +# 182| mu182_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r182_1 +# 182| r182_7(bool) = Constant[0] : +# 182| v182_8(void) = ConditionalBranch : r182_7 +#-----| False -> Block 56 +#-----| True (back edge) -> Block 55 + +# 184| Block 56 +# 184| r184_1(glval) = VariableAddress[x55] : +# 184| mu184_2(String) = Uninitialized[x55] : &:r184_1 +# 184| r184_3(glval) = FunctionAddress[String] : +# 184| v184_4(void) = Call[String] : func:r184_3, this:r184_1 +# 184| mu184_5(unknown) = ^CallSideEffect : ~m? +# 184| mu184_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r184_1 +# 185| r185_1(glval) = VariableAddress[x55] : +# 185| r185_2(glval) = FunctionAddress[~String] : +# 185| v185_3(void) = Call[~String] : func:r185_2, this:r185_1 +# 185| mu185_4(unknown) = ^CallSideEffect : ~m? +# 185| v185_5(void) = ^IndirectReadSideEffect[-1] : &:r185_1, ~m? +# 185| mu185_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r185_1 +# 185| r185_7(bool) = Constant[0] : +# 185| v185_8(void) = ConditionalBranch : r185_7 +#-----| False -> Block 57 +#-----| True (back edge) -> Block 56 + +# 187| Block 57 +# 187| r187_1(glval) = VariableAddress[x56] : +# 187| mu187_2(String) = Uninitialized[x56] : &:r187_1 +# 187| r187_3(glval) = FunctionAddress[String] : +# 187| v187_4(void) = Call[String] : func:r187_3, this:r187_1 +# 187| mu187_5(unknown) = ^CallSideEffect : ~m? +# 187| mu187_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r187_1 +# 188| r188_1(glval) = VariableAddress[x56] : +# 188| r188_2(glval) = FunctionAddress[~String] : +# 188| v188_3(void) = Call[~String] : func:r188_2, this:r188_1 +# 188| mu188_4(unknown) = ^CallSideEffect : ~m? +# 188| v188_5(void) = ^IndirectReadSideEffect[-1] : &:r188_1, ~m? +# 188| mu188_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r188_1 +# 188| r188_7(bool) = Constant[0] : +# 188| v188_8(void) = ConditionalBranch : r188_7 +#-----| False -> Block 58 +#-----| True (back edge) -> Block 57 + +# 190| Block 58 +# 190| r190_1(glval) = VariableAddress[x57] : +# 190| mu190_2(String) = Uninitialized[x57] : &:r190_1 +# 190| r190_3(glval) = FunctionAddress[String] : +# 190| v190_4(void) = Call[String] : func:r190_3, this:r190_1 +# 190| mu190_5(unknown) = ^CallSideEffect : ~m? +# 190| mu190_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r190_1 +# 191| r191_1(glval) = VariableAddress[x57] : +# 191| r191_2(glval) = FunctionAddress[~String] : +# 191| v191_3(void) = Call[~String] : func:r191_2, this:r191_1 +# 191| mu191_4(unknown) = ^CallSideEffect : ~m? +# 191| v191_5(void) = ^IndirectReadSideEffect[-1] : &:r191_1, ~m? +# 191| mu191_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r191_1 +# 191| r191_7(bool) = Constant[0] : +# 191| v191_8(void) = ConditionalBranch : r191_7 +#-----| False -> Block 59 +#-----| True (back edge) -> Block 58 + +# 193| Block 59 +# 193| r193_1(glval) = VariableAddress[x58] : +# 193| mu193_2(String) = Uninitialized[x58] : &:r193_1 +# 193| r193_3(glval) = FunctionAddress[String] : +# 193| v193_4(void) = Call[String] : func:r193_3, this:r193_1 +# 193| mu193_5(unknown) = ^CallSideEffect : ~m? +# 193| mu193_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r193_1 +# 194| r194_1(glval) = VariableAddress[x58] : +# 194| r194_2(glval) = FunctionAddress[~String] : +# 194| v194_3(void) = Call[~String] : func:r194_2, this:r194_1 +# 194| mu194_4(unknown) = ^CallSideEffect : ~m? +# 194| v194_5(void) = ^IndirectReadSideEffect[-1] : &:r194_1, ~m? +# 194| mu194_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r194_1 +# 194| r194_7(bool) = Constant[0] : +# 194| v194_8(void) = ConditionalBranch : r194_7 +#-----| False -> Block 60 +#-----| True (back edge) -> Block 59 + +# 196| Block 60 +# 196| r196_1(glval) = VariableAddress[x59] : +# 196| mu196_2(String) = Uninitialized[x59] : &:r196_1 +# 196| r196_3(glval) = FunctionAddress[String] : +# 196| v196_4(void) = Call[String] : func:r196_3, this:r196_1 +# 196| mu196_5(unknown) = ^CallSideEffect : ~m? +# 196| mu196_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r196_1 +# 197| r197_1(glval) = VariableAddress[x59] : +# 197| r197_2(glval) = FunctionAddress[~String] : +# 197| v197_3(void) = Call[~String] : func:r197_2, this:r197_1 +# 197| mu197_4(unknown) = ^CallSideEffect : ~m? +# 197| v197_5(void) = ^IndirectReadSideEffect[-1] : &:r197_1, ~m? +# 197| mu197_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r197_1 +# 197| r197_7(bool) = Constant[0] : +# 197| v197_8(void) = ConditionalBranch : r197_7 +#-----| False -> Block 61 +#-----| True (back edge) -> Block 60 + +# 199| Block 61 +# 199| r199_1(glval) = VariableAddress[x60] : +# 199| mu199_2(String) = Uninitialized[x60] : &:r199_1 +# 199| r199_3(glval) = FunctionAddress[String] : +# 199| v199_4(void) = Call[String] : func:r199_3, this:r199_1 +# 199| mu199_5(unknown) = ^CallSideEffect : ~m? +# 199| mu199_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r199_1 +# 200| r200_1(glval) = VariableAddress[x60] : +# 200| r200_2(glval) = FunctionAddress[~String] : +# 200| v200_3(void) = Call[~String] : func:r200_2, this:r200_1 +# 200| mu200_4(unknown) = ^CallSideEffect : ~m? +# 200| v200_5(void) = ^IndirectReadSideEffect[-1] : &:r200_1, ~m? +# 200| mu200_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r200_1 +# 200| r200_7(bool) = Constant[0] : +# 200| v200_8(void) = ConditionalBranch : r200_7 +#-----| False -> Block 62 +#-----| True (back edge) -> Block 61 + +# 202| Block 62 +# 202| r202_1(glval) = VariableAddress[x61] : +# 202| mu202_2(String) = Uninitialized[x61] : &:r202_1 +# 202| r202_3(glval) = FunctionAddress[String] : +# 202| v202_4(void) = Call[String] : func:r202_3, this:r202_1 +# 202| mu202_5(unknown) = ^CallSideEffect : ~m? +# 202| mu202_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r202_1 +# 203| r203_1(glval) = VariableAddress[x61] : +# 203| r203_2(glval) = FunctionAddress[~String] : +# 203| v203_3(void) = Call[~String] : func:r203_2, this:r203_1 +# 203| mu203_4(unknown) = ^CallSideEffect : ~m? +# 203| v203_5(void) = ^IndirectReadSideEffect[-1] : &:r203_1, ~m? +# 203| mu203_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r203_1 +# 203| r203_7(bool) = Constant[0] : +# 203| v203_8(void) = ConditionalBranch : r203_7 +#-----| False -> Block 63 +#-----| True (back edge) -> Block 62 + +# 205| Block 63 +# 205| r205_1(glval) = VariableAddress[x62] : +# 205| mu205_2(String) = Uninitialized[x62] : &:r205_1 +# 205| r205_3(glval) = FunctionAddress[String] : +# 205| v205_4(void) = Call[String] : func:r205_3, this:r205_1 +# 205| mu205_5(unknown) = ^CallSideEffect : ~m? +# 205| mu205_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r205_1 +# 206| r206_1(glval) = VariableAddress[x62] : +# 206| r206_2(glval) = FunctionAddress[~String] : +# 206| v206_3(void) = Call[~String] : func:r206_2, this:r206_1 +# 206| mu206_4(unknown) = ^CallSideEffect : ~m? +# 206| v206_5(void) = ^IndirectReadSideEffect[-1] : &:r206_1, ~m? +# 206| mu206_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r206_1 +# 206| r206_7(bool) = Constant[0] : +# 206| v206_8(void) = ConditionalBranch : r206_7 +#-----| False -> Block 64 +#-----| True (back edge) -> Block 63 + +# 208| Block 64 +# 208| r208_1(glval) = VariableAddress[x63] : +# 208| mu208_2(String) = Uninitialized[x63] : &:r208_1 +# 208| r208_3(glval) = FunctionAddress[String] : +# 208| v208_4(void) = Call[String] : func:r208_3, this:r208_1 +# 208| mu208_5(unknown) = ^CallSideEffect : ~m? +# 208| mu208_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r208_1 +# 209| r209_1(glval) = VariableAddress[x63] : +# 209| r209_2(glval) = FunctionAddress[~String] : +# 209| v209_3(void) = Call[~String] : func:r209_2, this:r209_1 +# 209| mu209_4(unknown) = ^CallSideEffect : ~m? +# 209| v209_5(void) = ^IndirectReadSideEffect[-1] : &:r209_1, ~m? +# 209| mu209_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r209_1 +# 209| r209_7(bool) = Constant[0] : +# 209| v209_8(void) = ConditionalBranch : r209_7 +#-----| False -> Block 65 +#-----| True (back edge) -> Block 64 + +# 211| Block 65 +# 211| r211_1(glval) = VariableAddress[x64] : +# 211| mu211_2(String) = Uninitialized[x64] : &:r211_1 +# 211| r211_3(glval) = FunctionAddress[String] : +# 211| v211_4(void) = Call[String] : func:r211_3, this:r211_1 +# 211| mu211_5(unknown) = ^CallSideEffect : ~m? +# 211| mu211_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r211_1 +# 212| r212_1(glval) = VariableAddress[x64] : +# 212| r212_2(glval) = FunctionAddress[~String] : +# 212| v212_3(void) = Call[~String] : func:r212_2, this:r212_1 +# 212| mu212_4(unknown) = ^CallSideEffect : ~m? +# 212| v212_5(void) = ^IndirectReadSideEffect[-1] : &:r212_1, ~m? +# 212| mu212_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r212_1 +# 212| r212_7(bool) = Constant[0] : +# 212| v212_8(void) = ConditionalBranch : r212_7 +#-----| False -> Block 66 +#-----| True (back edge) -> Block 65 + +# 214| Block 66 +# 214| r214_1(glval) = VariableAddress[x65] : +# 214| mu214_2(String) = Uninitialized[x65] : &:r214_1 +# 214| r214_3(glval) = FunctionAddress[String] : +# 214| v214_4(void) = Call[String] : func:r214_3, this:r214_1 +# 214| mu214_5(unknown) = ^CallSideEffect : ~m? +# 214| mu214_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r214_1 +# 215| r215_1(glval) = VariableAddress[x65] : +# 215| r215_2(glval) = FunctionAddress[~String] : +# 215| v215_3(void) = Call[~String] : func:r215_2, this:r215_1 +# 215| mu215_4(unknown) = ^CallSideEffect : ~m? +# 215| v215_5(void) = ^IndirectReadSideEffect[-1] : &:r215_1, ~m? +# 215| mu215_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r215_1 +# 215| r215_7(bool) = Constant[0] : +# 215| v215_8(void) = ConditionalBranch : r215_7 +#-----| False -> Block 67 +#-----| True (back edge) -> Block 66 + +# 217| Block 67 +# 217| r217_1(glval) = VariableAddress[x66] : +# 217| mu217_2(String) = Uninitialized[x66] : &:r217_1 +# 217| r217_3(glval) = FunctionAddress[String] : +# 217| v217_4(void) = Call[String] : func:r217_3, this:r217_1 +# 217| mu217_5(unknown) = ^CallSideEffect : ~m? +# 217| mu217_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r217_1 +# 218| r218_1(glval) = VariableAddress[x66] : +# 218| r218_2(glval) = FunctionAddress[~String] : +# 218| v218_3(void) = Call[~String] : func:r218_2, this:r218_1 +# 218| mu218_4(unknown) = ^CallSideEffect : ~m? +# 218| v218_5(void) = ^IndirectReadSideEffect[-1] : &:r218_1, ~m? +# 218| mu218_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r218_1 +# 218| r218_7(bool) = Constant[0] : +# 218| v218_8(void) = ConditionalBranch : r218_7 +#-----| False -> Block 68 +#-----| True (back edge) -> Block 67 + +# 220| Block 68 +# 220| r220_1(glval) = VariableAddress[x67] : +# 220| mu220_2(String) = Uninitialized[x67] : &:r220_1 +# 220| r220_3(glval) = FunctionAddress[String] : +# 220| v220_4(void) = Call[String] : func:r220_3, this:r220_1 +# 220| mu220_5(unknown) = ^CallSideEffect : ~m? +# 220| mu220_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r220_1 +# 221| r221_1(glval) = VariableAddress[x67] : +# 221| r221_2(glval) = FunctionAddress[~String] : +# 221| v221_3(void) = Call[~String] : func:r221_2, this:r221_1 +# 221| mu221_4(unknown) = ^CallSideEffect : ~m? +# 221| v221_5(void) = ^IndirectReadSideEffect[-1] : &:r221_1, ~m? +# 221| mu221_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r221_1 +# 221| r221_7(bool) = Constant[0] : +# 221| v221_8(void) = ConditionalBranch : r221_7 +#-----| False -> Block 69 +#-----| True (back edge) -> Block 68 + +# 223| Block 69 +# 223| r223_1(glval) = VariableAddress[x68] : +# 223| mu223_2(String) = Uninitialized[x68] : &:r223_1 +# 223| r223_3(glval) = FunctionAddress[String] : +# 223| v223_4(void) = Call[String] : func:r223_3, this:r223_1 +# 223| mu223_5(unknown) = ^CallSideEffect : ~m? +# 223| mu223_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r223_1 +# 224| r224_1(glval) = VariableAddress[x68] : +# 224| r224_2(glval) = FunctionAddress[~String] : +# 224| v224_3(void) = Call[~String] : func:r224_2, this:r224_1 +# 224| mu224_4(unknown) = ^CallSideEffect : ~m? +# 224| v224_5(void) = ^IndirectReadSideEffect[-1] : &:r224_1, ~m? +# 224| mu224_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r224_1 +# 224| r224_7(bool) = Constant[0] : +# 224| v224_8(void) = ConditionalBranch : r224_7 +#-----| False -> Block 70 +#-----| True (back edge) -> Block 69 + +# 226| Block 70 +# 226| r226_1(glval) = VariableAddress[x69] : +# 226| mu226_2(String) = Uninitialized[x69] : &:r226_1 +# 226| r226_3(glval) = FunctionAddress[String] : +# 226| v226_4(void) = Call[String] : func:r226_3, this:r226_1 +# 226| mu226_5(unknown) = ^CallSideEffect : ~m? +# 226| mu226_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r226_1 +# 227| r227_1(glval) = VariableAddress[x69] : +# 227| r227_2(glval) = FunctionAddress[~String] : +# 227| v227_3(void) = Call[~String] : func:r227_2, this:r227_1 +# 227| mu227_4(unknown) = ^CallSideEffect : ~m? +# 227| v227_5(void) = ^IndirectReadSideEffect[-1] : &:r227_1, ~m? +# 227| mu227_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r227_1 +# 227| r227_7(bool) = Constant[0] : +# 227| v227_8(void) = ConditionalBranch : r227_7 +#-----| False -> Block 71 +#-----| True (back edge) -> Block 70 + +# 229| Block 71 +# 229| r229_1(glval) = VariableAddress[x70] : +# 229| mu229_2(String) = Uninitialized[x70] : &:r229_1 +# 229| r229_3(glval) = FunctionAddress[String] : +# 229| v229_4(void) = Call[String] : func:r229_3, this:r229_1 +# 229| mu229_5(unknown) = ^CallSideEffect : ~m? +# 229| mu229_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r229_1 +# 230| r230_1(glval) = VariableAddress[x70] : +# 230| r230_2(glval) = FunctionAddress[~String] : +# 230| v230_3(void) = Call[~String] : func:r230_2, this:r230_1 +# 230| mu230_4(unknown) = ^CallSideEffect : ~m? +# 230| v230_5(void) = ^IndirectReadSideEffect[-1] : &:r230_1, ~m? +# 230| mu230_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r230_1 +# 230| r230_7(bool) = Constant[0] : +# 230| v230_8(void) = ConditionalBranch : r230_7 +#-----| False -> Block 72 +#-----| True (back edge) -> Block 71 + +# 232| Block 72 +# 232| r232_1(glval) = VariableAddress[x71] : +# 232| mu232_2(String) = Uninitialized[x71] : &:r232_1 +# 232| r232_3(glval) = FunctionAddress[String] : +# 232| v232_4(void) = Call[String] : func:r232_3, this:r232_1 +# 232| mu232_5(unknown) = ^CallSideEffect : ~m? +# 232| mu232_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r232_1 +# 233| r233_1(glval) = VariableAddress[x71] : +# 233| r233_2(glval) = FunctionAddress[~String] : +# 233| v233_3(void) = Call[~String] : func:r233_2, this:r233_1 +# 233| mu233_4(unknown) = ^CallSideEffect : ~m? +# 233| v233_5(void) = ^IndirectReadSideEffect[-1] : &:r233_1, ~m? +# 233| mu233_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r233_1 +# 233| r233_7(bool) = Constant[0] : +# 233| v233_8(void) = ConditionalBranch : r233_7 +#-----| False -> Block 73 +#-----| True (back edge) -> Block 72 + +# 235| Block 73 +# 235| r235_1(glval) = VariableAddress[x72] : +# 235| mu235_2(String) = Uninitialized[x72] : &:r235_1 +# 235| r235_3(glval) = FunctionAddress[String] : +# 235| v235_4(void) = Call[String] : func:r235_3, this:r235_1 +# 235| mu235_5(unknown) = ^CallSideEffect : ~m? +# 235| mu235_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r235_1 +# 236| r236_1(glval) = VariableAddress[x72] : +# 236| r236_2(glval) = FunctionAddress[~String] : +# 236| v236_3(void) = Call[~String] : func:r236_2, this:r236_1 +# 236| mu236_4(unknown) = ^CallSideEffect : ~m? +# 236| v236_5(void) = ^IndirectReadSideEffect[-1] : &:r236_1, ~m? +# 236| mu236_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r236_1 +# 236| r236_7(bool) = Constant[0] : +# 236| v236_8(void) = ConditionalBranch : r236_7 +#-----| False -> Block 74 +#-----| True (back edge) -> Block 73 + +# 238| Block 74 +# 238| r238_1(glval) = VariableAddress[x73] : +# 238| mu238_2(String) = Uninitialized[x73] : &:r238_1 +# 238| r238_3(glval) = FunctionAddress[String] : +# 238| v238_4(void) = Call[String] : func:r238_3, this:r238_1 +# 238| mu238_5(unknown) = ^CallSideEffect : ~m? +# 238| mu238_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r238_1 +# 239| r239_1(glval) = VariableAddress[x73] : +# 239| r239_2(glval) = FunctionAddress[~String] : +# 239| v239_3(void) = Call[~String] : func:r239_2, this:r239_1 +# 239| mu239_4(unknown) = ^CallSideEffect : ~m? +# 239| v239_5(void) = ^IndirectReadSideEffect[-1] : &:r239_1, ~m? +# 239| mu239_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r239_1 +# 239| r239_7(bool) = Constant[0] : +# 239| v239_8(void) = ConditionalBranch : r239_7 +#-----| False -> Block 75 +#-----| True (back edge) -> Block 74 + +# 241| Block 75 +# 241| r241_1(glval) = VariableAddress[x74] : +# 241| mu241_2(String) = Uninitialized[x74] : &:r241_1 +# 241| r241_3(glval) = FunctionAddress[String] : +# 241| v241_4(void) = Call[String] : func:r241_3, this:r241_1 +# 241| mu241_5(unknown) = ^CallSideEffect : ~m? +# 241| mu241_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r241_1 +# 242| r242_1(glval) = VariableAddress[x74] : +# 242| r242_2(glval) = FunctionAddress[~String] : +# 242| v242_3(void) = Call[~String] : func:r242_2, this:r242_1 +# 242| mu242_4(unknown) = ^CallSideEffect : ~m? +# 242| v242_5(void) = ^IndirectReadSideEffect[-1] : &:r242_1, ~m? +# 242| mu242_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r242_1 +# 242| r242_7(bool) = Constant[0] : +# 242| v242_8(void) = ConditionalBranch : r242_7 +#-----| False -> Block 76 +#-----| True (back edge) -> Block 75 + +# 244| Block 76 +# 244| r244_1(glval) = VariableAddress[x75] : +# 244| mu244_2(String) = Uninitialized[x75] : &:r244_1 +# 244| r244_3(glval) = FunctionAddress[String] : +# 244| v244_4(void) = Call[String] : func:r244_3, this:r244_1 +# 244| mu244_5(unknown) = ^CallSideEffect : ~m? +# 244| mu244_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r244_1 +# 245| r245_1(glval) = VariableAddress[x75] : +# 245| r245_2(glval) = FunctionAddress[~String] : +# 245| v245_3(void) = Call[~String] : func:r245_2, this:r245_1 +# 245| mu245_4(unknown) = ^CallSideEffect : ~m? +# 245| v245_5(void) = ^IndirectReadSideEffect[-1] : &:r245_1, ~m? +# 245| mu245_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r245_1 +# 245| r245_7(bool) = Constant[0] : +# 245| v245_8(void) = ConditionalBranch : r245_7 +#-----| False -> Block 77 +#-----| True (back edge) -> Block 76 + +# 247| Block 77 +# 247| r247_1(glval) = VariableAddress[x76] : +# 247| mu247_2(String) = Uninitialized[x76] : &:r247_1 +# 247| r247_3(glval) = FunctionAddress[String] : +# 247| v247_4(void) = Call[String] : func:r247_3, this:r247_1 +# 247| mu247_5(unknown) = ^CallSideEffect : ~m? +# 247| mu247_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r247_1 +# 248| r248_1(glval) = VariableAddress[x76] : +# 248| r248_2(glval) = FunctionAddress[~String] : +# 248| v248_3(void) = Call[~String] : func:r248_2, this:r248_1 +# 248| mu248_4(unknown) = ^CallSideEffect : ~m? +# 248| v248_5(void) = ^IndirectReadSideEffect[-1] : &:r248_1, ~m? +# 248| mu248_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r248_1 +# 248| r248_7(bool) = Constant[0] : +# 248| v248_8(void) = ConditionalBranch : r248_7 +#-----| False -> Block 78 +#-----| True (back edge) -> Block 77 + +# 250| Block 78 +# 250| r250_1(glval) = VariableAddress[x77] : +# 250| mu250_2(String) = Uninitialized[x77] : &:r250_1 +# 250| r250_3(glval) = FunctionAddress[String] : +# 250| v250_4(void) = Call[String] : func:r250_3, this:r250_1 +# 250| mu250_5(unknown) = ^CallSideEffect : ~m? +# 250| mu250_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r250_1 +# 251| r251_1(glval) = VariableAddress[x77] : +# 251| r251_2(glval) = FunctionAddress[~String] : +# 251| v251_3(void) = Call[~String] : func:r251_2, this:r251_1 +# 251| mu251_4(unknown) = ^CallSideEffect : ~m? +# 251| v251_5(void) = ^IndirectReadSideEffect[-1] : &:r251_1, ~m? +# 251| mu251_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r251_1 +# 251| r251_7(bool) = Constant[0] : +# 251| v251_8(void) = ConditionalBranch : r251_7 +#-----| False -> Block 79 +#-----| True (back edge) -> Block 78 + +# 253| Block 79 +# 253| r253_1(glval) = VariableAddress[x78] : +# 253| mu253_2(String) = Uninitialized[x78] : &:r253_1 +# 253| r253_3(glval) = FunctionAddress[String] : +# 253| v253_4(void) = Call[String] : func:r253_3, this:r253_1 +# 253| mu253_5(unknown) = ^CallSideEffect : ~m? +# 253| mu253_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r253_1 +# 254| r254_1(glval) = VariableAddress[x78] : +# 254| r254_2(glval) = FunctionAddress[~String] : +# 254| v254_3(void) = Call[~String] : func:r254_2, this:r254_1 +# 254| mu254_4(unknown) = ^CallSideEffect : ~m? +# 254| v254_5(void) = ^IndirectReadSideEffect[-1] : &:r254_1, ~m? +# 254| mu254_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r254_1 +# 254| r254_7(bool) = Constant[0] : +# 254| v254_8(void) = ConditionalBranch : r254_7 +#-----| False -> Block 80 +#-----| True (back edge) -> Block 79 + +# 256| Block 80 +# 256| r256_1(glval) = VariableAddress[x79] : +# 256| mu256_2(String) = Uninitialized[x79] : &:r256_1 +# 256| r256_3(glval) = FunctionAddress[String] : +# 256| v256_4(void) = Call[String] : func:r256_3, this:r256_1 +# 256| mu256_5(unknown) = ^CallSideEffect : ~m? +# 256| mu256_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r256_1 +# 257| r257_1(glval) = VariableAddress[x79] : +# 257| r257_2(glval) = FunctionAddress[~String] : +# 257| v257_3(void) = Call[~String] : func:r257_2, this:r257_1 +# 257| mu257_4(unknown) = ^CallSideEffect : ~m? +# 257| v257_5(void) = ^IndirectReadSideEffect[-1] : &:r257_1, ~m? +# 257| mu257_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r257_1 +# 257| r257_7(bool) = Constant[0] : +# 257| v257_8(void) = ConditionalBranch : r257_7 +#-----| False -> Block 81 +#-----| True (back edge) -> Block 80 + +# 259| Block 81 +# 259| r259_1(glval) = VariableAddress[x80] : +# 259| mu259_2(String) = Uninitialized[x80] : &:r259_1 +# 259| r259_3(glval) = FunctionAddress[String] : +# 259| v259_4(void) = Call[String] : func:r259_3, this:r259_1 +# 259| mu259_5(unknown) = ^CallSideEffect : ~m? +# 259| mu259_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r259_1 +# 260| r260_1(glval) = VariableAddress[x80] : +# 260| r260_2(glval) = FunctionAddress[~String] : +# 260| v260_3(void) = Call[~String] : func:r260_2, this:r260_1 +# 260| mu260_4(unknown) = ^CallSideEffect : ~m? +# 260| v260_5(void) = ^IndirectReadSideEffect[-1] : &:r260_1, ~m? +# 260| mu260_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r260_1 +# 260| r260_7(bool) = Constant[0] : +# 260| v260_8(void) = ConditionalBranch : r260_7 +#-----| False -> Block 82 +#-----| True (back edge) -> Block 81 + +# 262| Block 82 +# 262| r262_1(glval) = VariableAddress[x81] : +# 262| mu262_2(String) = Uninitialized[x81] : &:r262_1 +# 262| r262_3(glval) = FunctionAddress[String] : +# 262| v262_4(void) = Call[String] : func:r262_3, this:r262_1 +# 262| mu262_5(unknown) = ^CallSideEffect : ~m? +# 262| mu262_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r262_1 +# 263| r263_1(glval) = VariableAddress[x81] : +# 263| r263_2(glval) = FunctionAddress[~String] : +# 263| v263_3(void) = Call[~String] : func:r263_2, this:r263_1 +# 263| mu263_4(unknown) = ^CallSideEffect : ~m? +# 263| v263_5(void) = ^IndirectReadSideEffect[-1] : &:r263_1, ~m? +# 263| mu263_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r263_1 +# 263| r263_7(bool) = Constant[0] : +# 263| v263_8(void) = ConditionalBranch : r263_7 +#-----| False -> Block 83 +#-----| True (back edge) -> Block 82 + +# 265| Block 83 +# 265| r265_1(glval) = VariableAddress[x82] : +# 265| mu265_2(String) = Uninitialized[x82] : &:r265_1 +# 265| r265_3(glval) = FunctionAddress[String] : +# 265| v265_4(void) = Call[String] : func:r265_3, this:r265_1 +# 265| mu265_5(unknown) = ^CallSideEffect : ~m? +# 265| mu265_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r265_1 +# 266| r266_1(glval) = VariableAddress[x82] : +# 266| r266_2(glval) = FunctionAddress[~String] : +# 266| v266_3(void) = Call[~String] : func:r266_2, this:r266_1 +# 266| mu266_4(unknown) = ^CallSideEffect : ~m? +# 266| v266_5(void) = ^IndirectReadSideEffect[-1] : &:r266_1, ~m? +# 266| mu266_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r266_1 +# 266| r266_7(bool) = Constant[0] : +# 266| v266_8(void) = ConditionalBranch : r266_7 +#-----| False -> Block 84 +#-----| True (back edge) -> Block 83 + +# 268| Block 84 +# 268| r268_1(glval) = VariableAddress[x83] : +# 268| mu268_2(String) = Uninitialized[x83] : &:r268_1 +# 268| r268_3(glval) = FunctionAddress[String] : +# 268| v268_4(void) = Call[String] : func:r268_3, this:r268_1 +# 268| mu268_5(unknown) = ^CallSideEffect : ~m? +# 268| mu268_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r268_1 +# 269| r269_1(glval) = VariableAddress[x83] : +# 269| r269_2(glval) = FunctionAddress[~String] : +# 269| v269_3(void) = Call[~String] : func:r269_2, this:r269_1 +# 269| mu269_4(unknown) = ^CallSideEffect : ~m? +# 269| v269_5(void) = ^IndirectReadSideEffect[-1] : &:r269_1, ~m? +# 269| mu269_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r269_1 +# 269| r269_7(bool) = Constant[0] : +# 269| v269_8(void) = ConditionalBranch : r269_7 +#-----| False -> Block 85 +#-----| True (back edge) -> Block 84 + +# 271| Block 85 +# 271| r271_1(glval) = VariableAddress[x84] : +# 271| mu271_2(String) = Uninitialized[x84] : &:r271_1 +# 271| r271_3(glval) = FunctionAddress[String] : +# 271| v271_4(void) = Call[String] : func:r271_3, this:r271_1 +# 271| mu271_5(unknown) = ^CallSideEffect : ~m? +# 271| mu271_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r271_1 +# 272| r272_1(glval) = VariableAddress[x84] : +# 272| r272_2(glval) = FunctionAddress[~String] : +# 272| v272_3(void) = Call[~String] : func:r272_2, this:r272_1 +# 272| mu272_4(unknown) = ^CallSideEffect : ~m? +# 272| v272_5(void) = ^IndirectReadSideEffect[-1] : &:r272_1, ~m? +# 272| mu272_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r272_1 +# 272| r272_7(bool) = Constant[0] : +# 272| v272_8(void) = ConditionalBranch : r272_7 +#-----| False -> Block 86 +#-----| True (back edge) -> Block 85 + +# 274| Block 86 +# 274| r274_1(glval) = VariableAddress[x85] : +# 274| mu274_2(String) = Uninitialized[x85] : &:r274_1 +# 274| r274_3(glval) = FunctionAddress[String] : +# 274| v274_4(void) = Call[String] : func:r274_3, this:r274_1 +# 274| mu274_5(unknown) = ^CallSideEffect : ~m? +# 274| mu274_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r274_1 +# 275| r275_1(glval) = VariableAddress[x85] : +# 275| r275_2(glval) = FunctionAddress[~String] : +# 275| v275_3(void) = Call[~String] : func:r275_2, this:r275_1 +# 275| mu275_4(unknown) = ^CallSideEffect : ~m? +# 275| v275_5(void) = ^IndirectReadSideEffect[-1] : &:r275_1, ~m? +# 275| mu275_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r275_1 +# 275| r275_7(bool) = Constant[0] : +# 275| v275_8(void) = ConditionalBranch : r275_7 +#-----| False -> Block 87 +#-----| True (back edge) -> Block 86 + +# 277| Block 87 +# 277| r277_1(glval) = VariableAddress[x86] : +# 277| mu277_2(String) = Uninitialized[x86] : &:r277_1 +# 277| r277_3(glval) = FunctionAddress[String] : +# 277| v277_4(void) = Call[String] : func:r277_3, this:r277_1 +# 277| mu277_5(unknown) = ^CallSideEffect : ~m? +# 277| mu277_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r277_1 +# 278| r278_1(glval) = VariableAddress[x86] : +# 278| r278_2(glval) = FunctionAddress[~String] : +# 278| v278_3(void) = Call[~String] : func:r278_2, this:r278_1 +# 278| mu278_4(unknown) = ^CallSideEffect : ~m? +# 278| v278_5(void) = ^IndirectReadSideEffect[-1] : &:r278_1, ~m? +# 278| mu278_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r278_1 +# 278| r278_7(bool) = Constant[0] : +# 278| v278_8(void) = ConditionalBranch : r278_7 +#-----| False -> Block 88 +#-----| True (back edge) -> Block 87 + +# 280| Block 88 +# 280| r280_1(glval) = VariableAddress[x87] : +# 280| mu280_2(String) = Uninitialized[x87] : &:r280_1 +# 280| r280_3(glval) = FunctionAddress[String] : +# 280| v280_4(void) = Call[String] : func:r280_3, this:r280_1 +# 280| mu280_5(unknown) = ^CallSideEffect : ~m? +# 280| mu280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r280_1 +# 281| r281_1(glval) = VariableAddress[x87] : +# 281| r281_2(glval) = FunctionAddress[~String] : +# 281| v281_3(void) = Call[~String] : func:r281_2, this:r281_1 +# 281| mu281_4(unknown) = ^CallSideEffect : ~m? +# 281| v281_5(void) = ^IndirectReadSideEffect[-1] : &:r281_1, ~m? +# 281| mu281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r281_1 +# 281| r281_7(bool) = Constant[0] : +# 281| v281_8(void) = ConditionalBranch : r281_7 +#-----| False -> Block 89 +#-----| True (back edge) -> Block 88 + +# 283| Block 89 +# 283| r283_1(glval) = VariableAddress[x88] : +# 283| mu283_2(String) = Uninitialized[x88] : &:r283_1 +# 283| r283_3(glval) = FunctionAddress[String] : +# 283| v283_4(void) = Call[String] : func:r283_3, this:r283_1 +# 283| mu283_5(unknown) = ^CallSideEffect : ~m? +# 283| mu283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r283_1 +# 284| r284_1(glval) = VariableAddress[x88] : +# 284| r284_2(glval) = FunctionAddress[~String] : +# 284| v284_3(void) = Call[~String] : func:r284_2, this:r284_1 +# 284| mu284_4(unknown) = ^CallSideEffect : ~m? +# 284| v284_5(void) = ^IndirectReadSideEffect[-1] : &:r284_1, ~m? +# 284| mu284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r284_1 +# 284| r284_7(bool) = Constant[0] : +# 284| v284_8(void) = ConditionalBranch : r284_7 +#-----| False -> Block 90 +#-----| True (back edge) -> Block 89 + +# 286| Block 90 +# 286| r286_1(glval) = VariableAddress[x89] : +# 286| mu286_2(String) = Uninitialized[x89] : &:r286_1 +# 286| r286_3(glval) = FunctionAddress[String] : +# 286| v286_4(void) = Call[String] : func:r286_3, this:r286_1 +# 286| mu286_5(unknown) = ^CallSideEffect : ~m? +# 286| mu286_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r286_1 +# 287| r287_1(glval) = VariableAddress[x89] : +# 287| r287_2(glval) = FunctionAddress[~String] : +# 287| v287_3(void) = Call[~String] : func:r287_2, this:r287_1 +# 287| mu287_4(unknown) = ^CallSideEffect : ~m? +# 287| v287_5(void) = ^IndirectReadSideEffect[-1] : &:r287_1, ~m? +# 287| mu287_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r287_1 +# 287| r287_7(bool) = Constant[0] : +# 287| v287_8(void) = ConditionalBranch : r287_7 +#-----| False -> Block 91 +#-----| True (back edge) -> Block 90 + +# 289| Block 91 +# 289| r289_1(glval) = VariableAddress[x90] : +# 289| mu289_2(String) = Uninitialized[x90] : &:r289_1 +# 289| r289_3(glval) = FunctionAddress[String] : +# 289| v289_4(void) = Call[String] : func:r289_3, this:r289_1 +# 289| mu289_5(unknown) = ^CallSideEffect : ~m? +# 289| mu289_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r289_1 +# 290| r290_1(glval) = VariableAddress[x90] : +# 290| r290_2(glval) = FunctionAddress[~String] : +# 290| v290_3(void) = Call[~String] : func:r290_2, this:r290_1 +# 290| mu290_4(unknown) = ^CallSideEffect : ~m? +# 290| v290_5(void) = ^IndirectReadSideEffect[-1] : &:r290_1, ~m? +# 290| mu290_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r290_1 +# 290| r290_7(bool) = Constant[0] : +# 290| v290_8(void) = ConditionalBranch : r290_7 +#-----| False -> Block 92 +#-----| True (back edge) -> Block 91 + +# 292| Block 92 +# 292| r292_1(glval) = VariableAddress[x91] : +# 292| mu292_2(String) = Uninitialized[x91] : &:r292_1 +# 292| r292_3(glval) = FunctionAddress[String] : +# 292| v292_4(void) = Call[String] : func:r292_3, this:r292_1 +# 292| mu292_5(unknown) = ^CallSideEffect : ~m? +# 292| mu292_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r292_1 +# 293| r293_1(glval) = VariableAddress[x91] : +# 293| r293_2(glval) = FunctionAddress[~String] : +# 293| v293_3(void) = Call[~String] : func:r293_2, this:r293_1 +# 293| mu293_4(unknown) = ^CallSideEffect : ~m? +# 293| v293_5(void) = ^IndirectReadSideEffect[-1] : &:r293_1, ~m? +# 293| mu293_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r293_1 +# 293| r293_7(bool) = Constant[0] : +# 293| v293_8(void) = ConditionalBranch : r293_7 +#-----| False -> Block 93 +#-----| True (back edge) -> Block 92 + +# 295| Block 93 +# 295| r295_1(glval) = VariableAddress[x92] : +# 295| mu295_2(String) = Uninitialized[x92] : &:r295_1 +# 295| r295_3(glval) = FunctionAddress[String] : +# 295| v295_4(void) = Call[String] : func:r295_3, this:r295_1 +# 295| mu295_5(unknown) = ^CallSideEffect : ~m? +# 295| mu295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r295_1 +# 296| r296_1(glval) = VariableAddress[x92] : +# 296| r296_2(glval) = FunctionAddress[~String] : +# 296| v296_3(void) = Call[~String] : func:r296_2, this:r296_1 +# 296| mu296_4(unknown) = ^CallSideEffect : ~m? +# 296| v296_5(void) = ^IndirectReadSideEffect[-1] : &:r296_1, ~m? +# 296| mu296_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r296_1 +# 296| r296_7(bool) = Constant[0] : +# 296| v296_8(void) = ConditionalBranch : r296_7 +#-----| False -> Block 94 +#-----| True (back edge) -> Block 93 + +# 298| Block 94 +# 298| r298_1(glval) = VariableAddress[x93] : +# 298| mu298_2(String) = Uninitialized[x93] : &:r298_1 +# 298| r298_3(glval) = FunctionAddress[String] : +# 298| v298_4(void) = Call[String] : func:r298_3, this:r298_1 +# 298| mu298_5(unknown) = ^CallSideEffect : ~m? +# 298| mu298_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r298_1 +# 299| r299_1(glval) = VariableAddress[x93] : +# 299| r299_2(glval) = FunctionAddress[~String] : +# 299| v299_3(void) = Call[~String] : func:r299_2, this:r299_1 +# 299| mu299_4(unknown) = ^CallSideEffect : ~m? +# 299| v299_5(void) = ^IndirectReadSideEffect[-1] : &:r299_1, ~m? +# 299| mu299_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r299_1 +# 299| r299_7(bool) = Constant[0] : +# 299| v299_8(void) = ConditionalBranch : r299_7 +#-----| False -> Block 95 +#-----| True (back edge) -> Block 94 + +# 301| Block 95 +# 301| r301_1(glval) = VariableAddress[x94] : +# 301| mu301_2(String) = Uninitialized[x94] : &:r301_1 +# 301| r301_3(glval) = FunctionAddress[String] : +# 301| v301_4(void) = Call[String] : func:r301_3, this:r301_1 +# 301| mu301_5(unknown) = ^CallSideEffect : ~m? +# 301| mu301_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r301_1 +# 302| r302_1(glval) = VariableAddress[x94] : +# 302| r302_2(glval) = FunctionAddress[~String] : +# 302| v302_3(void) = Call[~String] : func:r302_2, this:r302_1 +# 302| mu302_4(unknown) = ^CallSideEffect : ~m? +# 302| v302_5(void) = ^IndirectReadSideEffect[-1] : &:r302_1, ~m? +# 302| mu302_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r302_1 +# 302| r302_7(bool) = Constant[0] : +# 302| v302_8(void) = ConditionalBranch : r302_7 +#-----| False -> Block 96 +#-----| True (back edge) -> Block 95 + +# 304| Block 96 +# 304| r304_1(glval) = VariableAddress[x95] : +# 304| mu304_2(String) = Uninitialized[x95] : &:r304_1 +# 304| r304_3(glval) = FunctionAddress[String] : +# 304| v304_4(void) = Call[String] : func:r304_3, this:r304_1 +# 304| mu304_5(unknown) = ^CallSideEffect : ~m? +# 304| mu304_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r304_1 +# 305| r305_1(glval) = VariableAddress[x95] : +# 305| r305_2(glval) = FunctionAddress[~String] : +# 305| v305_3(void) = Call[~String] : func:r305_2, this:r305_1 +# 305| mu305_4(unknown) = ^CallSideEffect : ~m? +# 305| v305_5(void) = ^IndirectReadSideEffect[-1] : &:r305_1, ~m? +# 305| mu305_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r305_1 +# 305| r305_7(bool) = Constant[0] : +# 305| v305_8(void) = ConditionalBranch : r305_7 +#-----| False -> Block 97 +#-----| True (back edge) -> Block 96 + +# 307| Block 97 +# 307| r307_1(glval) = VariableAddress[x96] : +# 307| mu307_2(String) = Uninitialized[x96] : &:r307_1 +# 307| r307_3(glval) = FunctionAddress[String] : +# 307| v307_4(void) = Call[String] : func:r307_3, this:r307_1 +# 307| mu307_5(unknown) = ^CallSideEffect : ~m? +# 307| mu307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r307_1 +# 308| r308_1(glval) = VariableAddress[x96] : +# 308| r308_2(glval) = FunctionAddress[~String] : +# 308| v308_3(void) = Call[~String] : func:r308_2, this:r308_1 +# 308| mu308_4(unknown) = ^CallSideEffect : ~m? +# 308| v308_5(void) = ^IndirectReadSideEffect[-1] : &:r308_1, ~m? +# 308| mu308_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r308_1 +# 308| r308_7(bool) = Constant[0] : +# 308| v308_8(void) = ConditionalBranch : r308_7 +#-----| False -> Block 98 +#-----| True (back edge) -> Block 97 + +# 310| Block 98 +# 310| r310_1(glval) = VariableAddress[x97] : +# 310| mu310_2(String) = Uninitialized[x97] : &:r310_1 +# 310| r310_3(glval) = FunctionAddress[String] : +# 310| v310_4(void) = Call[String] : func:r310_3, this:r310_1 +# 310| mu310_5(unknown) = ^CallSideEffect : ~m? +# 310| mu310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r310_1 +# 311| r311_1(glval) = VariableAddress[x97] : +# 311| r311_2(glval) = FunctionAddress[~String] : +# 311| v311_3(void) = Call[~String] : func:r311_2, this:r311_1 +# 311| mu311_4(unknown) = ^CallSideEffect : ~m? +# 311| v311_5(void) = ^IndirectReadSideEffect[-1] : &:r311_1, ~m? +# 311| mu311_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r311_1 +# 311| r311_7(bool) = Constant[0] : +# 311| v311_8(void) = ConditionalBranch : r311_7 +#-----| False -> Block 99 +#-----| True (back edge) -> Block 98 + +# 313| Block 99 +# 313| r313_1(glval) = VariableAddress[x98] : +# 313| mu313_2(String) = Uninitialized[x98] : &:r313_1 +# 313| r313_3(glval) = FunctionAddress[String] : +# 313| v313_4(void) = Call[String] : func:r313_3, this:r313_1 +# 313| mu313_5(unknown) = ^CallSideEffect : ~m? +# 313| mu313_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r313_1 +# 314| r314_1(glval) = VariableAddress[x98] : +# 314| r314_2(glval) = FunctionAddress[~String] : +# 314| v314_3(void) = Call[~String] : func:r314_2, this:r314_1 +# 314| mu314_4(unknown) = ^CallSideEffect : ~m? +# 314| v314_5(void) = ^IndirectReadSideEffect[-1] : &:r314_1, ~m? +# 314| mu314_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r314_1 +# 314| r314_7(bool) = Constant[0] : +# 314| v314_8(void) = ConditionalBranch : r314_7 +#-----| False -> Block 100 +#-----| True (back edge) -> Block 99 + +# 316| Block 100 +# 316| r316_1(glval) = VariableAddress[x99] : +# 316| mu316_2(String) = Uninitialized[x99] : &:r316_1 +# 316| r316_3(glval) = FunctionAddress[String] : +# 316| v316_4(void) = Call[String] : func:r316_3, this:r316_1 +# 316| mu316_5(unknown) = ^CallSideEffect : ~m? +# 316| mu316_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r316_1 +# 317| r317_1(glval) = VariableAddress[x99] : +# 317| r317_2(glval) = FunctionAddress[~String] : +# 317| v317_3(void) = Call[~String] : func:r317_2, this:r317_1 +# 317| mu317_4(unknown) = ^CallSideEffect : ~m? +# 317| v317_5(void) = ^IndirectReadSideEffect[-1] : &:r317_1, ~m? +# 317| mu317_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r317_1 +# 317| r317_7(bool) = Constant[0] : +# 317| v317_8(void) = ConditionalBranch : r317_7 +#-----| False -> Block 101 +#-----| True (back edge) -> Block 100 + +# 319| Block 101 +# 319| r319_1(glval) = VariableAddress[x100] : +# 319| mu319_2(String) = Uninitialized[x100] : &:r319_1 +# 319| r319_3(glval) = FunctionAddress[String] : +# 319| v319_4(void) = Call[String] : func:r319_3, this:r319_1 +# 319| mu319_5(unknown) = ^CallSideEffect : ~m? +# 319| mu319_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r319_1 +# 320| r320_1(glval) = VariableAddress[x100] : +# 320| r320_2(glval) = FunctionAddress[~String] : +# 320| v320_3(void) = Call[~String] : func:r320_2, this:r320_1 +# 320| mu320_4(unknown) = ^CallSideEffect : ~m? +# 320| v320_5(void) = ^IndirectReadSideEffect[-1] : &:r320_1, ~m? +# 320| mu320_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r320_1 +# 320| r320_7(bool) = Constant[0] : +# 320| v320_8(void) = ConditionalBranch : r320_7 +#-----| False -> Block 102 +#-----| True (back edge) -> Block 101 + +# 322| Block 102 +# 322| r322_1(glval) = VariableAddress[x101] : +# 322| mu322_2(String) = Uninitialized[x101] : &:r322_1 +# 322| r322_3(glval) = FunctionAddress[String] : +# 322| v322_4(void) = Call[String] : func:r322_3, this:r322_1 +# 322| mu322_5(unknown) = ^CallSideEffect : ~m? +# 322| mu322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r322_1 +# 323| r323_1(glval) = VariableAddress[x101] : +# 323| r323_2(glval) = FunctionAddress[~String] : +# 323| v323_3(void) = Call[~String] : func:r323_2, this:r323_1 +# 323| mu323_4(unknown) = ^CallSideEffect : ~m? +# 323| v323_5(void) = ^IndirectReadSideEffect[-1] : &:r323_1, ~m? +# 323| mu323_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r323_1 +# 323| r323_7(bool) = Constant[0] : +# 323| v323_8(void) = ConditionalBranch : r323_7 +#-----| False -> Block 103 +#-----| True (back edge) -> Block 102 + +# 325| Block 103 +# 325| r325_1(glval) = VariableAddress[x102] : +# 325| mu325_2(String) = Uninitialized[x102] : &:r325_1 +# 325| r325_3(glval) = FunctionAddress[String] : +# 325| v325_4(void) = Call[String] : func:r325_3, this:r325_1 +# 325| mu325_5(unknown) = ^CallSideEffect : ~m? +# 325| mu325_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r325_1 +# 326| r326_1(glval) = VariableAddress[x102] : +# 326| r326_2(glval) = FunctionAddress[~String] : +# 326| v326_3(void) = Call[~String] : func:r326_2, this:r326_1 +# 326| mu326_4(unknown) = ^CallSideEffect : ~m? +# 326| v326_5(void) = ^IndirectReadSideEffect[-1] : &:r326_1, ~m? +# 326| mu326_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r326_1 +# 326| r326_7(bool) = Constant[0] : +# 326| v326_8(void) = ConditionalBranch : r326_7 +#-----| False -> Block 104 +#-----| True (back edge) -> Block 103 + +# 328| Block 104 +# 328| r328_1(glval) = VariableAddress[x103] : +# 328| mu328_2(String) = Uninitialized[x103] : &:r328_1 +# 328| r328_3(glval) = FunctionAddress[String] : +# 328| v328_4(void) = Call[String] : func:r328_3, this:r328_1 +# 328| mu328_5(unknown) = ^CallSideEffect : ~m? +# 328| mu328_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r328_1 +# 329| r329_1(glval) = VariableAddress[x103] : +# 329| r329_2(glval) = FunctionAddress[~String] : +# 329| v329_3(void) = Call[~String] : func:r329_2, this:r329_1 +# 329| mu329_4(unknown) = ^CallSideEffect : ~m? +# 329| v329_5(void) = ^IndirectReadSideEffect[-1] : &:r329_1, ~m? +# 329| mu329_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r329_1 +# 329| r329_7(bool) = Constant[0] : +# 329| v329_8(void) = ConditionalBranch : r329_7 +#-----| False -> Block 105 +#-----| True (back edge) -> Block 104 + +# 331| Block 105 +# 331| r331_1(glval) = VariableAddress[x104] : +# 331| mu331_2(String) = Uninitialized[x104] : &:r331_1 +# 331| r331_3(glval) = FunctionAddress[String] : +# 331| v331_4(void) = Call[String] : func:r331_3, this:r331_1 +# 331| mu331_5(unknown) = ^CallSideEffect : ~m? +# 331| mu331_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r331_1 +# 332| r332_1(glval) = VariableAddress[x104] : +# 332| r332_2(glval) = FunctionAddress[~String] : +# 332| v332_3(void) = Call[~String] : func:r332_2, this:r332_1 +# 332| mu332_4(unknown) = ^CallSideEffect : ~m? +# 332| v332_5(void) = ^IndirectReadSideEffect[-1] : &:r332_1, ~m? +# 332| mu332_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r332_1 +# 332| r332_7(bool) = Constant[0] : +# 332| v332_8(void) = ConditionalBranch : r332_7 +#-----| False -> Block 106 +#-----| True (back edge) -> Block 105 + +# 334| Block 106 +# 334| r334_1(glval) = VariableAddress[x105] : +# 334| mu334_2(String) = Uninitialized[x105] : &:r334_1 +# 334| r334_3(glval) = FunctionAddress[String] : +# 334| v334_4(void) = Call[String] : func:r334_3, this:r334_1 +# 334| mu334_5(unknown) = ^CallSideEffect : ~m? +# 334| mu334_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r334_1 +# 335| r335_1(glval) = VariableAddress[x105] : +# 335| r335_2(glval) = FunctionAddress[~String] : +# 335| v335_3(void) = Call[~String] : func:r335_2, this:r335_1 +# 335| mu335_4(unknown) = ^CallSideEffect : ~m? +# 335| v335_5(void) = ^IndirectReadSideEffect[-1] : &:r335_1, ~m? +# 335| mu335_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r335_1 +# 335| r335_7(bool) = Constant[0] : +# 335| v335_8(void) = ConditionalBranch : r335_7 +#-----| False -> Block 107 +#-----| True (back edge) -> Block 106 + +# 337| Block 107 +# 337| r337_1(glval) = VariableAddress[x106] : +# 337| mu337_2(String) = Uninitialized[x106] : &:r337_1 +# 337| r337_3(glval) = FunctionAddress[String] : +# 337| v337_4(void) = Call[String] : func:r337_3, this:r337_1 +# 337| mu337_5(unknown) = ^CallSideEffect : ~m? +# 337| mu337_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r337_1 +# 338| r338_1(glval) = VariableAddress[x106] : +# 338| r338_2(glval) = FunctionAddress[~String] : +# 338| v338_3(void) = Call[~String] : func:r338_2, this:r338_1 +# 338| mu338_4(unknown) = ^CallSideEffect : ~m? +# 338| v338_5(void) = ^IndirectReadSideEffect[-1] : &:r338_1, ~m? +# 338| mu338_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r338_1 +# 338| r338_7(bool) = Constant[0] : +# 338| v338_8(void) = ConditionalBranch : r338_7 +#-----| False -> Block 108 +#-----| True (back edge) -> Block 107 + +# 340| Block 108 +# 340| r340_1(glval) = VariableAddress[x107] : +# 340| mu340_2(String) = Uninitialized[x107] : &:r340_1 +# 340| r340_3(glval) = FunctionAddress[String] : +# 340| v340_4(void) = Call[String] : func:r340_3, this:r340_1 +# 340| mu340_5(unknown) = ^CallSideEffect : ~m? +# 340| mu340_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r340_1 +# 341| r341_1(glval) = VariableAddress[x107] : +# 341| r341_2(glval) = FunctionAddress[~String] : +# 341| v341_3(void) = Call[~String] : func:r341_2, this:r341_1 +# 341| mu341_4(unknown) = ^CallSideEffect : ~m? +# 341| v341_5(void) = ^IndirectReadSideEffect[-1] : &:r341_1, ~m? +# 341| mu341_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r341_1 +# 341| r341_7(bool) = Constant[0] : +# 341| v341_8(void) = ConditionalBranch : r341_7 +#-----| False -> Block 109 +#-----| True (back edge) -> Block 108 + +# 343| Block 109 +# 343| r343_1(glval) = VariableAddress[x108] : +# 343| mu343_2(String) = Uninitialized[x108] : &:r343_1 +# 343| r343_3(glval) = FunctionAddress[String] : +# 343| v343_4(void) = Call[String] : func:r343_3, this:r343_1 +# 343| mu343_5(unknown) = ^CallSideEffect : ~m? +# 343| mu343_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r343_1 +# 344| r344_1(glval) = VariableAddress[x108] : +# 344| r344_2(glval) = FunctionAddress[~String] : +# 344| v344_3(void) = Call[~String] : func:r344_2, this:r344_1 +# 344| mu344_4(unknown) = ^CallSideEffect : ~m? +# 344| v344_5(void) = ^IndirectReadSideEffect[-1] : &:r344_1, ~m? +# 344| mu344_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r344_1 +# 344| r344_7(bool) = Constant[0] : +# 344| v344_8(void) = ConditionalBranch : r344_7 +#-----| False -> Block 110 +#-----| True (back edge) -> Block 109 + +# 346| Block 110 +# 346| r346_1(glval) = VariableAddress[x109] : +# 346| mu346_2(String) = Uninitialized[x109] : &:r346_1 +# 346| r346_3(glval) = FunctionAddress[String] : +# 346| v346_4(void) = Call[String] : func:r346_3, this:r346_1 +# 346| mu346_5(unknown) = ^CallSideEffect : ~m? +# 346| mu346_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r346_1 +# 347| r347_1(glval) = VariableAddress[x109] : +# 347| r347_2(glval) = FunctionAddress[~String] : +# 347| v347_3(void) = Call[~String] : func:r347_2, this:r347_1 +# 347| mu347_4(unknown) = ^CallSideEffect : ~m? +# 347| v347_5(void) = ^IndirectReadSideEffect[-1] : &:r347_1, ~m? +# 347| mu347_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r347_1 +# 347| r347_7(bool) = Constant[0] : +# 347| v347_8(void) = ConditionalBranch : r347_7 +#-----| False -> Block 111 +#-----| True (back edge) -> Block 110 + +# 349| Block 111 +# 349| r349_1(glval) = VariableAddress[x110] : +# 349| mu349_2(String) = Uninitialized[x110] : &:r349_1 +# 349| r349_3(glval) = FunctionAddress[String] : +# 349| v349_4(void) = Call[String] : func:r349_3, this:r349_1 +# 349| mu349_5(unknown) = ^CallSideEffect : ~m? +# 349| mu349_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r349_1 +# 350| r350_1(glval) = VariableAddress[x110] : +# 350| r350_2(glval) = FunctionAddress[~String] : +# 350| v350_3(void) = Call[~String] : func:r350_2, this:r350_1 +# 350| mu350_4(unknown) = ^CallSideEffect : ~m? +# 350| v350_5(void) = ^IndirectReadSideEffect[-1] : &:r350_1, ~m? +# 350| mu350_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r350_1 +# 350| r350_7(bool) = Constant[0] : +# 350| v350_8(void) = ConditionalBranch : r350_7 +#-----| False -> Block 112 +#-----| True (back edge) -> Block 111 + +# 352| Block 112 +# 352| r352_1(glval) = VariableAddress[x111] : +# 352| mu352_2(String) = Uninitialized[x111] : &:r352_1 +# 352| r352_3(glval) = FunctionAddress[String] : +# 352| v352_4(void) = Call[String] : func:r352_3, this:r352_1 +# 352| mu352_5(unknown) = ^CallSideEffect : ~m? +# 352| mu352_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r352_1 +# 353| r353_1(glval) = VariableAddress[x111] : +# 353| r353_2(glval) = FunctionAddress[~String] : +# 353| v353_3(void) = Call[~String] : func:r353_2, this:r353_1 +# 353| mu353_4(unknown) = ^CallSideEffect : ~m? +# 353| v353_5(void) = ^IndirectReadSideEffect[-1] : &:r353_1, ~m? +# 353| mu353_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r353_1 +# 353| r353_7(bool) = Constant[0] : +# 353| v353_8(void) = ConditionalBranch : r353_7 +#-----| False -> Block 113 +#-----| True (back edge) -> Block 112 + +# 355| Block 113 +# 355| r355_1(glval) = VariableAddress[x112] : +# 355| mu355_2(String) = Uninitialized[x112] : &:r355_1 +# 355| r355_3(glval) = FunctionAddress[String] : +# 355| v355_4(void) = Call[String] : func:r355_3, this:r355_1 +# 355| mu355_5(unknown) = ^CallSideEffect : ~m? +# 355| mu355_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r355_1 +# 356| r356_1(glval) = VariableAddress[x112] : +# 356| r356_2(glval) = FunctionAddress[~String] : +# 356| v356_3(void) = Call[~String] : func:r356_2, this:r356_1 +# 356| mu356_4(unknown) = ^CallSideEffect : ~m? +# 356| v356_5(void) = ^IndirectReadSideEffect[-1] : &:r356_1, ~m? +# 356| mu356_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r356_1 +# 356| r356_7(bool) = Constant[0] : +# 356| v356_8(void) = ConditionalBranch : r356_7 +#-----| False -> Block 114 +#-----| True (back edge) -> Block 113 + +# 358| Block 114 +# 358| r358_1(glval) = VariableAddress[x113] : +# 358| mu358_2(String) = Uninitialized[x113] : &:r358_1 +# 358| r358_3(glval) = FunctionAddress[String] : +# 358| v358_4(void) = Call[String] : func:r358_3, this:r358_1 +# 358| mu358_5(unknown) = ^CallSideEffect : ~m? +# 358| mu358_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r358_1 +# 359| r359_1(glval) = VariableAddress[x113] : +# 359| r359_2(glval) = FunctionAddress[~String] : +# 359| v359_3(void) = Call[~String] : func:r359_2, this:r359_1 +# 359| mu359_4(unknown) = ^CallSideEffect : ~m? +# 359| v359_5(void) = ^IndirectReadSideEffect[-1] : &:r359_1, ~m? +# 359| mu359_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r359_1 +# 359| r359_7(bool) = Constant[0] : +# 359| v359_8(void) = ConditionalBranch : r359_7 +#-----| False -> Block 115 +#-----| True (back edge) -> Block 114 + +# 361| Block 115 +# 361| r361_1(glval) = VariableAddress[x114] : +# 361| mu361_2(String) = Uninitialized[x114] : &:r361_1 +# 361| r361_3(glval) = FunctionAddress[String] : +# 361| v361_4(void) = Call[String] : func:r361_3, this:r361_1 +# 361| mu361_5(unknown) = ^CallSideEffect : ~m? +# 361| mu361_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r361_1 +# 362| r362_1(glval) = VariableAddress[x114] : +# 362| r362_2(glval) = FunctionAddress[~String] : +# 362| v362_3(void) = Call[~String] : func:r362_2, this:r362_1 +# 362| mu362_4(unknown) = ^CallSideEffect : ~m? +# 362| v362_5(void) = ^IndirectReadSideEffect[-1] : &:r362_1, ~m? +# 362| mu362_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r362_1 +# 362| r362_7(bool) = Constant[0] : +# 362| v362_8(void) = ConditionalBranch : r362_7 +#-----| False -> Block 116 +#-----| True (back edge) -> Block 115 + +# 364| Block 116 +# 364| r364_1(glval) = VariableAddress[x115] : +# 364| mu364_2(String) = Uninitialized[x115] : &:r364_1 +# 364| r364_3(glval) = FunctionAddress[String] : +# 364| v364_4(void) = Call[String] : func:r364_3, this:r364_1 +# 364| mu364_5(unknown) = ^CallSideEffect : ~m? +# 364| mu364_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r364_1 +# 365| r365_1(glval) = VariableAddress[x115] : +# 365| r365_2(glval) = FunctionAddress[~String] : +# 365| v365_3(void) = Call[~String] : func:r365_2, this:r365_1 +# 365| mu365_4(unknown) = ^CallSideEffect : ~m? +# 365| v365_5(void) = ^IndirectReadSideEffect[-1] : &:r365_1, ~m? +# 365| mu365_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r365_1 +# 365| r365_7(bool) = Constant[0] : +# 365| v365_8(void) = ConditionalBranch : r365_7 +#-----| False -> Block 117 +#-----| True (back edge) -> Block 116 + +# 367| Block 117 +# 367| r367_1(glval) = VariableAddress[x116] : +# 367| mu367_2(String) = Uninitialized[x116] : &:r367_1 +# 367| r367_3(glval) = FunctionAddress[String] : +# 367| v367_4(void) = Call[String] : func:r367_3, this:r367_1 +# 367| mu367_5(unknown) = ^CallSideEffect : ~m? +# 367| mu367_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r367_1 +# 368| r368_1(glval) = VariableAddress[x116] : +# 368| r368_2(glval) = FunctionAddress[~String] : +# 368| v368_3(void) = Call[~String] : func:r368_2, this:r368_1 +# 368| mu368_4(unknown) = ^CallSideEffect : ~m? +# 368| v368_5(void) = ^IndirectReadSideEffect[-1] : &:r368_1, ~m? +# 368| mu368_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r368_1 +# 368| r368_7(bool) = Constant[0] : +# 368| v368_8(void) = ConditionalBranch : r368_7 +#-----| False -> Block 118 +#-----| True (back edge) -> Block 117 + +# 370| Block 118 +# 370| r370_1(glval) = VariableAddress[x117] : +# 370| mu370_2(String) = Uninitialized[x117] : &:r370_1 +# 370| r370_3(glval) = FunctionAddress[String] : +# 370| v370_4(void) = Call[String] : func:r370_3, this:r370_1 +# 370| mu370_5(unknown) = ^CallSideEffect : ~m? +# 370| mu370_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r370_1 +# 371| r371_1(glval) = VariableAddress[x117] : +# 371| r371_2(glval) = FunctionAddress[~String] : +# 371| v371_3(void) = Call[~String] : func:r371_2, this:r371_1 +# 371| mu371_4(unknown) = ^CallSideEffect : ~m? +# 371| v371_5(void) = ^IndirectReadSideEffect[-1] : &:r371_1, ~m? +# 371| mu371_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r371_1 +# 371| r371_7(bool) = Constant[0] : +# 371| v371_8(void) = ConditionalBranch : r371_7 +#-----| False -> Block 119 +#-----| True (back edge) -> Block 118 + +# 373| Block 119 +# 373| r373_1(glval) = VariableAddress[x118] : +# 373| mu373_2(String) = Uninitialized[x118] : &:r373_1 +# 373| r373_3(glval) = FunctionAddress[String] : +# 373| v373_4(void) = Call[String] : func:r373_3, this:r373_1 +# 373| mu373_5(unknown) = ^CallSideEffect : ~m? +# 373| mu373_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r373_1 +# 374| r374_1(glval) = VariableAddress[x118] : +# 374| r374_2(glval) = FunctionAddress[~String] : +# 374| v374_3(void) = Call[~String] : func:r374_2, this:r374_1 +# 374| mu374_4(unknown) = ^CallSideEffect : ~m? +# 374| v374_5(void) = ^IndirectReadSideEffect[-1] : &:r374_1, ~m? +# 374| mu374_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r374_1 +# 374| r374_7(bool) = Constant[0] : +# 374| v374_8(void) = ConditionalBranch : r374_7 +#-----| False -> Block 120 +#-----| True (back edge) -> Block 119 + +# 376| Block 120 +# 376| r376_1(glval) = VariableAddress[x119] : +# 376| mu376_2(String) = Uninitialized[x119] : &:r376_1 +# 376| r376_3(glval) = FunctionAddress[String] : +# 376| v376_4(void) = Call[String] : func:r376_3, this:r376_1 +# 376| mu376_5(unknown) = ^CallSideEffect : ~m? +# 376| mu376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r376_1 +# 377| r377_1(glval) = VariableAddress[x119] : +# 377| r377_2(glval) = FunctionAddress[~String] : +# 377| v377_3(void) = Call[~String] : func:r377_2, this:r377_1 +# 377| mu377_4(unknown) = ^CallSideEffect : ~m? +# 377| v377_5(void) = ^IndirectReadSideEffect[-1] : &:r377_1, ~m? +# 377| mu377_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r377_1 +# 377| r377_7(bool) = Constant[0] : +# 377| v377_8(void) = ConditionalBranch : r377_7 +#-----| False -> Block 121 +#-----| True (back edge) -> Block 120 + +# 379| Block 121 +# 379| r379_1(glval) = VariableAddress[x120] : +# 379| mu379_2(String) = Uninitialized[x120] : &:r379_1 +# 379| r379_3(glval) = FunctionAddress[String] : +# 379| v379_4(void) = Call[String] : func:r379_3, this:r379_1 +# 379| mu379_5(unknown) = ^CallSideEffect : ~m? +# 379| mu379_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r379_1 +# 380| r380_1(glval) = VariableAddress[x120] : +# 380| r380_2(glval) = FunctionAddress[~String] : +# 380| v380_3(void) = Call[~String] : func:r380_2, this:r380_1 +# 380| mu380_4(unknown) = ^CallSideEffect : ~m? +# 380| v380_5(void) = ^IndirectReadSideEffect[-1] : &:r380_1, ~m? +# 380| mu380_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r380_1 +# 380| r380_7(bool) = Constant[0] : +# 380| v380_8(void) = ConditionalBranch : r380_7 +#-----| False -> Block 122 +#-----| True (back edge) -> Block 121 + +# 382| Block 122 +# 382| r382_1(glval) = VariableAddress[x121] : +# 382| mu382_2(String) = Uninitialized[x121] : &:r382_1 +# 382| r382_3(glval) = FunctionAddress[String] : +# 382| v382_4(void) = Call[String] : func:r382_3, this:r382_1 +# 382| mu382_5(unknown) = ^CallSideEffect : ~m? +# 382| mu382_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r382_1 +# 383| r383_1(glval) = VariableAddress[x121] : +# 383| r383_2(glval) = FunctionAddress[~String] : +# 383| v383_3(void) = Call[~String] : func:r383_2, this:r383_1 +# 383| mu383_4(unknown) = ^CallSideEffect : ~m? +# 383| v383_5(void) = ^IndirectReadSideEffect[-1] : &:r383_1, ~m? +# 383| mu383_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r383_1 +# 383| r383_7(bool) = Constant[0] : +# 383| v383_8(void) = ConditionalBranch : r383_7 +#-----| False -> Block 123 +#-----| True (back edge) -> Block 122 + +# 385| Block 123 +# 385| r385_1(glval) = VariableAddress[x122] : +# 385| mu385_2(String) = Uninitialized[x122] : &:r385_1 +# 385| r385_3(glval) = FunctionAddress[String] : +# 385| v385_4(void) = Call[String] : func:r385_3, this:r385_1 +# 385| mu385_5(unknown) = ^CallSideEffect : ~m? +# 385| mu385_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r385_1 +# 386| r386_1(glval) = VariableAddress[x122] : +# 386| r386_2(glval) = FunctionAddress[~String] : +# 386| v386_3(void) = Call[~String] : func:r386_2, this:r386_1 +# 386| mu386_4(unknown) = ^CallSideEffect : ~m? +# 386| v386_5(void) = ^IndirectReadSideEffect[-1] : &:r386_1, ~m? +# 386| mu386_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r386_1 +# 386| r386_7(bool) = Constant[0] : +# 386| v386_8(void) = ConditionalBranch : r386_7 +#-----| False -> Block 124 +#-----| True (back edge) -> Block 123 + +# 388| Block 124 +# 388| r388_1(glval) = VariableAddress[x123] : +# 388| mu388_2(String) = Uninitialized[x123] : &:r388_1 +# 388| r388_3(glval) = FunctionAddress[String] : +# 388| v388_4(void) = Call[String] : func:r388_3, this:r388_1 +# 388| mu388_5(unknown) = ^CallSideEffect : ~m? +# 388| mu388_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r388_1 +# 389| r389_1(glval) = VariableAddress[x123] : +# 389| r389_2(glval) = FunctionAddress[~String] : +# 389| v389_3(void) = Call[~String] : func:r389_2, this:r389_1 +# 389| mu389_4(unknown) = ^CallSideEffect : ~m? +# 389| v389_5(void) = ^IndirectReadSideEffect[-1] : &:r389_1, ~m? +# 389| mu389_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r389_1 +# 389| r389_7(bool) = Constant[0] : +# 389| v389_8(void) = ConditionalBranch : r389_7 +#-----| False -> Block 125 +#-----| True (back edge) -> Block 124 + +# 391| Block 125 +# 391| r391_1(glval) = VariableAddress[x124] : +# 391| mu391_2(String) = Uninitialized[x124] : &:r391_1 +# 391| r391_3(glval) = FunctionAddress[String] : +# 391| v391_4(void) = Call[String] : func:r391_3, this:r391_1 +# 391| mu391_5(unknown) = ^CallSideEffect : ~m? +# 391| mu391_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r391_1 +# 392| r392_1(glval) = VariableAddress[x124] : +# 392| r392_2(glval) = FunctionAddress[~String] : +# 392| v392_3(void) = Call[~String] : func:r392_2, this:r392_1 +# 392| mu392_4(unknown) = ^CallSideEffect : ~m? +# 392| v392_5(void) = ^IndirectReadSideEffect[-1] : &:r392_1, ~m? +# 392| mu392_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r392_1 +# 392| r392_7(bool) = Constant[0] : +# 392| v392_8(void) = ConditionalBranch : r392_7 +#-----| False -> Block 126 +#-----| True (back edge) -> Block 125 + +# 394| Block 126 +# 394| r394_1(glval) = VariableAddress[x125] : +# 394| mu394_2(String) = Uninitialized[x125] : &:r394_1 +# 394| r394_3(glval) = FunctionAddress[String] : +# 394| v394_4(void) = Call[String] : func:r394_3, this:r394_1 +# 394| mu394_5(unknown) = ^CallSideEffect : ~m? +# 394| mu394_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r394_1 +# 395| r395_1(glval) = VariableAddress[x125] : +# 395| r395_2(glval) = FunctionAddress[~String] : +# 395| v395_3(void) = Call[~String] : func:r395_2, this:r395_1 +# 395| mu395_4(unknown) = ^CallSideEffect : ~m? +# 395| v395_5(void) = ^IndirectReadSideEffect[-1] : &:r395_1, ~m? +# 395| mu395_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r395_1 +# 395| r395_7(bool) = Constant[0] : +# 395| v395_8(void) = ConditionalBranch : r395_7 +#-----| False -> Block 127 +#-----| True (back edge) -> Block 126 + +# 397| Block 127 +# 397| r397_1(glval) = VariableAddress[x126] : +# 397| mu397_2(String) = Uninitialized[x126] : &:r397_1 +# 397| r397_3(glval) = FunctionAddress[String] : +# 397| v397_4(void) = Call[String] : func:r397_3, this:r397_1 +# 397| mu397_5(unknown) = ^CallSideEffect : ~m? +# 397| mu397_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r397_1 +# 398| r398_1(glval) = VariableAddress[x126] : +# 398| r398_2(glval) = FunctionAddress[~String] : +# 398| v398_3(void) = Call[~String] : func:r398_2, this:r398_1 +# 398| mu398_4(unknown) = ^CallSideEffect : ~m? +# 398| v398_5(void) = ^IndirectReadSideEffect[-1] : &:r398_1, ~m? +# 398| mu398_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r398_1 +# 398| r398_7(bool) = Constant[0] : +# 398| v398_8(void) = ConditionalBranch : r398_7 +#-----| False -> Block 128 +#-----| True (back edge) -> Block 127 + +# 400| Block 128 +# 400| r400_1(glval) = VariableAddress[x127] : +# 400| mu400_2(String) = Uninitialized[x127] : &:r400_1 +# 400| r400_3(glval) = FunctionAddress[String] : +# 400| v400_4(void) = Call[String] : func:r400_3, this:r400_1 +# 400| mu400_5(unknown) = ^CallSideEffect : ~m? +# 400| mu400_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r400_1 +# 401| r401_1(glval) = VariableAddress[x127] : +# 401| r401_2(glval) = FunctionAddress[~String] : +# 401| v401_3(void) = Call[~String] : func:r401_2, this:r401_1 +# 401| mu401_4(unknown) = ^CallSideEffect : ~m? +# 401| v401_5(void) = ^IndirectReadSideEffect[-1] : &:r401_1, ~m? +# 401| mu401_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r401_1 +# 401| r401_7(bool) = Constant[0] : +# 401| v401_8(void) = ConditionalBranch : r401_7 +#-----| False -> Block 129 +#-----| True (back edge) -> Block 128 + +# 403| Block 129 +# 403| r403_1(glval) = VariableAddress[x128] : +# 403| mu403_2(String) = Uninitialized[x128] : &:r403_1 +# 403| r403_3(glval) = FunctionAddress[String] : +# 403| v403_4(void) = Call[String] : func:r403_3, this:r403_1 +# 403| mu403_5(unknown) = ^CallSideEffect : ~m? +# 403| mu403_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r403_1 +# 404| r404_1(glval) = VariableAddress[x128] : +# 404| r404_2(glval) = FunctionAddress[~String] : +# 404| v404_3(void) = Call[~String] : func:r404_2, this:r404_1 +# 404| mu404_4(unknown) = ^CallSideEffect : ~m? +# 404| v404_5(void) = ^IndirectReadSideEffect[-1] : &:r404_1, ~m? +# 404| mu404_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r404_1 +# 404| r404_7(bool) = Constant[0] : +# 404| v404_8(void) = ConditionalBranch : r404_7 +#-----| False -> Block 130 +#-----| True (back edge) -> Block 129 + +# 406| Block 130 +# 406| r406_1(glval) = VariableAddress[x129] : +# 406| mu406_2(String) = Uninitialized[x129] : &:r406_1 +# 406| r406_3(glval) = FunctionAddress[String] : +# 406| v406_4(void) = Call[String] : func:r406_3, this:r406_1 +# 406| mu406_5(unknown) = ^CallSideEffect : ~m? +# 406| mu406_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r406_1 +# 407| r407_1(glval) = VariableAddress[x129] : +# 407| r407_2(glval) = FunctionAddress[~String] : +# 407| v407_3(void) = Call[~String] : func:r407_2, this:r407_1 +# 407| mu407_4(unknown) = ^CallSideEffect : ~m? +# 407| v407_5(void) = ^IndirectReadSideEffect[-1] : &:r407_1, ~m? +# 407| mu407_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r407_1 +# 407| r407_7(bool) = Constant[0] : +# 407| v407_8(void) = ConditionalBranch : r407_7 +#-----| False -> Block 131 +#-----| True (back edge) -> Block 130 + +# 409| Block 131 +# 409| r409_1(glval) = VariableAddress[x130] : +# 409| mu409_2(String) = Uninitialized[x130] : &:r409_1 +# 409| r409_3(glval) = FunctionAddress[String] : +# 409| v409_4(void) = Call[String] : func:r409_3, this:r409_1 +# 409| mu409_5(unknown) = ^CallSideEffect : ~m? +# 409| mu409_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r409_1 +# 410| r410_1(glval) = VariableAddress[x130] : +# 410| r410_2(glval) = FunctionAddress[~String] : +# 410| v410_3(void) = Call[~String] : func:r410_2, this:r410_1 +# 410| mu410_4(unknown) = ^CallSideEffect : ~m? +# 410| v410_5(void) = ^IndirectReadSideEffect[-1] : &:r410_1, ~m? +# 410| mu410_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r410_1 +# 410| r410_7(bool) = Constant[0] : +# 410| v410_8(void) = ConditionalBranch : r410_7 +#-----| False -> Block 132 +#-----| True (back edge) -> Block 131 + +# 412| Block 132 +# 412| r412_1(glval) = VariableAddress[x131] : +# 412| mu412_2(String) = Uninitialized[x131] : &:r412_1 +# 412| r412_3(glval) = FunctionAddress[String] : +# 412| v412_4(void) = Call[String] : func:r412_3, this:r412_1 +# 412| mu412_5(unknown) = ^CallSideEffect : ~m? +# 412| mu412_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r412_1 +# 413| r413_1(glval) = VariableAddress[x131] : +# 413| r413_2(glval) = FunctionAddress[~String] : +# 413| v413_3(void) = Call[~String] : func:r413_2, this:r413_1 +# 413| mu413_4(unknown) = ^CallSideEffect : ~m? +# 413| v413_5(void) = ^IndirectReadSideEffect[-1] : &:r413_1, ~m? +# 413| mu413_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r413_1 +# 413| r413_7(bool) = Constant[0] : +# 413| v413_8(void) = ConditionalBranch : r413_7 +#-----| False -> Block 133 +#-----| True (back edge) -> Block 132 + +# 415| Block 133 +# 415| r415_1(glval) = VariableAddress[x132] : +# 415| mu415_2(String) = Uninitialized[x132] : &:r415_1 +# 415| r415_3(glval) = FunctionAddress[String] : +# 415| v415_4(void) = Call[String] : func:r415_3, this:r415_1 +# 415| mu415_5(unknown) = ^CallSideEffect : ~m? +# 415| mu415_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r415_1 +# 416| r416_1(glval) = VariableAddress[x132] : +# 416| r416_2(glval) = FunctionAddress[~String] : +# 416| v416_3(void) = Call[~String] : func:r416_2, this:r416_1 +# 416| mu416_4(unknown) = ^CallSideEffect : ~m? +# 416| v416_5(void) = ^IndirectReadSideEffect[-1] : &:r416_1, ~m? +# 416| mu416_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r416_1 +# 416| r416_7(bool) = Constant[0] : +# 416| v416_8(void) = ConditionalBranch : r416_7 +#-----| False -> Block 134 +#-----| True (back edge) -> Block 133 + +# 418| Block 134 +# 418| r418_1(glval) = VariableAddress[x133] : +# 418| mu418_2(String) = Uninitialized[x133] : &:r418_1 +# 418| r418_3(glval) = FunctionAddress[String] : +# 418| v418_4(void) = Call[String] : func:r418_3, this:r418_1 +# 418| mu418_5(unknown) = ^CallSideEffect : ~m? +# 418| mu418_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r418_1 +# 419| r419_1(glval) = VariableAddress[x133] : +# 419| r419_2(glval) = FunctionAddress[~String] : +# 419| v419_3(void) = Call[~String] : func:r419_2, this:r419_1 +# 419| mu419_4(unknown) = ^CallSideEffect : ~m? +# 419| v419_5(void) = ^IndirectReadSideEffect[-1] : &:r419_1, ~m? +# 419| mu419_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r419_1 +# 419| r419_7(bool) = Constant[0] : +# 419| v419_8(void) = ConditionalBranch : r419_7 +#-----| False -> Block 135 +#-----| True (back edge) -> Block 134 + +# 421| Block 135 +# 421| r421_1(glval) = VariableAddress[x134] : +# 421| mu421_2(String) = Uninitialized[x134] : &:r421_1 +# 421| r421_3(glval) = FunctionAddress[String] : +# 421| v421_4(void) = Call[String] : func:r421_3, this:r421_1 +# 421| mu421_5(unknown) = ^CallSideEffect : ~m? +# 421| mu421_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r421_1 +# 422| r422_1(glval) = VariableAddress[x134] : +# 422| r422_2(glval) = FunctionAddress[~String] : +# 422| v422_3(void) = Call[~String] : func:r422_2, this:r422_1 +# 422| mu422_4(unknown) = ^CallSideEffect : ~m? +# 422| v422_5(void) = ^IndirectReadSideEffect[-1] : &:r422_1, ~m? +# 422| mu422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r422_1 +# 422| r422_7(bool) = Constant[0] : +# 422| v422_8(void) = ConditionalBranch : r422_7 +#-----| False -> Block 136 +#-----| True (back edge) -> Block 135 + +# 424| Block 136 +# 424| r424_1(glval) = VariableAddress[x135] : +# 424| mu424_2(String) = Uninitialized[x135] : &:r424_1 +# 424| r424_3(glval) = FunctionAddress[String] : +# 424| v424_4(void) = Call[String] : func:r424_3, this:r424_1 +# 424| mu424_5(unknown) = ^CallSideEffect : ~m? +# 424| mu424_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r424_1 +# 425| r425_1(glval) = VariableAddress[x135] : +# 425| r425_2(glval) = FunctionAddress[~String] : +# 425| v425_3(void) = Call[~String] : func:r425_2, this:r425_1 +# 425| mu425_4(unknown) = ^CallSideEffect : ~m? +# 425| v425_5(void) = ^IndirectReadSideEffect[-1] : &:r425_1, ~m? +# 425| mu425_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r425_1 +# 425| r425_7(bool) = Constant[0] : +# 425| v425_8(void) = ConditionalBranch : r425_7 +#-----| False -> Block 137 +#-----| True (back edge) -> Block 136 + +# 427| Block 137 +# 427| r427_1(glval) = VariableAddress[x136] : +# 427| mu427_2(String) = Uninitialized[x136] : &:r427_1 +# 427| r427_3(glval) = FunctionAddress[String] : +# 427| v427_4(void) = Call[String] : func:r427_3, this:r427_1 +# 427| mu427_5(unknown) = ^CallSideEffect : ~m? +# 427| mu427_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r427_1 +# 428| r428_1(glval) = VariableAddress[x136] : +# 428| r428_2(glval) = FunctionAddress[~String] : +# 428| v428_3(void) = Call[~String] : func:r428_2, this:r428_1 +# 428| mu428_4(unknown) = ^CallSideEffect : ~m? +# 428| v428_5(void) = ^IndirectReadSideEffect[-1] : &:r428_1, ~m? +# 428| mu428_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r428_1 +# 428| r428_7(bool) = Constant[0] : +# 428| v428_8(void) = ConditionalBranch : r428_7 +#-----| False -> Block 138 +#-----| True (back edge) -> Block 137 + +# 430| Block 138 +# 430| r430_1(glval) = VariableAddress[x137] : +# 430| mu430_2(String) = Uninitialized[x137] : &:r430_1 +# 430| r430_3(glval) = FunctionAddress[String] : +# 430| v430_4(void) = Call[String] : func:r430_3, this:r430_1 +# 430| mu430_5(unknown) = ^CallSideEffect : ~m? +# 430| mu430_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r430_1 +# 431| r431_1(glval) = VariableAddress[x137] : +# 431| r431_2(glval) = FunctionAddress[~String] : +# 431| v431_3(void) = Call[~String] : func:r431_2, this:r431_1 +# 431| mu431_4(unknown) = ^CallSideEffect : ~m? +# 431| v431_5(void) = ^IndirectReadSideEffect[-1] : &:r431_1, ~m? +# 431| mu431_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r431_1 +# 431| r431_7(bool) = Constant[0] : +# 431| v431_8(void) = ConditionalBranch : r431_7 +#-----| False -> Block 139 +#-----| True (back edge) -> Block 138 + +# 433| Block 139 +# 433| r433_1(glval) = VariableAddress[x138] : +# 433| mu433_2(String) = Uninitialized[x138] : &:r433_1 +# 433| r433_3(glval) = FunctionAddress[String] : +# 433| v433_4(void) = Call[String] : func:r433_3, this:r433_1 +# 433| mu433_5(unknown) = ^CallSideEffect : ~m? +# 433| mu433_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r433_1 +# 434| r434_1(glval) = VariableAddress[x138] : +# 434| r434_2(glval) = FunctionAddress[~String] : +# 434| v434_3(void) = Call[~String] : func:r434_2, this:r434_1 +# 434| mu434_4(unknown) = ^CallSideEffect : ~m? +# 434| v434_5(void) = ^IndirectReadSideEffect[-1] : &:r434_1, ~m? +# 434| mu434_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r434_1 +# 434| r434_7(bool) = Constant[0] : +# 434| v434_8(void) = ConditionalBranch : r434_7 +#-----| False -> Block 140 +#-----| True (back edge) -> Block 139 + +# 436| Block 140 +# 436| r436_1(glval) = VariableAddress[x139] : +# 436| mu436_2(String) = Uninitialized[x139] : &:r436_1 +# 436| r436_3(glval) = FunctionAddress[String] : +# 436| v436_4(void) = Call[String] : func:r436_3, this:r436_1 +# 436| mu436_5(unknown) = ^CallSideEffect : ~m? +# 436| mu436_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r436_1 +# 437| r437_1(glval) = VariableAddress[x139] : +# 437| r437_2(glval) = FunctionAddress[~String] : +# 437| v437_3(void) = Call[~String] : func:r437_2, this:r437_1 +# 437| mu437_4(unknown) = ^CallSideEffect : ~m? +# 437| v437_5(void) = ^IndirectReadSideEffect[-1] : &:r437_1, ~m? +# 437| mu437_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r437_1 +# 437| r437_7(bool) = Constant[0] : +# 437| v437_8(void) = ConditionalBranch : r437_7 +#-----| False -> Block 141 +#-----| True (back edge) -> Block 140 + +# 439| Block 141 +# 439| r439_1(glval) = VariableAddress[x140] : +# 439| mu439_2(String) = Uninitialized[x140] : &:r439_1 +# 439| r439_3(glval) = FunctionAddress[String] : +# 439| v439_4(void) = Call[String] : func:r439_3, this:r439_1 +# 439| mu439_5(unknown) = ^CallSideEffect : ~m? +# 439| mu439_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r439_1 +# 440| r440_1(glval) = VariableAddress[x140] : +# 440| r440_2(glval) = FunctionAddress[~String] : +# 440| v440_3(void) = Call[~String] : func:r440_2, this:r440_1 +# 440| mu440_4(unknown) = ^CallSideEffect : ~m? +# 440| v440_5(void) = ^IndirectReadSideEffect[-1] : &:r440_1, ~m? +# 440| mu440_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r440_1 +# 440| r440_7(bool) = Constant[0] : +# 440| v440_8(void) = ConditionalBranch : r440_7 +#-----| False -> Block 142 +#-----| True (back edge) -> Block 141 + +# 442| Block 142 +# 442| r442_1(glval) = VariableAddress[x141] : +# 442| mu442_2(String) = Uninitialized[x141] : &:r442_1 +# 442| r442_3(glval) = FunctionAddress[String] : +# 442| v442_4(void) = Call[String] : func:r442_3, this:r442_1 +# 442| mu442_5(unknown) = ^CallSideEffect : ~m? +# 442| mu442_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r442_1 +# 443| r443_1(glval) = VariableAddress[x141] : +# 443| r443_2(glval) = FunctionAddress[~String] : +# 443| v443_3(void) = Call[~String] : func:r443_2, this:r443_1 +# 443| mu443_4(unknown) = ^CallSideEffect : ~m? +# 443| v443_5(void) = ^IndirectReadSideEffect[-1] : &:r443_1, ~m? +# 443| mu443_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r443_1 +# 443| r443_7(bool) = Constant[0] : +# 443| v443_8(void) = ConditionalBranch : r443_7 +#-----| False -> Block 143 +#-----| True (back edge) -> Block 142 + +# 445| Block 143 +# 445| r445_1(glval) = VariableAddress[x142] : +# 445| mu445_2(String) = Uninitialized[x142] : &:r445_1 +# 445| r445_3(glval) = FunctionAddress[String] : +# 445| v445_4(void) = Call[String] : func:r445_3, this:r445_1 +# 445| mu445_5(unknown) = ^CallSideEffect : ~m? +# 445| mu445_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r445_1 +# 446| r446_1(glval) = VariableAddress[x142] : +# 446| r446_2(glval) = FunctionAddress[~String] : +# 446| v446_3(void) = Call[~String] : func:r446_2, this:r446_1 +# 446| mu446_4(unknown) = ^CallSideEffect : ~m? +# 446| v446_5(void) = ^IndirectReadSideEffect[-1] : &:r446_1, ~m? +# 446| mu446_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r446_1 +# 446| r446_7(bool) = Constant[0] : +# 446| v446_8(void) = ConditionalBranch : r446_7 +#-----| False -> Block 144 +#-----| True (back edge) -> Block 143 + +# 448| Block 144 +# 448| r448_1(glval) = VariableAddress[x143] : +# 448| mu448_2(String) = Uninitialized[x143] : &:r448_1 +# 448| r448_3(glval) = FunctionAddress[String] : +# 448| v448_4(void) = Call[String] : func:r448_3, this:r448_1 +# 448| mu448_5(unknown) = ^CallSideEffect : ~m? +# 448| mu448_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r448_1 +# 449| r449_1(glval) = VariableAddress[x143] : +# 449| r449_2(glval) = FunctionAddress[~String] : +# 449| v449_3(void) = Call[~String] : func:r449_2, this:r449_1 +# 449| mu449_4(unknown) = ^CallSideEffect : ~m? +# 449| v449_5(void) = ^IndirectReadSideEffect[-1] : &:r449_1, ~m? +# 449| mu449_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r449_1 +# 449| r449_7(bool) = Constant[0] : +# 449| v449_8(void) = ConditionalBranch : r449_7 +#-----| False -> Block 145 +#-----| True (back edge) -> Block 144 + +# 451| Block 145 +# 451| r451_1(glval) = VariableAddress[x144] : +# 451| mu451_2(String) = Uninitialized[x144] : &:r451_1 +# 451| r451_3(glval) = FunctionAddress[String] : +# 451| v451_4(void) = Call[String] : func:r451_3, this:r451_1 +# 451| mu451_5(unknown) = ^CallSideEffect : ~m? +# 451| mu451_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r451_1 +# 452| r452_1(glval) = VariableAddress[x144] : +# 452| r452_2(glval) = FunctionAddress[~String] : +# 452| v452_3(void) = Call[~String] : func:r452_2, this:r452_1 +# 452| mu452_4(unknown) = ^CallSideEffect : ~m? +# 452| v452_5(void) = ^IndirectReadSideEffect[-1] : &:r452_1, ~m? +# 452| mu452_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r452_1 +# 452| r452_7(bool) = Constant[0] : +# 452| v452_8(void) = ConditionalBranch : r452_7 +#-----| False -> Block 146 +#-----| True (back edge) -> Block 145 + +# 454| Block 146 +# 454| r454_1(glval) = VariableAddress[x145] : +# 454| mu454_2(String) = Uninitialized[x145] : &:r454_1 +# 454| r454_3(glval) = FunctionAddress[String] : +# 454| v454_4(void) = Call[String] : func:r454_3, this:r454_1 +# 454| mu454_5(unknown) = ^CallSideEffect : ~m? +# 454| mu454_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r454_1 +# 455| r455_1(glval) = VariableAddress[x145] : +# 455| r455_2(glval) = FunctionAddress[~String] : +# 455| v455_3(void) = Call[~String] : func:r455_2, this:r455_1 +# 455| mu455_4(unknown) = ^CallSideEffect : ~m? +# 455| v455_5(void) = ^IndirectReadSideEffect[-1] : &:r455_1, ~m? +# 455| mu455_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r455_1 +# 455| r455_7(bool) = Constant[0] : +# 455| v455_8(void) = ConditionalBranch : r455_7 +#-----| False -> Block 147 +#-----| True (back edge) -> Block 146 + +# 457| Block 147 +# 457| r457_1(glval) = VariableAddress[x146] : +# 457| mu457_2(String) = Uninitialized[x146] : &:r457_1 +# 457| r457_3(glval) = FunctionAddress[String] : +# 457| v457_4(void) = Call[String] : func:r457_3, this:r457_1 +# 457| mu457_5(unknown) = ^CallSideEffect : ~m? +# 457| mu457_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r457_1 +# 458| r458_1(glval) = VariableAddress[x146] : +# 458| r458_2(glval) = FunctionAddress[~String] : +# 458| v458_3(void) = Call[~String] : func:r458_2, this:r458_1 +# 458| mu458_4(unknown) = ^CallSideEffect : ~m? +# 458| v458_5(void) = ^IndirectReadSideEffect[-1] : &:r458_1, ~m? +# 458| mu458_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r458_1 +# 458| r458_7(bool) = Constant[0] : +# 458| v458_8(void) = ConditionalBranch : r458_7 +#-----| False -> Block 148 +#-----| True (back edge) -> Block 147 + +# 460| Block 148 +# 460| r460_1(glval) = VariableAddress[x147] : +# 460| mu460_2(String) = Uninitialized[x147] : &:r460_1 +# 460| r460_3(glval) = FunctionAddress[String] : +# 460| v460_4(void) = Call[String] : func:r460_3, this:r460_1 +# 460| mu460_5(unknown) = ^CallSideEffect : ~m? +# 460| mu460_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r460_1 +# 461| r461_1(glval) = VariableAddress[x147] : +# 461| r461_2(glval) = FunctionAddress[~String] : +# 461| v461_3(void) = Call[~String] : func:r461_2, this:r461_1 +# 461| mu461_4(unknown) = ^CallSideEffect : ~m? +# 461| v461_5(void) = ^IndirectReadSideEffect[-1] : &:r461_1, ~m? +# 461| mu461_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r461_1 +# 461| r461_7(bool) = Constant[0] : +# 461| v461_8(void) = ConditionalBranch : r461_7 +#-----| False -> Block 149 +#-----| True (back edge) -> Block 148 + +# 463| Block 149 +# 463| r463_1(glval) = VariableAddress[x148] : +# 463| mu463_2(String) = Uninitialized[x148] : &:r463_1 +# 463| r463_3(glval) = FunctionAddress[String] : +# 463| v463_4(void) = Call[String] : func:r463_3, this:r463_1 +# 463| mu463_5(unknown) = ^CallSideEffect : ~m? +# 463| mu463_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r463_1 +# 464| r464_1(glval) = VariableAddress[x148] : +# 464| r464_2(glval) = FunctionAddress[~String] : +# 464| v464_3(void) = Call[~String] : func:r464_2, this:r464_1 +# 464| mu464_4(unknown) = ^CallSideEffect : ~m? +# 464| v464_5(void) = ^IndirectReadSideEffect[-1] : &:r464_1, ~m? +# 464| mu464_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r464_1 +# 464| r464_7(bool) = Constant[0] : +# 464| v464_8(void) = ConditionalBranch : r464_7 +#-----| False -> Block 150 +#-----| True (back edge) -> Block 149 + +# 466| Block 150 +# 466| r466_1(glval) = VariableAddress[x149] : +# 466| mu466_2(String) = Uninitialized[x149] : &:r466_1 +# 466| r466_3(glval) = FunctionAddress[String] : +# 466| v466_4(void) = Call[String] : func:r466_3, this:r466_1 +# 466| mu466_5(unknown) = ^CallSideEffect : ~m? +# 466| mu466_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r466_1 +# 467| r467_1(glval) = VariableAddress[x149] : +# 467| r467_2(glval) = FunctionAddress[~String] : +# 467| v467_3(void) = Call[~String] : func:r467_2, this:r467_1 +# 467| mu467_4(unknown) = ^CallSideEffect : ~m? +# 467| v467_5(void) = ^IndirectReadSideEffect[-1] : &:r467_1, ~m? +# 467| mu467_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r467_1 +# 467| r467_7(bool) = Constant[0] : +# 467| v467_8(void) = ConditionalBranch : r467_7 +#-----| False -> Block 151 +#-----| True (back edge) -> Block 150 + +# 469| Block 151 +# 469| r469_1(glval) = VariableAddress[x150] : +# 469| mu469_2(String) = Uninitialized[x150] : &:r469_1 +# 469| r469_3(glval) = FunctionAddress[String] : +# 469| v469_4(void) = Call[String] : func:r469_3, this:r469_1 +# 469| mu469_5(unknown) = ^CallSideEffect : ~m? +# 469| mu469_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r469_1 +# 470| r470_1(glval) = VariableAddress[x150] : +# 470| r470_2(glval) = FunctionAddress[~String] : +# 470| v470_3(void) = Call[~String] : func:r470_2, this:r470_1 +# 470| mu470_4(unknown) = ^CallSideEffect : ~m? +# 470| v470_5(void) = ^IndirectReadSideEffect[-1] : &:r470_1, ~m? +# 470| mu470_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r470_1 +# 470| r470_7(bool) = Constant[0] : +# 470| v470_8(void) = ConditionalBranch : r470_7 +#-----| False -> Block 152 +#-----| True (back edge) -> Block 151 + +# 472| Block 152 +# 472| r472_1(glval) = VariableAddress[x151] : +# 472| mu472_2(String) = Uninitialized[x151] : &:r472_1 +# 472| r472_3(glval) = FunctionAddress[String] : +# 472| v472_4(void) = Call[String] : func:r472_3, this:r472_1 +# 472| mu472_5(unknown) = ^CallSideEffect : ~m? +# 472| mu472_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r472_1 +# 473| r473_1(glval) = VariableAddress[x151] : +# 473| r473_2(glval) = FunctionAddress[~String] : +# 473| v473_3(void) = Call[~String] : func:r473_2, this:r473_1 +# 473| mu473_4(unknown) = ^CallSideEffect : ~m? +# 473| v473_5(void) = ^IndirectReadSideEffect[-1] : &:r473_1, ~m? +# 473| mu473_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r473_1 +# 473| r473_7(bool) = Constant[0] : +# 473| v473_8(void) = ConditionalBranch : r473_7 +#-----| False -> Block 153 +#-----| True (back edge) -> Block 152 + +# 475| Block 153 +# 475| r475_1(glval) = VariableAddress[x152] : +# 475| mu475_2(String) = Uninitialized[x152] : &:r475_1 +# 475| r475_3(glval) = FunctionAddress[String] : +# 475| v475_4(void) = Call[String] : func:r475_3, this:r475_1 +# 475| mu475_5(unknown) = ^CallSideEffect : ~m? +# 475| mu475_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r475_1 +# 476| r476_1(glval) = VariableAddress[x152] : +# 476| r476_2(glval) = FunctionAddress[~String] : +# 476| v476_3(void) = Call[~String] : func:r476_2, this:r476_1 +# 476| mu476_4(unknown) = ^CallSideEffect : ~m? +# 476| v476_5(void) = ^IndirectReadSideEffect[-1] : &:r476_1, ~m? +# 476| mu476_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r476_1 +# 476| r476_7(bool) = Constant[0] : +# 476| v476_8(void) = ConditionalBranch : r476_7 +#-----| False -> Block 154 +#-----| True (back edge) -> Block 153 + +# 478| Block 154 +# 478| r478_1(glval) = VariableAddress[x153] : +# 478| mu478_2(String) = Uninitialized[x153] : &:r478_1 +# 478| r478_3(glval) = FunctionAddress[String] : +# 478| v478_4(void) = Call[String] : func:r478_3, this:r478_1 +# 478| mu478_5(unknown) = ^CallSideEffect : ~m? +# 478| mu478_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r478_1 +# 479| r479_1(glval) = VariableAddress[x153] : +# 479| r479_2(glval) = FunctionAddress[~String] : +# 479| v479_3(void) = Call[~String] : func:r479_2, this:r479_1 +# 479| mu479_4(unknown) = ^CallSideEffect : ~m? +# 479| v479_5(void) = ^IndirectReadSideEffect[-1] : &:r479_1, ~m? +# 479| mu479_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r479_1 +# 479| r479_7(bool) = Constant[0] : +# 479| v479_8(void) = ConditionalBranch : r479_7 +#-----| False -> Block 155 +#-----| True (back edge) -> Block 154 + +# 481| Block 155 +# 481| r481_1(glval) = VariableAddress[x154] : +# 481| mu481_2(String) = Uninitialized[x154] : &:r481_1 +# 481| r481_3(glval) = FunctionAddress[String] : +# 481| v481_4(void) = Call[String] : func:r481_3, this:r481_1 +# 481| mu481_5(unknown) = ^CallSideEffect : ~m? +# 481| mu481_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r481_1 +# 482| r482_1(glval) = VariableAddress[x154] : +# 482| r482_2(glval) = FunctionAddress[~String] : +# 482| v482_3(void) = Call[~String] : func:r482_2, this:r482_1 +# 482| mu482_4(unknown) = ^CallSideEffect : ~m? +# 482| v482_5(void) = ^IndirectReadSideEffect[-1] : &:r482_1, ~m? +# 482| mu482_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r482_1 +# 482| r482_7(bool) = Constant[0] : +# 482| v482_8(void) = ConditionalBranch : r482_7 +#-----| False -> Block 156 +#-----| True (back edge) -> Block 155 + +# 484| Block 156 +# 484| r484_1(glval) = VariableAddress[x155] : +# 484| mu484_2(String) = Uninitialized[x155] : &:r484_1 +# 484| r484_3(glval) = FunctionAddress[String] : +# 484| v484_4(void) = Call[String] : func:r484_3, this:r484_1 +# 484| mu484_5(unknown) = ^CallSideEffect : ~m? +# 484| mu484_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r484_1 +# 485| r485_1(glval) = VariableAddress[x155] : +# 485| r485_2(glval) = FunctionAddress[~String] : +# 485| v485_3(void) = Call[~String] : func:r485_2, this:r485_1 +# 485| mu485_4(unknown) = ^CallSideEffect : ~m? +# 485| v485_5(void) = ^IndirectReadSideEffect[-1] : &:r485_1, ~m? +# 485| mu485_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r485_1 +# 485| r485_7(bool) = Constant[0] : +# 485| v485_8(void) = ConditionalBranch : r485_7 +#-----| False -> Block 157 +#-----| True (back edge) -> Block 156 + +# 487| Block 157 +# 487| r487_1(glval) = VariableAddress[x156] : +# 487| mu487_2(String) = Uninitialized[x156] : &:r487_1 +# 487| r487_3(glval) = FunctionAddress[String] : +# 487| v487_4(void) = Call[String] : func:r487_3, this:r487_1 +# 487| mu487_5(unknown) = ^CallSideEffect : ~m? +# 487| mu487_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r487_1 +# 488| r488_1(glval) = VariableAddress[x156] : +# 488| r488_2(glval) = FunctionAddress[~String] : +# 488| v488_3(void) = Call[~String] : func:r488_2, this:r488_1 +# 488| mu488_4(unknown) = ^CallSideEffect : ~m? +# 488| v488_5(void) = ^IndirectReadSideEffect[-1] : &:r488_1, ~m? +# 488| mu488_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r488_1 +# 488| r488_7(bool) = Constant[0] : +# 488| v488_8(void) = ConditionalBranch : r488_7 +#-----| False -> Block 158 +#-----| True (back edge) -> Block 157 + +# 490| Block 158 +# 490| r490_1(glval) = VariableAddress[x157] : +# 490| mu490_2(String) = Uninitialized[x157] : &:r490_1 +# 490| r490_3(glval) = FunctionAddress[String] : +# 490| v490_4(void) = Call[String] : func:r490_3, this:r490_1 +# 490| mu490_5(unknown) = ^CallSideEffect : ~m? +# 490| mu490_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r490_1 +# 491| r491_1(glval) = VariableAddress[x157] : +# 491| r491_2(glval) = FunctionAddress[~String] : +# 491| v491_3(void) = Call[~String] : func:r491_2, this:r491_1 +# 491| mu491_4(unknown) = ^CallSideEffect : ~m? +# 491| v491_5(void) = ^IndirectReadSideEffect[-1] : &:r491_1, ~m? +# 491| mu491_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r491_1 +# 491| r491_7(bool) = Constant[0] : +# 491| v491_8(void) = ConditionalBranch : r491_7 +#-----| False -> Block 159 +#-----| True (back edge) -> Block 158 + +# 493| Block 159 +# 493| r493_1(glval) = VariableAddress[x158] : +# 493| mu493_2(String) = Uninitialized[x158] : &:r493_1 +# 493| r493_3(glval) = FunctionAddress[String] : +# 493| v493_4(void) = Call[String] : func:r493_3, this:r493_1 +# 493| mu493_5(unknown) = ^CallSideEffect : ~m? +# 493| mu493_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r493_1 +# 494| r494_1(glval) = VariableAddress[x158] : +# 494| r494_2(glval) = FunctionAddress[~String] : +# 494| v494_3(void) = Call[~String] : func:r494_2, this:r494_1 +# 494| mu494_4(unknown) = ^CallSideEffect : ~m? +# 494| v494_5(void) = ^IndirectReadSideEffect[-1] : &:r494_1, ~m? +# 494| mu494_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r494_1 +# 494| r494_7(bool) = Constant[0] : +# 494| v494_8(void) = ConditionalBranch : r494_7 +#-----| False -> Block 160 +#-----| True (back edge) -> Block 159 + +# 496| Block 160 +# 496| r496_1(glval) = VariableAddress[x159] : +# 496| mu496_2(String) = Uninitialized[x159] : &:r496_1 +# 496| r496_3(glval) = FunctionAddress[String] : +# 496| v496_4(void) = Call[String] : func:r496_3, this:r496_1 +# 496| mu496_5(unknown) = ^CallSideEffect : ~m? +# 496| mu496_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r496_1 +# 497| r497_1(glval) = VariableAddress[x159] : +# 497| r497_2(glval) = FunctionAddress[~String] : +# 497| v497_3(void) = Call[~String] : func:r497_2, this:r497_1 +# 497| mu497_4(unknown) = ^CallSideEffect : ~m? +# 497| v497_5(void) = ^IndirectReadSideEffect[-1] : &:r497_1, ~m? +# 497| mu497_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r497_1 +# 497| r497_7(bool) = Constant[0] : +# 497| v497_8(void) = ConditionalBranch : r497_7 +#-----| False -> Block 161 +#-----| True (back edge) -> Block 160 + +# 499| Block 161 +# 499| r499_1(glval) = VariableAddress[x160] : +# 499| mu499_2(String) = Uninitialized[x160] : &:r499_1 +# 499| r499_3(glval) = FunctionAddress[String] : +# 499| v499_4(void) = Call[String] : func:r499_3, this:r499_1 +# 499| mu499_5(unknown) = ^CallSideEffect : ~m? +# 499| mu499_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r499_1 +# 500| r500_1(glval) = VariableAddress[x160] : +# 500| r500_2(glval) = FunctionAddress[~String] : +# 500| v500_3(void) = Call[~String] : func:r500_2, this:r500_1 +# 500| mu500_4(unknown) = ^CallSideEffect : ~m? +# 500| v500_5(void) = ^IndirectReadSideEffect[-1] : &:r500_1, ~m? +# 500| mu500_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r500_1 +# 500| r500_7(bool) = Constant[0] : +# 500| v500_8(void) = ConditionalBranch : r500_7 +#-----| False -> Block 162 +#-----| True (back edge) -> Block 161 + +# 502| Block 162 +# 502| r502_1(glval) = VariableAddress[x161] : +# 502| mu502_2(String) = Uninitialized[x161] : &:r502_1 +# 502| r502_3(glval) = FunctionAddress[String] : +# 502| v502_4(void) = Call[String] : func:r502_3, this:r502_1 +# 502| mu502_5(unknown) = ^CallSideEffect : ~m? +# 502| mu502_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r502_1 +# 503| r503_1(glval) = VariableAddress[x161] : +# 503| r503_2(glval) = FunctionAddress[~String] : +# 503| v503_3(void) = Call[~String] : func:r503_2, this:r503_1 +# 503| mu503_4(unknown) = ^CallSideEffect : ~m? +# 503| v503_5(void) = ^IndirectReadSideEffect[-1] : &:r503_1, ~m? +# 503| mu503_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r503_1 +# 503| r503_7(bool) = Constant[0] : +# 503| v503_8(void) = ConditionalBranch : r503_7 +#-----| False -> Block 163 +#-----| True (back edge) -> Block 162 + +# 505| Block 163 +# 505| r505_1(glval) = VariableAddress[x162] : +# 505| mu505_2(String) = Uninitialized[x162] : &:r505_1 +# 505| r505_3(glval) = FunctionAddress[String] : +# 505| v505_4(void) = Call[String] : func:r505_3, this:r505_1 +# 505| mu505_5(unknown) = ^CallSideEffect : ~m? +# 505| mu505_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r505_1 +# 506| r506_1(glval) = VariableAddress[x162] : +# 506| r506_2(glval) = FunctionAddress[~String] : +# 506| v506_3(void) = Call[~String] : func:r506_2, this:r506_1 +# 506| mu506_4(unknown) = ^CallSideEffect : ~m? +# 506| v506_5(void) = ^IndirectReadSideEffect[-1] : &:r506_1, ~m? +# 506| mu506_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r506_1 +# 506| r506_7(bool) = Constant[0] : +# 506| v506_8(void) = ConditionalBranch : r506_7 +#-----| False -> Block 164 +#-----| True (back edge) -> Block 163 + +# 508| Block 164 +# 508| r508_1(glval) = VariableAddress[x163] : +# 508| mu508_2(String) = Uninitialized[x163] : &:r508_1 +# 508| r508_3(glval) = FunctionAddress[String] : +# 508| v508_4(void) = Call[String] : func:r508_3, this:r508_1 +# 508| mu508_5(unknown) = ^CallSideEffect : ~m? +# 508| mu508_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r508_1 +# 509| r509_1(glval) = VariableAddress[x163] : +# 509| r509_2(glval) = FunctionAddress[~String] : +# 509| v509_3(void) = Call[~String] : func:r509_2, this:r509_1 +# 509| mu509_4(unknown) = ^CallSideEffect : ~m? +# 509| v509_5(void) = ^IndirectReadSideEffect[-1] : &:r509_1, ~m? +# 509| mu509_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r509_1 +# 509| r509_7(bool) = Constant[0] : +# 509| v509_8(void) = ConditionalBranch : r509_7 +#-----| False -> Block 165 +#-----| True (back edge) -> Block 164 + +# 511| Block 165 +# 511| r511_1(glval) = VariableAddress[x164] : +# 511| mu511_2(String) = Uninitialized[x164] : &:r511_1 +# 511| r511_3(glval) = FunctionAddress[String] : +# 511| v511_4(void) = Call[String] : func:r511_3, this:r511_1 +# 511| mu511_5(unknown) = ^CallSideEffect : ~m? +# 511| mu511_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r511_1 +# 512| r512_1(glval) = VariableAddress[x164] : +# 512| r512_2(glval) = FunctionAddress[~String] : +# 512| v512_3(void) = Call[~String] : func:r512_2, this:r512_1 +# 512| mu512_4(unknown) = ^CallSideEffect : ~m? +# 512| v512_5(void) = ^IndirectReadSideEffect[-1] : &:r512_1, ~m? +# 512| mu512_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r512_1 +# 512| r512_7(bool) = Constant[0] : +# 512| v512_8(void) = ConditionalBranch : r512_7 +#-----| False -> Block 166 +#-----| True (back edge) -> Block 165 + +# 514| Block 166 +# 514| r514_1(glval) = VariableAddress[x165] : +# 514| mu514_2(String) = Uninitialized[x165] : &:r514_1 +# 514| r514_3(glval) = FunctionAddress[String] : +# 514| v514_4(void) = Call[String] : func:r514_3, this:r514_1 +# 514| mu514_5(unknown) = ^CallSideEffect : ~m? +# 514| mu514_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r514_1 +# 515| r515_1(glval) = VariableAddress[x165] : +# 515| r515_2(glval) = FunctionAddress[~String] : +# 515| v515_3(void) = Call[~String] : func:r515_2, this:r515_1 +# 515| mu515_4(unknown) = ^CallSideEffect : ~m? +# 515| v515_5(void) = ^IndirectReadSideEffect[-1] : &:r515_1, ~m? +# 515| mu515_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r515_1 +# 515| r515_7(bool) = Constant[0] : +# 515| v515_8(void) = ConditionalBranch : r515_7 +#-----| False -> Block 167 +#-----| True (back edge) -> Block 166 + +# 517| Block 167 +# 517| r517_1(glval) = VariableAddress[x166] : +# 517| mu517_2(String) = Uninitialized[x166] : &:r517_1 +# 517| r517_3(glval) = FunctionAddress[String] : +# 517| v517_4(void) = Call[String] : func:r517_3, this:r517_1 +# 517| mu517_5(unknown) = ^CallSideEffect : ~m? +# 517| mu517_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r517_1 +# 518| r518_1(glval) = VariableAddress[x166] : +# 518| r518_2(glval) = FunctionAddress[~String] : +# 518| v518_3(void) = Call[~String] : func:r518_2, this:r518_1 +# 518| mu518_4(unknown) = ^CallSideEffect : ~m? +# 518| v518_5(void) = ^IndirectReadSideEffect[-1] : &:r518_1, ~m? +# 518| mu518_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r518_1 +# 518| r518_7(bool) = Constant[0] : +# 518| v518_8(void) = ConditionalBranch : r518_7 +#-----| False -> Block 168 +#-----| True (back edge) -> Block 167 + +# 520| Block 168 +# 520| r520_1(glval) = VariableAddress[x167] : +# 520| mu520_2(String) = Uninitialized[x167] : &:r520_1 +# 520| r520_3(glval) = FunctionAddress[String] : +# 520| v520_4(void) = Call[String] : func:r520_3, this:r520_1 +# 520| mu520_5(unknown) = ^CallSideEffect : ~m? +# 520| mu520_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r520_1 +# 521| r521_1(glval) = VariableAddress[x167] : +# 521| r521_2(glval) = FunctionAddress[~String] : +# 521| v521_3(void) = Call[~String] : func:r521_2, this:r521_1 +# 521| mu521_4(unknown) = ^CallSideEffect : ~m? +# 521| v521_5(void) = ^IndirectReadSideEffect[-1] : &:r521_1, ~m? +# 521| mu521_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r521_1 +# 521| r521_7(bool) = Constant[0] : +# 521| v521_8(void) = ConditionalBranch : r521_7 +#-----| False -> Block 169 +#-----| True (back edge) -> Block 168 + +# 523| Block 169 +# 523| r523_1(glval) = VariableAddress[x168] : +# 523| mu523_2(String) = Uninitialized[x168] : &:r523_1 +# 523| r523_3(glval) = FunctionAddress[String] : +# 523| v523_4(void) = Call[String] : func:r523_3, this:r523_1 +# 523| mu523_5(unknown) = ^CallSideEffect : ~m? +# 523| mu523_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r523_1 +# 524| r524_1(glval) = VariableAddress[x168] : +# 524| r524_2(glval) = FunctionAddress[~String] : +# 524| v524_3(void) = Call[~String] : func:r524_2, this:r524_1 +# 524| mu524_4(unknown) = ^CallSideEffect : ~m? +# 524| v524_5(void) = ^IndirectReadSideEffect[-1] : &:r524_1, ~m? +# 524| mu524_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r524_1 +# 524| r524_7(bool) = Constant[0] : +# 524| v524_8(void) = ConditionalBranch : r524_7 +#-----| False -> Block 170 +#-----| True (back edge) -> Block 169 + +# 526| Block 170 +# 526| r526_1(glval) = VariableAddress[x169] : +# 526| mu526_2(String) = Uninitialized[x169] : &:r526_1 +# 526| r526_3(glval) = FunctionAddress[String] : +# 526| v526_4(void) = Call[String] : func:r526_3, this:r526_1 +# 526| mu526_5(unknown) = ^CallSideEffect : ~m? +# 526| mu526_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r526_1 +# 527| r527_1(glval) = VariableAddress[x169] : +# 527| r527_2(glval) = FunctionAddress[~String] : +# 527| v527_3(void) = Call[~String] : func:r527_2, this:r527_1 +# 527| mu527_4(unknown) = ^CallSideEffect : ~m? +# 527| v527_5(void) = ^IndirectReadSideEffect[-1] : &:r527_1, ~m? +# 527| mu527_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r527_1 +# 527| r527_7(bool) = Constant[0] : +# 527| v527_8(void) = ConditionalBranch : r527_7 +#-----| False -> Block 171 +#-----| True (back edge) -> Block 170 + +# 529| Block 171 +# 529| r529_1(glval) = VariableAddress[x170] : +# 529| mu529_2(String) = Uninitialized[x170] : &:r529_1 +# 529| r529_3(glval) = FunctionAddress[String] : +# 529| v529_4(void) = Call[String] : func:r529_3, this:r529_1 +# 529| mu529_5(unknown) = ^CallSideEffect : ~m? +# 529| mu529_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r529_1 +# 530| r530_1(glval) = VariableAddress[x170] : +# 530| r530_2(glval) = FunctionAddress[~String] : +# 530| v530_3(void) = Call[~String] : func:r530_2, this:r530_1 +# 530| mu530_4(unknown) = ^CallSideEffect : ~m? +# 530| v530_5(void) = ^IndirectReadSideEffect[-1] : &:r530_1, ~m? +# 530| mu530_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r530_1 +# 530| r530_7(bool) = Constant[0] : +# 530| v530_8(void) = ConditionalBranch : r530_7 +#-----| False -> Block 172 +#-----| True (back edge) -> Block 171 + +# 532| Block 172 +# 532| r532_1(glval) = VariableAddress[x171] : +# 532| mu532_2(String) = Uninitialized[x171] : &:r532_1 +# 532| r532_3(glval) = FunctionAddress[String] : +# 532| v532_4(void) = Call[String] : func:r532_3, this:r532_1 +# 532| mu532_5(unknown) = ^CallSideEffect : ~m? +# 532| mu532_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r532_1 +# 533| r533_1(glval) = VariableAddress[x171] : +# 533| r533_2(glval) = FunctionAddress[~String] : +# 533| v533_3(void) = Call[~String] : func:r533_2, this:r533_1 +# 533| mu533_4(unknown) = ^CallSideEffect : ~m? +# 533| v533_5(void) = ^IndirectReadSideEffect[-1] : &:r533_1, ~m? +# 533| mu533_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r533_1 +# 533| r533_7(bool) = Constant[0] : +# 533| v533_8(void) = ConditionalBranch : r533_7 +#-----| False -> Block 173 +#-----| True (back edge) -> Block 172 + +# 535| Block 173 +# 535| r535_1(glval) = VariableAddress[x172] : +# 535| mu535_2(String) = Uninitialized[x172] : &:r535_1 +# 535| r535_3(glval) = FunctionAddress[String] : +# 535| v535_4(void) = Call[String] : func:r535_3, this:r535_1 +# 535| mu535_5(unknown) = ^CallSideEffect : ~m? +# 535| mu535_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r535_1 +# 536| r536_1(glval) = VariableAddress[x172] : +# 536| r536_2(glval) = FunctionAddress[~String] : +# 536| v536_3(void) = Call[~String] : func:r536_2, this:r536_1 +# 536| mu536_4(unknown) = ^CallSideEffect : ~m? +# 536| v536_5(void) = ^IndirectReadSideEffect[-1] : &:r536_1, ~m? +# 536| mu536_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r536_1 +# 536| r536_7(bool) = Constant[0] : +# 536| v536_8(void) = ConditionalBranch : r536_7 +#-----| False -> Block 174 +#-----| True (back edge) -> Block 173 + +# 538| Block 174 +# 538| r538_1(glval) = VariableAddress[x173] : +# 538| mu538_2(String) = Uninitialized[x173] : &:r538_1 +# 538| r538_3(glval) = FunctionAddress[String] : +# 538| v538_4(void) = Call[String] : func:r538_3, this:r538_1 +# 538| mu538_5(unknown) = ^CallSideEffect : ~m? +# 538| mu538_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r538_1 +# 539| r539_1(glval) = VariableAddress[x173] : +# 539| r539_2(glval) = FunctionAddress[~String] : +# 539| v539_3(void) = Call[~String] : func:r539_2, this:r539_1 +# 539| mu539_4(unknown) = ^CallSideEffect : ~m? +# 539| v539_5(void) = ^IndirectReadSideEffect[-1] : &:r539_1, ~m? +# 539| mu539_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r539_1 +# 539| r539_7(bool) = Constant[0] : +# 539| v539_8(void) = ConditionalBranch : r539_7 +#-----| False -> Block 175 +#-----| True (back edge) -> Block 174 + +# 541| Block 175 +# 541| r541_1(glval) = VariableAddress[x174] : +# 541| mu541_2(String) = Uninitialized[x174] : &:r541_1 +# 541| r541_3(glval) = FunctionAddress[String] : +# 541| v541_4(void) = Call[String] : func:r541_3, this:r541_1 +# 541| mu541_5(unknown) = ^CallSideEffect : ~m? +# 541| mu541_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r541_1 +# 542| r542_1(glval) = VariableAddress[x174] : +# 542| r542_2(glval) = FunctionAddress[~String] : +# 542| v542_3(void) = Call[~String] : func:r542_2, this:r542_1 +# 542| mu542_4(unknown) = ^CallSideEffect : ~m? +# 542| v542_5(void) = ^IndirectReadSideEffect[-1] : &:r542_1, ~m? +# 542| mu542_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r542_1 +# 542| r542_7(bool) = Constant[0] : +# 542| v542_8(void) = ConditionalBranch : r542_7 +#-----| False -> Block 176 +#-----| True (back edge) -> Block 175 + +# 544| Block 176 +# 544| r544_1(glval) = VariableAddress[x175] : +# 544| mu544_2(String) = Uninitialized[x175] : &:r544_1 +# 544| r544_3(glval) = FunctionAddress[String] : +# 544| v544_4(void) = Call[String] : func:r544_3, this:r544_1 +# 544| mu544_5(unknown) = ^CallSideEffect : ~m? +# 544| mu544_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r544_1 +# 545| r545_1(glval) = VariableAddress[x175] : +# 545| r545_2(glval) = FunctionAddress[~String] : +# 545| v545_3(void) = Call[~String] : func:r545_2, this:r545_1 +# 545| mu545_4(unknown) = ^CallSideEffect : ~m? +# 545| v545_5(void) = ^IndirectReadSideEffect[-1] : &:r545_1, ~m? +# 545| mu545_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r545_1 +# 545| r545_7(bool) = Constant[0] : +# 545| v545_8(void) = ConditionalBranch : r545_7 +#-----| False -> Block 177 +#-----| True (back edge) -> Block 176 + +# 547| Block 177 +# 547| r547_1(glval) = VariableAddress[x176] : +# 547| mu547_2(String) = Uninitialized[x176] : &:r547_1 +# 547| r547_3(glval) = FunctionAddress[String] : +# 547| v547_4(void) = Call[String] : func:r547_3, this:r547_1 +# 547| mu547_5(unknown) = ^CallSideEffect : ~m? +# 547| mu547_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r547_1 +# 548| r548_1(glval) = VariableAddress[x176] : +# 548| r548_2(glval) = FunctionAddress[~String] : +# 548| v548_3(void) = Call[~String] : func:r548_2, this:r548_1 +# 548| mu548_4(unknown) = ^CallSideEffect : ~m? +# 548| v548_5(void) = ^IndirectReadSideEffect[-1] : &:r548_1, ~m? +# 548| mu548_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r548_1 +# 548| r548_7(bool) = Constant[0] : +# 548| v548_8(void) = ConditionalBranch : r548_7 +#-----| False -> Block 178 +#-----| True (back edge) -> Block 177 + +# 550| Block 178 +# 550| r550_1(glval) = VariableAddress[x177] : +# 550| mu550_2(String) = Uninitialized[x177] : &:r550_1 +# 550| r550_3(glval) = FunctionAddress[String] : +# 550| v550_4(void) = Call[String] : func:r550_3, this:r550_1 +# 550| mu550_5(unknown) = ^CallSideEffect : ~m? +# 550| mu550_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r550_1 +# 551| r551_1(glval) = VariableAddress[x177] : +# 551| r551_2(glval) = FunctionAddress[~String] : +# 551| v551_3(void) = Call[~String] : func:r551_2, this:r551_1 +# 551| mu551_4(unknown) = ^CallSideEffect : ~m? +# 551| v551_5(void) = ^IndirectReadSideEffect[-1] : &:r551_1, ~m? +# 551| mu551_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r551_1 +# 551| r551_7(bool) = Constant[0] : +# 551| v551_8(void) = ConditionalBranch : r551_7 +#-----| False -> Block 179 +#-----| True (back edge) -> Block 178 + +# 553| Block 179 +# 553| r553_1(glval) = VariableAddress[x178] : +# 553| mu553_2(String) = Uninitialized[x178] : &:r553_1 +# 553| r553_3(glval) = FunctionAddress[String] : +# 553| v553_4(void) = Call[String] : func:r553_3, this:r553_1 +# 553| mu553_5(unknown) = ^CallSideEffect : ~m? +# 553| mu553_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r553_1 +# 554| r554_1(glval) = VariableAddress[x178] : +# 554| r554_2(glval) = FunctionAddress[~String] : +# 554| v554_3(void) = Call[~String] : func:r554_2, this:r554_1 +# 554| mu554_4(unknown) = ^CallSideEffect : ~m? +# 554| v554_5(void) = ^IndirectReadSideEffect[-1] : &:r554_1, ~m? +# 554| mu554_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r554_1 +# 554| r554_7(bool) = Constant[0] : +# 554| v554_8(void) = ConditionalBranch : r554_7 +#-----| False -> Block 180 +#-----| True (back edge) -> Block 179 + +# 556| Block 180 +# 556| r556_1(glval) = VariableAddress[x179] : +# 556| mu556_2(String) = Uninitialized[x179] : &:r556_1 +# 556| r556_3(glval) = FunctionAddress[String] : +# 556| v556_4(void) = Call[String] : func:r556_3, this:r556_1 +# 556| mu556_5(unknown) = ^CallSideEffect : ~m? +# 556| mu556_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r556_1 +# 557| r557_1(glval) = VariableAddress[x179] : +# 557| r557_2(glval) = FunctionAddress[~String] : +# 557| v557_3(void) = Call[~String] : func:r557_2, this:r557_1 +# 557| mu557_4(unknown) = ^CallSideEffect : ~m? +# 557| v557_5(void) = ^IndirectReadSideEffect[-1] : &:r557_1, ~m? +# 557| mu557_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r557_1 +# 557| r557_7(bool) = Constant[0] : +# 557| v557_8(void) = ConditionalBranch : r557_7 +#-----| False -> Block 181 +#-----| True (back edge) -> Block 180 + +# 559| Block 181 +# 559| r559_1(glval) = VariableAddress[x180] : +# 559| mu559_2(String) = Uninitialized[x180] : &:r559_1 +# 559| r559_3(glval) = FunctionAddress[String] : +# 559| v559_4(void) = Call[String] : func:r559_3, this:r559_1 +# 559| mu559_5(unknown) = ^CallSideEffect : ~m? +# 559| mu559_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r559_1 +# 560| r560_1(glval) = VariableAddress[x180] : +# 560| r560_2(glval) = FunctionAddress[~String] : +# 560| v560_3(void) = Call[~String] : func:r560_2, this:r560_1 +# 560| mu560_4(unknown) = ^CallSideEffect : ~m? +# 560| v560_5(void) = ^IndirectReadSideEffect[-1] : &:r560_1, ~m? +# 560| mu560_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r560_1 +# 560| r560_7(bool) = Constant[0] : +# 560| v560_8(void) = ConditionalBranch : r560_7 +#-----| False -> Block 182 +#-----| True (back edge) -> Block 181 + +# 562| Block 182 +# 562| r562_1(glval) = VariableAddress[x181] : +# 562| mu562_2(String) = Uninitialized[x181] : &:r562_1 +# 562| r562_3(glval) = FunctionAddress[String] : +# 562| v562_4(void) = Call[String] : func:r562_3, this:r562_1 +# 562| mu562_5(unknown) = ^CallSideEffect : ~m? +# 562| mu562_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r562_1 +# 563| r563_1(glval) = VariableAddress[x181] : +# 563| r563_2(glval) = FunctionAddress[~String] : +# 563| v563_3(void) = Call[~String] : func:r563_2, this:r563_1 +# 563| mu563_4(unknown) = ^CallSideEffect : ~m? +# 563| v563_5(void) = ^IndirectReadSideEffect[-1] : &:r563_1, ~m? +# 563| mu563_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r563_1 +# 563| r563_7(bool) = Constant[0] : +# 563| v563_8(void) = ConditionalBranch : r563_7 +#-----| False -> Block 183 +#-----| True (back edge) -> Block 182 + +# 565| Block 183 +# 565| r565_1(glval) = VariableAddress[x182] : +# 565| mu565_2(String) = Uninitialized[x182] : &:r565_1 +# 565| r565_3(glval) = FunctionAddress[String] : +# 565| v565_4(void) = Call[String] : func:r565_3, this:r565_1 +# 565| mu565_5(unknown) = ^CallSideEffect : ~m? +# 565| mu565_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r565_1 +# 566| r566_1(glval) = VariableAddress[x182] : +# 566| r566_2(glval) = FunctionAddress[~String] : +# 566| v566_3(void) = Call[~String] : func:r566_2, this:r566_1 +# 566| mu566_4(unknown) = ^CallSideEffect : ~m? +# 566| v566_5(void) = ^IndirectReadSideEffect[-1] : &:r566_1, ~m? +# 566| mu566_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r566_1 +# 566| r566_7(bool) = Constant[0] : +# 566| v566_8(void) = ConditionalBranch : r566_7 +#-----| False -> Block 184 +#-----| True (back edge) -> Block 183 + +# 568| Block 184 +# 568| r568_1(glval) = VariableAddress[x183] : +# 568| mu568_2(String) = Uninitialized[x183] : &:r568_1 +# 568| r568_3(glval) = FunctionAddress[String] : +# 568| v568_4(void) = Call[String] : func:r568_3, this:r568_1 +# 568| mu568_5(unknown) = ^CallSideEffect : ~m? +# 568| mu568_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r568_1 +# 569| r569_1(glval) = VariableAddress[x183] : +# 569| r569_2(glval) = FunctionAddress[~String] : +# 569| v569_3(void) = Call[~String] : func:r569_2, this:r569_1 +# 569| mu569_4(unknown) = ^CallSideEffect : ~m? +# 569| v569_5(void) = ^IndirectReadSideEffect[-1] : &:r569_1, ~m? +# 569| mu569_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r569_1 +# 569| r569_7(bool) = Constant[0] : +# 569| v569_8(void) = ConditionalBranch : r569_7 +#-----| False -> Block 185 +#-----| True (back edge) -> Block 184 + +# 571| Block 185 +# 571| r571_1(glval) = VariableAddress[x184] : +# 571| mu571_2(String) = Uninitialized[x184] : &:r571_1 +# 571| r571_3(glval) = FunctionAddress[String] : +# 571| v571_4(void) = Call[String] : func:r571_3, this:r571_1 +# 571| mu571_5(unknown) = ^CallSideEffect : ~m? +# 571| mu571_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r571_1 +# 572| r572_1(glval) = VariableAddress[x184] : +# 572| r572_2(glval) = FunctionAddress[~String] : +# 572| v572_3(void) = Call[~String] : func:r572_2, this:r572_1 +# 572| mu572_4(unknown) = ^CallSideEffect : ~m? +# 572| v572_5(void) = ^IndirectReadSideEffect[-1] : &:r572_1, ~m? +# 572| mu572_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r572_1 +# 572| r572_7(bool) = Constant[0] : +# 572| v572_8(void) = ConditionalBranch : r572_7 +#-----| False -> Block 186 +#-----| True (back edge) -> Block 185 + +# 574| Block 186 +# 574| r574_1(glval) = VariableAddress[x185] : +# 574| mu574_2(String) = Uninitialized[x185] : &:r574_1 +# 574| r574_3(glval) = FunctionAddress[String] : +# 574| v574_4(void) = Call[String] : func:r574_3, this:r574_1 +# 574| mu574_5(unknown) = ^CallSideEffect : ~m? +# 574| mu574_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r574_1 +# 575| r575_1(glval) = VariableAddress[x185] : +# 575| r575_2(glval) = FunctionAddress[~String] : +# 575| v575_3(void) = Call[~String] : func:r575_2, this:r575_1 +# 575| mu575_4(unknown) = ^CallSideEffect : ~m? +# 575| v575_5(void) = ^IndirectReadSideEffect[-1] : &:r575_1, ~m? +# 575| mu575_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r575_1 +# 575| r575_7(bool) = Constant[0] : +# 575| v575_8(void) = ConditionalBranch : r575_7 +#-----| False -> Block 187 +#-----| True (back edge) -> Block 186 + +# 577| Block 187 +# 577| r577_1(glval) = VariableAddress[x186] : +# 577| mu577_2(String) = Uninitialized[x186] : &:r577_1 +# 577| r577_3(glval) = FunctionAddress[String] : +# 577| v577_4(void) = Call[String] : func:r577_3, this:r577_1 +# 577| mu577_5(unknown) = ^CallSideEffect : ~m? +# 577| mu577_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r577_1 +# 578| r578_1(glval) = VariableAddress[x186] : +# 578| r578_2(glval) = FunctionAddress[~String] : +# 578| v578_3(void) = Call[~String] : func:r578_2, this:r578_1 +# 578| mu578_4(unknown) = ^CallSideEffect : ~m? +# 578| v578_5(void) = ^IndirectReadSideEffect[-1] : &:r578_1, ~m? +# 578| mu578_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r578_1 +# 578| r578_7(bool) = Constant[0] : +# 578| v578_8(void) = ConditionalBranch : r578_7 +#-----| False -> Block 188 +#-----| True (back edge) -> Block 187 + +# 580| Block 188 +# 580| r580_1(glval) = VariableAddress[x187] : +# 580| mu580_2(String) = Uninitialized[x187] : &:r580_1 +# 580| r580_3(glval) = FunctionAddress[String] : +# 580| v580_4(void) = Call[String] : func:r580_3, this:r580_1 +# 580| mu580_5(unknown) = ^CallSideEffect : ~m? +# 580| mu580_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r580_1 +# 581| r581_1(glval) = VariableAddress[x187] : +# 581| r581_2(glval) = FunctionAddress[~String] : +# 581| v581_3(void) = Call[~String] : func:r581_2, this:r581_1 +# 581| mu581_4(unknown) = ^CallSideEffect : ~m? +# 581| v581_5(void) = ^IndirectReadSideEffect[-1] : &:r581_1, ~m? +# 581| mu581_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r581_1 +# 581| r581_7(bool) = Constant[0] : +# 581| v581_8(void) = ConditionalBranch : r581_7 +#-----| False -> Block 189 +#-----| True (back edge) -> Block 188 + +# 583| Block 189 +# 583| r583_1(glval) = VariableAddress[x188] : +# 583| mu583_2(String) = Uninitialized[x188] : &:r583_1 +# 583| r583_3(glval) = FunctionAddress[String] : +# 583| v583_4(void) = Call[String] : func:r583_3, this:r583_1 +# 583| mu583_5(unknown) = ^CallSideEffect : ~m? +# 583| mu583_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r583_1 +# 584| r584_1(glval) = VariableAddress[x188] : +# 584| r584_2(glval) = FunctionAddress[~String] : +# 584| v584_3(void) = Call[~String] : func:r584_2, this:r584_1 +# 584| mu584_4(unknown) = ^CallSideEffect : ~m? +# 584| v584_5(void) = ^IndirectReadSideEffect[-1] : &:r584_1, ~m? +# 584| mu584_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r584_1 +# 584| r584_7(bool) = Constant[0] : +# 584| v584_8(void) = ConditionalBranch : r584_7 +#-----| False -> Block 190 +#-----| True (back edge) -> Block 189 + +# 586| Block 190 +# 586| r586_1(glval) = VariableAddress[x189] : +# 586| mu586_2(String) = Uninitialized[x189] : &:r586_1 +# 586| r586_3(glval) = FunctionAddress[String] : +# 586| v586_4(void) = Call[String] : func:r586_3, this:r586_1 +# 586| mu586_5(unknown) = ^CallSideEffect : ~m? +# 586| mu586_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r586_1 +# 587| r587_1(glval) = VariableAddress[x189] : +# 587| r587_2(glval) = FunctionAddress[~String] : +# 587| v587_3(void) = Call[~String] : func:r587_2, this:r587_1 +# 587| mu587_4(unknown) = ^CallSideEffect : ~m? +# 587| v587_5(void) = ^IndirectReadSideEffect[-1] : &:r587_1, ~m? +# 587| mu587_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r587_1 +# 587| r587_7(bool) = Constant[0] : +# 587| v587_8(void) = ConditionalBranch : r587_7 +#-----| False -> Block 191 +#-----| True (back edge) -> Block 190 + +# 589| Block 191 +# 589| r589_1(glval) = VariableAddress[x190] : +# 589| mu589_2(String) = Uninitialized[x190] : &:r589_1 +# 589| r589_3(glval) = FunctionAddress[String] : +# 589| v589_4(void) = Call[String] : func:r589_3, this:r589_1 +# 589| mu589_5(unknown) = ^CallSideEffect : ~m? +# 589| mu589_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r589_1 +# 590| r590_1(glval) = VariableAddress[x190] : +# 590| r590_2(glval) = FunctionAddress[~String] : +# 590| v590_3(void) = Call[~String] : func:r590_2, this:r590_1 +# 590| mu590_4(unknown) = ^CallSideEffect : ~m? +# 590| v590_5(void) = ^IndirectReadSideEffect[-1] : &:r590_1, ~m? +# 590| mu590_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r590_1 +# 590| r590_7(bool) = Constant[0] : +# 590| v590_8(void) = ConditionalBranch : r590_7 +#-----| False -> Block 192 +#-----| True (back edge) -> Block 191 + +# 592| Block 192 +# 592| r592_1(glval) = VariableAddress[x191] : +# 592| mu592_2(String) = Uninitialized[x191] : &:r592_1 +# 592| r592_3(glval) = FunctionAddress[String] : +# 592| v592_4(void) = Call[String] : func:r592_3, this:r592_1 +# 592| mu592_5(unknown) = ^CallSideEffect : ~m? +# 592| mu592_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r592_1 +# 593| r593_1(glval) = VariableAddress[x191] : +# 593| r593_2(glval) = FunctionAddress[~String] : +# 593| v593_3(void) = Call[~String] : func:r593_2, this:r593_1 +# 593| mu593_4(unknown) = ^CallSideEffect : ~m? +# 593| v593_5(void) = ^IndirectReadSideEffect[-1] : &:r593_1, ~m? +# 593| mu593_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r593_1 +# 593| r593_7(bool) = Constant[0] : +# 593| v593_8(void) = ConditionalBranch : r593_7 +#-----| False -> Block 193 +#-----| True (back edge) -> Block 192 + +# 595| Block 193 +# 595| r595_1(glval) = VariableAddress[x192] : +# 595| mu595_2(String) = Uninitialized[x192] : &:r595_1 +# 595| r595_3(glval) = FunctionAddress[String] : +# 595| v595_4(void) = Call[String] : func:r595_3, this:r595_1 +# 595| mu595_5(unknown) = ^CallSideEffect : ~m? +# 595| mu595_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r595_1 +# 596| r596_1(glval) = VariableAddress[x192] : +# 596| r596_2(glval) = FunctionAddress[~String] : +# 596| v596_3(void) = Call[~String] : func:r596_2, this:r596_1 +# 596| mu596_4(unknown) = ^CallSideEffect : ~m? +# 596| v596_5(void) = ^IndirectReadSideEffect[-1] : &:r596_1, ~m? +# 596| mu596_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r596_1 +# 596| r596_7(bool) = Constant[0] : +# 596| v596_8(void) = ConditionalBranch : r596_7 +#-----| False -> Block 194 +#-----| True (back edge) -> Block 193 + +# 598| Block 194 +# 598| r598_1(glval) = VariableAddress[x193] : +# 598| mu598_2(String) = Uninitialized[x193] : &:r598_1 +# 598| r598_3(glval) = FunctionAddress[String] : +# 598| v598_4(void) = Call[String] : func:r598_3, this:r598_1 +# 598| mu598_5(unknown) = ^CallSideEffect : ~m? +# 598| mu598_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r598_1 +# 599| r599_1(glval) = VariableAddress[x193] : +# 599| r599_2(glval) = FunctionAddress[~String] : +# 599| v599_3(void) = Call[~String] : func:r599_2, this:r599_1 +# 599| mu599_4(unknown) = ^CallSideEffect : ~m? +# 599| v599_5(void) = ^IndirectReadSideEffect[-1] : &:r599_1, ~m? +# 599| mu599_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r599_1 +# 599| r599_7(bool) = Constant[0] : +# 599| v599_8(void) = ConditionalBranch : r599_7 +#-----| False -> Block 195 +#-----| True (back edge) -> Block 194 + +# 601| Block 195 +# 601| r601_1(glval) = VariableAddress[x194] : +# 601| mu601_2(String) = Uninitialized[x194] : &:r601_1 +# 601| r601_3(glval) = FunctionAddress[String] : +# 601| v601_4(void) = Call[String] : func:r601_3, this:r601_1 +# 601| mu601_5(unknown) = ^CallSideEffect : ~m? +# 601| mu601_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r601_1 +# 602| r602_1(glval) = VariableAddress[x194] : +# 602| r602_2(glval) = FunctionAddress[~String] : +# 602| v602_3(void) = Call[~String] : func:r602_2, this:r602_1 +# 602| mu602_4(unknown) = ^CallSideEffect : ~m? +# 602| v602_5(void) = ^IndirectReadSideEffect[-1] : &:r602_1, ~m? +# 602| mu602_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r602_1 +# 602| r602_7(bool) = Constant[0] : +# 602| v602_8(void) = ConditionalBranch : r602_7 +#-----| False -> Block 196 +#-----| True (back edge) -> Block 195 + +# 604| Block 196 +# 604| r604_1(glval) = VariableAddress[x195] : +# 604| mu604_2(String) = Uninitialized[x195] : &:r604_1 +# 604| r604_3(glval) = FunctionAddress[String] : +# 604| v604_4(void) = Call[String] : func:r604_3, this:r604_1 +# 604| mu604_5(unknown) = ^CallSideEffect : ~m? +# 604| mu604_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r604_1 +# 605| r605_1(glval) = VariableAddress[x195] : +# 605| r605_2(glval) = FunctionAddress[~String] : +# 605| v605_3(void) = Call[~String] : func:r605_2, this:r605_1 +# 605| mu605_4(unknown) = ^CallSideEffect : ~m? +# 605| v605_5(void) = ^IndirectReadSideEffect[-1] : &:r605_1, ~m? +# 605| mu605_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r605_1 +# 605| r605_7(bool) = Constant[0] : +# 605| v605_8(void) = ConditionalBranch : r605_7 +#-----| False -> Block 197 +#-----| True (back edge) -> Block 196 + +# 607| Block 197 +# 607| r607_1(glval) = VariableAddress[x196] : +# 607| mu607_2(String) = Uninitialized[x196] : &:r607_1 +# 607| r607_3(glval) = FunctionAddress[String] : +# 607| v607_4(void) = Call[String] : func:r607_3, this:r607_1 +# 607| mu607_5(unknown) = ^CallSideEffect : ~m? +# 607| mu607_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r607_1 +# 608| r608_1(glval) = VariableAddress[x196] : +# 608| r608_2(glval) = FunctionAddress[~String] : +# 608| v608_3(void) = Call[~String] : func:r608_2, this:r608_1 +# 608| mu608_4(unknown) = ^CallSideEffect : ~m? +# 608| v608_5(void) = ^IndirectReadSideEffect[-1] : &:r608_1, ~m? +# 608| mu608_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r608_1 +# 608| r608_7(bool) = Constant[0] : +# 608| v608_8(void) = ConditionalBranch : r608_7 +#-----| False -> Block 198 +#-----| True (back edge) -> Block 197 + +# 610| Block 198 +# 610| r610_1(glval) = VariableAddress[x197] : +# 610| mu610_2(String) = Uninitialized[x197] : &:r610_1 +# 610| r610_3(glval) = FunctionAddress[String] : +# 610| v610_4(void) = Call[String] : func:r610_3, this:r610_1 +# 610| mu610_5(unknown) = ^CallSideEffect : ~m? +# 610| mu610_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r610_1 +# 611| r611_1(glval) = VariableAddress[x197] : +# 611| r611_2(glval) = FunctionAddress[~String] : +# 611| v611_3(void) = Call[~String] : func:r611_2, this:r611_1 +# 611| mu611_4(unknown) = ^CallSideEffect : ~m? +# 611| v611_5(void) = ^IndirectReadSideEffect[-1] : &:r611_1, ~m? +# 611| mu611_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r611_1 +# 611| r611_7(bool) = Constant[0] : +# 611| v611_8(void) = ConditionalBranch : r611_7 +#-----| False -> Block 199 +#-----| True (back edge) -> Block 198 + +# 613| Block 199 +# 613| r613_1(glval) = VariableAddress[x198] : +# 613| mu613_2(String) = Uninitialized[x198] : &:r613_1 +# 613| r613_3(glval) = FunctionAddress[String] : +# 613| v613_4(void) = Call[String] : func:r613_3, this:r613_1 +# 613| mu613_5(unknown) = ^CallSideEffect : ~m? +# 613| mu613_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r613_1 +# 614| r614_1(glval) = VariableAddress[x198] : +# 614| r614_2(glval) = FunctionAddress[~String] : +# 614| v614_3(void) = Call[~String] : func:r614_2, this:r614_1 +# 614| mu614_4(unknown) = ^CallSideEffect : ~m? +# 614| v614_5(void) = ^IndirectReadSideEffect[-1] : &:r614_1, ~m? +# 614| mu614_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r614_1 +# 614| r614_7(bool) = Constant[0] : +# 614| v614_8(void) = ConditionalBranch : r614_7 +#-----| False -> Block 200 +#-----| True (back edge) -> Block 199 + +# 616| Block 200 +# 616| r616_1(glval) = VariableAddress[x199] : +# 616| mu616_2(String) = Uninitialized[x199] : &:r616_1 +# 616| r616_3(glval) = FunctionAddress[String] : +# 616| v616_4(void) = Call[String] : func:r616_3, this:r616_1 +# 616| mu616_5(unknown) = ^CallSideEffect : ~m? +# 616| mu616_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r616_1 +# 617| r617_1(glval) = VariableAddress[x199] : +# 617| r617_2(glval) = FunctionAddress[~String] : +# 617| v617_3(void) = Call[~String] : func:r617_2, this:r617_1 +# 617| mu617_4(unknown) = ^CallSideEffect : ~m? +# 617| v617_5(void) = ^IndirectReadSideEffect[-1] : &:r617_1, ~m? +# 617| mu617_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r617_1 +# 617| r617_7(bool) = Constant[0] : +# 617| v617_8(void) = ConditionalBranch : r617_7 +#-----| False -> Block 201 +#-----| True (back edge) -> Block 200 + +# 619| Block 201 +# 619| r619_1(glval) = VariableAddress[x200] : +# 619| mu619_2(String) = Uninitialized[x200] : &:r619_1 +# 619| r619_3(glval) = FunctionAddress[String] : +# 619| v619_4(void) = Call[String] : func:r619_3, this:r619_1 +# 619| mu619_5(unknown) = ^CallSideEffect : ~m? +# 619| mu619_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r619_1 +# 620| r620_1(glval) = VariableAddress[x200] : +# 620| r620_2(glval) = FunctionAddress[~String] : +# 620| v620_3(void) = Call[~String] : func:r620_2, this:r620_1 +# 620| mu620_4(unknown) = ^CallSideEffect : ~m? +# 620| v620_5(void) = ^IndirectReadSideEffect[-1] : &:r620_1, ~m? +# 620| mu620_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r620_1 +# 620| r620_7(bool) = Constant[0] : +# 620| v620_8(void) = ConditionalBranch : r620_7 +#-----| False -> Block 202 +#-----| True (back edge) -> Block 201 + +# 622| Block 202 +# 622| r622_1(glval) = VariableAddress[x201] : +# 622| mu622_2(String) = Uninitialized[x201] : &:r622_1 +# 622| r622_3(glval) = FunctionAddress[String] : +# 622| v622_4(void) = Call[String] : func:r622_3, this:r622_1 +# 622| mu622_5(unknown) = ^CallSideEffect : ~m? +# 622| mu622_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r622_1 +# 623| r623_1(glval) = VariableAddress[x201] : +# 623| r623_2(glval) = FunctionAddress[~String] : +# 623| v623_3(void) = Call[~String] : func:r623_2, this:r623_1 +# 623| mu623_4(unknown) = ^CallSideEffect : ~m? +# 623| v623_5(void) = ^IndirectReadSideEffect[-1] : &:r623_1, ~m? +# 623| mu623_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r623_1 +# 623| r623_7(bool) = Constant[0] : +# 623| v623_8(void) = ConditionalBranch : r623_7 +#-----| False -> Block 203 +#-----| True (back edge) -> Block 202 + +# 625| Block 203 +# 625| r625_1(glval) = VariableAddress[x202] : +# 625| mu625_2(String) = Uninitialized[x202] : &:r625_1 +# 625| r625_3(glval) = FunctionAddress[String] : +# 625| v625_4(void) = Call[String] : func:r625_3, this:r625_1 +# 625| mu625_5(unknown) = ^CallSideEffect : ~m? +# 625| mu625_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r625_1 +# 626| r626_1(glval) = VariableAddress[x202] : +# 626| r626_2(glval) = FunctionAddress[~String] : +# 626| v626_3(void) = Call[~String] : func:r626_2, this:r626_1 +# 626| mu626_4(unknown) = ^CallSideEffect : ~m? +# 626| v626_5(void) = ^IndirectReadSideEffect[-1] : &:r626_1, ~m? +# 626| mu626_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r626_1 +# 626| r626_7(bool) = Constant[0] : +# 626| v626_8(void) = ConditionalBranch : r626_7 +#-----| False -> Block 204 +#-----| True (back edge) -> Block 203 + +# 628| Block 204 +# 628| r628_1(glval) = VariableAddress[x203] : +# 628| mu628_2(String) = Uninitialized[x203] : &:r628_1 +# 628| r628_3(glval) = FunctionAddress[String] : +# 628| v628_4(void) = Call[String] : func:r628_3, this:r628_1 +# 628| mu628_5(unknown) = ^CallSideEffect : ~m? +# 628| mu628_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r628_1 +# 629| r629_1(glval) = VariableAddress[x203] : +# 629| r629_2(glval) = FunctionAddress[~String] : +# 629| v629_3(void) = Call[~String] : func:r629_2, this:r629_1 +# 629| mu629_4(unknown) = ^CallSideEffect : ~m? +# 629| v629_5(void) = ^IndirectReadSideEffect[-1] : &:r629_1, ~m? +# 629| mu629_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r629_1 +# 629| r629_7(bool) = Constant[0] : +# 629| v629_8(void) = ConditionalBranch : r629_7 +#-----| False -> Block 205 +#-----| True (back edge) -> Block 204 + +# 631| Block 205 +# 631| r631_1(glval) = VariableAddress[x204] : +# 631| mu631_2(String) = Uninitialized[x204] : &:r631_1 +# 631| r631_3(glval) = FunctionAddress[String] : +# 631| v631_4(void) = Call[String] : func:r631_3, this:r631_1 +# 631| mu631_5(unknown) = ^CallSideEffect : ~m? +# 631| mu631_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r631_1 +# 632| r632_1(glval) = VariableAddress[x204] : +# 632| r632_2(glval) = FunctionAddress[~String] : +# 632| v632_3(void) = Call[~String] : func:r632_2, this:r632_1 +# 632| mu632_4(unknown) = ^CallSideEffect : ~m? +# 632| v632_5(void) = ^IndirectReadSideEffect[-1] : &:r632_1, ~m? +# 632| mu632_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r632_1 +# 632| r632_7(bool) = Constant[0] : +# 632| v632_8(void) = ConditionalBranch : r632_7 +#-----| False -> Block 206 +#-----| True (back edge) -> Block 205 + +# 634| Block 206 +# 634| r634_1(glval) = VariableAddress[x205] : +# 634| mu634_2(String) = Uninitialized[x205] : &:r634_1 +# 634| r634_3(glval) = FunctionAddress[String] : +# 634| v634_4(void) = Call[String] : func:r634_3, this:r634_1 +# 634| mu634_5(unknown) = ^CallSideEffect : ~m? +# 634| mu634_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r634_1 +# 635| r635_1(glval) = VariableAddress[x205] : +# 635| r635_2(glval) = FunctionAddress[~String] : +# 635| v635_3(void) = Call[~String] : func:r635_2, this:r635_1 +# 635| mu635_4(unknown) = ^CallSideEffect : ~m? +# 635| v635_5(void) = ^IndirectReadSideEffect[-1] : &:r635_1, ~m? +# 635| mu635_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r635_1 +# 635| r635_7(bool) = Constant[0] : +# 635| v635_8(void) = ConditionalBranch : r635_7 +#-----| False -> Block 207 +#-----| True (back edge) -> Block 206 + +# 637| Block 207 +# 637| r637_1(glval) = VariableAddress[x206] : +# 637| mu637_2(String) = Uninitialized[x206] : &:r637_1 +# 637| r637_3(glval) = FunctionAddress[String] : +# 637| v637_4(void) = Call[String] : func:r637_3, this:r637_1 +# 637| mu637_5(unknown) = ^CallSideEffect : ~m? +# 637| mu637_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r637_1 +# 638| r638_1(glval) = VariableAddress[x206] : +# 638| r638_2(glval) = FunctionAddress[~String] : +# 638| v638_3(void) = Call[~String] : func:r638_2, this:r638_1 +# 638| mu638_4(unknown) = ^CallSideEffect : ~m? +# 638| v638_5(void) = ^IndirectReadSideEffect[-1] : &:r638_1, ~m? +# 638| mu638_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r638_1 +# 638| r638_7(bool) = Constant[0] : +# 638| v638_8(void) = ConditionalBranch : r638_7 +#-----| False -> Block 208 +#-----| True (back edge) -> Block 207 + +# 640| Block 208 +# 640| r640_1(glval) = VariableAddress[x207] : +# 640| mu640_2(String) = Uninitialized[x207] : &:r640_1 +# 640| r640_3(glval) = FunctionAddress[String] : +# 640| v640_4(void) = Call[String] : func:r640_3, this:r640_1 +# 640| mu640_5(unknown) = ^CallSideEffect : ~m? +# 640| mu640_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r640_1 +# 641| r641_1(glval) = VariableAddress[x207] : +# 641| r641_2(glval) = FunctionAddress[~String] : +# 641| v641_3(void) = Call[~String] : func:r641_2, this:r641_1 +# 641| mu641_4(unknown) = ^CallSideEffect : ~m? +# 641| v641_5(void) = ^IndirectReadSideEffect[-1] : &:r641_1, ~m? +# 641| mu641_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r641_1 +# 641| r641_7(bool) = Constant[0] : +# 641| v641_8(void) = ConditionalBranch : r641_7 +#-----| False -> Block 209 +#-----| True (back edge) -> Block 208 + +# 643| Block 209 +# 643| r643_1(glval) = VariableAddress[x208] : +# 643| mu643_2(String) = Uninitialized[x208] : &:r643_1 +# 643| r643_3(glval) = FunctionAddress[String] : +# 643| v643_4(void) = Call[String] : func:r643_3, this:r643_1 +# 643| mu643_5(unknown) = ^CallSideEffect : ~m? +# 643| mu643_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r643_1 +# 644| r644_1(glval) = VariableAddress[x208] : +# 644| r644_2(glval) = FunctionAddress[~String] : +# 644| v644_3(void) = Call[~String] : func:r644_2, this:r644_1 +# 644| mu644_4(unknown) = ^CallSideEffect : ~m? +# 644| v644_5(void) = ^IndirectReadSideEffect[-1] : &:r644_1, ~m? +# 644| mu644_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r644_1 +# 644| r644_7(bool) = Constant[0] : +# 644| v644_8(void) = ConditionalBranch : r644_7 +#-----| False -> Block 210 +#-----| True (back edge) -> Block 209 + +# 646| Block 210 +# 646| r646_1(glval) = VariableAddress[x209] : +# 646| mu646_2(String) = Uninitialized[x209] : &:r646_1 +# 646| r646_3(glval) = FunctionAddress[String] : +# 646| v646_4(void) = Call[String] : func:r646_3, this:r646_1 +# 646| mu646_5(unknown) = ^CallSideEffect : ~m? +# 646| mu646_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r646_1 +# 647| r647_1(glval) = VariableAddress[x209] : +# 647| r647_2(glval) = FunctionAddress[~String] : +# 647| v647_3(void) = Call[~String] : func:r647_2, this:r647_1 +# 647| mu647_4(unknown) = ^CallSideEffect : ~m? +# 647| v647_5(void) = ^IndirectReadSideEffect[-1] : &:r647_1, ~m? +# 647| mu647_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r647_1 +# 647| r647_7(bool) = Constant[0] : +# 647| v647_8(void) = ConditionalBranch : r647_7 +#-----| False -> Block 211 +#-----| True (back edge) -> Block 210 + +# 649| Block 211 +# 649| r649_1(glval) = VariableAddress[x210] : +# 649| mu649_2(String) = Uninitialized[x210] : &:r649_1 +# 649| r649_3(glval) = FunctionAddress[String] : +# 649| v649_4(void) = Call[String] : func:r649_3, this:r649_1 +# 649| mu649_5(unknown) = ^CallSideEffect : ~m? +# 649| mu649_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r649_1 +# 650| r650_1(glval) = VariableAddress[x210] : +# 650| r650_2(glval) = FunctionAddress[~String] : +# 650| v650_3(void) = Call[~String] : func:r650_2, this:r650_1 +# 650| mu650_4(unknown) = ^CallSideEffect : ~m? +# 650| v650_5(void) = ^IndirectReadSideEffect[-1] : &:r650_1, ~m? +# 650| mu650_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r650_1 +# 650| r650_7(bool) = Constant[0] : +# 650| v650_8(void) = ConditionalBranch : r650_7 +#-----| False -> Block 212 +#-----| True (back edge) -> Block 211 + +# 652| Block 212 +# 652| r652_1(glval) = VariableAddress[x211] : +# 652| mu652_2(String) = Uninitialized[x211] : &:r652_1 +# 652| r652_3(glval) = FunctionAddress[String] : +# 652| v652_4(void) = Call[String] : func:r652_3, this:r652_1 +# 652| mu652_5(unknown) = ^CallSideEffect : ~m? +# 652| mu652_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r652_1 +# 653| r653_1(glval) = VariableAddress[x211] : +# 653| r653_2(glval) = FunctionAddress[~String] : +# 653| v653_3(void) = Call[~String] : func:r653_2, this:r653_1 +# 653| mu653_4(unknown) = ^CallSideEffect : ~m? +# 653| v653_5(void) = ^IndirectReadSideEffect[-1] : &:r653_1, ~m? +# 653| mu653_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r653_1 +# 653| r653_7(bool) = Constant[0] : +# 653| v653_8(void) = ConditionalBranch : r653_7 +#-----| False -> Block 213 +#-----| True (back edge) -> Block 212 + +# 655| Block 213 +# 655| r655_1(glval) = VariableAddress[x212] : +# 655| mu655_2(String) = Uninitialized[x212] : &:r655_1 +# 655| r655_3(glval) = FunctionAddress[String] : +# 655| v655_4(void) = Call[String] : func:r655_3, this:r655_1 +# 655| mu655_5(unknown) = ^CallSideEffect : ~m? +# 655| mu655_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r655_1 +# 656| r656_1(glval) = VariableAddress[x212] : +# 656| r656_2(glval) = FunctionAddress[~String] : +# 656| v656_3(void) = Call[~String] : func:r656_2, this:r656_1 +# 656| mu656_4(unknown) = ^CallSideEffect : ~m? +# 656| v656_5(void) = ^IndirectReadSideEffect[-1] : &:r656_1, ~m? +# 656| mu656_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r656_1 +# 656| r656_7(bool) = Constant[0] : +# 656| v656_8(void) = ConditionalBranch : r656_7 +#-----| False -> Block 214 +#-----| True (back edge) -> Block 213 + +# 658| Block 214 +# 658| r658_1(glval) = VariableAddress[x213] : +# 658| mu658_2(String) = Uninitialized[x213] : &:r658_1 +# 658| r658_3(glval) = FunctionAddress[String] : +# 658| v658_4(void) = Call[String] : func:r658_3, this:r658_1 +# 658| mu658_5(unknown) = ^CallSideEffect : ~m? +# 658| mu658_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r658_1 +# 659| r659_1(glval) = VariableAddress[x213] : +# 659| r659_2(glval) = FunctionAddress[~String] : +# 659| v659_3(void) = Call[~String] : func:r659_2, this:r659_1 +# 659| mu659_4(unknown) = ^CallSideEffect : ~m? +# 659| v659_5(void) = ^IndirectReadSideEffect[-1] : &:r659_1, ~m? +# 659| mu659_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r659_1 +# 659| r659_7(bool) = Constant[0] : +# 659| v659_8(void) = ConditionalBranch : r659_7 +#-----| False -> Block 215 +#-----| True (back edge) -> Block 214 + +# 661| Block 215 +# 661| r661_1(glval) = VariableAddress[x214] : +# 661| mu661_2(String) = Uninitialized[x214] : &:r661_1 +# 661| r661_3(glval) = FunctionAddress[String] : +# 661| v661_4(void) = Call[String] : func:r661_3, this:r661_1 +# 661| mu661_5(unknown) = ^CallSideEffect : ~m? +# 661| mu661_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r661_1 +# 662| r662_1(glval) = VariableAddress[x214] : +# 662| r662_2(glval) = FunctionAddress[~String] : +# 662| v662_3(void) = Call[~String] : func:r662_2, this:r662_1 +# 662| mu662_4(unknown) = ^CallSideEffect : ~m? +# 662| v662_5(void) = ^IndirectReadSideEffect[-1] : &:r662_1, ~m? +# 662| mu662_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r662_1 +# 662| r662_7(bool) = Constant[0] : +# 662| v662_8(void) = ConditionalBranch : r662_7 +#-----| False -> Block 216 +#-----| True (back edge) -> Block 215 + +# 664| Block 216 +# 664| r664_1(glval) = VariableAddress[x215] : +# 664| mu664_2(String) = Uninitialized[x215] : &:r664_1 +# 664| r664_3(glval) = FunctionAddress[String] : +# 664| v664_4(void) = Call[String] : func:r664_3, this:r664_1 +# 664| mu664_5(unknown) = ^CallSideEffect : ~m? +# 664| mu664_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r664_1 +# 665| r665_1(glval) = VariableAddress[x215] : +# 665| r665_2(glval) = FunctionAddress[~String] : +# 665| v665_3(void) = Call[~String] : func:r665_2, this:r665_1 +# 665| mu665_4(unknown) = ^CallSideEffect : ~m? +# 665| v665_5(void) = ^IndirectReadSideEffect[-1] : &:r665_1, ~m? +# 665| mu665_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r665_1 +# 665| r665_7(bool) = Constant[0] : +# 665| v665_8(void) = ConditionalBranch : r665_7 +#-----| False -> Block 217 +#-----| True (back edge) -> Block 216 + +# 667| Block 217 +# 667| r667_1(glval) = VariableAddress[x216] : +# 667| mu667_2(String) = Uninitialized[x216] : &:r667_1 +# 667| r667_3(glval) = FunctionAddress[String] : +# 667| v667_4(void) = Call[String] : func:r667_3, this:r667_1 +# 667| mu667_5(unknown) = ^CallSideEffect : ~m? +# 667| mu667_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r667_1 +# 668| r668_1(glval) = VariableAddress[x216] : +# 668| r668_2(glval) = FunctionAddress[~String] : +# 668| v668_3(void) = Call[~String] : func:r668_2, this:r668_1 +# 668| mu668_4(unknown) = ^CallSideEffect : ~m? +# 668| v668_5(void) = ^IndirectReadSideEffect[-1] : &:r668_1, ~m? +# 668| mu668_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r668_1 +# 668| r668_7(bool) = Constant[0] : +# 668| v668_8(void) = ConditionalBranch : r668_7 +#-----| False -> Block 218 +#-----| True (back edge) -> Block 217 + +# 670| Block 218 +# 670| r670_1(glval) = VariableAddress[x217] : +# 670| mu670_2(String) = Uninitialized[x217] : &:r670_1 +# 670| r670_3(glval) = FunctionAddress[String] : +# 670| v670_4(void) = Call[String] : func:r670_3, this:r670_1 +# 670| mu670_5(unknown) = ^CallSideEffect : ~m? +# 670| mu670_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r670_1 +# 671| r671_1(glval) = VariableAddress[x217] : +# 671| r671_2(glval) = FunctionAddress[~String] : +# 671| v671_3(void) = Call[~String] : func:r671_2, this:r671_1 +# 671| mu671_4(unknown) = ^CallSideEffect : ~m? +# 671| v671_5(void) = ^IndirectReadSideEffect[-1] : &:r671_1, ~m? +# 671| mu671_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r671_1 +# 671| r671_7(bool) = Constant[0] : +# 671| v671_8(void) = ConditionalBranch : r671_7 +#-----| False -> Block 219 +#-----| True (back edge) -> Block 218 + +# 673| Block 219 +# 673| r673_1(glval) = VariableAddress[x218] : +# 673| mu673_2(String) = Uninitialized[x218] : &:r673_1 +# 673| r673_3(glval) = FunctionAddress[String] : +# 673| v673_4(void) = Call[String] : func:r673_3, this:r673_1 +# 673| mu673_5(unknown) = ^CallSideEffect : ~m? +# 673| mu673_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r673_1 +# 674| r674_1(glval) = VariableAddress[x218] : +# 674| r674_2(glval) = FunctionAddress[~String] : +# 674| v674_3(void) = Call[~String] : func:r674_2, this:r674_1 +# 674| mu674_4(unknown) = ^CallSideEffect : ~m? +# 674| v674_5(void) = ^IndirectReadSideEffect[-1] : &:r674_1, ~m? +# 674| mu674_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r674_1 +# 674| r674_7(bool) = Constant[0] : +# 674| v674_8(void) = ConditionalBranch : r674_7 +#-----| False -> Block 220 +#-----| True (back edge) -> Block 219 + +# 676| Block 220 +# 676| r676_1(glval) = VariableAddress[x219] : +# 676| mu676_2(String) = Uninitialized[x219] : &:r676_1 +# 676| r676_3(glval) = FunctionAddress[String] : +# 676| v676_4(void) = Call[String] : func:r676_3, this:r676_1 +# 676| mu676_5(unknown) = ^CallSideEffect : ~m? +# 676| mu676_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r676_1 +# 677| r677_1(glval) = VariableAddress[x219] : +# 677| r677_2(glval) = FunctionAddress[~String] : +# 677| v677_3(void) = Call[~String] : func:r677_2, this:r677_1 +# 677| mu677_4(unknown) = ^CallSideEffect : ~m? +# 677| v677_5(void) = ^IndirectReadSideEffect[-1] : &:r677_1, ~m? +# 677| mu677_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r677_1 +# 677| r677_7(bool) = Constant[0] : +# 677| v677_8(void) = ConditionalBranch : r677_7 +#-----| False -> Block 221 +#-----| True (back edge) -> Block 220 + +# 679| Block 221 +# 679| r679_1(glval) = VariableAddress[x220] : +# 679| mu679_2(String) = Uninitialized[x220] : &:r679_1 +# 679| r679_3(glval) = FunctionAddress[String] : +# 679| v679_4(void) = Call[String] : func:r679_3, this:r679_1 +# 679| mu679_5(unknown) = ^CallSideEffect : ~m? +# 679| mu679_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r679_1 +# 680| r680_1(glval) = VariableAddress[x220] : +# 680| r680_2(glval) = FunctionAddress[~String] : +# 680| v680_3(void) = Call[~String] : func:r680_2, this:r680_1 +# 680| mu680_4(unknown) = ^CallSideEffect : ~m? +# 680| v680_5(void) = ^IndirectReadSideEffect[-1] : &:r680_1, ~m? +# 680| mu680_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r680_1 +# 680| r680_7(bool) = Constant[0] : +# 680| v680_8(void) = ConditionalBranch : r680_7 +#-----| False -> Block 222 +#-----| True (back edge) -> Block 221 + +# 682| Block 222 +# 682| r682_1(glval) = VariableAddress[x221] : +# 682| mu682_2(String) = Uninitialized[x221] : &:r682_1 +# 682| r682_3(glval) = FunctionAddress[String] : +# 682| v682_4(void) = Call[String] : func:r682_3, this:r682_1 +# 682| mu682_5(unknown) = ^CallSideEffect : ~m? +# 682| mu682_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r682_1 +# 683| r683_1(glval) = VariableAddress[x221] : +# 683| r683_2(glval) = FunctionAddress[~String] : +# 683| v683_3(void) = Call[~String] : func:r683_2, this:r683_1 +# 683| mu683_4(unknown) = ^CallSideEffect : ~m? +# 683| v683_5(void) = ^IndirectReadSideEffect[-1] : &:r683_1, ~m? +# 683| mu683_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r683_1 +# 683| r683_7(bool) = Constant[0] : +# 683| v683_8(void) = ConditionalBranch : r683_7 +#-----| False -> Block 223 +#-----| True (back edge) -> Block 222 + +# 685| Block 223 +# 685| r685_1(glval) = VariableAddress[x222] : +# 685| mu685_2(String) = Uninitialized[x222] : &:r685_1 +# 685| r685_3(glval) = FunctionAddress[String] : +# 685| v685_4(void) = Call[String] : func:r685_3, this:r685_1 +# 685| mu685_5(unknown) = ^CallSideEffect : ~m? +# 685| mu685_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r685_1 +# 686| r686_1(glval) = VariableAddress[x222] : +# 686| r686_2(glval) = FunctionAddress[~String] : +# 686| v686_3(void) = Call[~String] : func:r686_2, this:r686_1 +# 686| mu686_4(unknown) = ^CallSideEffect : ~m? +# 686| v686_5(void) = ^IndirectReadSideEffect[-1] : &:r686_1, ~m? +# 686| mu686_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r686_1 +# 686| r686_7(bool) = Constant[0] : +# 686| v686_8(void) = ConditionalBranch : r686_7 +#-----| False -> Block 224 +#-----| True (back edge) -> Block 223 + +# 688| Block 224 +# 688| r688_1(glval) = VariableAddress[x223] : +# 688| mu688_2(String) = Uninitialized[x223] : &:r688_1 +# 688| r688_3(glval) = FunctionAddress[String] : +# 688| v688_4(void) = Call[String] : func:r688_3, this:r688_1 +# 688| mu688_5(unknown) = ^CallSideEffect : ~m? +# 688| mu688_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r688_1 +# 689| r689_1(glval) = VariableAddress[x223] : +# 689| r689_2(glval) = FunctionAddress[~String] : +# 689| v689_3(void) = Call[~String] : func:r689_2, this:r689_1 +# 689| mu689_4(unknown) = ^CallSideEffect : ~m? +# 689| v689_5(void) = ^IndirectReadSideEffect[-1] : &:r689_1, ~m? +# 689| mu689_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r689_1 +# 689| r689_7(bool) = Constant[0] : +# 689| v689_8(void) = ConditionalBranch : r689_7 +#-----| False -> Block 225 +#-----| True (back edge) -> Block 224 + +# 691| Block 225 +# 691| r691_1(glval) = VariableAddress[x224] : +# 691| mu691_2(String) = Uninitialized[x224] : &:r691_1 +# 691| r691_3(glval) = FunctionAddress[String] : +# 691| v691_4(void) = Call[String] : func:r691_3, this:r691_1 +# 691| mu691_5(unknown) = ^CallSideEffect : ~m? +# 691| mu691_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r691_1 +# 692| r692_1(glval) = VariableAddress[x224] : +# 692| r692_2(glval) = FunctionAddress[~String] : +# 692| v692_3(void) = Call[~String] : func:r692_2, this:r692_1 +# 692| mu692_4(unknown) = ^CallSideEffect : ~m? +# 692| v692_5(void) = ^IndirectReadSideEffect[-1] : &:r692_1, ~m? +# 692| mu692_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r692_1 +# 692| r692_7(bool) = Constant[0] : +# 692| v692_8(void) = ConditionalBranch : r692_7 +#-----| False -> Block 226 +#-----| True (back edge) -> Block 225 + +# 694| Block 226 +# 694| r694_1(glval) = VariableAddress[x225] : +# 694| mu694_2(String) = Uninitialized[x225] : &:r694_1 +# 694| r694_3(glval) = FunctionAddress[String] : +# 694| v694_4(void) = Call[String] : func:r694_3, this:r694_1 +# 694| mu694_5(unknown) = ^CallSideEffect : ~m? +# 694| mu694_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r694_1 +# 695| r695_1(glval) = VariableAddress[x225] : +# 695| r695_2(glval) = FunctionAddress[~String] : +# 695| v695_3(void) = Call[~String] : func:r695_2, this:r695_1 +# 695| mu695_4(unknown) = ^CallSideEffect : ~m? +# 695| v695_5(void) = ^IndirectReadSideEffect[-1] : &:r695_1, ~m? +# 695| mu695_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r695_1 +# 695| r695_7(bool) = Constant[0] : +# 695| v695_8(void) = ConditionalBranch : r695_7 +#-----| False -> Block 227 +#-----| True (back edge) -> Block 226 + +# 697| Block 227 +# 697| r697_1(glval) = VariableAddress[x226] : +# 697| mu697_2(String) = Uninitialized[x226] : &:r697_1 +# 697| r697_3(glval) = FunctionAddress[String] : +# 697| v697_4(void) = Call[String] : func:r697_3, this:r697_1 +# 697| mu697_5(unknown) = ^CallSideEffect : ~m? +# 697| mu697_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r697_1 +# 698| r698_1(glval) = VariableAddress[x226] : +# 698| r698_2(glval) = FunctionAddress[~String] : +# 698| v698_3(void) = Call[~String] : func:r698_2, this:r698_1 +# 698| mu698_4(unknown) = ^CallSideEffect : ~m? +# 698| v698_5(void) = ^IndirectReadSideEffect[-1] : &:r698_1, ~m? +# 698| mu698_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r698_1 +# 698| r698_7(bool) = Constant[0] : +# 698| v698_8(void) = ConditionalBranch : r698_7 +#-----| False -> Block 228 +#-----| True (back edge) -> Block 227 + +# 700| Block 228 +# 700| r700_1(glval) = VariableAddress[x227] : +# 700| mu700_2(String) = Uninitialized[x227] : &:r700_1 +# 700| r700_3(glval) = FunctionAddress[String] : +# 700| v700_4(void) = Call[String] : func:r700_3, this:r700_1 +# 700| mu700_5(unknown) = ^CallSideEffect : ~m? +# 700| mu700_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r700_1 +# 701| r701_1(glval) = VariableAddress[x227] : +# 701| r701_2(glval) = FunctionAddress[~String] : +# 701| v701_3(void) = Call[~String] : func:r701_2, this:r701_1 +# 701| mu701_4(unknown) = ^CallSideEffect : ~m? +# 701| v701_5(void) = ^IndirectReadSideEffect[-1] : &:r701_1, ~m? +# 701| mu701_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r701_1 +# 701| r701_7(bool) = Constant[0] : +# 701| v701_8(void) = ConditionalBranch : r701_7 +#-----| False -> Block 229 +#-----| True (back edge) -> Block 228 + +# 703| Block 229 +# 703| r703_1(glval) = VariableAddress[x228] : +# 703| mu703_2(String) = Uninitialized[x228] : &:r703_1 +# 703| r703_3(glval) = FunctionAddress[String] : +# 703| v703_4(void) = Call[String] : func:r703_3, this:r703_1 +# 703| mu703_5(unknown) = ^CallSideEffect : ~m? +# 703| mu703_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r703_1 +# 704| r704_1(glval) = VariableAddress[x228] : +# 704| r704_2(glval) = FunctionAddress[~String] : +# 704| v704_3(void) = Call[~String] : func:r704_2, this:r704_1 +# 704| mu704_4(unknown) = ^CallSideEffect : ~m? +# 704| v704_5(void) = ^IndirectReadSideEffect[-1] : &:r704_1, ~m? +# 704| mu704_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r704_1 +# 704| r704_7(bool) = Constant[0] : +# 704| v704_8(void) = ConditionalBranch : r704_7 +#-----| False -> Block 230 +#-----| True (back edge) -> Block 229 + +# 706| Block 230 +# 706| r706_1(glval) = VariableAddress[x229] : +# 706| mu706_2(String) = Uninitialized[x229] : &:r706_1 +# 706| r706_3(glval) = FunctionAddress[String] : +# 706| v706_4(void) = Call[String] : func:r706_3, this:r706_1 +# 706| mu706_5(unknown) = ^CallSideEffect : ~m? +# 706| mu706_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r706_1 +# 707| r707_1(glval) = VariableAddress[x229] : +# 707| r707_2(glval) = FunctionAddress[~String] : +# 707| v707_3(void) = Call[~String] : func:r707_2, this:r707_1 +# 707| mu707_4(unknown) = ^CallSideEffect : ~m? +# 707| v707_5(void) = ^IndirectReadSideEffect[-1] : &:r707_1, ~m? +# 707| mu707_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r707_1 +# 707| r707_7(bool) = Constant[0] : +# 707| v707_8(void) = ConditionalBranch : r707_7 +#-----| False -> Block 231 +#-----| True (back edge) -> Block 230 + +# 709| Block 231 +# 709| r709_1(glval) = VariableAddress[x230] : +# 709| mu709_2(String) = Uninitialized[x230] : &:r709_1 +# 709| r709_3(glval) = FunctionAddress[String] : +# 709| v709_4(void) = Call[String] : func:r709_3, this:r709_1 +# 709| mu709_5(unknown) = ^CallSideEffect : ~m? +# 709| mu709_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r709_1 +# 710| r710_1(glval) = VariableAddress[x230] : +# 710| r710_2(glval) = FunctionAddress[~String] : +# 710| v710_3(void) = Call[~String] : func:r710_2, this:r710_1 +# 710| mu710_4(unknown) = ^CallSideEffect : ~m? +# 710| v710_5(void) = ^IndirectReadSideEffect[-1] : &:r710_1, ~m? +# 710| mu710_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r710_1 +# 710| r710_7(bool) = Constant[0] : +# 710| v710_8(void) = ConditionalBranch : r710_7 +#-----| False -> Block 232 +#-----| True (back edge) -> Block 231 + +# 712| Block 232 +# 712| r712_1(glval) = VariableAddress[x231] : +# 712| mu712_2(String) = Uninitialized[x231] : &:r712_1 +# 712| r712_3(glval) = FunctionAddress[String] : +# 712| v712_4(void) = Call[String] : func:r712_3, this:r712_1 +# 712| mu712_5(unknown) = ^CallSideEffect : ~m? +# 712| mu712_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r712_1 +# 713| r713_1(glval) = VariableAddress[x231] : +# 713| r713_2(glval) = FunctionAddress[~String] : +# 713| v713_3(void) = Call[~String] : func:r713_2, this:r713_1 +# 713| mu713_4(unknown) = ^CallSideEffect : ~m? +# 713| v713_5(void) = ^IndirectReadSideEffect[-1] : &:r713_1, ~m? +# 713| mu713_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r713_1 +# 713| r713_7(bool) = Constant[0] : +# 713| v713_8(void) = ConditionalBranch : r713_7 +#-----| False -> Block 233 +#-----| True (back edge) -> Block 232 + +# 715| Block 233 +# 715| r715_1(glval) = VariableAddress[x232] : +# 715| mu715_2(String) = Uninitialized[x232] : &:r715_1 +# 715| r715_3(glval) = FunctionAddress[String] : +# 715| v715_4(void) = Call[String] : func:r715_3, this:r715_1 +# 715| mu715_5(unknown) = ^CallSideEffect : ~m? +# 715| mu715_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r715_1 +# 716| r716_1(glval) = VariableAddress[x232] : +# 716| r716_2(glval) = FunctionAddress[~String] : +# 716| v716_3(void) = Call[~String] : func:r716_2, this:r716_1 +# 716| mu716_4(unknown) = ^CallSideEffect : ~m? +# 716| v716_5(void) = ^IndirectReadSideEffect[-1] : &:r716_1, ~m? +# 716| mu716_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r716_1 +# 716| r716_7(bool) = Constant[0] : +# 716| v716_8(void) = ConditionalBranch : r716_7 +#-----| False -> Block 234 +#-----| True (back edge) -> Block 233 + +# 718| Block 234 +# 718| r718_1(glval) = VariableAddress[x233] : +# 718| mu718_2(String) = Uninitialized[x233] : &:r718_1 +# 718| r718_3(glval) = FunctionAddress[String] : +# 718| v718_4(void) = Call[String] : func:r718_3, this:r718_1 +# 718| mu718_5(unknown) = ^CallSideEffect : ~m? +# 718| mu718_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r718_1 +# 719| r719_1(glval) = VariableAddress[x233] : +# 719| r719_2(glval) = FunctionAddress[~String] : +# 719| v719_3(void) = Call[~String] : func:r719_2, this:r719_1 +# 719| mu719_4(unknown) = ^CallSideEffect : ~m? +# 719| v719_5(void) = ^IndirectReadSideEffect[-1] : &:r719_1, ~m? +# 719| mu719_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r719_1 +# 719| r719_7(bool) = Constant[0] : +# 719| v719_8(void) = ConditionalBranch : r719_7 +#-----| False -> Block 235 +#-----| True (back edge) -> Block 234 + +# 721| Block 235 +# 721| r721_1(glval) = VariableAddress[x234] : +# 721| mu721_2(String) = Uninitialized[x234] : &:r721_1 +# 721| r721_3(glval) = FunctionAddress[String] : +# 721| v721_4(void) = Call[String] : func:r721_3, this:r721_1 +# 721| mu721_5(unknown) = ^CallSideEffect : ~m? +# 721| mu721_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r721_1 +# 722| r722_1(glval) = VariableAddress[x234] : +# 722| r722_2(glval) = FunctionAddress[~String] : +# 722| v722_3(void) = Call[~String] : func:r722_2, this:r722_1 +# 722| mu722_4(unknown) = ^CallSideEffect : ~m? +# 722| v722_5(void) = ^IndirectReadSideEffect[-1] : &:r722_1, ~m? +# 722| mu722_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r722_1 +# 722| r722_7(bool) = Constant[0] : +# 722| v722_8(void) = ConditionalBranch : r722_7 +#-----| False -> Block 236 +#-----| True (back edge) -> Block 235 + +# 724| Block 236 +# 724| r724_1(glval) = VariableAddress[x235] : +# 724| mu724_2(String) = Uninitialized[x235] : &:r724_1 +# 724| r724_3(glval) = FunctionAddress[String] : +# 724| v724_4(void) = Call[String] : func:r724_3, this:r724_1 +# 724| mu724_5(unknown) = ^CallSideEffect : ~m? +# 724| mu724_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r724_1 +# 725| r725_1(glval) = VariableAddress[x235] : +# 725| r725_2(glval) = FunctionAddress[~String] : +# 725| v725_3(void) = Call[~String] : func:r725_2, this:r725_1 +# 725| mu725_4(unknown) = ^CallSideEffect : ~m? +# 725| v725_5(void) = ^IndirectReadSideEffect[-1] : &:r725_1, ~m? +# 725| mu725_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r725_1 +# 725| r725_7(bool) = Constant[0] : +# 725| v725_8(void) = ConditionalBranch : r725_7 +#-----| False -> Block 237 +#-----| True (back edge) -> Block 236 + +# 727| Block 237 +# 727| r727_1(glval) = VariableAddress[x236] : +# 727| mu727_2(String) = Uninitialized[x236] : &:r727_1 +# 727| r727_3(glval) = FunctionAddress[String] : +# 727| v727_4(void) = Call[String] : func:r727_3, this:r727_1 +# 727| mu727_5(unknown) = ^CallSideEffect : ~m? +# 727| mu727_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r727_1 +# 728| r728_1(glval) = VariableAddress[x236] : +# 728| r728_2(glval) = FunctionAddress[~String] : +# 728| v728_3(void) = Call[~String] : func:r728_2, this:r728_1 +# 728| mu728_4(unknown) = ^CallSideEffect : ~m? +# 728| v728_5(void) = ^IndirectReadSideEffect[-1] : &:r728_1, ~m? +# 728| mu728_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r728_1 +# 728| r728_7(bool) = Constant[0] : +# 728| v728_8(void) = ConditionalBranch : r728_7 +#-----| False -> Block 238 +#-----| True (back edge) -> Block 237 + +# 730| Block 238 +# 730| r730_1(glval) = VariableAddress[x237] : +# 730| mu730_2(String) = Uninitialized[x237] : &:r730_1 +# 730| r730_3(glval) = FunctionAddress[String] : +# 730| v730_4(void) = Call[String] : func:r730_3, this:r730_1 +# 730| mu730_5(unknown) = ^CallSideEffect : ~m? +# 730| mu730_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r730_1 +# 731| r731_1(glval) = VariableAddress[x237] : +# 731| r731_2(glval) = FunctionAddress[~String] : +# 731| v731_3(void) = Call[~String] : func:r731_2, this:r731_1 +# 731| mu731_4(unknown) = ^CallSideEffect : ~m? +# 731| v731_5(void) = ^IndirectReadSideEffect[-1] : &:r731_1, ~m? +# 731| mu731_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r731_1 +# 731| r731_7(bool) = Constant[0] : +# 731| v731_8(void) = ConditionalBranch : r731_7 +#-----| False -> Block 239 +#-----| True (back edge) -> Block 238 + +# 733| Block 239 +# 733| r733_1(glval) = VariableAddress[x238] : +# 733| mu733_2(String) = Uninitialized[x238] : &:r733_1 +# 733| r733_3(glval) = FunctionAddress[String] : +# 733| v733_4(void) = Call[String] : func:r733_3, this:r733_1 +# 733| mu733_5(unknown) = ^CallSideEffect : ~m? +# 733| mu733_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r733_1 +# 734| r734_1(glval) = VariableAddress[x238] : +# 734| r734_2(glval) = FunctionAddress[~String] : +# 734| v734_3(void) = Call[~String] : func:r734_2, this:r734_1 +# 734| mu734_4(unknown) = ^CallSideEffect : ~m? +# 734| v734_5(void) = ^IndirectReadSideEffect[-1] : &:r734_1, ~m? +# 734| mu734_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r734_1 +# 734| r734_7(bool) = Constant[0] : +# 734| v734_8(void) = ConditionalBranch : r734_7 +#-----| False -> Block 240 +#-----| True (back edge) -> Block 239 + +# 736| Block 240 +# 736| r736_1(glval) = VariableAddress[x239] : +# 736| mu736_2(String) = Uninitialized[x239] : &:r736_1 +# 736| r736_3(glval) = FunctionAddress[String] : +# 736| v736_4(void) = Call[String] : func:r736_3, this:r736_1 +# 736| mu736_5(unknown) = ^CallSideEffect : ~m? +# 736| mu736_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r736_1 +# 737| r737_1(glval) = VariableAddress[x239] : +# 737| r737_2(glval) = FunctionAddress[~String] : +# 737| v737_3(void) = Call[~String] : func:r737_2, this:r737_1 +# 737| mu737_4(unknown) = ^CallSideEffect : ~m? +# 737| v737_5(void) = ^IndirectReadSideEffect[-1] : &:r737_1, ~m? +# 737| mu737_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r737_1 +# 737| r737_7(bool) = Constant[0] : +# 737| v737_8(void) = ConditionalBranch : r737_7 +#-----| False -> Block 241 +#-----| True (back edge) -> Block 240 + +# 739| Block 241 +# 739| r739_1(glval) = VariableAddress[x240] : +# 739| mu739_2(String) = Uninitialized[x240] : &:r739_1 +# 739| r739_3(glval) = FunctionAddress[String] : +# 739| v739_4(void) = Call[String] : func:r739_3, this:r739_1 +# 739| mu739_5(unknown) = ^CallSideEffect : ~m? +# 739| mu739_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r739_1 +# 740| r740_1(glval) = VariableAddress[x240] : +# 740| r740_2(glval) = FunctionAddress[~String] : +# 740| v740_3(void) = Call[~String] : func:r740_2, this:r740_1 +# 740| mu740_4(unknown) = ^CallSideEffect : ~m? +# 740| v740_5(void) = ^IndirectReadSideEffect[-1] : &:r740_1, ~m? +# 740| mu740_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r740_1 +# 740| r740_7(bool) = Constant[0] : +# 740| v740_8(void) = ConditionalBranch : r740_7 +#-----| False -> Block 242 +#-----| True (back edge) -> Block 241 + +# 742| Block 242 +# 742| r742_1(glval) = VariableAddress[x241] : +# 742| mu742_2(String) = Uninitialized[x241] : &:r742_1 +# 742| r742_3(glval) = FunctionAddress[String] : +# 742| v742_4(void) = Call[String] : func:r742_3, this:r742_1 +# 742| mu742_5(unknown) = ^CallSideEffect : ~m? +# 742| mu742_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r742_1 +# 743| r743_1(glval) = VariableAddress[x241] : +# 743| r743_2(glval) = FunctionAddress[~String] : +# 743| v743_3(void) = Call[~String] : func:r743_2, this:r743_1 +# 743| mu743_4(unknown) = ^CallSideEffect : ~m? +# 743| v743_5(void) = ^IndirectReadSideEffect[-1] : &:r743_1, ~m? +# 743| mu743_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r743_1 +# 743| r743_7(bool) = Constant[0] : +# 743| v743_8(void) = ConditionalBranch : r743_7 +#-----| False -> Block 243 +#-----| True (back edge) -> Block 242 + +# 745| Block 243 +# 745| r745_1(glval) = VariableAddress[x242] : +# 745| mu745_2(String) = Uninitialized[x242] : &:r745_1 +# 745| r745_3(glval) = FunctionAddress[String] : +# 745| v745_4(void) = Call[String] : func:r745_3, this:r745_1 +# 745| mu745_5(unknown) = ^CallSideEffect : ~m? +# 745| mu745_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r745_1 +# 746| r746_1(glval) = VariableAddress[x242] : +# 746| r746_2(glval) = FunctionAddress[~String] : +# 746| v746_3(void) = Call[~String] : func:r746_2, this:r746_1 +# 746| mu746_4(unknown) = ^CallSideEffect : ~m? +# 746| v746_5(void) = ^IndirectReadSideEffect[-1] : &:r746_1, ~m? +# 746| mu746_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r746_1 +# 746| r746_7(bool) = Constant[0] : +# 746| v746_8(void) = ConditionalBranch : r746_7 +#-----| False -> Block 244 +#-----| True (back edge) -> Block 243 + +# 748| Block 244 +# 748| r748_1(glval) = VariableAddress[x243] : +# 748| mu748_2(String) = Uninitialized[x243] : &:r748_1 +# 748| r748_3(glval) = FunctionAddress[String] : +# 748| v748_4(void) = Call[String] : func:r748_3, this:r748_1 +# 748| mu748_5(unknown) = ^CallSideEffect : ~m? +# 748| mu748_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r748_1 +# 749| r749_1(glval) = VariableAddress[x243] : +# 749| r749_2(glval) = FunctionAddress[~String] : +# 749| v749_3(void) = Call[~String] : func:r749_2, this:r749_1 +# 749| mu749_4(unknown) = ^CallSideEffect : ~m? +# 749| v749_5(void) = ^IndirectReadSideEffect[-1] : &:r749_1, ~m? +# 749| mu749_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r749_1 +# 749| r749_7(bool) = Constant[0] : +# 749| v749_8(void) = ConditionalBranch : r749_7 +#-----| False -> Block 245 +#-----| True (back edge) -> Block 244 + +# 751| Block 245 +# 751| r751_1(glval) = VariableAddress[x244] : +# 751| mu751_2(String) = Uninitialized[x244] : &:r751_1 +# 751| r751_3(glval) = FunctionAddress[String] : +# 751| v751_4(void) = Call[String] : func:r751_3, this:r751_1 +# 751| mu751_5(unknown) = ^CallSideEffect : ~m? +# 751| mu751_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r751_1 +# 752| r752_1(glval) = VariableAddress[x244] : +# 752| r752_2(glval) = FunctionAddress[~String] : +# 752| v752_3(void) = Call[~String] : func:r752_2, this:r752_1 +# 752| mu752_4(unknown) = ^CallSideEffect : ~m? +# 752| v752_5(void) = ^IndirectReadSideEffect[-1] : &:r752_1, ~m? +# 752| mu752_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r752_1 +# 752| r752_7(bool) = Constant[0] : +# 752| v752_8(void) = ConditionalBranch : r752_7 +#-----| False -> Block 246 +#-----| True (back edge) -> Block 245 + +# 754| Block 246 +# 754| r754_1(glval) = VariableAddress[x245] : +# 754| mu754_2(String) = Uninitialized[x245] : &:r754_1 +# 754| r754_3(glval) = FunctionAddress[String] : +# 754| v754_4(void) = Call[String] : func:r754_3, this:r754_1 +# 754| mu754_5(unknown) = ^CallSideEffect : ~m? +# 754| mu754_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r754_1 +# 755| r755_1(glval) = VariableAddress[x245] : +# 755| r755_2(glval) = FunctionAddress[~String] : +# 755| v755_3(void) = Call[~String] : func:r755_2, this:r755_1 +# 755| mu755_4(unknown) = ^CallSideEffect : ~m? +# 755| v755_5(void) = ^IndirectReadSideEffect[-1] : &:r755_1, ~m? +# 755| mu755_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r755_1 +# 755| r755_7(bool) = Constant[0] : +# 755| v755_8(void) = ConditionalBranch : r755_7 +#-----| False -> Block 247 +#-----| True (back edge) -> Block 246 + +# 757| Block 247 +# 757| r757_1(glval) = VariableAddress[x246] : +# 757| mu757_2(String) = Uninitialized[x246] : &:r757_1 +# 757| r757_3(glval) = FunctionAddress[String] : +# 757| v757_4(void) = Call[String] : func:r757_3, this:r757_1 +# 757| mu757_5(unknown) = ^CallSideEffect : ~m? +# 757| mu757_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r757_1 +# 758| r758_1(glval) = VariableAddress[x246] : +# 758| r758_2(glval) = FunctionAddress[~String] : +# 758| v758_3(void) = Call[~String] : func:r758_2, this:r758_1 +# 758| mu758_4(unknown) = ^CallSideEffect : ~m? +# 758| v758_5(void) = ^IndirectReadSideEffect[-1] : &:r758_1, ~m? +# 758| mu758_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r758_1 +# 758| r758_7(bool) = Constant[0] : +# 758| v758_8(void) = ConditionalBranch : r758_7 +#-----| False -> Block 248 +#-----| True (back edge) -> Block 247 + +# 760| Block 248 +# 760| r760_1(glval) = VariableAddress[x247] : +# 760| mu760_2(String) = Uninitialized[x247] : &:r760_1 +# 760| r760_3(glval) = FunctionAddress[String] : +# 760| v760_4(void) = Call[String] : func:r760_3, this:r760_1 +# 760| mu760_5(unknown) = ^CallSideEffect : ~m? +# 760| mu760_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r760_1 +# 761| r761_1(glval) = VariableAddress[x247] : +# 761| r761_2(glval) = FunctionAddress[~String] : +# 761| v761_3(void) = Call[~String] : func:r761_2, this:r761_1 +# 761| mu761_4(unknown) = ^CallSideEffect : ~m? +# 761| v761_5(void) = ^IndirectReadSideEffect[-1] : &:r761_1, ~m? +# 761| mu761_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r761_1 +# 761| r761_7(bool) = Constant[0] : +# 761| v761_8(void) = ConditionalBranch : r761_7 +#-----| False -> Block 249 +#-----| True (back edge) -> Block 248 + +# 763| Block 249 +# 763| r763_1(glval) = VariableAddress[x248] : +# 763| mu763_2(String) = Uninitialized[x248] : &:r763_1 +# 763| r763_3(glval) = FunctionAddress[String] : +# 763| v763_4(void) = Call[String] : func:r763_3, this:r763_1 +# 763| mu763_5(unknown) = ^CallSideEffect : ~m? +# 763| mu763_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r763_1 +# 764| r764_1(glval) = VariableAddress[x248] : +# 764| r764_2(glval) = FunctionAddress[~String] : +# 764| v764_3(void) = Call[~String] : func:r764_2, this:r764_1 +# 764| mu764_4(unknown) = ^CallSideEffect : ~m? +# 764| v764_5(void) = ^IndirectReadSideEffect[-1] : &:r764_1, ~m? +# 764| mu764_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r764_1 +# 764| r764_7(bool) = Constant[0] : +# 764| v764_8(void) = ConditionalBranch : r764_7 +#-----| False -> Block 250 +#-----| True (back edge) -> Block 249 + +# 766| Block 250 +# 766| r766_1(glval) = VariableAddress[x249] : +# 766| mu766_2(String) = Uninitialized[x249] : &:r766_1 +# 766| r766_3(glval) = FunctionAddress[String] : +# 766| v766_4(void) = Call[String] : func:r766_3, this:r766_1 +# 766| mu766_5(unknown) = ^CallSideEffect : ~m? +# 766| mu766_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r766_1 +# 767| r767_1(glval) = VariableAddress[x249] : +# 767| r767_2(glval) = FunctionAddress[~String] : +# 767| v767_3(void) = Call[~String] : func:r767_2, this:r767_1 +# 767| mu767_4(unknown) = ^CallSideEffect : ~m? +# 767| v767_5(void) = ^IndirectReadSideEffect[-1] : &:r767_1, ~m? +# 767| mu767_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r767_1 +# 767| r767_7(bool) = Constant[0] : +# 767| v767_8(void) = ConditionalBranch : r767_7 +#-----| False -> Block 251 +#-----| True (back edge) -> Block 250 + +# 769| Block 251 +# 769| r769_1(glval) = VariableAddress[x250] : +# 769| mu769_2(String) = Uninitialized[x250] : &:r769_1 +# 769| r769_3(glval) = FunctionAddress[String] : +# 769| v769_4(void) = Call[String] : func:r769_3, this:r769_1 +# 769| mu769_5(unknown) = ^CallSideEffect : ~m? +# 769| mu769_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r769_1 +# 770| r770_1(glval) = VariableAddress[x250] : +# 770| r770_2(glval) = FunctionAddress[~String] : +# 770| v770_3(void) = Call[~String] : func:r770_2, this:r770_1 +# 770| mu770_4(unknown) = ^CallSideEffect : ~m? +# 770| v770_5(void) = ^IndirectReadSideEffect[-1] : &:r770_1, ~m? +# 770| mu770_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r770_1 +# 770| r770_7(bool) = Constant[0] : +# 770| v770_8(void) = ConditionalBranch : r770_7 +#-----| False -> Block 252 +#-----| True (back edge) -> Block 251 + +# 772| Block 252 +# 772| r772_1(glval) = VariableAddress[x251] : +# 772| mu772_2(String) = Uninitialized[x251] : &:r772_1 +# 772| r772_3(glval) = FunctionAddress[String] : +# 772| v772_4(void) = Call[String] : func:r772_3, this:r772_1 +# 772| mu772_5(unknown) = ^CallSideEffect : ~m? +# 772| mu772_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r772_1 +# 773| r773_1(glval) = VariableAddress[x251] : +# 773| r773_2(glval) = FunctionAddress[~String] : +# 773| v773_3(void) = Call[~String] : func:r773_2, this:r773_1 +# 773| mu773_4(unknown) = ^CallSideEffect : ~m? +# 773| v773_5(void) = ^IndirectReadSideEffect[-1] : &:r773_1, ~m? +# 773| mu773_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r773_1 +# 773| r773_7(bool) = Constant[0] : +# 773| v773_8(void) = ConditionalBranch : r773_7 +#-----| False -> Block 253 +#-----| True (back edge) -> Block 252 + +# 775| Block 253 +# 775| r775_1(glval) = VariableAddress[x252] : +# 775| mu775_2(String) = Uninitialized[x252] : &:r775_1 +# 775| r775_3(glval) = FunctionAddress[String] : +# 775| v775_4(void) = Call[String] : func:r775_3, this:r775_1 +# 775| mu775_5(unknown) = ^CallSideEffect : ~m? +# 775| mu775_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r775_1 +# 776| r776_1(glval) = VariableAddress[x252] : +# 776| r776_2(glval) = FunctionAddress[~String] : +# 776| v776_3(void) = Call[~String] : func:r776_2, this:r776_1 +# 776| mu776_4(unknown) = ^CallSideEffect : ~m? +# 776| v776_5(void) = ^IndirectReadSideEffect[-1] : &:r776_1, ~m? +# 776| mu776_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r776_1 +# 776| r776_7(bool) = Constant[0] : +# 776| v776_8(void) = ConditionalBranch : r776_7 +#-----| False -> Block 254 +#-----| True (back edge) -> Block 253 + +# 778| Block 254 +# 778| r778_1(glval) = VariableAddress[x253] : +# 778| mu778_2(String) = Uninitialized[x253] : &:r778_1 +# 778| r778_3(glval) = FunctionAddress[String] : +# 778| v778_4(void) = Call[String] : func:r778_3, this:r778_1 +# 778| mu778_5(unknown) = ^CallSideEffect : ~m? +# 778| mu778_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r778_1 +# 779| r779_1(glval) = VariableAddress[x253] : +# 779| r779_2(glval) = FunctionAddress[~String] : +# 779| v779_3(void) = Call[~String] : func:r779_2, this:r779_1 +# 779| mu779_4(unknown) = ^CallSideEffect : ~m? +# 779| v779_5(void) = ^IndirectReadSideEffect[-1] : &:r779_1, ~m? +# 779| mu779_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r779_1 +# 779| r779_7(bool) = Constant[0] : +# 779| v779_8(void) = ConditionalBranch : r779_7 +#-----| False -> Block 255 +#-----| True (back edge) -> Block 254 + +# 781| Block 255 +# 781| r781_1(glval) = VariableAddress[x254] : +# 781| mu781_2(String) = Uninitialized[x254] : &:r781_1 +# 781| r781_3(glval) = FunctionAddress[String] : +# 781| v781_4(void) = Call[String] : func:r781_3, this:r781_1 +# 781| mu781_5(unknown) = ^CallSideEffect : ~m? +# 781| mu781_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r781_1 +# 782| r782_1(glval) = VariableAddress[x254] : +# 782| r782_2(glval) = FunctionAddress[~String] : +# 782| v782_3(void) = Call[~String] : func:r782_2, this:r782_1 +# 782| mu782_4(unknown) = ^CallSideEffect : ~m? +# 782| v782_5(void) = ^IndirectReadSideEffect[-1] : &:r782_1, ~m? +# 782| mu782_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r782_1 +# 782| r782_7(bool) = Constant[0] : +# 782| v782_8(void) = ConditionalBranch : r782_7 +#-----| False -> Block 256 +#-----| True (back edge) -> Block 255 + +# 784| Block 256 +# 784| r784_1(glval) = VariableAddress[x255] : +# 784| mu784_2(String) = Uninitialized[x255] : &:r784_1 +# 784| r784_3(glval) = FunctionAddress[String] : +# 784| v784_4(void) = Call[String] : func:r784_3, this:r784_1 +# 784| mu784_5(unknown) = ^CallSideEffect : ~m? +# 784| mu784_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r784_1 +# 785| r785_1(glval) = VariableAddress[x255] : +# 785| r785_2(glval) = FunctionAddress[~String] : +# 785| v785_3(void) = Call[~String] : func:r785_2, this:r785_1 +# 785| mu785_4(unknown) = ^CallSideEffect : ~m? +# 785| v785_5(void) = ^IndirectReadSideEffect[-1] : &:r785_1, ~m? +# 785| mu785_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r785_1 +# 785| r785_7(bool) = Constant[0] : +# 785| v785_8(void) = ConditionalBranch : r785_7 +#-----| False -> Block 257 +#-----| True (back edge) -> Block 256 + +# 787| Block 257 +# 787| r787_1(glval) = VariableAddress[x256] : +# 787| mu787_2(String) = Uninitialized[x256] : &:r787_1 +# 787| r787_3(glval) = FunctionAddress[String] : +# 787| v787_4(void) = Call[String] : func:r787_3, this:r787_1 +# 787| mu787_5(unknown) = ^CallSideEffect : ~m? +# 787| mu787_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r787_1 +# 788| r788_1(glval) = VariableAddress[x256] : +# 788| r788_2(glval) = FunctionAddress[~String] : +# 788| v788_3(void) = Call[~String] : func:r788_2, this:r788_1 +# 788| mu788_4(unknown) = ^CallSideEffect : ~m? +# 788| v788_5(void) = ^IndirectReadSideEffect[-1] : &:r788_1, ~m? +# 788| mu788_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r788_1 +# 788| r788_7(bool) = Constant[0] : +# 788| v788_8(void) = ConditionalBranch : r788_7 +#-----| False -> Block 258 +#-----| True (back edge) -> Block 257 + +# 790| Block 258 +# 790| r790_1(glval) = VariableAddress[x257] : +# 790| mu790_2(String) = Uninitialized[x257] : &:r790_1 +# 790| r790_3(glval) = FunctionAddress[String] : +# 790| v790_4(void) = Call[String] : func:r790_3, this:r790_1 +# 790| mu790_5(unknown) = ^CallSideEffect : ~m? +# 790| mu790_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r790_1 +# 791| r791_1(glval) = VariableAddress[x257] : +# 791| r791_2(glval) = FunctionAddress[~String] : +# 791| v791_3(void) = Call[~String] : func:r791_2, this:r791_1 +# 791| mu791_4(unknown) = ^CallSideEffect : ~m? +# 791| v791_5(void) = ^IndirectReadSideEffect[-1] : &:r791_1, ~m? +# 791| mu791_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r791_1 +# 791| r791_7(bool) = Constant[0] : +# 791| v791_8(void) = ConditionalBranch : r791_7 +#-----| False -> Block 259 +#-----| True (back edge) -> Block 258 + +# 793| Block 259 +# 793| r793_1(glval) = VariableAddress[x258] : +# 793| mu793_2(String) = Uninitialized[x258] : &:r793_1 +# 793| r793_3(glval) = FunctionAddress[String] : +# 793| v793_4(void) = Call[String] : func:r793_3, this:r793_1 +# 793| mu793_5(unknown) = ^CallSideEffect : ~m? +# 793| mu793_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r793_1 +# 794| r794_1(glval) = VariableAddress[x258] : +# 794| r794_2(glval) = FunctionAddress[~String] : +# 794| v794_3(void) = Call[~String] : func:r794_2, this:r794_1 +# 794| mu794_4(unknown) = ^CallSideEffect : ~m? +# 794| v794_5(void) = ^IndirectReadSideEffect[-1] : &:r794_1, ~m? +# 794| mu794_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r794_1 +# 794| r794_7(bool) = Constant[0] : +# 794| v794_8(void) = ConditionalBranch : r794_7 +#-----| False -> Block 260 +#-----| True (back edge) -> Block 259 + +# 796| Block 260 +# 796| r796_1(glval) = VariableAddress[x259] : +# 796| mu796_2(String) = Uninitialized[x259] : &:r796_1 +# 796| r796_3(glval) = FunctionAddress[String] : +# 796| v796_4(void) = Call[String] : func:r796_3, this:r796_1 +# 796| mu796_5(unknown) = ^CallSideEffect : ~m? +# 796| mu796_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r796_1 +# 797| r797_1(glval) = VariableAddress[x259] : +# 797| r797_2(glval) = FunctionAddress[~String] : +# 797| v797_3(void) = Call[~String] : func:r797_2, this:r797_1 +# 797| mu797_4(unknown) = ^CallSideEffect : ~m? +# 797| v797_5(void) = ^IndirectReadSideEffect[-1] : &:r797_1, ~m? +# 797| mu797_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r797_1 +# 797| r797_7(bool) = Constant[0] : +# 797| v797_8(void) = ConditionalBranch : r797_7 +#-----| False -> Block 261 +#-----| True (back edge) -> Block 260 + +# 799| Block 261 +# 799| r799_1(glval) = VariableAddress[x260] : +# 799| mu799_2(String) = Uninitialized[x260] : &:r799_1 +# 799| r799_3(glval) = FunctionAddress[String] : +# 799| v799_4(void) = Call[String] : func:r799_3, this:r799_1 +# 799| mu799_5(unknown) = ^CallSideEffect : ~m? +# 799| mu799_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r799_1 +# 800| r800_1(glval) = VariableAddress[x260] : +# 800| r800_2(glval) = FunctionAddress[~String] : +# 800| v800_3(void) = Call[~String] : func:r800_2, this:r800_1 +# 800| mu800_4(unknown) = ^CallSideEffect : ~m? +# 800| v800_5(void) = ^IndirectReadSideEffect[-1] : &:r800_1, ~m? +# 800| mu800_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r800_1 +# 800| r800_7(bool) = Constant[0] : +# 800| v800_8(void) = ConditionalBranch : r800_7 +#-----| False -> Block 262 +#-----| True (back edge) -> Block 261 + +# 802| Block 262 +# 802| r802_1(glval) = VariableAddress[x261] : +# 802| mu802_2(String) = Uninitialized[x261] : &:r802_1 +# 802| r802_3(glval) = FunctionAddress[String] : +# 802| v802_4(void) = Call[String] : func:r802_3, this:r802_1 +# 802| mu802_5(unknown) = ^CallSideEffect : ~m? +# 802| mu802_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r802_1 +# 803| r803_1(glval) = VariableAddress[x261] : +# 803| r803_2(glval) = FunctionAddress[~String] : +# 803| v803_3(void) = Call[~String] : func:r803_2, this:r803_1 +# 803| mu803_4(unknown) = ^CallSideEffect : ~m? +# 803| v803_5(void) = ^IndirectReadSideEffect[-1] : &:r803_1, ~m? +# 803| mu803_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r803_1 +# 803| r803_7(bool) = Constant[0] : +# 803| v803_8(void) = ConditionalBranch : r803_7 +#-----| False -> Block 263 +#-----| True (back edge) -> Block 262 + +# 805| Block 263 +# 805| r805_1(glval) = VariableAddress[x262] : +# 805| mu805_2(String) = Uninitialized[x262] : &:r805_1 +# 805| r805_3(glval) = FunctionAddress[String] : +# 805| v805_4(void) = Call[String] : func:r805_3, this:r805_1 +# 805| mu805_5(unknown) = ^CallSideEffect : ~m? +# 805| mu805_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r805_1 +# 806| r806_1(glval) = VariableAddress[x262] : +# 806| r806_2(glval) = FunctionAddress[~String] : +# 806| v806_3(void) = Call[~String] : func:r806_2, this:r806_1 +# 806| mu806_4(unknown) = ^CallSideEffect : ~m? +# 806| v806_5(void) = ^IndirectReadSideEffect[-1] : &:r806_1, ~m? +# 806| mu806_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r806_1 +# 806| r806_7(bool) = Constant[0] : +# 806| v806_8(void) = ConditionalBranch : r806_7 +#-----| False -> Block 264 +#-----| True (back edge) -> Block 263 + +# 808| Block 264 +# 808| r808_1(glval) = VariableAddress[x263] : +# 808| mu808_2(String) = Uninitialized[x263] : &:r808_1 +# 808| r808_3(glval) = FunctionAddress[String] : +# 808| v808_4(void) = Call[String] : func:r808_3, this:r808_1 +# 808| mu808_5(unknown) = ^CallSideEffect : ~m? +# 808| mu808_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r808_1 +# 809| r809_1(glval) = VariableAddress[x263] : +# 809| r809_2(glval) = FunctionAddress[~String] : +# 809| v809_3(void) = Call[~String] : func:r809_2, this:r809_1 +# 809| mu809_4(unknown) = ^CallSideEffect : ~m? +# 809| v809_5(void) = ^IndirectReadSideEffect[-1] : &:r809_1, ~m? +# 809| mu809_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r809_1 +# 809| r809_7(bool) = Constant[0] : +# 809| v809_8(void) = ConditionalBranch : r809_7 +#-----| False -> Block 265 +#-----| True (back edge) -> Block 264 + +# 811| Block 265 +# 811| r811_1(glval) = VariableAddress[x264] : +# 811| mu811_2(String) = Uninitialized[x264] : &:r811_1 +# 811| r811_3(glval) = FunctionAddress[String] : +# 811| v811_4(void) = Call[String] : func:r811_3, this:r811_1 +# 811| mu811_5(unknown) = ^CallSideEffect : ~m? +# 811| mu811_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r811_1 +# 812| r812_1(glval) = VariableAddress[x264] : +# 812| r812_2(glval) = FunctionAddress[~String] : +# 812| v812_3(void) = Call[~String] : func:r812_2, this:r812_1 +# 812| mu812_4(unknown) = ^CallSideEffect : ~m? +# 812| v812_5(void) = ^IndirectReadSideEffect[-1] : &:r812_1, ~m? +# 812| mu812_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r812_1 +# 812| r812_7(bool) = Constant[0] : +# 812| v812_8(void) = ConditionalBranch : r812_7 +#-----| False -> Block 266 +#-----| True (back edge) -> Block 265 + +# 814| Block 266 +# 814| r814_1(glval) = VariableAddress[x265] : +# 814| mu814_2(String) = Uninitialized[x265] : &:r814_1 +# 814| r814_3(glval) = FunctionAddress[String] : +# 814| v814_4(void) = Call[String] : func:r814_3, this:r814_1 +# 814| mu814_5(unknown) = ^CallSideEffect : ~m? +# 814| mu814_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r814_1 +# 815| r815_1(glval) = VariableAddress[x265] : +# 815| r815_2(glval) = FunctionAddress[~String] : +# 815| v815_3(void) = Call[~String] : func:r815_2, this:r815_1 +# 815| mu815_4(unknown) = ^CallSideEffect : ~m? +# 815| v815_5(void) = ^IndirectReadSideEffect[-1] : &:r815_1, ~m? +# 815| mu815_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r815_1 +# 815| r815_7(bool) = Constant[0] : +# 815| v815_8(void) = ConditionalBranch : r815_7 +#-----| False -> Block 267 +#-----| True (back edge) -> Block 266 + +# 817| Block 267 +# 817| r817_1(glval) = VariableAddress[x266] : +# 817| mu817_2(String) = Uninitialized[x266] : &:r817_1 +# 817| r817_3(glval) = FunctionAddress[String] : +# 817| v817_4(void) = Call[String] : func:r817_3, this:r817_1 +# 817| mu817_5(unknown) = ^CallSideEffect : ~m? +# 817| mu817_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r817_1 +# 818| r818_1(glval) = VariableAddress[x266] : +# 818| r818_2(glval) = FunctionAddress[~String] : +# 818| v818_3(void) = Call[~String] : func:r818_2, this:r818_1 +# 818| mu818_4(unknown) = ^CallSideEffect : ~m? +# 818| v818_5(void) = ^IndirectReadSideEffect[-1] : &:r818_1, ~m? +# 818| mu818_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r818_1 +# 818| r818_7(bool) = Constant[0] : +# 818| v818_8(void) = ConditionalBranch : r818_7 +#-----| False -> Block 268 +#-----| True (back edge) -> Block 267 + +# 820| Block 268 +# 820| r820_1(glval) = VariableAddress[x267] : +# 820| mu820_2(String) = Uninitialized[x267] : &:r820_1 +# 820| r820_3(glval) = FunctionAddress[String] : +# 820| v820_4(void) = Call[String] : func:r820_3, this:r820_1 +# 820| mu820_5(unknown) = ^CallSideEffect : ~m? +# 820| mu820_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r820_1 +# 821| r821_1(glval) = VariableAddress[x267] : +# 821| r821_2(glval) = FunctionAddress[~String] : +# 821| v821_3(void) = Call[~String] : func:r821_2, this:r821_1 +# 821| mu821_4(unknown) = ^CallSideEffect : ~m? +# 821| v821_5(void) = ^IndirectReadSideEffect[-1] : &:r821_1, ~m? +# 821| mu821_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r821_1 +# 821| r821_7(bool) = Constant[0] : +# 821| v821_8(void) = ConditionalBranch : r821_7 +#-----| False -> Block 269 +#-----| True (back edge) -> Block 268 + +# 823| Block 269 +# 823| r823_1(glval) = VariableAddress[x268] : +# 823| mu823_2(String) = Uninitialized[x268] : &:r823_1 +# 823| r823_3(glval) = FunctionAddress[String] : +# 823| v823_4(void) = Call[String] : func:r823_3, this:r823_1 +# 823| mu823_5(unknown) = ^CallSideEffect : ~m? +# 823| mu823_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r823_1 +# 824| r824_1(glval) = VariableAddress[x268] : +# 824| r824_2(glval) = FunctionAddress[~String] : +# 824| v824_3(void) = Call[~String] : func:r824_2, this:r824_1 +# 824| mu824_4(unknown) = ^CallSideEffect : ~m? +# 824| v824_5(void) = ^IndirectReadSideEffect[-1] : &:r824_1, ~m? +# 824| mu824_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r824_1 +# 824| r824_7(bool) = Constant[0] : +# 824| v824_8(void) = ConditionalBranch : r824_7 +#-----| False -> Block 270 +#-----| True (back edge) -> Block 269 + +# 826| Block 270 +# 826| r826_1(glval) = VariableAddress[x269] : +# 826| mu826_2(String) = Uninitialized[x269] : &:r826_1 +# 826| r826_3(glval) = FunctionAddress[String] : +# 826| v826_4(void) = Call[String] : func:r826_3, this:r826_1 +# 826| mu826_5(unknown) = ^CallSideEffect : ~m? +# 826| mu826_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r826_1 +# 827| r827_1(glval) = VariableAddress[x269] : +# 827| r827_2(glval) = FunctionAddress[~String] : +# 827| v827_3(void) = Call[~String] : func:r827_2, this:r827_1 +# 827| mu827_4(unknown) = ^CallSideEffect : ~m? +# 827| v827_5(void) = ^IndirectReadSideEffect[-1] : &:r827_1, ~m? +# 827| mu827_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r827_1 +# 827| r827_7(bool) = Constant[0] : +# 827| v827_8(void) = ConditionalBranch : r827_7 +#-----| False -> Block 271 +#-----| True (back edge) -> Block 270 + +# 829| Block 271 +# 829| r829_1(glval) = VariableAddress[x270] : +# 829| mu829_2(String) = Uninitialized[x270] : &:r829_1 +# 829| r829_3(glval) = FunctionAddress[String] : +# 829| v829_4(void) = Call[String] : func:r829_3, this:r829_1 +# 829| mu829_5(unknown) = ^CallSideEffect : ~m? +# 829| mu829_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r829_1 +# 830| r830_1(glval) = VariableAddress[x270] : +# 830| r830_2(glval) = FunctionAddress[~String] : +# 830| v830_3(void) = Call[~String] : func:r830_2, this:r830_1 +# 830| mu830_4(unknown) = ^CallSideEffect : ~m? +# 830| v830_5(void) = ^IndirectReadSideEffect[-1] : &:r830_1, ~m? +# 830| mu830_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r830_1 +# 830| r830_7(bool) = Constant[0] : +# 830| v830_8(void) = ConditionalBranch : r830_7 +#-----| False -> Block 272 +#-----| True (back edge) -> Block 271 + +# 832| Block 272 +# 832| r832_1(glval) = VariableAddress[x271] : +# 832| mu832_2(String) = Uninitialized[x271] : &:r832_1 +# 832| r832_3(glval) = FunctionAddress[String] : +# 832| v832_4(void) = Call[String] : func:r832_3, this:r832_1 +# 832| mu832_5(unknown) = ^CallSideEffect : ~m? +# 832| mu832_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r832_1 +# 833| r833_1(glval) = VariableAddress[x271] : +# 833| r833_2(glval) = FunctionAddress[~String] : +# 833| v833_3(void) = Call[~String] : func:r833_2, this:r833_1 +# 833| mu833_4(unknown) = ^CallSideEffect : ~m? +# 833| v833_5(void) = ^IndirectReadSideEffect[-1] : &:r833_1, ~m? +# 833| mu833_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r833_1 +# 833| r833_7(bool) = Constant[0] : +# 833| v833_8(void) = ConditionalBranch : r833_7 +#-----| False -> Block 273 +#-----| True (back edge) -> Block 272 + +# 835| Block 273 +# 835| r835_1(glval) = VariableAddress[x272] : +# 835| mu835_2(String) = Uninitialized[x272] : &:r835_1 +# 835| r835_3(glval) = FunctionAddress[String] : +# 835| v835_4(void) = Call[String] : func:r835_3, this:r835_1 +# 835| mu835_5(unknown) = ^CallSideEffect : ~m? +# 835| mu835_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r835_1 +# 836| r836_1(glval) = VariableAddress[x272] : +# 836| r836_2(glval) = FunctionAddress[~String] : +# 836| v836_3(void) = Call[~String] : func:r836_2, this:r836_1 +# 836| mu836_4(unknown) = ^CallSideEffect : ~m? +# 836| v836_5(void) = ^IndirectReadSideEffect[-1] : &:r836_1, ~m? +# 836| mu836_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r836_1 +# 836| r836_7(bool) = Constant[0] : +# 836| v836_8(void) = ConditionalBranch : r836_7 +#-----| False -> Block 274 +#-----| True (back edge) -> Block 273 + +# 838| Block 274 +# 838| r838_1(glval) = VariableAddress[x273] : +# 838| mu838_2(String) = Uninitialized[x273] : &:r838_1 +# 838| r838_3(glval) = FunctionAddress[String] : +# 838| v838_4(void) = Call[String] : func:r838_3, this:r838_1 +# 838| mu838_5(unknown) = ^CallSideEffect : ~m? +# 838| mu838_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r838_1 +# 839| r839_1(glval) = VariableAddress[x273] : +# 839| r839_2(glval) = FunctionAddress[~String] : +# 839| v839_3(void) = Call[~String] : func:r839_2, this:r839_1 +# 839| mu839_4(unknown) = ^CallSideEffect : ~m? +# 839| v839_5(void) = ^IndirectReadSideEffect[-1] : &:r839_1, ~m? +# 839| mu839_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r839_1 +# 839| r839_7(bool) = Constant[0] : +# 839| v839_8(void) = ConditionalBranch : r839_7 +#-----| False -> Block 275 +#-----| True (back edge) -> Block 274 + +# 841| Block 275 +# 841| r841_1(glval) = VariableAddress[x274] : +# 841| mu841_2(String) = Uninitialized[x274] : &:r841_1 +# 841| r841_3(glval) = FunctionAddress[String] : +# 841| v841_4(void) = Call[String] : func:r841_3, this:r841_1 +# 841| mu841_5(unknown) = ^CallSideEffect : ~m? +# 841| mu841_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r841_1 +# 842| r842_1(glval) = VariableAddress[x274] : +# 842| r842_2(glval) = FunctionAddress[~String] : +# 842| v842_3(void) = Call[~String] : func:r842_2, this:r842_1 +# 842| mu842_4(unknown) = ^CallSideEffect : ~m? +# 842| v842_5(void) = ^IndirectReadSideEffect[-1] : &:r842_1, ~m? +# 842| mu842_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r842_1 +# 842| r842_7(bool) = Constant[0] : +# 842| v842_8(void) = ConditionalBranch : r842_7 +#-----| False -> Block 276 +#-----| True (back edge) -> Block 275 + +# 844| Block 276 +# 844| r844_1(glval) = VariableAddress[x275] : +# 844| mu844_2(String) = Uninitialized[x275] : &:r844_1 +# 844| r844_3(glval) = FunctionAddress[String] : +# 844| v844_4(void) = Call[String] : func:r844_3, this:r844_1 +# 844| mu844_5(unknown) = ^CallSideEffect : ~m? +# 844| mu844_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r844_1 +# 845| r845_1(glval) = VariableAddress[x275] : +# 845| r845_2(glval) = FunctionAddress[~String] : +# 845| v845_3(void) = Call[~String] : func:r845_2, this:r845_1 +# 845| mu845_4(unknown) = ^CallSideEffect : ~m? +# 845| v845_5(void) = ^IndirectReadSideEffect[-1] : &:r845_1, ~m? +# 845| mu845_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r845_1 +# 845| r845_7(bool) = Constant[0] : +# 845| v845_8(void) = ConditionalBranch : r845_7 +#-----| False -> Block 277 +#-----| True (back edge) -> Block 276 + +# 847| Block 277 +# 847| r847_1(glval) = VariableAddress[x276] : +# 847| mu847_2(String) = Uninitialized[x276] : &:r847_1 +# 847| r847_3(glval) = FunctionAddress[String] : +# 847| v847_4(void) = Call[String] : func:r847_3, this:r847_1 +# 847| mu847_5(unknown) = ^CallSideEffect : ~m? +# 847| mu847_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r847_1 +# 848| r848_1(glval) = VariableAddress[x276] : +# 848| r848_2(glval) = FunctionAddress[~String] : +# 848| v848_3(void) = Call[~String] : func:r848_2, this:r848_1 +# 848| mu848_4(unknown) = ^CallSideEffect : ~m? +# 848| v848_5(void) = ^IndirectReadSideEffect[-1] : &:r848_1, ~m? +# 848| mu848_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r848_1 +# 848| r848_7(bool) = Constant[0] : +# 848| v848_8(void) = ConditionalBranch : r848_7 +#-----| False -> Block 278 +#-----| True (back edge) -> Block 277 + +# 850| Block 278 +# 850| r850_1(glval) = VariableAddress[x277] : +# 850| mu850_2(String) = Uninitialized[x277] : &:r850_1 +# 850| r850_3(glval) = FunctionAddress[String] : +# 850| v850_4(void) = Call[String] : func:r850_3, this:r850_1 +# 850| mu850_5(unknown) = ^CallSideEffect : ~m? +# 850| mu850_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r850_1 +# 851| r851_1(glval) = VariableAddress[x277] : +# 851| r851_2(glval) = FunctionAddress[~String] : +# 851| v851_3(void) = Call[~String] : func:r851_2, this:r851_1 +# 851| mu851_4(unknown) = ^CallSideEffect : ~m? +# 851| v851_5(void) = ^IndirectReadSideEffect[-1] : &:r851_1, ~m? +# 851| mu851_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r851_1 +# 851| r851_7(bool) = Constant[0] : +# 851| v851_8(void) = ConditionalBranch : r851_7 +#-----| False -> Block 279 +#-----| True (back edge) -> Block 278 + +# 853| Block 279 +# 853| r853_1(glval) = VariableAddress[x278] : +# 853| mu853_2(String) = Uninitialized[x278] : &:r853_1 +# 853| r853_3(glval) = FunctionAddress[String] : +# 853| v853_4(void) = Call[String] : func:r853_3, this:r853_1 +# 853| mu853_5(unknown) = ^CallSideEffect : ~m? +# 853| mu853_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r853_1 +# 854| r854_1(glval) = VariableAddress[x278] : +# 854| r854_2(glval) = FunctionAddress[~String] : +# 854| v854_3(void) = Call[~String] : func:r854_2, this:r854_1 +# 854| mu854_4(unknown) = ^CallSideEffect : ~m? +# 854| v854_5(void) = ^IndirectReadSideEffect[-1] : &:r854_1, ~m? +# 854| mu854_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r854_1 +# 854| r854_7(bool) = Constant[0] : +# 854| v854_8(void) = ConditionalBranch : r854_7 +#-----| False -> Block 280 +#-----| True (back edge) -> Block 279 + +# 856| Block 280 +# 856| r856_1(glval) = VariableAddress[x279] : +# 856| mu856_2(String) = Uninitialized[x279] : &:r856_1 +# 856| r856_3(glval) = FunctionAddress[String] : +# 856| v856_4(void) = Call[String] : func:r856_3, this:r856_1 +# 856| mu856_5(unknown) = ^CallSideEffect : ~m? +# 856| mu856_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r856_1 +# 857| r857_1(glval) = VariableAddress[x279] : +# 857| r857_2(glval) = FunctionAddress[~String] : +# 857| v857_3(void) = Call[~String] : func:r857_2, this:r857_1 +# 857| mu857_4(unknown) = ^CallSideEffect : ~m? +# 857| v857_5(void) = ^IndirectReadSideEffect[-1] : &:r857_1, ~m? +# 857| mu857_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r857_1 +# 857| r857_7(bool) = Constant[0] : +# 857| v857_8(void) = ConditionalBranch : r857_7 +#-----| False -> Block 281 +#-----| True (back edge) -> Block 280 + +# 859| Block 281 +# 859| r859_1(glval) = VariableAddress[x280] : +# 859| mu859_2(String) = Uninitialized[x280] : &:r859_1 +# 859| r859_3(glval) = FunctionAddress[String] : +# 859| v859_4(void) = Call[String] : func:r859_3, this:r859_1 +# 859| mu859_5(unknown) = ^CallSideEffect : ~m? +# 859| mu859_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r859_1 +# 860| r860_1(glval) = VariableAddress[x280] : +# 860| r860_2(glval) = FunctionAddress[~String] : +# 860| v860_3(void) = Call[~String] : func:r860_2, this:r860_1 +# 860| mu860_4(unknown) = ^CallSideEffect : ~m? +# 860| v860_5(void) = ^IndirectReadSideEffect[-1] : &:r860_1, ~m? +# 860| mu860_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r860_1 +# 860| r860_7(bool) = Constant[0] : +# 860| v860_8(void) = ConditionalBranch : r860_7 +#-----| False -> Block 282 +#-----| True (back edge) -> Block 281 + +# 862| Block 282 +# 862| r862_1(glval) = VariableAddress[x281] : +# 862| mu862_2(String) = Uninitialized[x281] : &:r862_1 +# 862| r862_3(glval) = FunctionAddress[String] : +# 862| v862_4(void) = Call[String] : func:r862_3, this:r862_1 +# 862| mu862_5(unknown) = ^CallSideEffect : ~m? +# 862| mu862_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r862_1 +# 863| r863_1(glval) = VariableAddress[x281] : +# 863| r863_2(glval) = FunctionAddress[~String] : +# 863| v863_3(void) = Call[~String] : func:r863_2, this:r863_1 +# 863| mu863_4(unknown) = ^CallSideEffect : ~m? +# 863| v863_5(void) = ^IndirectReadSideEffect[-1] : &:r863_1, ~m? +# 863| mu863_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r863_1 +# 863| r863_7(bool) = Constant[0] : +# 863| v863_8(void) = ConditionalBranch : r863_7 +#-----| False -> Block 283 +#-----| True (back edge) -> Block 282 + +# 865| Block 283 +# 865| r865_1(glval) = VariableAddress[x282] : +# 865| mu865_2(String) = Uninitialized[x282] : &:r865_1 +# 865| r865_3(glval) = FunctionAddress[String] : +# 865| v865_4(void) = Call[String] : func:r865_3, this:r865_1 +# 865| mu865_5(unknown) = ^CallSideEffect : ~m? +# 865| mu865_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r865_1 +# 866| r866_1(glval) = VariableAddress[x282] : +# 866| r866_2(glval) = FunctionAddress[~String] : +# 866| v866_3(void) = Call[~String] : func:r866_2, this:r866_1 +# 866| mu866_4(unknown) = ^CallSideEffect : ~m? +# 866| v866_5(void) = ^IndirectReadSideEffect[-1] : &:r866_1, ~m? +# 866| mu866_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r866_1 +# 866| r866_7(bool) = Constant[0] : +# 866| v866_8(void) = ConditionalBranch : r866_7 +#-----| False -> Block 284 +#-----| True (back edge) -> Block 283 + +# 868| Block 284 +# 868| r868_1(glval) = VariableAddress[x283] : +# 868| mu868_2(String) = Uninitialized[x283] : &:r868_1 +# 868| r868_3(glval) = FunctionAddress[String] : +# 868| v868_4(void) = Call[String] : func:r868_3, this:r868_1 +# 868| mu868_5(unknown) = ^CallSideEffect : ~m? +# 868| mu868_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r868_1 +# 869| r869_1(glval) = VariableAddress[x283] : +# 869| r869_2(glval) = FunctionAddress[~String] : +# 869| v869_3(void) = Call[~String] : func:r869_2, this:r869_1 +# 869| mu869_4(unknown) = ^CallSideEffect : ~m? +# 869| v869_5(void) = ^IndirectReadSideEffect[-1] : &:r869_1, ~m? +# 869| mu869_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r869_1 +# 869| r869_7(bool) = Constant[0] : +# 869| v869_8(void) = ConditionalBranch : r869_7 +#-----| False -> Block 285 +#-----| True (back edge) -> Block 284 + +# 871| Block 285 +# 871| r871_1(glval) = VariableAddress[x284] : +# 871| mu871_2(String) = Uninitialized[x284] : &:r871_1 +# 871| r871_3(glval) = FunctionAddress[String] : +# 871| v871_4(void) = Call[String] : func:r871_3, this:r871_1 +# 871| mu871_5(unknown) = ^CallSideEffect : ~m? +# 871| mu871_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r871_1 +# 872| r872_1(glval) = VariableAddress[x284] : +# 872| r872_2(glval) = FunctionAddress[~String] : +# 872| v872_3(void) = Call[~String] : func:r872_2, this:r872_1 +# 872| mu872_4(unknown) = ^CallSideEffect : ~m? +# 872| v872_5(void) = ^IndirectReadSideEffect[-1] : &:r872_1, ~m? +# 872| mu872_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r872_1 +# 872| r872_7(bool) = Constant[0] : +# 872| v872_8(void) = ConditionalBranch : r872_7 +#-----| False -> Block 286 +#-----| True (back edge) -> Block 285 + +# 874| Block 286 +# 874| r874_1(glval) = VariableAddress[x285] : +# 874| mu874_2(String) = Uninitialized[x285] : &:r874_1 +# 874| r874_3(glval) = FunctionAddress[String] : +# 874| v874_4(void) = Call[String] : func:r874_3, this:r874_1 +# 874| mu874_5(unknown) = ^CallSideEffect : ~m? +# 874| mu874_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r874_1 +# 875| r875_1(glval) = VariableAddress[x285] : +# 875| r875_2(glval) = FunctionAddress[~String] : +# 875| v875_3(void) = Call[~String] : func:r875_2, this:r875_1 +# 875| mu875_4(unknown) = ^CallSideEffect : ~m? +# 875| v875_5(void) = ^IndirectReadSideEffect[-1] : &:r875_1, ~m? +# 875| mu875_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r875_1 +# 875| r875_7(bool) = Constant[0] : +# 875| v875_8(void) = ConditionalBranch : r875_7 +#-----| False -> Block 287 +#-----| True (back edge) -> Block 286 + +# 877| Block 287 +# 877| r877_1(glval) = VariableAddress[x286] : +# 877| mu877_2(String) = Uninitialized[x286] : &:r877_1 +# 877| r877_3(glval) = FunctionAddress[String] : +# 877| v877_4(void) = Call[String] : func:r877_3, this:r877_1 +# 877| mu877_5(unknown) = ^CallSideEffect : ~m? +# 877| mu877_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r877_1 +# 878| r878_1(glval) = VariableAddress[x286] : +# 878| r878_2(glval) = FunctionAddress[~String] : +# 878| v878_3(void) = Call[~String] : func:r878_2, this:r878_1 +# 878| mu878_4(unknown) = ^CallSideEffect : ~m? +# 878| v878_5(void) = ^IndirectReadSideEffect[-1] : &:r878_1, ~m? +# 878| mu878_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r878_1 +# 878| r878_7(bool) = Constant[0] : +# 878| v878_8(void) = ConditionalBranch : r878_7 +#-----| False -> Block 288 +#-----| True (back edge) -> Block 287 + +# 880| Block 288 +# 880| r880_1(glval) = VariableAddress[x287] : +# 880| mu880_2(String) = Uninitialized[x287] : &:r880_1 +# 880| r880_3(glval) = FunctionAddress[String] : +# 880| v880_4(void) = Call[String] : func:r880_3, this:r880_1 +# 880| mu880_5(unknown) = ^CallSideEffect : ~m? +# 880| mu880_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r880_1 +# 881| r881_1(glval) = VariableAddress[x287] : +# 881| r881_2(glval) = FunctionAddress[~String] : +# 881| v881_3(void) = Call[~String] : func:r881_2, this:r881_1 +# 881| mu881_4(unknown) = ^CallSideEffect : ~m? +# 881| v881_5(void) = ^IndirectReadSideEffect[-1] : &:r881_1, ~m? +# 881| mu881_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r881_1 +# 881| r881_7(bool) = Constant[0] : +# 881| v881_8(void) = ConditionalBranch : r881_7 +#-----| False -> Block 289 +#-----| True (back edge) -> Block 288 + +# 883| Block 289 +# 883| r883_1(glval) = VariableAddress[x288] : +# 883| mu883_2(String) = Uninitialized[x288] : &:r883_1 +# 883| r883_3(glval) = FunctionAddress[String] : +# 883| v883_4(void) = Call[String] : func:r883_3, this:r883_1 +# 883| mu883_5(unknown) = ^CallSideEffect : ~m? +# 883| mu883_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r883_1 +# 884| r884_1(glval) = VariableAddress[x288] : +# 884| r884_2(glval) = FunctionAddress[~String] : +# 884| v884_3(void) = Call[~String] : func:r884_2, this:r884_1 +# 884| mu884_4(unknown) = ^CallSideEffect : ~m? +# 884| v884_5(void) = ^IndirectReadSideEffect[-1] : &:r884_1, ~m? +# 884| mu884_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r884_1 +# 884| r884_7(bool) = Constant[0] : +# 884| v884_8(void) = ConditionalBranch : r884_7 +#-----| False -> Block 290 +#-----| True (back edge) -> Block 289 + +# 886| Block 290 +# 886| r886_1(glval) = VariableAddress[x289] : +# 886| mu886_2(String) = Uninitialized[x289] : &:r886_1 +# 886| r886_3(glval) = FunctionAddress[String] : +# 886| v886_4(void) = Call[String] : func:r886_3, this:r886_1 +# 886| mu886_5(unknown) = ^CallSideEffect : ~m? +# 886| mu886_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r886_1 +# 887| r887_1(glval) = VariableAddress[x289] : +# 887| r887_2(glval) = FunctionAddress[~String] : +# 887| v887_3(void) = Call[~String] : func:r887_2, this:r887_1 +# 887| mu887_4(unknown) = ^CallSideEffect : ~m? +# 887| v887_5(void) = ^IndirectReadSideEffect[-1] : &:r887_1, ~m? +# 887| mu887_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r887_1 +# 887| r887_7(bool) = Constant[0] : +# 887| v887_8(void) = ConditionalBranch : r887_7 +#-----| False -> Block 291 +#-----| True (back edge) -> Block 290 + +# 889| Block 291 +# 889| r889_1(glval) = VariableAddress[x290] : +# 889| mu889_2(String) = Uninitialized[x290] : &:r889_1 +# 889| r889_3(glval) = FunctionAddress[String] : +# 889| v889_4(void) = Call[String] : func:r889_3, this:r889_1 +# 889| mu889_5(unknown) = ^CallSideEffect : ~m? +# 889| mu889_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r889_1 +# 890| r890_1(glval) = VariableAddress[x290] : +# 890| r890_2(glval) = FunctionAddress[~String] : +# 890| v890_3(void) = Call[~String] : func:r890_2, this:r890_1 +# 890| mu890_4(unknown) = ^CallSideEffect : ~m? +# 890| v890_5(void) = ^IndirectReadSideEffect[-1] : &:r890_1, ~m? +# 890| mu890_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r890_1 +# 890| r890_7(bool) = Constant[0] : +# 890| v890_8(void) = ConditionalBranch : r890_7 +#-----| False -> Block 292 +#-----| True (back edge) -> Block 291 + +# 892| Block 292 +# 892| r892_1(glval) = VariableAddress[x291] : +# 892| mu892_2(String) = Uninitialized[x291] : &:r892_1 +# 892| r892_3(glval) = FunctionAddress[String] : +# 892| v892_4(void) = Call[String] : func:r892_3, this:r892_1 +# 892| mu892_5(unknown) = ^CallSideEffect : ~m? +# 892| mu892_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r892_1 +# 893| r893_1(glval) = VariableAddress[x291] : +# 893| r893_2(glval) = FunctionAddress[~String] : +# 893| v893_3(void) = Call[~String] : func:r893_2, this:r893_1 +# 893| mu893_4(unknown) = ^CallSideEffect : ~m? +# 893| v893_5(void) = ^IndirectReadSideEffect[-1] : &:r893_1, ~m? +# 893| mu893_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r893_1 +# 893| r893_7(bool) = Constant[0] : +# 893| v893_8(void) = ConditionalBranch : r893_7 +#-----| False -> Block 293 +#-----| True (back edge) -> Block 292 + +# 895| Block 293 +# 895| r895_1(glval) = VariableAddress[x292] : +# 895| mu895_2(String) = Uninitialized[x292] : &:r895_1 +# 895| r895_3(glval) = FunctionAddress[String] : +# 895| v895_4(void) = Call[String] : func:r895_3, this:r895_1 +# 895| mu895_5(unknown) = ^CallSideEffect : ~m? +# 895| mu895_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r895_1 +# 896| r896_1(glval) = VariableAddress[x292] : +# 896| r896_2(glval) = FunctionAddress[~String] : +# 896| v896_3(void) = Call[~String] : func:r896_2, this:r896_1 +# 896| mu896_4(unknown) = ^CallSideEffect : ~m? +# 896| v896_5(void) = ^IndirectReadSideEffect[-1] : &:r896_1, ~m? +# 896| mu896_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r896_1 +# 896| r896_7(bool) = Constant[0] : +# 896| v896_8(void) = ConditionalBranch : r896_7 +#-----| False -> Block 294 +#-----| True (back edge) -> Block 293 + +# 898| Block 294 +# 898| r898_1(glval) = VariableAddress[x293] : +# 898| mu898_2(String) = Uninitialized[x293] : &:r898_1 +# 898| r898_3(glval) = FunctionAddress[String] : +# 898| v898_4(void) = Call[String] : func:r898_3, this:r898_1 +# 898| mu898_5(unknown) = ^CallSideEffect : ~m? +# 898| mu898_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r898_1 +# 899| r899_1(glval) = VariableAddress[x293] : +# 899| r899_2(glval) = FunctionAddress[~String] : +# 899| v899_3(void) = Call[~String] : func:r899_2, this:r899_1 +# 899| mu899_4(unknown) = ^CallSideEffect : ~m? +# 899| v899_5(void) = ^IndirectReadSideEffect[-1] : &:r899_1, ~m? +# 899| mu899_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r899_1 +# 899| r899_7(bool) = Constant[0] : +# 899| v899_8(void) = ConditionalBranch : r899_7 +#-----| False -> Block 295 +#-----| True (back edge) -> Block 294 + +# 901| Block 295 +# 901| r901_1(glval) = VariableAddress[x294] : +# 901| mu901_2(String) = Uninitialized[x294] : &:r901_1 +# 901| r901_3(glval) = FunctionAddress[String] : +# 901| v901_4(void) = Call[String] : func:r901_3, this:r901_1 +# 901| mu901_5(unknown) = ^CallSideEffect : ~m? +# 901| mu901_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r901_1 +# 902| r902_1(glval) = VariableAddress[x294] : +# 902| r902_2(glval) = FunctionAddress[~String] : +# 902| v902_3(void) = Call[~String] : func:r902_2, this:r902_1 +# 902| mu902_4(unknown) = ^CallSideEffect : ~m? +# 902| v902_5(void) = ^IndirectReadSideEffect[-1] : &:r902_1, ~m? +# 902| mu902_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r902_1 +# 902| r902_7(bool) = Constant[0] : +# 902| v902_8(void) = ConditionalBranch : r902_7 +#-----| False -> Block 296 +#-----| True (back edge) -> Block 295 + +# 904| Block 296 +# 904| r904_1(glval) = VariableAddress[x295] : +# 904| mu904_2(String) = Uninitialized[x295] : &:r904_1 +# 904| r904_3(glval) = FunctionAddress[String] : +# 904| v904_4(void) = Call[String] : func:r904_3, this:r904_1 +# 904| mu904_5(unknown) = ^CallSideEffect : ~m? +# 904| mu904_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r904_1 +# 905| r905_1(glval) = VariableAddress[x295] : +# 905| r905_2(glval) = FunctionAddress[~String] : +# 905| v905_3(void) = Call[~String] : func:r905_2, this:r905_1 +# 905| mu905_4(unknown) = ^CallSideEffect : ~m? +# 905| v905_5(void) = ^IndirectReadSideEffect[-1] : &:r905_1, ~m? +# 905| mu905_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r905_1 +# 905| r905_7(bool) = Constant[0] : +# 905| v905_8(void) = ConditionalBranch : r905_7 +#-----| False -> Block 297 +#-----| True (back edge) -> Block 296 + +# 907| Block 297 +# 907| r907_1(glval) = VariableAddress[x296] : +# 907| mu907_2(String) = Uninitialized[x296] : &:r907_1 +# 907| r907_3(glval) = FunctionAddress[String] : +# 907| v907_4(void) = Call[String] : func:r907_3, this:r907_1 +# 907| mu907_5(unknown) = ^CallSideEffect : ~m? +# 907| mu907_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r907_1 +# 908| r908_1(glval) = VariableAddress[x296] : +# 908| r908_2(glval) = FunctionAddress[~String] : +# 908| v908_3(void) = Call[~String] : func:r908_2, this:r908_1 +# 908| mu908_4(unknown) = ^CallSideEffect : ~m? +# 908| v908_5(void) = ^IndirectReadSideEffect[-1] : &:r908_1, ~m? +# 908| mu908_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r908_1 +# 908| r908_7(bool) = Constant[0] : +# 908| v908_8(void) = ConditionalBranch : r908_7 +#-----| False -> Block 298 +#-----| True (back edge) -> Block 297 + +# 910| Block 298 +# 910| r910_1(glval) = VariableAddress[x297] : +# 910| mu910_2(String) = Uninitialized[x297] : &:r910_1 +# 910| r910_3(glval) = FunctionAddress[String] : +# 910| v910_4(void) = Call[String] : func:r910_3, this:r910_1 +# 910| mu910_5(unknown) = ^CallSideEffect : ~m? +# 910| mu910_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r910_1 +# 911| r911_1(glval) = VariableAddress[x297] : +# 911| r911_2(glval) = FunctionAddress[~String] : +# 911| v911_3(void) = Call[~String] : func:r911_2, this:r911_1 +# 911| mu911_4(unknown) = ^CallSideEffect : ~m? +# 911| v911_5(void) = ^IndirectReadSideEffect[-1] : &:r911_1, ~m? +# 911| mu911_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r911_1 +# 911| r911_7(bool) = Constant[0] : +# 911| v911_8(void) = ConditionalBranch : r911_7 +#-----| False -> Block 299 +#-----| True (back edge) -> Block 298 + +# 913| Block 299 +# 913| r913_1(glval) = VariableAddress[x298] : +# 913| mu913_2(String) = Uninitialized[x298] : &:r913_1 +# 913| r913_3(glval) = FunctionAddress[String] : +# 913| v913_4(void) = Call[String] : func:r913_3, this:r913_1 +# 913| mu913_5(unknown) = ^CallSideEffect : ~m? +# 913| mu913_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r913_1 +# 914| r914_1(glval) = VariableAddress[x298] : +# 914| r914_2(glval) = FunctionAddress[~String] : +# 914| v914_3(void) = Call[~String] : func:r914_2, this:r914_1 +# 914| mu914_4(unknown) = ^CallSideEffect : ~m? +# 914| v914_5(void) = ^IndirectReadSideEffect[-1] : &:r914_1, ~m? +# 914| mu914_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r914_1 +# 914| r914_7(bool) = Constant[0] : +# 914| v914_8(void) = ConditionalBranch : r914_7 +#-----| False -> Block 300 +#-----| True (back edge) -> Block 299 + +# 916| Block 300 +# 916| r916_1(glval) = VariableAddress[x299] : +# 916| mu916_2(String) = Uninitialized[x299] : &:r916_1 +# 916| r916_3(glval) = FunctionAddress[String] : +# 916| v916_4(void) = Call[String] : func:r916_3, this:r916_1 +# 916| mu916_5(unknown) = ^CallSideEffect : ~m? +# 916| mu916_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r916_1 +# 917| r917_1(glval) = VariableAddress[x299] : +# 917| r917_2(glval) = FunctionAddress[~String] : +# 917| v917_3(void) = Call[~String] : func:r917_2, this:r917_1 +# 917| mu917_4(unknown) = ^CallSideEffect : ~m? +# 917| v917_5(void) = ^IndirectReadSideEffect[-1] : &:r917_1, ~m? +# 917| mu917_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r917_1 +# 917| r917_7(bool) = Constant[0] : +# 917| v917_8(void) = ConditionalBranch : r917_7 +#-----| False -> Block 301 +#-----| True (back edge) -> Block 300 + +# 919| Block 301 +# 919| r919_1(glval) = VariableAddress[x300] : +# 919| mu919_2(String) = Uninitialized[x300] : &:r919_1 +# 919| r919_3(glval) = FunctionAddress[String] : +# 919| v919_4(void) = Call[String] : func:r919_3, this:r919_1 +# 919| mu919_5(unknown) = ^CallSideEffect : ~m? +# 919| mu919_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r919_1 +# 920| r920_1(glval) = VariableAddress[x300] : +# 920| r920_2(glval) = FunctionAddress[~String] : +# 920| v920_3(void) = Call[~String] : func:r920_2, this:r920_1 +# 920| mu920_4(unknown) = ^CallSideEffect : ~m? +# 920| v920_5(void) = ^IndirectReadSideEffect[-1] : &:r920_1, ~m? +# 920| mu920_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r920_1 +# 920| r920_7(bool) = Constant[0] : +# 920| v920_8(void) = ConditionalBranch : r920_7 +#-----| False -> Block 302 +#-----| True (back edge) -> Block 301 + +# 922| Block 302 +# 922| r922_1(glval) = VariableAddress[x301] : +# 922| mu922_2(String) = Uninitialized[x301] : &:r922_1 +# 922| r922_3(glval) = FunctionAddress[String] : +# 922| v922_4(void) = Call[String] : func:r922_3, this:r922_1 +# 922| mu922_5(unknown) = ^CallSideEffect : ~m? +# 922| mu922_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r922_1 +# 923| r923_1(glval) = VariableAddress[x301] : +# 923| r923_2(glval) = FunctionAddress[~String] : +# 923| v923_3(void) = Call[~String] : func:r923_2, this:r923_1 +# 923| mu923_4(unknown) = ^CallSideEffect : ~m? +# 923| v923_5(void) = ^IndirectReadSideEffect[-1] : &:r923_1, ~m? +# 923| mu923_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r923_1 +# 923| r923_7(bool) = Constant[0] : +# 923| v923_8(void) = ConditionalBranch : r923_7 +#-----| False -> Block 303 +#-----| True (back edge) -> Block 302 + +# 925| Block 303 +# 925| r925_1(glval) = VariableAddress[x302] : +# 925| mu925_2(String) = Uninitialized[x302] : &:r925_1 +# 925| r925_3(glval) = FunctionAddress[String] : +# 925| v925_4(void) = Call[String] : func:r925_3, this:r925_1 +# 925| mu925_5(unknown) = ^CallSideEffect : ~m? +# 925| mu925_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r925_1 +# 926| r926_1(glval) = VariableAddress[x302] : +# 926| r926_2(glval) = FunctionAddress[~String] : +# 926| v926_3(void) = Call[~String] : func:r926_2, this:r926_1 +# 926| mu926_4(unknown) = ^CallSideEffect : ~m? +# 926| v926_5(void) = ^IndirectReadSideEffect[-1] : &:r926_1, ~m? +# 926| mu926_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r926_1 +# 926| r926_7(bool) = Constant[0] : +# 926| v926_8(void) = ConditionalBranch : r926_7 +#-----| False -> Block 304 +#-----| True (back edge) -> Block 303 + +# 928| Block 304 +# 928| r928_1(glval) = VariableAddress[x303] : +# 928| mu928_2(String) = Uninitialized[x303] : &:r928_1 +# 928| r928_3(glval) = FunctionAddress[String] : +# 928| v928_4(void) = Call[String] : func:r928_3, this:r928_1 +# 928| mu928_5(unknown) = ^CallSideEffect : ~m? +# 928| mu928_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r928_1 +# 929| r929_1(glval) = VariableAddress[x303] : +# 929| r929_2(glval) = FunctionAddress[~String] : +# 929| v929_3(void) = Call[~String] : func:r929_2, this:r929_1 +# 929| mu929_4(unknown) = ^CallSideEffect : ~m? +# 929| v929_5(void) = ^IndirectReadSideEffect[-1] : &:r929_1, ~m? +# 929| mu929_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r929_1 +# 929| r929_7(bool) = Constant[0] : +# 929| v929_8(void) = ConditionalBranch : r929_7 +#-----| False -> Block 305 +#-----| True (back edge) -> Block 304 + +# 931| Block 305 +# 931| r931_1(glval) = VariableAddress[x304] : +# 931| mu931_2(String) = Uninitialized[x304] : &:r931_1 +# 931| r931_3(glval) = FunctionAddress[String] : +# 931| v931_4(void) = Call[String] : func:r931_3, this:r931_1 +# 931| mu931_5(unknown) = ^CallSideEffect : ~m? +# 931| mu931_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r931_1 +# 932| r932_1(glval) = VariableAddress[x304] : +# 932| r932_2(glval) = FunctionAddress[~String] : +# 932| v932_3(void) = Call[~String] : func:r932_2, this:r932_1 +# 932| mu932_4(unknown) = ^CallSideEffect : ~m? +# 932| v932_5(void) = ^IndirectReadSideEffect[-1] : &:r932_1, ~m? +# 932| mu932_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r932_1 +# 932| r932_7(bool) = Constant[0] : +# 932| v932_8(void) = ConditionalBranch : r932_7 +#-----| False -> Block 306 +#-----| True (back edge) -> Block 305 + +# 934| Block 306 +# 934| r934_1(glval) = VariableAddress[x305] : +# 934| mu934_2(String) = Uninitialized[x305] : &:r934_1 +# 934| r934_3(glval) = FunctionAddress[String] : +# 934| v934_4(void) = Call[String] : func:r934_3, this:r934_1 +# 934| mu934_5(unknown) = ^CallSideEffect : ~m? +# 934| mu934_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r934_1 +# 935| r935_1(glval) = VariableAddress[x305] : +# 935| r935_2(glval) = FunctionAddress[~String] : +# 935| v935_3(void) = Call[~String] : func:r935_2, this:r935_1 +# 935| mu935_4(unknown) = ^CallSideEffect : ~m? +# 935| v935_5(void) = ^IndirectReadSideEffect[-1] : &:r935_1, ~m? +# 935| mu935_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r935_1 +# 935| r935_7(bool) = Constant[0] : +# 935| v935_8(void) = ConditionalBranch : r935_7 +#-----| False -> Block 307 +#-----| True (back edge) -> Block 306 + +# 937| Block 307 +# 937| r937_1(glval) = VariableAddress[x306] : +# 937| mu937_2(String) = Uninitialized[x306] : &:r937_1 +# 937| r937_3(glval) = FunctionAddress[String] : +# 937| v937_4(void) = Call[String] : func:r937_3, this:r937_1 +# 937| mu937_5(unknown) = ^CallSideEffect : ~m? +# 937| mu937_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r937_1 +# 938| r938_1(glval) = VariableAddress[x306] : +# 938| r938_2(glval) = FunctionAddress[~String] : +# 938| v938_3(void) = Call[~String] : func:r938_2, this:r938_1 +# 938| mu938_4(unknown) = ^CallSideEffect : ~m? +# 938| v938_5(void) = ^IndirectReadSideEffect[-1] : &:r938_1, ~m? +# 938| mu938_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r938_1 +# 938| r938_7(bool) = Constant[0] : +# 938| v938_8(void) = ConditionalBranch : r938_7 +#-----| False -> Block 308 +#-----| True (back edge) -> Block 307 + +# 940| Block 308 +# 940| r940_1(glval) = VariableAddress[x307] : +# 940| mu940_2(String) = Uninitialized[x307] : &:r940_1 +# 940| r940_3(glval) = FunctionAddress[String] : +# 940| v940_4(void) = Call[String] : func:r940_3, this:r940_1 +# 940| mu940_5(unknown) = ^CallSideEffect : ~m? +# 940| mu940_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r940_1 +# 941| r941_1(glval) = VariableAddress[x307] : +# 941| r941_2(glval) = FunctionAddress[~String] : +# 941| v941_3(void) = Call[~String] : func:r941_2, this:r941_1 +# 941| mu941_4(unknown) = ^CallSideEffect : ~m? +# 941| v941_5(void) = ^IndirectReadSideEffect[-1] : &:r941_1, ~m? +# 941| mu941_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r941_1 +# 941| r941_7(bool) = Constant[0] : +# 941| v941_8(void) = ConditionalBranch : r941_7 +#-----| False -> Block 309 +#-----| True (back edge) -> Block 308 + +# 943| Block 309 +# 943| r943_1(glval) = VariableAddress[x308] : +# 943| mu943_2(String) = Uninitialized[x308] : &:r943_1 +# 943| r943_3(glval) = FunctionAddress[String] : +# 943| v943_4(void) = Call[String] : func:r943_3, this:r943_1 +# 943| mu943_5(unknown) = ^CallSideEffect : ~m? +# 943| mu943_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r943_1 +# 944| r944_1(glval) = VariableAddress[x308] : +# 944| r944_2(glval) = FunctionAddress[~String] : +# 944| v944_3(void) = Call[~String] : func:r944_2, this:r944_1 +# 944| mu944_4(unknown) = ^CallSideEffect : ~m? +# 944| v944_5(void) = ^IndirectReadSideEffect[-1] : &:r944_1, ~m? +# 944| mu944_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r944_1 +# 944| r944_7(bool) = Constant[0] : +# 944| v944_8(void) = ConditionalBranch : r944_7 +#-----| False -> Block 310 +#-----| True (back edge) -> Block 309 + +# 946| Block 310 +# 946| r946_1(glval) = VariableAddress[x309] : +# 946| mu946_2(String) = Uninitialized[x309] : &:r946_1 +# 946| r946_3(glval) = FunctionAddress[String] : +# 946| v946_4(void) = Call[String] : func:r946_3, this:r946_1 +# 946| mu946_5(unknown) = ^CallSideEffect : ~m? +# 946| mu946_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r946_1 +# 947| r947_1(glval) = VariableAddress[x309] : +# 947| r947_2(glval) = FunctionAddress[~String] : +# 947| v947_3(void) = Call[~String] : func:r947_2, this:r947_1 +# 947| mu947_4(unknown) = ^CallSideEffect : ~m? +# 947| v947_5(void) = ^IndirectReadSideEffect[-1] : &:r947_1, ~m? +# 947| mu947_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r947_1 +# 947| r947_7(bool) = Constant[0] : +# 947| v947_8(void) = ConditionalBranch : r947_7 +#-----| False -> Block 311 +#-----| True (back edge) -> Block 310 + +# 949| Block 311 +# 949| r949_1(glval) = VariableAddress[x310] : +# 949| mu949_2(String) = Uninitialized[x310] : &:r949_1 +# 949| r949_3(glval) = FunctionAddress[String] : +# 949| v949_4(void) = Call[String] : func:r949_3, this:r949_1 +# 949| mu949_5(unknown) = ^CallSideEffect : ~m? +# 949| mu949_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r949_1 +# 950| r950_1(glval) = VariableAddress[x310] : +# 950| r950_2(glval) = FunctionAddress[~String] : +# 950| v950_3(void) = Call[~String] : func:r950_2, this:r950_1 +# 950| mu950_4(unknown) = ^CallSideEffect : ~m? +# 950| v950_5(void) = ^IndirectReadSideEffect[-1] : &:r950_1, ~m? +# 950| mu950_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r950_1 +# 950| r950_7(bool) = Constant[0] : +# 950| v950_8(void) = ConditionalBranch : r950_7 +#-----| False -> Block 312 +#-----| True (back edge) -> Block 311 + +# 952| Block 312 +# 952| r952_1(glval) = VariableAddress[x311] : +# 952| mu952_2(String) = Uninitialized[x311] : &:r952_1 +# 952| r952_3(glval) = FunctionAddress[String] : +# 952| v952_4(void) = Call[String] : func:r952_3, this:r952_1 +# 952| mu952_5(unknown) = ^CallSideEffect : ~m? +# 952| mu952_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r952_1 +# 953| r953_1(glval) = VariableAddress[x311] : +# 953| r953_2(glval) = FunctionAddress[~String] : +# 953| v953_3(void) = Call[~String] : func:r953_2, this:r953_1 +# 953| mu953_4(unknown) = ^CallSideEffect : ~m? +# 953| v953_5(void) = ^IndirectReadSideEffect[-1] : &:r953_1, ~m? +# 953| mu953_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r953_1 +# 953| r953_7(bool) = Constant[0] : +# 953| v953_8(void) = ConditionalBranch : r953_7 +#-----| False -> Block 313 +#-----| True (back edge) -> Block 312 + +# 955| Block 313 +# 955| r955_1(glval) = VariableAddress[x312] : +# 955| mu955_2(String) = Uninitialized[x312] : &:r955_1 +# 955| r955_3(glval) = FunctionAddress[String] : +# 955| v955_4(void) = Call[String] : func:r955_3, this:r955_1 +# 955| mu955_5(unknown) = ^CallSideEffect : ~m? +# 955| mu955_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r955_1 +# 956| r956_1(glval) = VariableAddress[x312] : +# 956| r956_2(glval) = FunctionAddress[~String] : +# 956| v956_3(void) = Call[~String] : func:r956_2, this:r956_1 +# 956| mu956_4(unknown) = ^CallSideEffect : ~m? +# 956| v956_5(void) = ^IndirectReadSideEffect[-1] : &:r956_1, ~m? +# 956| mu956_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r956_1 +# 956| r956_7(bool) = Constant[0] : +# 956| v956_8(void) = ConditionalBranch : r956_7 +#-----| False -> Block 314 +#-----| True (back edge) -> Block 313 + +# 958| Block 314 +# 958| r958_1(glval) = VariableAddress[x313] : +# 958| mu958_2(String) = Uninitialized[x313] : &:r958_1 +# 958| r958_3(glval) = FunctionAddress[String] : +# 958| v958_4(void) = Call[String] : func:r958_3, this:r958_1 +# 958| mu958_5(unknown) = ^CallSideEffect : ~m? +# 958| mu958_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r958_1 +# 959| r959_1(glval) = VariableAddress[x313] : +# 959| r959_2(glval) = FunctionAddress[~String] : +# 959| v959_3(void) = Call[~String] : func:r959_2, this:r959_1 +# 959| mu959_4(unknown) = ^CallSideEffect : ~m? +# 959| v959_5(void) = ^IndirectReadSideEffect[-1] : &:r959_1, ~m? +# 959| mu959_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r959_1 +# 959| r959_7(bool) = Constant[0] : +# 959| v959_8(void) = ConditionalBranch : r959_7 +#-----| False -> Block 315 +#-----| True (back edge) -> Block 314 + +# 961| Block 315 +# 961| r961_1(glval) = VariableAddress[x314] : +# 961| mu961_2(String) = Uninitialized[x314] : &:r961_1 +# 961| r961_3(glval) = FunctionAddress[String] : +# 961| v961_4(void) = Call[String] : func:r961_3, this:r961_1 +# 961| mu961_5(unknown) = ^CallSideEffect : ~m? +# 961| mu961_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r961_1 +# 962| r962_1(glval) = VariableAddress[x314] : +# 962| r962_2(glval) = FunctionAddress[~String] : +# 962| v962_3(void) = Call[~String] : func:r962_2, this:r962_1 +# 962| mu962_4(unknown) = ^CallSideEffect : ~m? +# 962| v962_5(void) = ^IndirectReadSideEffect[-1] : &:r962_1, ~m? +# 962| mu962_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r962_1 +# 962| r962_7(bool) = Constant[0] : +# 962| v962_8(void) = ConditionalBranch : r962_7 +#-----| False -> Block 316 +#-----| True (back edge) -> Block 315 + +# 964| Block 316 +# 964| r964_1(glval) = VariableAddress[x315] : +# 964| mu964_2(String) = Uninitialized[x315] : &:r964_1 +# 964| r964_3(glval) = FunctionAddress[String] : +# 964| v964_4(void) = Call[String] : func:r964_3, this:r964_1 +# 964| mu964_5(unknown) = ^CallSideEffect : ~m? +# 964| mu964_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r964_1 +# 965| r965_1(glval) = VariableAddress[x315] : +# 965| r965_2(glval) = FunctionAddress[~String] : +# 965| v965_3(void) = Call[~String] : func:r965_2, this:r965_1 +# 965| mu965_4(unknown) = ^CallSideEffect : ~m? +# 965| v965_5(void) = ^IndirectReadSideEffect[-1] : &:r965_1, ~m? +# 965| mu965_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r965_1 +# 965| r965_7(bool) = Constant[0] : +# 965| v965_8(void) = ConditionalBranch : r965_7 +#-----| False -> Block 317 +#-----| True (back edge) -> Block 316 + +# 967| Block 317 +# 967| r967_1(glval) = VariableAddress[x316] : +# 967| mu967_2(String) = Uninitialized[x316] : &:r967_1 +# 967| r967_3(glval) = FunctionAddress[String] : +# 967| v967_4(void) = Call[String] : func:r967_3, this:r967_1 +# 967| mu967_5(unknown) = ^CallSideEffect : ~m? +# 967| mu967_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r967_1 +# 968| r968_1(glval) = VariableAddress[x316] : +# 968| r968_2(glval) = FunctionAddress[~String] : +# 968| v968_3(void) = Call[~String] : func:r968_2, this:r968_1 +# 968| mu968_4(unknown) = ^CallSideEffect : ~m? +# 968| v968_5(void) = ^IndirectReadSideEffect[-1] : &:r968_1, ~m? +# 968| mu968_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r968_1 +# 968| r968_7(bool) = Constant[0] : +# 968| v968_8(void) = ConditionalBranch : r968_7 +#-----| False -> Block 318 +#-----| True (back edge) -> Block 317 + +# 970| Block 318 +# 970| r970_1(glval) = VariableAddress[x317] : +# 970| mu970_2(String) = Uninitialized[x317] : &:r970_1 +# 970| r970_3(glval) = FunctionAddress[String] : +# 970| v970_4(void) = Call[String] : func:r970_3, this:r970_1 +# 970| mu970_5(unknown) = ^CallSideEffect : ~m? +# 970| mu970_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r970_1 +# 971| r971_1(glval) = VariableAddress[x317] : +# 971| r971_2(glval) = FunctionAddress[~String] : +# 971| v971_3(void) = Call[~String] : func:r971_2, this:r971_1 +# 971| mu971_4(unknown) = ^CallSideEffect : ~m? +# 971| v971_5(void) = ^IndirectReadSideEffect[-1] : &:r971_1, ~m? +# 971| mu971_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r971_1 +# 971| r971_7(bool) = Constant[0] : +# 971| v971_8(void) = ConditionalBranch : r971_7 +#-----| False -> Block 319 +#-----| True (back edge) -> Block 318 + +# 973| Block 319 +# 973| r973_1(glval) = VariableAddress[x318] : +# 973| mu973_2(String) = Uninitialized[x318] : &:r973_1 +# 973| r973_3(glval) = FunctionAddress[String] : +# 973| v973_4(void) = Call[String] : func:r973_3, this:r973_1 +# 973| mu973_5(unknown) = ^CallSideEffect : ~m? +# 973| mu973_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r973_1 +# 974| r974_1(glval) = VariableAddress[x318] : +# 974| r974_2(glval) = FunctionAddress[~String] : +# 974| v974_3(void) = Call[~String] : func:r974_2, this:r974_1 +# 974| mu974_4(unknown) = ^CallSideEffect : ~m? +# 974| v974_5(void) = ^IndirectReadSideEffect[-1] : &:r974_1, ~m? +# 974| mu974_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r974_1 +# 974| r974_7(bool) = Constant[0] : +# 974| v974_8(void) = ConditionalBranch : r974_7 +#-----| False -> Block 320 +#-----| True (back edge) -> Block 319 + +# 976| Block 320 +# 976| r976_1(glval) = VariableAddress[x319] : +# 976| mu976_2(String) = Uninitialized[x319] : &:r976_1 +# 976| r976_3(glval) = FunctionAddress[String] : +# 976| v976_4(void) = Call[String] : func:r976_3, this:r976_1 +# 976| mu976_5(unknown) = ^CallSideEffect : ~m? +# 976| mu976_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r976_1 +# 977| r977_1(glval) = VariableAddress[x319] : +# 977| r977_2(glval) = FunctionAddress[~String] : +# 977| v977_3(void) = Call[~String] : func:r977_2, this:r977_1 +# 977| mu977_4(unknown) = ^CallSideEffect : ~m? +# 977| v977_5(void) = ^IndirectReadSideEffect[-1] : &:r977_1, ~m? +# 977| mu977_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r977_1 +# 977| r977_7(bool) = Constant[0] : +# 977| v977_8(void) = ConditionalBranch : r977_7 +#-----| False -> Block 321 +#-----| True (back edge) -> Block 320 + +# 979| Block 321 +# 979| r979_1(glval) = VariableAddress[x320] : +# 979| mu979_2(String) = Uninitialized[x320] : &:r979_1 +# 979| r979_3(glval) = FunctionAddress[String] : +# 979| v979_4(void) = Call[String] : func:r979_3, this:r979_1 +# 979| mu979_5(unknown) = ^CallSideEffect : ~m? +# 979| mu979_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r979_1 +# 980| r980_1(glval) = VariableAddress[x320] : +# 980| r980_2(glval) = FunctionAddress[~String] : +# 980| v980_3(void) = Call[~String] : func:r980_2, this:r980_1 +# 980| mu980_4(unknown) = ^CallSideEffect : ~m? +# 980| v980_5(void) = ^IndirectReadSideEffect[-1] : &:r980_1, ~m? +# 980| mu980_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r980_1 +# 980| r980_7(bool) = Constant[0] : +# 980| v980_8(void) = ConditionalBranch : r980_7 +#-----| False -> Block 322 +#-----| True (back edge) -> Block 321 + +# 982| Block 322 +# 982| r982_1(glval) = VariableAddress[x321] : +# 982| mu982_2(String) = Uninitialized[x321] : &:r982_1 +# 982| r982_3(glval) = FunctionAddress[String] : +# 982| v982_4(void) = Call[String] : func:r982_3, this:r982_1 +# 982| mu982_5(unknown) = ^CallSideEffect : ~m? +# 982| mu982_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r982_1 +# 983| r983_1(glval) = VariableAddress[x321] : +# 983| r983_2(glval) = FunctionAddress[~String] : +# 983| v983_3(void) = Call[~String] : func:r983_2, this:r983_1 +# 983| mu983_4(unknown) = ^CallSideEffect : ~m? +# 983| v983_5(void) = ^IndirectReadSideEffect[-1] : &:r983_1, ~m? +# 983| mu983_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r983_1 +# 983| r983_7(bool) = Constant[0] : +# 983| v983_8(void) = ConditionalBranch : r983_7 +#-----| False -> Block 323 +#-----| True (back edge) -> Block 322 + +# 985| Block 323 +# 985| r985_1(glval) = VariableAddress[x322] : +# 985| mu985_2(String) = Uninitialized[x322] : &:r985_1 +# 985| r985_3(glval) = FunctionAddress[String] : +# 985| v985_4(void) = Call[String] : func:r985_3, this:r985_1 +# 985| mu985_5(unknown) = ^CallSideEffect : ~m? +# 985| mu985_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r985_1 +# 986| r986_1(glval) = VariableAddress[x322] : +# 986| r986_2(glval) = FunctionAddress[~String] : +# 986| v986_3(void) = Call[~String] : func:r986_2, this:r986_1 +# 986| mu986_4(unknown) = ^CallSideEffect : ~m? +# 986| v986_5(void) = ^IndirectReadSideEffect[-1] : &:r986_1, ~m? +# 986| mu986_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r986_1 +# 986| r986_7(bool) = Constant[0] : +# 986| v986_8(void) = ConditionalBranch : r986_7 +#-----| False -> Block 324 +#-----| True (back edge) -> Block 323 + +# 988| Block 324 +# 988| r988_1(glval) = VariableAddress[x323] : +# 988| mu988_2(String) = Uninitialized[x323] : &:r988_1 +# 988| r988_3(glval) = FunctionAddress[String] : +# 988| v988_4(void) = Call[String] : func:r988_3, this:r988_1 +# 988| mu988_5(unknown) = ^CallSideEffect : ~m? +# 988| mu988_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r988_1 +# 989| r989_1(glval) = VariableAddress[x323] : +# 989| r989_2(glval) = FunctionAddress[~String] : +# 989| v989_3(void) = Call[~String] : func:r989_2, this:r989_1 +# 989| mu989_4(unknown) = ^CallSideEffect : ~m? +# 989| v989_5(void) = ^IndirectReadSideEffect[-1] : &:r989_1, ~m? +# 989| mu989_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r989_1 +# 989| r989_7(bool) = Constant[0] : +# 989| v989_8(void) = ConditionalBranch : r989_7 +#-----| False -> Block 325 +#-----| True (back edge) -> Block 324 + +# 991| Block 325 +# 991| r991_1(glval) = VariableAddress[x324] : +# 991| mu991_2(String) = Uninitialized[x324] : &:r991_1 +# 991| r991_3(glval) = FunctionAddress[String] : +# 991| v991_4(void) = Call[String] : func:r991_3, this:r991_1 +# 991| mu991_5(unknown) = ^CallSideEffect : ~m? +# 991| mu991_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r991_1 +# 992| r992_1(glval) = VariableAddress[x324] : +# 992| r992_2(glval) = FunctionAddress[~String] : +# 992| v992_3(void) = Call[~String] : func:r992_2, this:r992_1 +# 992| mu992_4(unknown) = ^CallSideEffect : ~m? +# 992| v992_5(void) = ^IndirectReadSideEffect[-1] : &:r992_1, ~m? +# 992| mu992_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r992_1 +# 992| r992_7(bool) = Constant[0] : +# 992| v992_8(void) = ConditionalBranch : r992_7 +#-----| False -> Block 326 +#-----| True (back edge) -> Block 325 + +# 994| Block 326 +# 994| r994_1(glval) = VariableAddress[x325] : +# 994| mu994_2(String) = Uninitialized[x325] : &:r994_1 +# 994| r994_3(glval) = FunctionAddress[String] : +# 994| v994_4(void) = Call[String] : func:r994_3, this:r994_1 +# 994| mu994_5(unknown) = ^CallSideEffect : ~m? +# 994| mu994_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r994_1 +# 995| r995_1(glval) = VariableAddress[x325] : +# 995| r995_2(glval) = FunctionAddress[~String] : +# 995| v995_3(void) = Call[~String] : func:r995_2, this:r995_1 +# 995| mu995_4(unknown) = ^CallSideEffect : ~m? +# 995| v995_5(void) = ^IndirectReadSideEffect[-1] : &:r995_1, ~m? +# 995| mu995_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r995_1 +# 995| r995_7(bool) = Constant[0] : +# 995| v995_8(void) = ConditionalBranch : r995_7 +#-----| False -> Block 327 +#-----| True (back edge) -> Block 326 + +# 997| Block 327 +# 997| r997_1(glval) = VariableAddress[x326] : +# 997| mu997_2(String) = Uninitialized[x326] : &:r997_1 +# 997| r997_3(glval) = FunctionAddress[String] : +# 997| v997_4(void) = Call[String] : func:r997_3, this:r997_1 +# 997| mu997_5(unknown) = ^CallSideEffect : ~m? +# 997| mu997_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r997_1 +# 998| r998_1(glval) = VariableAddress[x326] : +# 998| r998_2(glval) = FunctionAddress[~String] : +# 998| v998_3(void) = Call[~String] : func:r998_2, this:r998_1 +# 998| mu998_4(unknown) = ^CallSideEffect : ~m? +# 998| v998_5(void) = ^IndirectReadSideEffect[-1] : &:r998_1, ~m? +# 998| mu998_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r998_1 +# 998| r998_7(bool) = Constant[0] : +# 998| v998_8(void) = ConditionalBranch : r998_7 +#-----| False -> Block 328 +#-----| True (back edge) -> Block 327 + +# 1000| Block 328 +# 1000| r1000_1(glval) = VariableAddress[x327] : +# 1000| mu1000_2(String) = Uninitialized[x327] : &:r1000_1 +# 1000| r1000_3(glval) = FunctionAddress[String] : +# 1000| v1000_4(void) = Call[String] : func:r1000_3, this:r1000_1 +# 1000| mu1000_5(unknown) = ^CallSideEffect : ~m? +# 1000| mu1000_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1000_1 +# 1001| r1001_1(glval) = VariableAddress[x327] : +# 1001| r1001_2(glval) = FunctionAddress[~String] : +# 1001| v1001_3(void) = Call[~String] : func:r1001_2, this:r1001_1 +# 1001| mu1001_4(unknown) = ^CallSideEffect : ~m? +# 1001| v1001_5(void) = ^IndirectReadSideEffect[-1] : &:r1001_1, ~m? +# 1001| mu1001_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1001_1 +# 1001| r1001_7(bool) = Constant[0] : +# 1001| v1001_8(void) = ConditionalBranch : r1001_7 +#-----| False -> Block 329 +#-----| True (back edge) -> Block 328 + +# 1003| Block 329 +# 1003| r1003_1(glval) = VariableAddress[x328] : +# 1003| mu1003_2(String) = Uninitialized[x328] : &:r1003_1 +# 1003| r1003_3(glval) = FunctionAddress[String] : +# 1003| v1003_4(void) = Call[String] : func:r1003_3, this:r1003_1 +# 1003| mu1003_5(unknown) = ^CallSideEffect : ~m? +# 1003| mu1003_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1003_1 +# 1004| r1004_1(glval) = VariableAddress[x328] : +# 1004| r1004_2(glval) = FunctionAddress[~String] : +# 1004| v1004_3(void) = Call[~String] : func:r1004_2, this:r1004_1 +# 1004| mu1004_4(unknown) = ^CallSideEffect : ~m? +# 1004| v1004_5(void) = ^IndirectReadSideEffect[-1] : &:r1004_1, ~m? +# 1004| mu1004_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1004_1 +# 1004| r1004_7(bool) = Constant[0] : +# 1004| v1004_8(void) = ConditionalBranch : r1004_7 +#-----| False -> Block 330 +#-----| True (back edge) -> Block 329 + +# 1006| Block 330 +# 1006| r1006_1(glval) = VariableAddress[x329] : +# 1006| mu1006_2(String) = Uninitialized[x329] : &:r1006_1 +# 1006| r1006_3(glval) = FunctionAddress[String] : +# 1006| v1006_4(void) = Call[String] : func:r1006_3, this:r1006_1 +# 1006| mu1006_5(unknown) = ^CallSideEffect : ~m? +# 1006| mu1006_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1006_1 +# 1007| r1007_1(glval) = VariableAddress[x329] : +# 1007| r1007_2(glval) = FunctionAddress[~String] : +# 1007| v1007_3(void) = Call[~String] : func:r1007_2, this:r1007_1 +# 1007| mu1007_4(unknown) = ^CallSideEffect : ~m? +# 1007| v1007_5(void) = ^IndirectReadSideEffect[-1] : &:r1007_1, ~m? +# 1007| mu1007_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1007_1 +# 1007| r1007_7(bool) = Constant[0] : +# 1007| v1007_8(void) = ConditionalBranch : r1007_7 +#-----| False -> Block 331 +#-----| True (back edge) -> Block 330 + +# 1009| Block 331 +# 1009| r1009_1(glval) = VariableAddress[x330] : +# 1009| mu1009_2(String) = Uninitialized[x330] : &:r1009_1 +# 1009| r1009_3(glval) = FunctionAddress[String] : +# 1009| v1009_4(void) = Call[String] : func:r1009_3, this:r1009_1 +# 1009| mu1009_5(unknown) = ^CallSideEffect : ~m? +# 1009| mu1009_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1009_1 +# 1010| r1010_1(glval) = VariableAddress[x330] : +# 1010| r1010_2(glval) = FunctionAddress[~String] : +# 1010| v1010_3(void) = Call[~String] : func:r1010_2, this:r1010_1 +# 1010| mu1010_4(unknown) = ^CallSideEffect : ~m? +# 1010| v1010_5(void) = ^IndirectReadSideEffect[-1] : &:r1010_1, ~m? +# 1010| mu1010_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1010_1 +# 1010| r1010_7(bool) = Constant[0] : +# 1010| v1010_8(void) = ConditionalBranch : r1010_7 +#-----| False -> Block 332 +#-----| True (back edge) -> Block 331 + +# 1012| Block 332 +# 1012| r1012_1(glval) = VariableAddress[x331] : +# 1012| mu1012_2(String) = Uninitialized[x331] : &:r1012_1 +# 1012| r1012_3(glval) = FunctionAddress[String] : +# 1012| v1012_4(void) = Call[String] : func:r1012_3, this:r1012_1 +# 1012| mu1012_5(unknown) = ^CallSideEffect : ~m? +# 1012| mu1012_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1012_1 +# 1013| r1013_1(glval) = VariableAddress[x331] : +# 1013| r1013_2(glval) = FunctionAddress[~String] : +# 1013| v1013_3(void) = Call[~String] : func:r1013_2, this:r1013_1 +# 1013| mu1013_4(unknown) = ^CallSideEffect : ~m? +# 1013| v1013_5(void) = ^IndirectReadSideEffect[-1] : &:r1013_1, ~m? +# 1013| mu1013_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1013_1 +# 1013| r1013_7(bool) = Constant[0] : +# 1013| v1013_8(void) = ConditionalBranch : r1013_7 +#-----| False -> Block 333 +#-----| True (back edge) -> Block 332 + +# 1015| Block 333 +# 1015| r1015_1(glval) = VariableAddress[x332] : +# 1015| mu1015_2(String) = Uninitialized[x332] : &:r1015_1 +# 1015| r1015_3(glval) = FunctionAddress[String] : +# 1015| v1015_4(void) = Call[String] : func:r1015_3, this:r1015_1 +# 1015| mu1015_5(unknown) = ^CallSideEffect : ~m? +# 1015| mu1015_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1015_1 +# 1016| r1016_1(glval) = VariableAddress[x332] : +# 1016| r1016_2(glval) = FunctionAddress[~String] : +# 1016| v1016_3(void) = Call[~String] : func:r1016_2, this:r1016_1 +# 1016| mu1016_4(unknown) = ^CallSideEffect : ~m? +# 1016| v1016_5(void) = ^IndirectReadSideEffect[-1] : &:r1016_1, ~m? +# 1016| mu1016_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1016_1 +# 1016| r1016_7(bool) = Constant[0] : +# 1016| v1016_8(void) = ConditionalBranch : r1016_7 +#-----| False -> Block 334 +#-----| True (back edge) -> Block 333 + +# 1018| Block 334 +# 1018| r1018_1(glval) = VariableAddress[x333] : +# 1018| mu1018_2(String) = Uninitialized[x333] : &:r1018_1 +# 1018| r1018_3(glval) = FunctionAddress[String] : +# 1018| v1018_4(void) = Call[String] : func:r1018_3, this:r1018_1 +# 1018| mu1018_5(unknown) = ^CallSideEffect : ~m? +# 1018| mu1018_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1018_1 +# 1019| r1019_1(glval) = VariableAddress[x333] : +# 1019| r1019_2(glval) = FunctionAddress[~String] : +# 1019| v1019_3(void) = Call[~String] : func:r1019_2, this:r1019_1 +# 1019| mu1019_4(unknown) = ^CallSideEffect : ~m? +# 1019| v1019_5(void) = ^IndirectReadSideEffect[-1] : &:r1019_1, ~m? +# 1019| mu1019_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1019_1 +# 1019| r1019_7(bool) = Constant[0] : +# 1019| v1019_8(void) = ConditionalBranch : r1019_7 +#-----| False -> Block 335 +#-----| True (back edge) -> Block 334 + +# 1021| Block 335 +# 1021| r1021_1(glval) = VariableAddress[x334] : +# 1021| mu1021_2(String) = Uninitialized[x334] : &:r1021_1 +# 1021| r1021_3(glval) = FunctionAddress[String] : +# 1021| v1021_4(void) = Call[String] : func:r1021_3, this:r1021_1 +# 1021| mu1021_5(unknown) = ^CallSideEffect : ~m? +# 1021| mu1021_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1021_1 +# 1022| r1022_1(glval) = VariableAddress[x334] : +# 1022| r1022_2(glval) = FunctionAddress[~String] : +# 1022| v1022_3(void) = Call[~String] : func:r1022_2, this:r1022_1 +# 1022| mu1022_4(unknown) = ^CallSideEffect : ~m? +# 1022| v1022_5(void) = ^IndirectReadSideEffect[-1] : &:r1022_1, ~m? +# 1022| mu1022_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1022_1 +# 1022| r1022_7(bool) = Constant[0] : +# 1022| v1022_8(void) = ConditionalBranch : r1022_7 +#-----| False -> Block 336 +#-----| True (back edge) -> Block 335 + +# 1024| Block 336 +# 1024| r1024_1(glval) = VariableAddress[x335] : +# 1024| mu1024_2(String) = Uninitialized[x335] : &:r1024_1 +# 1024| r1024_3(glval) = FunctionAddress[String] : +# 1024| v1024_4(void) = Call[String] : func:r1024_3, this:r1024_1 +# 1024| mu1024_5(unknown) = ^CallSideEffect : ~m? +# 1024| mu1024_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1024_1 +# 1025| r1025_1(glval) = VariableAddress[x335] : +# 1025| r1025_2(glval) = FunctionAddress[~String] : +# 1025| v1025_3(void) = Call[~String] : func:r1025_2, this:r1025_1 +# 1025| mu1025_4(unknown) = ^CallSideEffect : ~m? +# 1025| v1025_5(void) = ^IndirectReadSideEffect[-1] : &:r1025_1, ~m? +# 1025| mu1025_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1025_1 +# 1025| r1025_7(bool) = Constant[0] : +# 1025| v1025_8(void) = ConditionalBranch : r1025_7 +#-----| False -> Block 337 +#-----| True (back edge) -> Block 336 + +# 1027| Block 337 +# 1027| r1027_1(glval) = VariableAddress[x336] : +# 1027| mu1027_2(String) = Uninitialized[x336] : &:r1027_1 +# 1027| r1027_3(glval) = FunctionAddress[String] : +# 1027| v1027_4(void) = Call[String] : func:r1027_3, this:r1027_1 +# 1027| mu1027_5(unknown) = ^CallSideEffect : ~m? +# 1027| mu1027_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1027_1 +# 1028| r1028_1(glval) = VariableAddress[x336] : +# 1028| r1028_2(glval) = FunctionAddress[~String] : +# 1028| v1028_3(void) = Call[~String] : func:r1028_2, this:r1028_1 +# 1028| mu1028_4(unknown) = ^CallSideEffect : ~m? +# 1028| v1028_5(void) = ^IndirectReadSideEffect[-1] : &:r1028_1, ~m? +# 1028| mu1028_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1028_1 +# 1028| r1028_7(bool) = Constant[0] : +# 1028| v1028_8(void) = ConditionalBranch : r1028_7 +#-----| False -> Block 338 +#-----| True (back edge) -> Block 337 + +# 1030| Block 338 +# 1030| r1030_1(glval) = VariableAddress[x337] : +# 1030| mu1030_2(String) = Uninitialized[x337] : &:r1030_1 +# 1030| r1030_3(glval) = FunctionAddress[String] : +# 1030| v1030_4(void) = Call[String] : func:r1030_3, this:r1030_1 +# 1030| mu1030_5(unknown) = ^CallSideEffect : ~m? +# 1030| mu1030_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1030_1 +# 1031| r1031_1(glval) = VariableAddress[x337] : +# 1031| r1031_2(glval) = FunctionAddress[~String] : +# 1031| v1031_3(void) = Call[~String] : func:r1031_2, this:r1031_1 +# 1031| mu1031_4(unknown) = ^CallSideEffect : ~m? +# 1031| v1031_5(void) = ^IndirectReadSideEffect[-1] : &:r1031_1, ~m? +# 1031| mu1031_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1031_1 +# 1031| r1031_7(bool) = Constant[0] : +# 1031| v1031_8(void) = ConditionalBranch : r1031_7 +#-----| False -> Block 339 +#-----| True (back edge) -> Block 338 + +# 1033| Block 339 +# 1033| r1033_1(glval) = VariableAddress[x338] : +# 1033| mu1033_2(String) = Uninitialized[x338] : &:r1033_1 +# 1033| r1033_3(glval) = FunctionAddress[String] : +# 1033| v1033_4(void) = Call[String] : func:r1033_3, this:r1033_1 +# 1033| mu1033_5(unknown) = ^CallSideEffect : ~m? +# 1033| mu1033_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1033_1 +# 1034| r1034_1(glval) = VariableAddress[x338] : +# 1034| r1034_2(glval) = FunctionAddress[~String] : +# 1034| v1034_3(void) = Call[~String] : func:r1034_2, this:r1034_1 +# 1034| mu1034_4(unknown) = ^CallSideEffect : ~m? +# 1034| v1034_5(void) = ^IndirectReadSideEffect[-1] : &:r1034_1, ~m? +# 1034| mu1034_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1034_1 +# 1034| r1034_7(bool) = Constant[0] : +# 1034| v1034_8(void) = ConditionalBranch : r1034_7 +#-----| False -> Block 340 +#-----| True (back edge) -> Block 339 + +# 1036| Block 340 +# 1036| r1036_1(glval) = VariableAddress[x339] : +# 1036| mu1036_2(String) = Uninitialized[x339] : &:r1036_1 +# 1036| r1036_3(glval) = FunctionAddress[String] : +# 1036| v1036_4(void) = Call[String] : func:r1036_3, this:r1036_1 +# 1036| mu1036_5(unknown) = ^CallSideEffect : ~m? +# 1036| mu1036_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1036_1 +# 1037| r1037_1(glval) = VariableAddress[x339] : +# 1037| r1037_2(glval) = FunctionAddress[~String] : +# 1037| v1037_3(void) = Call[~String] : func:r1037_2, this:r1037_1 +# 1037| mu1037_4(unknown) = ^CallSideEffect : ~m? +# 1037| v1037_5(void) = ^IndirectReadSideEffect[-1] : &:r1037_1, ~m? +# 1037| mu1037_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1037_1 +# 1037| r1037_7(bool) = Constant[0] : +# 1037| v1037_8(void) = ConditionalBranch : r1037_7 +#-----| False -> Block 341 +#-----| True (back edge) -> Block 340 + +# 1039| Block 341 +# 1039| r1039_1(glval) = VariableAddress[x340] : +# 1039| mu1039_2(String) = Uninitialized[x340] : &:r1039_1 +# 1039| r1039_3(glval) = FunctionAddress[String] : +# 1039| v1039_4(void) = Call[String] : func:r1039_3, this:r1039_1 +# 1039| mu1039_5(unknown) = ^CallSideEffect : ~m? +# 1039| mu1039_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1039_1 +# 1040| r1040_1(glval) = VariableAddress[x340] : +# 1040| r1040_2(glval) = FunctionAddress[~String] : +# 1040| v1040_3(void) = Call[~String] : func:r1040_2, this:r1040_1 +# 1040| mu1040_4(unknown) = ^CallSideEffect : ~m? +# 1040| v1040_5(void) = ^IndirectReadSideEffect[-1] : &:r1040_1, ~m? +# 1040| mu1040_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1040_1 +# 1040| r1040_7(bool) = Constant[0] : +# 1040| v1040_8(void) = ConditionalBranch : r1040_7 +#-----| False -> Block 342 +#-----| True (back edge) -> Block 341 + +# 1042| Block 342 +# 1042| r1042_1(glval) = VariableAddress[x341] : +# 1042| mu1042_2(String) = Uninitialized[x341] : &:r1042_1 +# 1042| r1042_3(glval) = FunctionAddress[String] : +# 1042| v1042_4(void) = Call[String] : func:r1042_3, this:r1042_1 +# 1042| mu1042_5(unknown) = ^CallSideEffect : ~m? +# 1042| mu1042_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1042_1 +# 1043| r1043_1(glval) = VariableAddress[x341] : +# 1043| r1043_2(glval) = FunctionAddress[~String] : +# 1043| v1043_3(void) = Call[~String] : func:r1043_2, this:r1043_1 +# 1043| mu1043_4(unknown) = ^CallSideEffect : ~m? +# 1043| v1043_5(void) = ^IndirectReadSideEffect[-1] : &:r1043_1, ~m? +# 1043| mu1043_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1043_1 +# 1043| r1043_7(bool) = Constant[0] : +# 1043| v1043_8(void) = ConditionalBranch : r1043_7 +#-----| False -> Block 343 +#-----| True (back edge) -> Block 342 + +# 1045| Block 343 +# 1045| r1045_1(glval) = VariableAddress[x342] : +# 1045| mu1045_2(String) = Uninitialized[x342] : &:r1045_1 +# 1045| r1045_3(glval) = FunctionAddress[String] : +# 1045| v1045_4(void) = Call[String] : func:r1045_3, this:r1045_1 +# 1045| mu1045_5(unknown) = ^CallSideEffect : ~m? +# 1045| mu1045_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1045_1 +# 1046| r1046_1(glval) = VariableAddress[x342] : +# 1046| r1046_2(glval) = FunctionAddress[~String] : +# 1046| v1046_3(void) = Call[~String] : func:r1046_2, this:r1046_1 +# 1046| mu1046_4(unknown) = ^CallSideEffect : ~m? +# 1046| v1046_5(void) = ^IndirectReadSideEffect[-1] : &:r1046_1, ~m? +# 1046| mu1046_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1046_1 +# 1046| r1046_7(bool) = Constant[0] : +# 1046| v1046_8(void) = ConditionalBranch : r1046_7 +#-----| False -> Block 344 +#-----| True (back edge) -> Block 343 + +# 1048| Block 344 +# 1048| r1048_1(glval) = VariableAddress[x343] : +# 1048| mu1048_2(String) = Uninitialized[x343] : &:r1048_1 +# 1048| r1048_3(glval) = FunctionAddress[String] : +# 1048| v1048_4(void) = Call[String] : func:r1048_3, this:r1048_1 +# 1048| mu1048_5(unknown) = ^CallSideEffect : ~m? +# 1048| mu1048_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1048_1 +# 1049| r1049_1(glval) = VariableAddress[x343] : +# 1049| r1049_2(glval) = FunctionAddress[~String] : +# 1049| v1049_3(void) = Call[~String] : func:r1049_2, this:r1049_1 +# 1049| mu1049_4(unknown) = ^CallSideEffect : ~m? +# 1049| v1049_5(void) = ^IndirectReadSideEffect[-1] : &:r1049_1, ~m? +# 1049| mu1049_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1049_1 +# 1049| r1049_7(bool) = Constant[0] : +# 1049| v1049_8(void) = ConditionalBranch : r1049_7 +#-----| False -> Block 345 +#-----| True (back edge) -> Block 344 + +# 1051| Block 345 +# 1051| r1051_1(glval) = VariableAddress[x344] : +# 1051| mu1051_2(String) = Uninitialized[x344] : &:r1051_1 +# 1051| r1051_3(glval) = FunctionAddress[String] : +# 1051| v1051_4(void) = Call[String] : func:r1051_3, this:r1051_1 +# 1051| mu1051_5(unknown) = ^CallSideEffect : ~m? +# 1051| mu1051_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1051_1 +# 1052| r1052_1(glval) = VariableAddress[x344] : +# 1052| r1052_2(glval) = FunctionAddress[~String] : +# 1052| v1052_3(void) = Call[~String] : func:r1052_2, this:r1052_1 +# 1052| mu1052_4(unknown) = ^CallSideEffect : ~m? +# 1052| v1052_5(void) = ^IndirectReadSideEffect[-1] : &:r1052_1, ~m? +# 1052| mu1052_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1052_1 +# 1052| r1052_7(bool) = Constant[0] : +# 1052| v1052_8(void) = ConditionalBranch : r1052_7 +#-----| False -> Block 346 +#-----| True (back edge) -> Block 345 + +# 1054| Block 346 +# 1054| r1054_1(glval) = VariableAddress[x345] : +# 1054| mu1054_2(String) = Uninitialized[x345] : &:r1054_1 +# 1054| r1054_3(glval) = FunctionAddress[String] : +# 1054| v1054_4(void) = Call[String] : func:r1054_3, this:r1054_1 +# 1054| mu1054_5(unknown) = ^CallSideEffect : ~m? +# 1054| mu1054_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1054_1 +# 1055| r1055_1(glval) = VariableAddress[x345] : +# 1055| r1055_2(glval) = FunctionAddress[~String] : +# 1055| v1055_3(void) = Call[~String] : func:r1055_2, this:r1055_1 +# 1055| mu1055_4(unknown) = ^CallSideEffect : ~m? +# 1055| v1055_5(void) = ^IndirectReadSideEffect[-1] : &:r1055_1, ~m? +# 1055| mu1055_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1055_1 +# 1055| r1055_7(bool) = Constant[0] : +# 1055| v1055_8(void) = ConditionalBranch : r1055_7 +#-----| False -> Block 347 +#-----| True (back edge) -> Block 346 + +# 1057| Block 347 +# 1057| r1057_1(glval) = VariableAddress[x346] : +# 1057| mu1057_2(String) = Uninitialized[x346] : &:r1057_1 +# 1057| r1057_3(glval) = FunctionAddress[String] : +# 1057| v1057_4(void) = Call[String] : func:r1057_3, this:r1057_1 +# 1057| mu1057_5(unknown) = ^CallSideEffect : ~m? +# 1057| mu1057_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1057_1 +# 1058| r1058_1(glval) = VariableAddress[x346] : +# 1058| r1058_2(glval) = FunctionAddress[~String] : +# 1058| v1058_3(void) = Call[~String] : func:r1058_2, this:r1058_1 +# 1058| mu1058_4(unknown) = ^CallSideEffect : ~m? +# 1058| v1058_5(void) = ^IndirectReadSideEffect[-1] : &:r1058_1, ~m? +# 1058| mu1058_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1058_1 +# 1058| r1058_7(bool) = Constant[0] : +# 1058| v1058_8(void) = ConditionalBranch : r1058_7 +#-----| False -> Block 348 +#-----| True (back edge) -> Block 347 + +# 1060| Block 348 +# 1060| r1060_1(glval) = VariableAddress[x347] : +# 1060| mu1060_2(String) = Uninitialized[x347] : &:r1060_1 +# 1060| r1060_3(glval) = FunctionAddress[String] : +# 1060| v1060_4(void) = Call[String] : func:r1060_3, this:r1060_1 +# 1060| mu1060_5(unknown) = ^CallSideEffect : ~m? +# 1060| mu1060_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1060_1 +# 1061| r1061_1(glval) = VariableAddress[x347] : +# 1061| r1061_2(glval) = FunctionAddress[~String] : +# 1061| v1061_3(void) = Call[~String] : func:r1061_2, this:r1061_1 +# 1061| mu1061_4(unknown) = ^CallSideEffect : ~m? +# 1061| v1061_5(void) = ^IndirectReadSideEffect[-1] : &:r1061_1, ~m? +# 1061| mu1061_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1061_1 +# 1061| r1061_7(bool) = Constant[0] : +# 1061| v1061_8(void) = ConditionalBranch : r1061_7 +#-----| False -> Block 349 +#-----| True (back edge) -> Block 348 + +# 1063| Block 349 +# 1063| r1063_1(glval) = VariableAddress[x348] : +# 1063| mu1063_2(String) = Uninitialized[x348] : &:r1063_1 +# 1063| r1063_3(glval) = FunctionAddress[String] : +# 1063| v1063_4(void) = Call[String] : func:r1063_3, this:r1063_1 +# 1063| mu1063_5(unknown) = ^CallSideEffect : ~m? +# 1063| mu1063_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1063_1 +# 1064| r1064_1(glval) = VariableAddress[x348] : +# 1064| r1064_2(glval) = FunctionAddress[~String] : +# 1064| v1064_3(void) = Call[~String] : func:r1064_2, this:r1064_1 +# 1064| mu1064_4(unknown) = ^CallSideEffect : ~m? +# 1064| v1064_5(void) = ^IndirectReadSideEffect[-1] : &:r1064_1, ~m? +# 1064| mu1064_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1064_1 +# 1064| r1064_7(bool) = Constant[0] : +# 1064| v1064_8(void) = ConditionalBranch : r1064_7 +#-----| False -> Block 350 +#-----| True (back edge) -> Block 349 + +# 1066| Block 350 +# 1066| r1066_1(glval) = VariableAddress[x349] : +# 1066| mu1066_2(String) = Uninitialized[x349] : &:r1066_1 +# 1066| r1066_3(glval) = FunctionAddress[String] : +# 1066| v1066_4(void) = Call[String] : func:r1066_3, this:r1066_1 +# 1066| mu1066_5(unknown) = ^CallSideEffect : ~m? +# 1066| mu1066_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1066_1 +# 1067| r1067_1(glval) = VariableAddress[x349] : +# 1067| r1067_2(glval) = FunctionAddress[~String] : +# 1067| v1067_3(void) = Call[~String] : func:r1067_2, this:r1067_1 +# 1067| mu1067_4(unknown) = ^CallSideEffect : ~m? +# 1067| v1067_5(void) = ^IndirectReadSideEffect[-1] : &:r1067_1, ~m? +# 1067| mu1067_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1067_1 +# 1067| r1067_7(bool) = Constant[0] : +# 1067| v1067_8(void) = ConditionalBranch : r1067_7 +#-----| False -> Block 351 +#-----| True (back edge) -> Block 350 + +# 1069| Block 351 +# 1069| r1069_1(glval) = VariableAddress[x350] : +# 1069| mu1069_2(String) = Uninitialized[x350] : &:r1069_1 +# 1069| r1069_3(glval) = FunctionAddress[String] : +# 1069| v1069_4(void) = Call[String] : func:r1069_3, this:r1069_1 +# 1069| mu1069_5(unknown) = ^CallSideEffect : ~m? +# 1069| mu1069_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1069_1 +# 1070| r1070_1(glval) = VariableAddress[x350] : +# 1070| r1070_2(glval) = FunctionAddress[~String] : +# 1070| v1070_3(void) = Call[~String] : func:r1070_2, this:r1070_1 +# 1070| mu1070_4(unknown) = ^CallSideEffect : ~m? +# 1070| v1070_5(void) = ^IndirectReadSideEffect[-1] : &:r1070_1, ~m? +# 1070| mu1070_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1070_1 +# 1070| r1070_7(bool) = Constant[0] : +# 1070| v1070_8(void) = ConditionalBranch : r1070_7 +#-----| False -> Block 352 +#-----| True (back edge) -> Block 351 + +# 1072| Block 352 +# 1072| r1072_1(glval) = VariableAddress[x351] : +# 1072| mu1072_2(String) = Uninitialized[x351] : &:r1072_1 +# 1072| r1072_3(glval) = FunctionAddress[String] : +# 1072| v1072_4(void) = Call[String] : func:r1072_3, this:r1072_1 +# 1072| mu1072_5(unknown) = ^CallSideEffect : ~m? +# 1072| mu1072_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1072_1 +# 1073| r1073_1(glval) = VariableAddress[x351] : +# 1073| r1073_2(glval) = FunctionAddress[~String] : +# 1073| v1073_3(void) = Call[~String] : func:r1073_2, this:r1073_1 +# 1073| mu1073_4(unknown) = ^CallSideEffect : ~m? +# 1073| v1073_5(void) = ^IndirectReadSideEffect[-1] : &:r1073_1, ~m? +# 1073| mu1073_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1073_1 +# 1073| r1073_7(bool) = Constant[0] : +# 1073| v1073_8(void) = ConditionalBranch : r1073_7 +#-----| False -> Block 353 +#-----| True (back edge) -> Block 352 + +# 1075| Block 353 +# 1075| r1075_1(glval) = VariableAddress[x352] : +# 1075| mu1075_2(String) = Uninitialized[x352] : &:r1075_1 +# 1075| r1075_3(glval) = FunctionAddress[String] : +# 1075| v1075_4(void) = Call[String] : func:r1075_3, this:r1075_1 +# 1075| mu1075_5(unknown) = ^CallSideEffect : ~m? +# 1075| mu1075_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1075_1 +# 1076| r1076_1(glval) = VariableAddress[x352] : +# 1076| r1076_2(glval) = FunctionAddress[~String] : +# 1076| v1076_3(void) = Call[~String] : func:r1076_2, this:r1076_1 +# 1076| mu1076_4(unknown) = ^CallSideEffect : ~m? +# 1076| v1076_5(void) = ^IndirectReadSideEffect[-1] : &:r1076_1, ~m? +# 1076| mu1076_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1076_1 +# 1076| r1076_7(bool) = Constant[0] : +# 1076| v1076_8(void) = ConditionalBranch : r1076_7 +#-----| False -> Block 354 +#-----| True (back edge) -> Block 353 + +# 1078| Block 354 +# 1078| r1078_1(glval) = VariableAddress[x353] : +# 1078| mu1078_2(String) = Uninitialized[x353] : &:r1078_1 +# 1078| r1078_3(glval) = FunctionAddress[String] : +# 1078| v1078_4(void) = Call[String] : func:r1078_3, this:r1078_1 +# 1078| mu1078_5(unknown) = ^CallSideEffect : ~m? +# 1078| mu1078_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1078_1 +# 1079| r1079_1(glval) = VariableAddress[x353] : +# 1079| r1079_2(glval) = FunctionAddress[~String] : +# 1079| v1079_3(void) = Call[~String] : func:r1079_2, this:r1079_1 +# 1079| mu1079_4(unknown) = ^CallSideEffect : ~m? +# 1079| v1079_5(void) = ^IndirectReadSideEffect[-1] : &:r1079_1, ~m? +# 1079| mu1079_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1079_1 +# 1079| r1079_7(bool) = Constant[0] : +# 1079| v1079_8(void) = ConditionalBranch : r1079_7 +#-----| False -> Block 355 +#-----| True (back edge) -> Block 354 + +# 1081| Block 355 +# 1081| r1081_1(glval) = VariableAddress[x354] : +# 1081| mu1081_2(String) = Uninitialized[x354] : &:r1081_1 +# 1081| r1081_3(glval) = FunctionAddress[String] : +# 1081| v1081_4(void) = Call[String] : func:r1081_3, this:r1081_1 +# 1081| mu1081_5(unknown) = ^CallSideEffect : ~m? +# 1081| mu1081_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1081_1 +# 1082| r1082_1(glval) = VariableAddress[x354] : +# 1082| r1082_2(glval) = FunctionAddress[~String] : +# 1082| v1082_3(void) = Call[~String] : func:r1082_2, this:r1082_1 +# 1082| mu1082_4(unknown) = ^CallSideEffect : ~m? +# 1082| v1082_5(void) = ^IndirectReadSideEffect[-1] : &:r1082_1, ~m? +# 1082| mu1082_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1082_1 +# 1082| r1082_7(bool) = Constant[0] : +# 1082| v1082_8(void) = ConditionalBranch : r1082_7 +#-----| False -> Block 356 +#-----| True (back edge) -> Block 355 + +# 1084| Block 356 +# 1084| r1084_1(glval) = VariableAddress[x355] : +# 1084| mu1084_2(String) = Uninitialized[x355] : &:r1084_1 +# 1084| r1084_3(glval) = FunctionAddress[String] : +# 1084| v1084_4(void) = Call[String] : func:r1084_3, this:r1084_1 +# 1084| mu1084_5(unknown) = ^CallSideEffect : ~m? +# 1084| mu1084_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1084_1 +# 1085| r1085_1(glval) = VariableAddress[x355] : +# 1085| r1085_2(glval) = FunctionAddress[~String] : +# 1085| v1085_3(void) = Call[~String] : func:r1085_2, this:r1085_1 +# 1085| mu1085_4(unknown) = ^CallSideEffect : ~m? +# 1085| v1085_5(void) = ^IndirectReadSideEffect[-1] : &:r1085_1, ~m? +# 1085| mu1085_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1085_1 +# 1085| r1085_7(bool) = Constant[0] : +# 1085| v1085_8(void) = ConditionalBranch : r1085_7 +#-----| False -> Block 357 +#-----| True (back edge) -> Block 356 + +# 1087| Block 357 +# 1087| r1087_1(glval) = VariableAddress[x356] : +# 1087| mu1087_2(String) = Uninitialized[x356] : &:r1087_1 +# 1087| r1087_3(glval) = FunctionAddress[String] : +# 1087| v1087_4(void) = Call[String] : func:r1087_3, this:r1087_1 +# 1087| mu1087_5(unknown) = ^CallSideEffect : ~m? +# 1087| mu1087_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1087_1 +# 1088| r1088_1(glval) = VariableAddress[x356] : +# 1088| r1088_2(glval) = FunctionAddress[~String] : +# 1088| v1088_3(void) = Call[~String] : func:r1088_2, this:r1088_1 +# 1088| mu1088_4(unknown) = ^CallSideEffect : ~m? +# 1088| v1088_5(void) = ^IndirectReadSideEffect[-1] : &:r1088_1, ~m? +# 1088| mu1088_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1088_1 +# 1088| r1088_7(bool) = Constant[0] : +# 1088| v1088_8(void) = ConditionalBranch : r1088_7 +#-----| False -> Block 358 +#-----| True (back edge) -> Block 357 + +# 1090| Block 358 +# 1090| r1090_1(glval) = VariableAddress[x357] : +# 1090| mu1090_2(String) = Uninitialized[x357] : &:r1090_1 +# 1090| r1090_3(glval) = FunctionAddress[String] : +# 1090| v1090_4(void) = Call[String] : func:r1090_3, this:r1090_1 +# 1090| mu1090_5(unknown) = ^CallSideEffect : ~m? +# 1090| mu1090_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1090_1 +# 1091| r1091_1(glval) = VariableAddress[x357] : +# 1091| r1091_2(glval) = FunctionAddress[~String] : +# 1091| v1091_3(void) = Call[~String] : func:r1091_2, this:r1091_1 +# 1091| mu1091_4(unknown) = ^CallSideEffect : ~m? +# 1091| v1091_5(void) = ^IndirectReadSideEffect[-1] : &:r1091_1, ~m? +# 1091| mu1091_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1091_1 +# 1091| r1091_7(bool) = Constant[0] : +# 1091| v1091_8(void) = ConditionalBranch : r1091_7 +#-----| False -> Block 359 +#-----| True (back edge) -> Block 358 + +# 1093| Block 359 +# 1093| r1093_1(glval) = VariableAddress[x358] : +# 1093| mu1093_2(String) = Uninitialized[x358] : &:r1093_1 +# 1093| r1093_3(glval) = FunctionAddress[String] : +# 1093| v1093_4(void) = Call[String] : func:r1093_3, this:r1093_1 +# 1093| mu1093_5(unknown) = ^CallSideEffect : ~m? +# 1093| mu1093_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1093_1 +# 1094| r1094_1(glval) = VariableAddress[x358] : +# 1094| r1094_2(glval) = FunctionAddress[~String] : +# 1094| v1094_3(void) = Call[~String] : func:r1094_2, this:r1094_1 +# 1094| mu1094_4(unknown) = ^CallSideEffect : ~m? +# 1094| v1094_5(void) = ^IndirectReadSideEffect[-1] : &:r1094_1, ~m? +# 1094| mu1094_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1094_1 +# 1094| r1094_7(bool) = Constant[0] : +# 1094| v1094_8(void) = ConditionalBranch : r1094_7 +#-----| False -> Block 360 +#-----| True (back edge) -> Block 359 + +# 1096| Block 360 +# 1096| r1096_1(glval) = VariableAddress[x359] : +# 1096| mu1096_2(String) = Uninitialized[x359] : &:r1096_1 +# 1096| r1096_3(glval) = FunctionAddress[String] : +# 1096| v1096_4(void) = Call[String] : func:r1096_3, this:r1096_1 +# 1096| mu1096_5(unknown) = ^CallSideEffect : ~m? +# 1096| mu1096_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1096_1 +# 1097| r1097_1(glval) = VariableAddress[x359] : +# 1097| r1097_2(glval) = FunctionAddress[~String] : +# 1097| v1097_3(void) = Call[~String] : func:r1097_2, this:r1097_1 +# 1097| mu1097_4(unknown) = ^CallSideEffect : ~m? +# 1097| v1097_5(void) = ^IndirectReadSideEffect[-1] : &:r1097_1, ~m? +# 1097| mu1097_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1097_1 +# 1097| r1097_7(bool) = Constant[0] : +# 1097| v1097_8(void) = ConditionalBranch : r1097_7 +#-----| False -> Block 361 +#-----| True (back edge) -> Block 360 + +# 1099| Block 361 +# 1099| r1099_1(glval) = VariableAddress[x360] : +# 1099| mu1099_2(String) = Uninitialized[x360] : &:r1099_1 +# 1099| r1099_3(glval) = FunctionAddress[String] : +# 1099| v1099_4(void) = Call[String] : func:r1099_3, this:r1099_1 +# 1099| mu1099_5(unknown) = ^CallSideEffect : ~m? +# 1099| mu1099_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1099_1 +# 1100| r1100_1(glval) = VariableAddress[x360] : +# 1100| r1100_2(glval) = FunctionAddress[~String] : +# 1100| v1100_3(void) = Call[~String] : func:r1100_2, this:r1100_1 +# 1100| mu1100_4(unknown) = ^CallSideEffect : ~m? +# 1100| v1100_5(void) = ^IndirectReadSideEffect[-1] : &:r1100_1, ~m? +# 1100| mu1100_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1100_1 +# 1100| r1100_7(bool) = Constant[0] : +# 1100| v1100_8(void) = ConditionalBranch : r1100_7 +#-----| False -> Block 362 +#-----| True (back edge) -> Block 361 + +# 1102| Block 362 +# 1102| r1102_1(glval) = VariableAddress[x361] : +# 1102| mu1102_2(String) = Uninitialized[x361] : &:r1102_1 +# 1102| r1102_3(glval) = FunctionAddress[String] : +# 1102| v1102_4(void) = Call[String] : func:r1102_3, this:r1102_1 +# 1102| mu1102_5(unknown) = ^CallSideEffect : ~m? +# 1102| mu1102_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1102_1 +# 1103| r1103_1(glval) = VariableAddress[x361] : +# 1103| r1103_2(glval) = FunctionAddress[~String] : +# 1103| v1103_3(void) = Call[~String] : func:r1103_2, this:r1103_1 +# 1103| mu1103_4(unknown) = ^CallSideEffect : ~m? +# 1103| v1103_5(void) = ^IndirectReadSideEffect[-1] : &:r1103_1, ~m? +# 1103| mu1103_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1103_1 +# 1103| r1103_7(bool) = Constant[0] : +# 1103| v1103_8(void) = ConditionalBranch : r1103_7 +#-----| False -> Block 363 +#-----| True (back edge) -> Block 362 + +# 1105| Block 363 +# 1105| r1105_1(glval) = VariableAddress[x362] : +# 1105| mu1105_2(String) = Uninitialized[x362] : &:r1105_1 +# 1105| r1105_3(glval) = FunctionAddress[String] : +# 1105| v1105_4(void) = Call[String] : func:r1105_3, this:r1105_1 +# 1105| mu1105_5(unknown) = ^CallSideEffect : ~m? +# 1105| mu1105_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1105_1 +# 1106| r1106_1(glval) = VariableAddress[x362] : +# 1106| r1106_2(glval) = FunctionAddress[~String] : +# 1106| v1106_3(void) = Call[~String] : func:r1106_2, this:r1106_1 +# 1106| mu1106_4(unknown) = ^CallSideEffect : ~m? +# 1106| v1106_5(void) = ^IndirectReadSideEffect[-1] : &:r1106_1, ~m? +# 1106| mu1106_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1106_1 +# 1106| r1106_7(bool) = Constant[0] : +# 1106| v1106_8(void) = ConditionalBranch : r1106_7 +#-----| False -> Block 364 +#-----| True (back edge) -> Block 363 + +# 1108| Block 364 +# 1108| r1108_1(glval) = VariableAddress[x363] : +# 1108| mu1108_2(String) = Uninitialized[x363] : &:r1108_1 +# 1108| r1108_3(glval) = FunctionAddress[String] : +# 1108| v1108_4(void) = Call[String] : func:r1108_3, this:r1108_1 +# 1108| mu1108_5(unknown) = ^CallSideEffect : ~m? +# 1108| mu1108_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1108_1 +# 1109| r1109_1(glval) = VariableAddress[x363] : +# 1109| r1109_2(glval) = FunctionAddress[~String] : +# 1109| v1109_3(void) = Call[~String] : func:r1109_2, this:r1109_1 +# 1109| mu1109_4(unknown) = ^CallSideEffect : ~m? +# 1109| v1109_5(void) = ^IndirectReadSideEffect[-1] : &:r1109_1, ~m? +# 1109| mu1109_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1109_1 +# 1109| r1109_7(bool) = Constant[0] : +# 1109| v1109_8(void) = ConditionalBranch : r1109_7 +#-----| False -> Block 365 +#-----| True (back edge) -> Block 364 + +# 1111| Block 365 +# 1111| r1111_1(glval) = VariableAddress[x364] : +# 1111| mu1111_2(String) = Uninitialized[x364] : &:r1111_1 +# 1111| r1111_3(glval) = FunctionAddress[String] : +# 1111| v1111_4(void) = Call[String] : func:r1111_3, this:r1111_1 +# 1111| mu1111_5(unknown) = ^CallSideEffect : ~m? +# 1111| mu1111_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1111_1 +# 1112| r1112_1(glval) = VariableAddress[x364] : +# 1112| r1112_2(glval) = FunctionAddress[~String] : +# 1112| v1112_3(void) = Call[~String] : func:r1112_2, this:r1112_1 +# 1112| mu1112_4(unknown) = ^CallSideEffect : ~m? +# 1112| v1112_5(void) = ^IndirectReadSideEffect[-1] : &:r1112_1, ~m? +# 1112| mu1112_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1112_1 +# 1112| r1112_7(bool) = Constant[0] : +# 1112| v1112_8(void) = ConditionalBranch : r1112_7 +#-----| False -> Block 366 +#-----| True (back edge) -> Block 365 + +# 1114| Block 366 +# 1114| r1114_1(glval) = VariableAddress[x365] : +# 1114| mu1114_2(String) = Uninitialized[x365] : &:r1114_1 +# 1114| r1114_3(glval) = FunctionAddress[String] : +# 1114| v1114_4(void) = Call[String] : func:r1114_3, this:r1114_1 +# 1114| mu1114_5(unknown) = ^CallSideEffect : ~m? +# 1114| mu1114_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1114_1 +# 1115| r1115_1(glval) = VariableAddress[x365] : +# 1115| r1115_2(glval) = FunctionAddress[~String] : +# 1115| v1115_3(void) = Call[~String] : func:r1115_2, this:r1115_1 +# 1115| mu1115_4(unknown) = ^CallSideEffect : ~m? +# 1115| v1115_5(void) = ^IndirectReadSideEffect[-1] : &:r1115_1, ~m? +# 1115| mu1115_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1115_1 +# 1115| r1115_7(bool) = Constant[0] : +# 1115| v1115_8(void) = ConditionalBranch : r1115_7 +#-----| False -> Block 367 +#-----| True (back edge) -> Block 366 + +# 1117| Block 367 +# 1117| r1117_1(glval) = VariableAddress[x366] : +# 1117| mu1117_2(String) = Uninitialized[x366] : &:r1117_1 +# 1117| r1117_3(glval) = FunctionAddress[String] : +# 1117| v1117_4(void) = Call[String] : func:r1117_3, this:r1117_1 +# 1117| mu1117_5(unknown) = ^CallSideEffect : ~m? +# 1117| mu1117_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1117_1 +# 1118| r1118_1(glval) = VariableAddress[x366] : +# 1118| r1118_2(glval) = FunctionAddress[~String] : +# 1118| v1118_3(void) = Call[~String] : func:r1118_2, this:r1118_1 +# 1118| mu1118_4(unknown) = ^CallSideEffect : ~m? +# 1118| v1118_5(void) = ^IndirectReadSideEffect[-1] : &:r1118_1, ~m? +# 1118| mu1118_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1118_1 +# 1118| r1118_7(bool) = Constant[0] : +# 1118| v1118_8(void) = ConditionalBranch : r1118_7 +#-----| False -> Block 368 +#-----| True (back edge) -> Block 367 + +# 1120| Block 368 +# 1120| r1120_1(glval) = VariableAddress[x367] : +# 1120| mu1120_2(String) = Uninitialized[x367] : &:r1120_1 +# 1120| r1120_3(glval) = FunctionAddress[String] : +# 1120| v1120_4(void) = Call[String] : func:r1120_3, this:r1120_1 +# 1120| mu1120_5(unknown) = ^CallSideEffect : ~m? +# 1120| mu1120_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1120_1 +# 1121| r1121_1(glval) = VariableAddress[x367] : +# 1121| r1121_2(glval) = FunctionAddress[~String] : +# 1121| v1121_3(void) = Call[~String] : func:r1121_2, this:r1121_1 +# 1121| mu1121_4(unknown) = ^CallSideEffect : ~m? +# 1121| v1121_5(void) = ^IndirectReadSideEffect[-1] : &:r1121_1, ~m? +# 1121| mu1121_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1121_1 +# 1121| r1121_7(bool) = Constant[0] : +# 1121| v1121_8(void) = ConditionalBranch : r1121_7 +#-----| False -> Block 369 +#-----| True (back edge) -> Block 368 + +# 1123| Block 369 +# 1123| r1123_1(glval) = VariableAddress[x368] : +# 1123| mu1123_2(String) = Uninitialized[x368] : &:r1123_1 +# 1123| r1123_3(glval) = FunctionAddress[String] : +# 1123| v1123_4(void) = Call[String] : func:r1123_3, this:r1123_1 +# 1123| mu1123_5(unknown) = ^CallSideEffect : ~m? +# 1123| mu1123_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1123_1 +# 1124| r1124_1(glval) = VariableAddress[x368] : +# 1124| r1124_2(glval) = FunctionAddress[~String] : +# 1124| v1124_3(void) = Call[~String] : func:r1124_2, this:r1124_1 +# 1124| mu1124_4(unknown) = ^CallSideEffect : ~m? +# 1124| v1124_5(void) = ^IndirectReadSideEffect[-1] : &:r1124_1, ~m? +# 1124| mu1124_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1124_1 +# 1124| r1124_7(bool) = Constant[0] : +# 1124| v1124_8(void) = ConditionalBranch : r1124_7 +#-----| False -> Block 370 +#-----| True (back edge) -> Block 369 + +# 1126| Block 370 +# 1126| r1126_1(glval) = VariableAddress[x369] : +# 1126| mu1126_2(String) = Uninitialized[x369] : &:r1126_1 +# 1126| r1126_3(glval) = FunctionAddress[String] : +# 1126| v1126_4(void) = Call[String] : func:r1126_3, this:r1126_1 +# 1126| mu1126_5(unknown) = ^CallSideEffect : ~m? +# 1126| mu1126_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1126_1 +# 1127| r1127_1(glval) = VariableAddress[x369] : +# 1127| r1127_2(glval) = FunctionAddress[~String] : +# 1127| v1127_3(void) = Call[~String] : func:r1127_2, this:r1127_1 +# 1127| mu1127_4(unknown) = ^CallSideEffect : ~m? +# 1127| v1127_5(void) = ^IndirectReadSideEffect[-1] : &:r1127_1, ~m? +# 1127| mu1127_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1127_1 +# 1127| r1127_7(bool) = Constant[0] : +# 1127| v1127_8(void) = ConditionalBranch : r1127_7 +#-----| False -> Block 371 +#-----| True (back edge) -> Block 370 + +# 1129| Block 371 +# 1129| r1129_1(glval) = VariableAddress[x370] : +# 1129| mu1129_2(String) = Uninitialized[x370] : &:r1129_1 +# 1129| r1129_3(glval) = FunctionAddress[String] : +# 1129| v1129_4(void) = Call[String] : func:r1129_3, this:r1129_1 +# 1129| mu1129_5(unknown) = ^CallSideEffect : ~m? +# 1129| mu1129_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1129_1 +# 1130| r1130_1(glval) = VariableAddress[x370] : +# 1130| r1130_2(glval) = FunctionAddress[~String] : +# 1130| v1130_3(void) = Call[~String] : func:r1130_2, this:r1130_1 +# 1130| mu1130_4(unknown) = ^CallSideEffect : ~m? +# 1130| v1130_5(void) = ^IndirectReadSideEffect[-1] : &:r1130_1, ~m? +# 1130| mu1130_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1130_1 +# 1130| r1130_7(bool) = Constant[0] : +# 1130| v1130_8(void) = ConditionalBranch : r1130_7 +#-----| False -> Block 372 +#-----| True (back edge) -> Block 371 + +# 1132| Block 372 +# 1132| r1132_1(glval) = VariableAddress[x371] : +# 1132| mu1132_2(String) = Uninitialized[x371] : &:r1132_1 +# 1132| r1132_3(glval) = FunctionAddress[String] : +# 1132| v1132_4(void) = Call[String] : func:r1132_3, this:r1132_1 +# 1132| mu1132_5(unknown) = ^CallSideEffect : ~m? +# 1132| mu1132_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1132_1 +# 1133| r1133_1(glval) = VariableAddress[x371] : +# 1133| r1133_2(glval) = FunctionAddress[~String] : +# 1133| v1133_3(void) = Call[~String] : func:r1133_2, this:r1133_1 +# 1133| mu1133_4(unknown) = ^CallSideEffect : ~m? +# 1133| v1133_5(void) = ^IndirectReadSideEffect[-1] : &:r1133_1, ~m? +# 1133| mu1133_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1133_1 +# 1133| r1133_7(bool) = Constant[0] : +# 1133| v1133_8(void) = ConditionalBranch : r1133_7 +#-----| False -> Block 373 +#-----| True (back edge) -> Block 372 + +# 1135| Block 373 +# 1135| r1135_1(glval) = VariableAddress[x372] : +# 1135| mu1135_2(String) = Uninitialized[x372] : &:r1135_1 +# 1135| r1135_3(glval) = FunctionAddress[String] : +# 1135| v1135_4(void) = Call[String] : func:r1135_3, this:r1135_1 +# 1135| mu1135_5(unknown) = ^CallSideEffect : ~m? +# 1135| mu1135_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1135_1 +# 1136| r1136_1(glval) = VariableAddress[x372] : +# 1136| r1136_2(glval) = FunctionAddress[~String] : +# 1136| v1136_3(void) = Call[~String] : func:r1136_2, this:r1136_1 +# 1136| mu1136_4(unknown) = ^CallSideEffect : ~m? +# 1136| v1136_5(void) = ^IndirectReadSideEffect[-1] : &:r1136_1, ~m? +# 1136| mu1136_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1136_1 +# 1136| r1136_7(bool) = Constant[0] : +# 1136| v1136_8(void) = ConditionalBranch : r1136_7 +#-----| False -> Block 374 +#-----| True (back edge) -> Block 373 + +# 1138| Block 374 +# 1138| r1138_1(glval) = VariableAddress[x373] : +# 1138| mu1138_2(String) = Uninitialized[x373] : &:r1138_1 +# 1138| r1138_3(glval) = FunctionAddress[String] : +# 1138| v1138_4(void) = Call[String] : func:r1138_3, this:r1138_1 +# 1138| mu1138_5(unknown) = ^CallSideEffect : ~m? +# 1138| mu1138_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1138_1 +# 1139| r1139_1(glval) = VariableAddress[x373] : +# 1139| r1139_2(glval) = FunctionAddress[~String] : +# 1139| v1139_3(void) = Call[~String] : func:r1139_2, this:r1139_1 +# 1139| mu1139_4(unknown) = ^CallSideEffect : ~m? +# 1139| v1139_5(void) = ^IndirectReadSideEffect[-1] : &:r1139_1, ~m? +# 1139| mu1139_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1139_1 +# 1139| r1139_7(bool) = Constant[0] : +# 1139| v1139_8(void) = ConditionalBranch : r1139_7 +#-----| False -> Block 375 +#-----| True (back edge) -> Block 374 + +# 1141| Block 375 +# 1141| r1141_1(glval) = VariableAddress[x374] : +# 1141| mu1141_2(String) = Uninitialized[x374] : &:r1141_1 +# 1141| r1141_3(glval) = FunctionAddress[String] : +# 1141| v1141_4(void) = Call[String] : func:r1141_3, this:r1141_1 +# 1141| mu1141_5(unknown) = ^CallSideEffect : ~m? +# 1141| mu1141_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1141_1 +# 1142| r1142_1(glval) = VariableAddress[x374] : +# 1142| r1142_2(glval) = FunctionAddress[~String] : +# 1142| v1142_3(void) = Call[~String] : func:r1142_2, this:r1142_1 +# 1142| mu1142_4(unknown) = ^CallSideEffect : ~m? +# 1142| v1142_5(void) = ^IndirectReadSideEffect[-1] : &:r1142_1, ~m? +# 1142| mu1142_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1142_1 +# 1142| r1142_7(bool) = Constant[0] : +# 1142| v1142_8(void) = ConditionalBranch : r1142_7 +#-----| False -> Block 376 +#-----| True (back edge) -> Block 375 + +# 1144| Block 376 +# 1144| r1144_1(glval) = VariableAddress[x375] : +# 1144| mu1144_2(String) = Uninitialized[x375] : &:r1144_1 +# 1144| r1144_3(glval) = FunctionAddress[String] : +# 1144| v1144_4(void) = Call[String] : func:r1144_3, this:r1144_1 +# 1144| mu1144_5(unknown) = ^CallSideEffect : ~m? +# 1144| mu1144_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1144_1 +# 1145| r1145_1(glval) = VariableAddress[x375] : +# 1145| r1145_2(glval) = FunctionAddress[~String] : +# 1145| v1145_3(void) = Call[~String] : func:r1145_2, this:r1145_1 +# 1145| mu1145_4(unknown) = ^CallSideEffect : ~m? +# 1145| v1145_5(void) = ^IndirectReadSideEffect[-1] : &:r1145_1, ~m? +# 1145| mu1145_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1145_1 +# 1145| r1145_7(bool) = Constant[0] : +# 1145| v1145_8(void) = ConditionalBranch : r1145_7 +#-----| False -> Block 377 +#-----| True (back edge) -> Block 376 + +# 1147| Block 377 +# 1147| r1147_1(glval) = VariableAddress[x376] : +# 1147| mu1147_2(String) = Uninitialized[x376] : &:r1147_1 +# 1147| r1147_3(glval) = FunctionAddress[String] : +# 1147| v1147_4(void) = Call[String] : func:r1147_3, this:r1147_1 +# 1147| mu1147_5(unknown) = ^CallSideEffect : ~m? +# 1147| mu1147_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1147_1 +# 1148| r1148_1(glval) = VariableAddress[x376] : +# 1148| r1148_2(glval) = FunctionAddress[~String] : +# 1148| v1148_3(void) = Call[~String] : func:r1148_2, this:r1148_1 +# 1148| mu1148_4(unknown) = ^CallSideEffect : ~m? +# 1148| v1148_5(void) = ^IndirectReadSideEffect[-1] : &:r1148_1, ~m? +# 1148| mu1148_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1148_1 +# 1148| r1148_7(bool) = Constant[0] : +# 1148| v1148_8(void) = ConditionalBranch : r1148_7 +#-----| False -> Block 378 +#-----| True (back edge) -> Block 377 + +# 1150| Block 378 +# 1150| r1150_1(glval) = VariableAddress[x377] : +# 1150| mu1150_2(String) = Uninitialized[x377] : &:r1150_1 +# 1150| r1150_3(glval) = FunctionAddress[String] : +# 1150| v1150_4(void) = Call[String] : func:r1150_3, this:r1150_1 +# 1150| mu1150_5(unknown) = ^CallSideEffect : ~m? +# 1150| mu1150_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1150_1 +# 1151| r1151_1(glval) = VariableAddress[x377] : +# 1151| r1151_2(glval) = FunctionAddress[~String] : +# 1151| v1151_3(void) = Call[~String] : func:r1151_2, this:r1151_1 +# 1151| mu1151_4(unknown) = ^CallSideEffect : ~m? +# 1151| v1151_5(void) = ^IndirectReadSideEffect[-1] : &:r1151_1, ~m? +# 1151| mu1151_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1151_1 +# 1151| r1151_7(bool) = Constant[0] : +# 1151| v1151_8(void) = ConditionalBranch : r1151_7 +#-----| False -> Block 379 +#-----| True (back edge) -> Block 378 + +# 1153| Block 379 +# 1153| r1153_1(glval) = VariableAddress[x378] : +# 1153| mu1153_2(String) = Uninitialized[x378] : &:r1153_1 +# 1153| r1153_3(glval) = FunctionAddress[String] : +# 1153| v1153_4(void) = Call[String] : func:r1153_3, this:r1153_1 +# 1153| mu1153_5(unknown) = ^CallSideEffect : ~m? +# 1153| mu1153_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1153_1 +# 1154| r1154_1(glval) = VariableAddress[x378] : +# 1154| r1154_2(glval) = FunctionAddress[~String] : +# 1154| v1154_3(void) = Call[~String] : func:r1154_2, this:r1154_1 +# 1154| mu1154_4(unknown) = ^CallSideEffect : ~m? +# 1154| v1154_5(void) = ^IndirectReadSideEffect[-1] : &:r1154_1, ~m? +# 1154| mu1154_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1154_1 +# 1154| r1154_7(bool) = Constant[0] : +# 1154| v1154_8(void) = ConditionalBranch : r1154_7 +#-----| False -> Block 380 +#-----| True (back edge) -> Block 379 + +# 1156| Block 380 +# 1156| r1156_1(glval) = VariableAddress[x379] : +# 1156| mu1156_2(String) = Uninitialized[x379] : &:r1156_1 +# 1156| r1156_3(glval) = FunctionAddress[String] : +# 1156| v1156_4(void) = Call[String] : func:r1156_3, this:r1156_1 +# 1156| mu1156_5(unknown) = ^CallSideEffect : ~m? +# 1156| mu1156_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1156_1 +# 1157| r1157_1(glval) = VariableAddress[x379] : +# 1157| r1157_2(glval) = FunctionAddress[~String] : +# 1157| v1157_3(void) = Call[~String] : func:r1157_2, this:r1157_1 +# 1157| mu1157_4(unknown) = ^CallSideEffect : ~m? +# 1157| v1157_5(void) = ^IndirectReadSideEffect[-1] : &:r1157_1, ~m? +# 1157| mu1157_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1157_1 +# 1157| r1157_7(bool) = Constant[0] : +# 1157| v1157_8(void) = ConditionalBranch : r1157_7 +#-----| False -> Block 381 +#-----| True (back edge) -> Block 380 + +# 1159| Block 381 +# 1159| r1159_1(glval) = VariableAddress[x380] : +# 1159| mu1159_2(String) = Uninitialized[x380] : &:r1159_1 +# 1159| r1159_3(glval) = FunctionAddress[String] : +# 1159| v1159_4(void) = Call[String] : func:r1159_3, this:r1159_1 +# 1159| mu1159_5(unknown) = ^CallSideEffect : ~m? +# 1159| mu1159_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1159_1 +# 1160| r1160_1(glval) = VariableAddress[x380] : +# 1160| r1160_2(glval) = FunctionAddress[~String] : +# 1160| v1160_3(void) = Call[~String] : func:r1160_2, this:r1160_1 +# 1160| mu1160_4(unknown) = ^CallSideEffect : ~m? +# 1160| v1160_5(void) = ^IndirectReadSideEffect[-1] : &:r1160_1, ~m? +# 1160| mu1160_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1160_1 +# 1160| r1160_7(bool) = Constant[0] : +# 1160| v1160_8(void) = ConditionalBranch : r1160_7 +#-----| False -> Block 382 +#-----| True (back edge) -> Block 381 + +# 1162| Block 382 +# 1162| r1162_1(glval) = VariableAddress[x381] : +# 1162| mu1162_2(String) = Uninitialized[x381] : &:r1162_1 +# 1162| r1162_3(glval) = FunctionAddress[String] : +# 1162| v1162_4(void) = Call[String] : func:r1162_3, this:r1162_1 +# 1162| mu1162_5(unknown) = ^CallSideEffect : ~m? +# 1162| mu1162_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1162_1 +# 1163| r1163_1(glval) = VariableAddress[x381] : +# 1163| r1163_2(glval) = FunctionAddress[~String] : +# 1163| v1163_3(void) = Call[~String] : func:r1163_2, this:r1163_1 +# 1163| mu1163_4(unknown) = ^CallSideEffect : ~m? +# 1163| v1163_5(void) = ^IndirectReadSideEffect[-1] : &:r1163_1, ~m? +# 1163| mu1163_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1163_1 +# 1163| r1163_7(bool) = Constant[0] : +# 1163| v1163_8(void) = ConditionalBranch : r1163_7 +#-----| False -> Block 383 +#-----| True (back edge) -> Block 382 + +# 1165| Block 383 +# 1165| r1165_1(glval) = VariableAddress[x382] : +# 1165| mu1165_2(String) = Uninitialized[x382] : &:r1165_1 +# 1165| r1165_3(glval) = FunctionAddress[String] : +# 1165| v1165_4(void) = Call[String] : func:r1165_3, this:r1165_1 +# 1165| mu1165_5(unknown) = ^CallSideEffect : ~m? +# 1165| mu1165_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1165_1 +# 1166| r1166_1(glval) = VariableAddress[x382] : +# 1166| r1166_2(glval) = FunctionAddress[~String] : +# 1166| v1166_3(void) = Call[~String] : func:r1166_2, this:r1166_1 +# 1166| mu1166_4(unknown) = ^CallSideEffect : ~m? +# 1166| v1166_5(void) = ^IndirectReadSideEffect[-1] : &:r1166_1, ~m? +# 1166| mu1166_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1166_1 +# 1166| r1166_7(bool) = Constant[0] : +# 1166| v1166_8(void) = ConditionalBranch : r1166_7 +#-----| False -> Block 384 +#-----| True (back edge) -> Block 383 + +# 1168| Block 384 +# 1168| r1168_1(glval) = VariableAddress[x383] : +# 1168| mu1168_2(String) = Uninitialized[x383] : &:r1168_1 +# 1168| r1168_3(glval) = FunctionAddress[String] : +# 1168| v1168_4(void) = Call[String] : func:r1168_3, this:r1168_1 +# 1168| mu1168_5(unknown) = ^CallSideEffect : ~m? +# 1168| mu1168_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1168_1 +# 1169| r1169_1(glval) = VariableAddress[x383] : +# 1169| r1169_2(glval) = FunctionAddress[~String] : +# 1169| v1169_3(void) = Call[~String] : func:r1169_2, this:r1169_1 +# 1169| mu1169_4(unknown) = ^CallSideEffect : ~m? +# 1169| v1169_5(void) = ^IndirectReadSideEffect[-1] : &:r1169_1, ~m? +# 1169| mu1169_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1169_1 +# 1169| r1169_7(bool) = Constant[0] : +# 1169| v1169_8(void) = ConditionalBranch : r1169_7 +#-----| False -> Block 385 +#-----| True (back edge) -> Block 384 + +# 1171| Block 385 +# 1171| r1171_1(glval) = VariableAddress[x384] : +# 1171| mu1171_2(String) = Uninitialized[x384] : &:r1171_1 +# 1171| r1171_3(glval) = FunctionAddress[String] : +# 1171| v1171_4(void) = Call[String] : func:r1171_3, this:r1171_1 +# 1171| mu1171_5(unknown) = ^CallSideEffect : ~m? +# 1171| mu1171_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1171_1 +# 1172| r1172_1(glval) = VariableAddress[x384] : +# 1172| r1172_2(glval) = FunctionAddress[~String] : +# 1172| v1172_3(void) = Call[~String] : func:r1172_2, this:r1172_1 +# 1172| mu1172_4(unknown) = ^CallSideEffect : ~m? +# 1172| v1172_5(void) = ^IndirectReadSideEffect[-1] : &:r1172_1, ~m? +# 1172| mu1172_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1172_1 +# 1172| r1172_7(bool) = Constant[0] : +# 1172| v1172_8(void) = ConditionalBranch : r1172_7 +#-----| False -> Block 386 +#-----| True (back edge) -> Block 385 + +# 1174| Block 386 +# 1174| r1174_1(glval) = VariableAddress[x385] : +# 1174| mu1174_2(String) = Uninitialized[x385] : &:r1174_1 +# 1174| r1174_3(glval) = FunctionAddress[String] : +# 1174| v1174_4(void) = Call[String] : func:r1174_3, this:r1174_1 +# 1174| mu1174_5(unknown) = ^CallSideEffect : ~m? +# 1174| mu1174_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1174_1 +# 1175| r1175_1(glval) = VariableAddress[x385] : +# 1175| r1175_2(glval) = FunctionAddress[~String] : +# 1175| v1175_3(void) = Call[~String] : func:r1175_2, this:r1175_1 +# 1175| mu1175_4(unknown) = ^CallSideEffect : ~m? +# 1175| v1175_5(void) = ^IndirectReadSideEffect[-1] : &:r1175_1, ~m? +# 1175| mu1175_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1175_1 +# 1175| r1175_7(bool) = Constant[0] : +# 1175| v1175_8(void) = ConditionalBranch : r1175_7 +#-----| False -> Block 387 +#-----| True (back edge) -> Block 386 + +# 1177| Block 387 +# 1177| r1177_1(glval) = VariableAddress[x386] : +# 1177| mu1177_2(String) = Uninitialized[x386] : &:r1177_1 +# 1177| r1177_3(glval) = FunctionAddress[String] : +# 1177| v1177_4(void) = Call[String] : func:r1177_3, this:r1177_1 +# 1177| mu1177_5(unknown) = ^CallSideEffect : ~m? +# 1177| mu1177_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1177_1 +# 1178| r1178_1(glval) = VariableAddress[x386] : +# 1178| r1178_2(glval) = FunctionAddress[~String] : +# 1178| v1178_3(void) = Call[~String] : func:r1178_2, this:r1178_1 +# 1178| mu1178_4(unknown) = ^CallSideEffect : ~m? +# 1178| v1178_5(void) = ^IndirectReadSideEffect[-1] : &:r1178_1, ~m? +# 1178| mu1178_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1178_1 +# 1178| r1178_7(bool) = Constant[0] : +# 1178| v1178_8(void) = ConditionalBranch : r1178_7 +#-----| False -> Block 388 +#-----| True (back edge) -> Block 387 + +# 1180| Block 388 +# 1180| r1180_1(glval) = VariableAddress[x387] : +# 1180| mu1180_2(String) = Uninitialized[x387] : &:r1180_1 +# 1180| r1180_3(glval) = FunctionAddress[String] : +# 1180| v1180_4(void) = Call[String] : func:r1180_3, this:r1180_1 +# 1180| mu1180_5(unknown) = ^CallSideEffect : ~m? +# 1180| mu1180_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1180_1 +# 1181| r1181_1(glval) = VariableAddress[x387] : +# 1181| r1181_2(glval) = FunctionAddress[~String] : +# 1181| v1181_3(void) = Call[~String] : func:r1181_2, this:r1181_1 +# 1181| mu1181_4(unknown) = ^CallSideEffect : ~m? +# 1181| v1181_5(void) = ^IndirectReadSideEffect[-1] : &:r1181_1, ~m? +# 1181| mu1181_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1181_1 +# 1181| r1181_7(bool) = Constant[0] : +# 1181| v1181_8(void) = ConditionalBranch : r1181_7 +#-----| False -> Block 389 +#-----| True (back edge) -> Block 388 + +# 1183| Block 389 +# 1183| r1183_1(glval) = VariableAddress[x388] : +# 1183| mu1183_2(String) = Uninitialized[x388] : &:r1183_1 +# 1183| r1183_3(glval) = FunctionAddress[String] : +# 1183| v1183_4(void) = Call[String] : func:r1183_3, this:r1183_1 +# 1183| mu1183_5(unknown) = ^CallSideEffect : ~m? +# 1183| mu1183_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1183_1 +# 1184| r1184_1(glval) = VariableAddress[x388] : +# 1184| r1184_2(glval) = FunctionAddress[~String] : +# 1184| v1184_3(void) = Call[~String] : func:r1184_2, this:r1184_1 +# 1184| mu1184_4(unknown) = ^CallSideEffect : ~m? +# 1184| v1184_5(void) = ^IndirectReadSideEffect[-1] : &:r1184_1, ~m? +# 1184| mu1184_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1184_1 +# 1184| r1184_7(bool) = Constant[0] : +# 1184| v1184_8(void) = ConditionalBranch : r1184_7 +#-----| False -> Block 390 +#-----| True (back edge) -> Block 389 + +# 1186| Block 390 +# 1186| r1186_1(glval) = VariableAddress[x389] : +# 1186| mu1186_2(String) = Uninitialized[x389] : &:r1186_1 +# 1186| r1186_3(glval) = FunctionAddress[String] : +# 1186| v1186_4(void) = Call[String] : func:r1186_3, this:r1186_1 +# 1186| mu1186_5(unknown) = ^CallSideEffect : ~m? +# 1186| mu1186_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1186_1 +# 1187| r1187_1(glval) = VariableAddress[x389] : +# 1187| r1187_2(glval) = FunctionAddress[~String] : +# 1187| v1187_3(void) = Call[~String] : func:r1187_2, this:r1187_1 +# 1187| mu1187_4(unknown) = ^CallSideEffect : ~m? +# 1187| v1187_5(void) = ^IndirectReadSideEffect[-1] : &:r1187_1, ~m? +# 1187| mu1187_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1187_1 +# 1187| r1187_7(bool) = Constant[0] : +# 1187| v1187_8(void) = ConditionalBranch : r1187_7 +#-----| False -> Block 391 +#-----| True (back edge) -> Block 390 + +# 1189| Block 391 +# 1189| r1189_1(glval) = VariableAddress[x390] : +# 1189| mu1189_2(String) = Uninitialized[x390] : &:r1189_1 +# 1189| r1189_3(glval) = FunctionAddress[String] : +# 1189| v1189_4(void) = Call[String] : func:r1189_3, this:r1189_1 +# 1189| mu1189_5(unknown) = ^CallSideEffect : ~m? +# 1189| mu1189_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1189_1 +# 1190| r1190_1(glval) = VariableAddress[x390] : +# 1190| r1190_2(glval) = FunctionAddress[~String] : +# 1190| v1190_3(void) = Call[~String] : func:r1190_2, this:r1190_1 +# 1190| mu1190_4(unknown) = ^CallSideEffect : ~m? +# 1190| v1190_5(void) = ^IndirectReadSideEffect[-1] : &:r1190_1, ~m? +# 1190| mu1190_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1190_1 +# 1190| r1190_7(bool) = Constant[0] : +# 1190| v1190_8(void) = ConditionalBranch : r1190_7 +#-----| False -> Block 392 +#-----| True (back edge) -> Block 391 + +# 1192| Block 392 +# 1192| r1192_1(glval) = VariableAddress[x391] : +# 1192| mu1192_2(String) = Uninitialized[x391] : &:r1192_1 +# 1192| r1192_3(glval) = FunctionAddress[String] : +# 1192| v1192_4(void) = Call[String] : func:r1192_3, this:r1192_1 +# 1192| mu1192_5(unknown) = ^CallSideEffect : ~m? +# 1192| mu1192_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1192_1 +# 1193| r1193_1(glval) = VariableAddress[x391] : +# 1193| r1193_2(glval) = FunctionAddress[~String] : +# 1193| v1193_3(void) = Call[~String] : func:r1193_2, this:r1193_1 +# 1193| mu1193_4(unknown) = ^CallSideEffect : ~m? +# 1193| v1193_5(void) = ^IndirectReadSideEffect[-1] : &:r1193_1, ~m? +# 1193| mu1193_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1193_1 +# 1193| r1193_7(bool) = Constant[0] : +# 1193| v1193_8(void) = ConditionalBranch : r1193_7 +#-----| False -> Block 393 +#-----| True (back edge) -> Block 392 + +# 1195| Block 393 +# 1195| r1195_1(glval) = VariableAddress[x392] : +# 1195| mu1195_2(String) = Uninitialized[x392] : &:r1195_1 +# 1195| r1195_3(glval) = FunctionAddress[String] : +# 1195| v1195_4(void) = Call[String] : func:r1195_3, this:r1195_1 +# 1195| mu1195_5(unknown) = ^CallSideEffect : ~m? +# 1195| mu1195_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1195_1 +# 1196| r1196_1(glval) = VariableAddress[x392] : +# 1196| r1196_2(glval) = FunctionAddress[~String] : +# 1196| v1196_3(void) = Call[~String] : func:r1196_2, this:r1196_1 +# 1196| mu1196_4(unknown) = ^CallSideEffect : ~m? +# 1196| v1196_5(void) = ^IndirectReadSideEffect[-1] : &:r1196_1, ~m? +# 1196| mu1196_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1196_1 +# 1196| r1196_7(bool) = Constant[0] : +# 1196| v1196_8(void) = ConditionalBranch : r1196_7 +#-----| False -> Block 394 +#-----| True (back edge) -> Block 393 + +# 1198| Block 394 +# 1198| r1198_1(glval) = VariableAddress[x393] : +# 1198| mu1198_2(String) = Uninitialized[x393] : &:r1198_1 +# 1198| r1198_3(glval) = FunctionAddress[String] : +# 1198| v1198_4(void) = Call[String] : func:r1198_3, this:r1198_1 +# 1198| mu1198_5(unknown) = ^CallSideEffect : ~m? +# 1198| mu1198_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1198_1 +# 1199| r1199_1(glval) = VariableAddress[x393] : +# 1199| r1199_2(glval) = FunctionAddress[~String] : +# 1199| v1199_3(void) = Call[~String] : func:r1199_2, this:r1199_1 +# 1199| mu1199_4(unknown) = ^CallSideEffect : ~m? +# 1199| v1199_5(void) = ^IndirectReadSideEffect[-1] : &:r1199_1, ~m? +# 1199| mu1199_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1199_1 +# 1199| r1199_7(bool) = Constant[0] : +# 1199| v1199_8(void) = ConditionalBranch : r1199_7 +#-----| False -> Block 395 +#-----| True (back edge) -> Block 394 + +# 1201| Block 395 +# 1201| r1201_1(glval) = VariableAddress[x394] : +# 1201| mu1201_2(String) = Uninitialized[x394] : &:r1201_1 +# 1201| r1201_3(glval) = FunctionAddress[String] : +# 1201| v1201_4(void) = Call[String] : func:r1201_3, this:r1201_1 +# 1201| mu1201_5(unknown) = ^CallSideEffect : ~m? +# 1201| mu1201_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1201_1 +# 1202| r1202_1(glval) = VariableAddress[x394] : +# 1202| r1202_2(glval) = FunctionAddress[~String] : +# 1202| v1202_3(void) = Call[~String] : func:r1202_2, this:r1202_1 +# 1202| mu1202_4(unknown) = ^CallSideEffect : ~m? +# 1202| v1202_5(void) = ^IndirectReadSideEffect[-1] : &:r1202_1, ~m? +# 1202| mu1202_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1202_1 +# 1202| r1202_7(bool) = Constant[0] : +# 1202| v1202_8(void) = ConditionalBranch : r1202_7 +#-----| False -> Block 396 +#-----| True (back edge) -> Block 395 + +# 1204| Block 396 +# 1204| r1204_1(glval) = VariableAddress[x395] : +# 1204| mu1204_2(String) = Uninitialized[x395] : &:r1204_1 +# 1204| r1204_3(glval) = FunctionAddress[String] : +# 1204| v1204_4(void) = Call[String] : func:r1204_3, this:r1204_1 +# 1204| mu1204_5(unknown) = ^CallSideEffect : ~m? +# 1204| mu1204_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1204_1 +# 1205| r1205_1(glval) = VariableAddress[x395] : +# 1205| r1205_2(glval) = FunctionAddress[~String] : +# 1205| v1205_3(void) = Call[~String] : func:r1205_2, this:r1205_1 +# 1205| mu1205_4(unknown) = ^CallSideEffect : ~m? +# 1205| v1205_5(void) = ^IndirectReadSideEffect[-1] : &:r1205_1, ~m? +# 1205| mu1205_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1205_1 +# 1205| r1205_7(bool) = Constant[0] : +# 1205| v1205_8(void) = ConditionalBranch : r1205_7 +#-----| False -> Block 397 +#-----| True (back edge) -> Block 396 + +# 1207| Block 397 +# 1207| r1207_1(glval) = VariableAddress[x396] : +# 1207| mu1207_2(String) = Uninitialized[x396] : &:r1207_1 +# 1207| r1207_3(glval) = FunctionAddress[String] : +# 1207| v1207_4(void) = Call[String] : func:r1207_3, this:r1207_1 +# 1207| mu1207_5(unknown) = ^CallSideEffect : ~m? +# 1207| mu1207_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1207_1 +# 1208| r1208_1(glval) = VariableAddress[x396] : +# 1208| r1208_2(glval) = FunctionAddress[~String] : +# 1208| v1208_3(void) = Call[~String] : func:r1208_2, this:r1208_1 +# 1208| mu1208_4(unknown) = ^CallSideEffect : ~m? +# 1208| v1208_5(void) = ^IndirectReadSideEffect[-1] : &:r1208_1, ~m? +# 1208| mu1208_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1208_1 +# 1208| r1208_7(bool) = Constant[0] : +# 1208| v1208_8(void) = ConditionalBranch : r1208_7 +#-----| False -> Block 398 +#-----| True (back edge) -> Block 397 + +# 1210| Block 398 +# 1210| r1210_1(glval) = VariableAddress[x397] : +# 1210| mu1210_2(String) = Uninitialized[x397] : &:r1210_1 +# 1210| r1210_3(glval) = FunctionAddress[String] : +# 1210| v1210_4(void) = Call[String] : func:r1210_3, this:r1210_1 +# 1210| mu1210_5(unknown) = ^CallSideEffect : ~m? +# 1210| mu1210_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1210_1 +# 1211| r1211_1(glval) = VariableAddress[x397] : +# 1211| r1211_2(glval) = FunctionAddress[~String] : +# 1211| v1211_3(void) = Call[~String] : func:r1211_2, this:r1211_1 +# 1211| mu1211_4(unknown) = ^CallSideEffect : ~m? +# 1211| v1211_5(void) = ^IndirectReadSideEffect[-1] : &:r1211_1, ~m? +# 1211| mu1211_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1211_1 +# 1211| r1211_7(bool) = Constant[0] : +# 1211| v1211_8(void) = ConditionalBranch : r1211_7 +#-----| False -> Block 399 +#-----| True (back edge) -> Block 398 + +# 1213| Block 399 +# 1213| r1213_1(glval) = VariableAddress[x398] : +# 1213| mu1213_2(String) = Uninitialized[x398] : &:r1213_1 +# 1213| r1213_3(glval) = FunctionAddress[String] : +# 1213| v1213_4(void) = Call[String] : func:r1213_3, this:r1213_1 +# 1213| mu1213_5(unknown) = ^CallSideEffect : ~m? +# 1213| mu1213_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1213_1 +# 1214| r1214_1(glval) = VariableAddress[x398] : +# 1214| r1214_2(glval) = FunctionAddress[~String] : +# 1214| v1214_3(void) = Call[~String] : func:r1214_2, this:r1214_1 +# 1214| mu1214_4(unknown) = ^CallSideEffect : ~m? +# 1214| v1214_5(void) = ^IndirectReadSideEffect[-1] : &:r1214_1, ~m? +# 1214| mu1214_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1214_1 +# 1214| r1214_7(bool) = Constant[0] : +# 1214| v1214_8(void) = ConditionalBranch : r1214_7 +#-----| False -> Block 400 +#-----| True (back edge) -> Block 399 + +# 1216| Block 400 +# 1216| r1216_1(glval) = VariableAddress[x399] : +# 1216| mu1216_2(String) = Uninitialized[x399] : &:r1216_1 +# 1216| r1216_3(glval) = FunctionAddress[String] : +# 1216| v1216_4(void) = Call[String] : func:r1216_3, this:r1216_1 +# 1216| mu1216_5(unknown) = ^CallSideEffect : ~m? +# 1216| mu1216_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1216_1 +# 1217| r1217_1(glval) = VariableAddress[x399] : +# 1217| r1217_2(glval) = FunctionAddress[~String] : +# 1217| v1217_3(void) = Call[~String] : func:r1217_2, this:r1217_1 +# 1217| mu1217_4(unknown) = ^CallSideEffect : ~m? +# 1217| v1217_5(void) = ^IndirectReadSideEffect[-1] : &:r1217_1, ~m? +# 1217| mu1217_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1217_1 +# 1217| r1217_7(bool) = Constant[0] : +# 1217| v1217_8(void) = ConditionalBranch : r1217_7 +#-----| False -> Block 401 +#-----| True (back edge) -> Block 400 + +# 1219| Block 401 +# 1219| r1219_1(glval) = VariableAddress[x400] : +# 1219| mu1219_2(String) = Uninitialized[x400] : &:r1219_1 +# 1219| r1219_3(glval) = FunctionAddress[String] : +# 1219| v1219_4(void) = Call[String] : func:r1219_3, this:r1219_1 +# 1219| mu1219_5(unknown) = ^CallSideEffect : ~m? +# 1219| mu1219_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1219_1 +# 1220| r1220_1(glval) = VariableAddress[x400] : +# 1220| r1220_2(glval) = FunctionAddress[~String] : +# 1220| v1220_3(void) = Call[~String] : func:r1220_2, this:r1220_1 +# 1220| mu1220_4(unknown) = ^CallSideEffect : ~m? +# 1220| v1220_5(void) = ^IndirectReadSideEffect[-1] : &:r1220_1, ~m? +# 1220| mu1220_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1220_1 +# 1220| r1220_7(bool) = Constant[0] : +# 1220| v1220_8(void) = ConditionalBranch : r1220_7 +#-----| False -> Block 402 +#-----| True (back edge) -> Block 401 + +# 1222| Block 402 +# 1222| r1222_1(glval) = VariableAddress[x401] : +# 1222| mu1222_2(String) = Uninitialized[x401] : &:r1222_1 +# 1222| r1222_3(glval) = FunctionAddress[String] : +# 1222| v1222_4(void) = Call[String] : func:r1222_3, this:r1222_1 +# 1222| mu1222_5(unknown) = ^CallSideEffect : ~m? +# 1222| mu1222_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1222_1 +# 1223| r1223_1(glval) = VariableAddress[x401] : +# 1223| r1223_2(glval) = FunctionAddress[~String] : +# 1223| v1223_3(void) = Call[~String] : func:r1223_2, this:r1223_1 +# 1223| mu1223_4(unknown) = ^CallSideEffect : ~m? +# 1223| v1223_5(void) = ^IndirectReadSideEffect[-1] : &:r1223_1, ~m? +# 1223| mu1223_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1223_1 +# 1223| r1223_7(bool) = Constant[0] : +# 1223| v1223_8(void) = ConditionalBranch : r1223_7 +#-----| False -> Block 403 +#-----| True (back edge) -> Block 402 + +# 1225| Block 403 +# 1225| r1225_1(glval) = VariableAddress[x402] : +# 1225| mu1225_2(String) = Uninitialized[x402] : &:r1225_1 +# 1225| r1225_3(glval) = FunctionAddress[String] : +# 1225| v1225_4(void) = Call[String] : func:r1225_3, this:r1225_1 +# 1225| mu1225_5(unknown) = ^CallSideEffect : ~m? +# 1225| mu1225_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1225_1 +# 1226| r1226_1(glval) = VariableAddress[x402] : +# 1226| r1226_2(glval) = FunctionAddress[~String] : +# 1226| v1226_3(void) = Call[~String] : func:r1226_2, this:r1226_1 +# 1226| mu1226_4(unknown) = ^CallSideEffect : ~m? +# 1226| v1226_5(void) = ^IndirectReadSideEffect[-1] : &:r1226_1, ~m? +# 1226| mu1226_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1226_1 +# 1226| r1226_7(bool) = Constant[0] : +# 1226| v1226_8(void) = ConditionalBranch : r1226_7 +#-----| False -> Block 404 +#-----| True (back edge) -> Block 403 + +# 1228| Block 404 +# 1228| r1228_1(glval) = VariableAddress[x403] : +# 1228| mu1228_2(String) = Uninitialized[x403] : &:r1228_1 +# 1228| r1228_3(glval) = FunctionAddress[String] : +# 1228| v1228_4(void) = Call[String] : func:r1228_3, this:r1228_1 +# 1228| mu1228_5(unknown) = ^CallSideEffect : ~m? +# 1228| mu1228_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1228_1 +# 1229| r1229_1(glval) = VariableAddress[x403] : +# 1229| r1229_2(glval) = FunctionAddress[~String] : +# 1229| v1229_3(void) = Call[~String] : func:r1229_2, this:r1229_1 +# 1229| mu1229_4(unknown) = ^CallSideEffect : ~m? +# 1229| v1229_5(void) = ^IndirectReadSideEffect[-1] : &:r1229_1, ~m? +# 1229| mu1229_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1229_1 +# 1229| r1229_7(bool) = Constant[0] : +# 1229| v1229_8(void) = ConditionalBranch : r1229_7 +#-----| False -> Block 405 +#-----| True (back edge) -> Block 404 + +# 1231| Block 405 +# 1231| r1231_1(glval) = VariableAddress[x404] : +# 1231| mu1231_2(String) = Uninitialized[x404] : &:r1231_1 +# 1231| r1231_3(glval) = FunctionAddress[String] : +# 1231| v1231_4(void) = Call[String] : func:r1231_3, this:r1231_1 +# 1231| mu1231_5(unknown) = ^CallSideEffect : ~m? +# 1231| mu1231_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1231_1 +# 1232| r1232_1(glval) = VariableAddress[x404] : +# 1232| r1232_2(glval) = FunctionAddress[~String] : +# 1232| v1232_3(void) = Call[~String] : func:r1232_2, this:r1232_1 +# 1232| mu1232_4(unknown) = ^CallSideEffect : ~m? +# 1232| v1232_5(void) = ^IndirectReadSideEffect[-1] : &:r1232_1, ~m? +# 1232| mu1232_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1232_1 +# 1232| r1232_7(bool) = Constant[0] : +# 1232| v1232_8(void) = ConditionalBranch : r1232_7 +#-----| False -> Block 406 +#-----| True (back edge) -> Block 405 + +# 1234| Block 406 +# 1234| r1234_1(glval) = VariableAddress[x405] : +# 1234| mu1234_2(String) = Uninitialized[x405] : &:r1234_1 +# 1234| r1234_3(glval) = FunctionAddress[String] : +# 1234| v1234_4(void) = Call[String] : func:r1234_3, this:r1234_1 +# 1234| mu1234_5(unknown) = ^CallSideEffect : ~m? +# 1234| mu1234_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1234_1 +# 1235| r1235_1(glval) = VariableAddress[x405] : +# 1235| r1235_2(glval) = FunctionAddress[~String] : +# 1235| v1235_3(void) = Call[~String] : func:r1235_2, this:r1235_1 +# 1235| mu1235_4(unknown) = ^CallSideEffect : ~m? +# 1235| v1235_5(void) = ^IndirectReadSideEffect[-1] : &:r1235_1, ~m? +# 1235| mu1235_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1235_1 +# 1235| r1235_7(bool) = Constant[0] : +# 1235| v1235_8(void) = ConditionalBranch : r1235_7 +#-----| False -> Block 407 +#-----| True (back edge) -> Block 406 + +# 1237| Block 407 +# 1237| r1237_1(glval) = VariableAddress[x406] : +# 1237| mu1237_2(String) = Uninitialized[x406] : &:r1237_1 +# 1237| r1237_3(glval) = FunctionAddress[String] : +# 1237| v1237_4(void) = Call[String] : func:r1237_3, this:r1237_1 +# 1237| mu1237_5(unknown) = ^CallSideEffect : ~m? +# 1237| mu1237_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1237_1 +# 1238| r1238_1(glval) = VariableAddress[x406] : +# 1238| r1238_2(glval) = FunctionAddress[~String] : +# 1238| v1238_3(void) = Call[~String] : func:r1238_2, this:r1238_1 +# 1238| mu1238_4(unknown) = ^CallSideEffect : ~m? +# 1238| v1238_5(void) = ^IndirectReadSideEffect[-1] : &:r1238_1, ~m? +# 1238| mu1238_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1238_1 +# 1238| r1238_7(bool) = Constant[0] : +# 1238| v1238_8(void) = ConditionalBranch : r1238_7 +#-----| False -> Block 408 +#-----| True (back edge) -> Block 407 + +# 1240| Block 408 +# 1240| r1240_1(glval) = VariableAddress[x407] : +# 1240| mu1240_2(String) = Uninitialized[x407] : &:r1240_1 +# 1240| r1240_3(glval) = FunctionAddress[String] : +# 1240| v1240_4(void) = Call[String] : func:r1240_3, this:r1240_1 +# 1240| mu1240_5(unknown) = ^CallSideEffect : ~m? +# 1240| mu1240_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1240_1 +# 1241| r1241_1(glval) = VariableAddress[x407] : +# 1241| r1241_2(glval) = FunctionAddress[~String] : +# 1241| v1241_3(void) = Call[~String] : func:r1241_2, this:r1241_1 +# 1241| mu1241_4(unknown) = ^CallSideEffect : ~m? +# 1241| v1241_5(void) = ^IndirectReadSideEffect[-1] : &:r1241_1, ~m? +# 1241| mu1241_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1241_1 +# 1241| r1241_7(bool) = Constant[0] : +# 1241| v1241_8(void) = ConditionalBranch : r1241_7 +#-----| False -> Block 409 +#-----| True (back edge) -> Block 408 + +# 1243| Block 409 +# 1243| r1243_1(glval) = VariableAddress[x408] : +# 1243| mu1243_2(String) = Uninitialized[x408] : &:r1243_1 +# 1243| r1243_3(glval) = FunctionAddress[String] : +# 1243| v1243_4(void) = Call[String] : func:r1243_3, this:r1243_1 +# 1243| mu1243_5(unknown) = ^CallSideEffect : ~m? +# 1243| mu1243_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1243_1 +# 1244| r1244_1(glval) = VariableAddress[x408] : +# 1244| r1244_2(glval) = FunctionAddress[~String] : +# 1244| v1244_3(void) = Call[~String] : func:r1244_2, this:r1244_1 +# 1244| mu1244_4(unknown) = ^CallSideEffect : ~m? +# 1244| v1244_5(void) = ^IndirectReadSideEffect[-1] : &:r1244_1, ~m? +# 1244| mu1244_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1244_1 +# 1244| r1244_7(bool) = Constant[0] : +# 1244| v1244_8(void) = ConditionalBranch : r1244_7 +#-----| False -> Block 410 +#-----| True (back edge) -> Block 409 + +# 1246| Block 410 +# 1246| r1246_1(glval) = VariableAddress[x409] : +# 1246| mu1246_2(String) = Uninitialized[x409] : &:r1246_1 +# 1246| r1246_3(glval) = FunctionAddress[String] : +# 1246| v1246_4(void) = Call[String] : func:r1246_3, this:r1246_1 +# 1246| mu1246_5(unknown) = ^CallSideEffect : ~m? +# 1246| mu1246_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1246_1 +# 1247| r1247_1(glval) = VariableAddress[x409] : +# 1247| r1247_2(glval) = FunctionAddress[~String] : +# 1247| v1247_3(void) = Call[~String] : func:r1247_2, this:r1247_1 +# 1247| mu1247_4(unknown) = ^CallSideEffect : ~m? +# 1247| v1247_5(void) = ^IndirectReadSideEffect[-1] : &:r1247_1, ~m? +# 1247| mu1247_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1247_1 +# 1247| r1247_7(bool) = Constant[0] : +# 1247| v1247_8(void) = ConditionalBranch : r1247_7 +#-----| False -> Block 411 +#-----| True (back edge) -> Block 410 + +# 1249| Block 411 +# 1249| r1249_1(glval) = VariableAddress[x410] : +# 1249| mu1249_2(String) = Uninitialized[x410] : &:r1249_1 +# 1249| r1249_3(glval) = FunctionAddress[String] : +# 1249| v1249_4(void) = Call[String] : func:r1249_3, this:r1249_1 +# 1249| mu1249_5(unknown) = ^CallSideEffect : ~m? +# 1249| mu1249_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1249_1 +# 1250| r1250_1(glval) = VariableAddress[x410] : +# 1250| r1250_2(glval) = FunctionAddress[~String] : +# 1250| v1250_3(void) = Call[~String] : func:r1250_2, this:r1250_1 +# 1250| mu1250_4(unknown) = ^CallSideEffect : ~m? +# 1250| v1250_5(void) = ^IndirectReadSideEffect[-1] : &:r1250_1, ~m? +# 1250| mu1250_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1250_1 +# 1250| r1250_7(bool) = Constant[0] : +# 1250| v1250_8(void) = ConditionalBranch : r1250_7 +#-----| False -> Block 412 +#-----| True (back edge) -> Block 411 + +# 1252| Block 412 +# 1252| r1252_1(glval) = VariableAddress[x411] : +# 1252| mu1252_2(String) = Uninitialized[x411] : &:r1252_1 +# 1252| r1252_3(glval) = FunctionAddress[String] : +# 1252| v1252_4(void) = Call[String] : func:r1252_3, this:r1252_1 +# 1252| mu1252_5(unknown) = ^CallSideEffect : ~m? +# 1252| mu1252_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1252_1 +# 1253| r1253_1(glval) = VariableAddress[x411] : +# 1253| r1253_2(glval) = FunctionAddress[~String] : +# 1253| v1253_3(void) = Call[~String] : func:r1253_2, this:r1253_1 +# 1253| mu1253_4(unknown) = ^CallSideEffect : ~m? +# 1253| v1253_5(void) = ^IndirectReadSideEffect[-1] : &:r1253_1, ~m? +# 1253| mu1253_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1253_1 +# 1253| r1253_7(bool) = Constant[0] : +# 1253| v1253_8(void) = ConditionalBranch : r1253_7 +#-----| False -> Block 413 +#-----| True (back edge) -> Block 412 + +# 1255| Block 413 +# 1255| r1255_1(glval) = VariableAddress[x412] : +# 1255| mu1255_2(String) = Uninitialized[x412] : &:r1255_1 +# 1255| r1255_3(glval) = FunctionAddress[String] : +# 1255| v1255_4(void) = Call[String] : func:r1255_3, this:r1255_1 +# 1255| mu1255_5(unknown) = ^CallSideEffect : ~m? +# 1255| mu1255_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1255_1 +# 1256| r1256_1(glval) = VariableAddress[x412] : +# 1256| r1256_2(glval) = FunctionAddress[~String] : +# 1256| v1256_3(void) = Call[~String] : func:r1256_2, this:r1256_1 +# 1256| mu1256_4(unknown) = ^CallSideEffect : ~m? +# 1256| v1256_5(void) = ^IndirectReadSideEffect[-1] : &:r1256_1, ~m? +# 1256| mu1256_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1256_1 +# 1256| r1256_7(bool) = Constant[0] : +# 1256| v1256_8(void) = ConditionalBranch : r1256_7 +#-----| False -> Block 414 +#-----| True (back edge) -> Block 413 + +# 1258| Block 414 +# 1258| r1258_1(glval) = VariableAddress[x413] : +# 1258| mu1258_2(String) = Uninitialized[x413] : &:r1258_1 +# 1258| r1258_3(glval) = FunctionAddress[String] : +# 1258| v1258_4(void) = Call[String] : func:r1258_3, this:r1258_1 +# 1258| mu1258_5(unknown) = ^CallSideEffect : ~m? +# 1258| mu1258_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1258_1 +# 1259| r1259_1(glval) = VariableAddress[x413] : +# 1259| r1259_2(glval) = FunctionAddress[~String] : +# 1259| v1259_3(void) = Call[~String] : func:r1259_2, this:r1259_1 +# 1259| mu1259_4(unknown) = ^CallSideEffect : ~m? +# 1259| v1259_5(void) = ^IndirectReadSideEffect[-1] : &:r1259_1, ~m? +# 1259| mu1259_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1259_1 +# 1259| r1259_7(bool) = Constant[0] : +# 1259| v1259_8(void) = ConditionalBranch : r1259_7 +#-----| False -> Block 415 +#-----| True (back edge) -> Block 414 + +# 1261| Block 415 +# 1261| r1261_1(glval) = VariableAddress[x414] : +# 1261| mu1261_2(String) = Uninitialized[x414] : &:r1261_1 +# 1261| r1261_3(glval) = FunctionAddress[String] : +# 1261| v1261_4(void) = Call[String] : func:r1261_3, this:r1261_1 +# 1261| mu1261_5(unknown) = ^CallSideEffect : ~m? +# 1261| mu1261_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1261_1 +# 1262| r1262_1(glval) = VariableAddress[x414] : +# 1262| r1262_2(glval) = FunctionAddress[~String] : +# 1262| v1262_3(void) = Call[~String] : func:r1262_2, this:r1262_1 +# 1262| mu1262_4(unknown) = ^CallSideEffect : ~m? +# 1262| v1262_5(void) = ^IndirectReadSideEffect[-1] : &:r1262_1, ~m? +# 1262| mu1262_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1262_1 +# 1262| r1262_7(bool) = Constant[0] : +# 1262| v1262_8(void) = ConditionalBranch : r1262_7 +#-----| False -> Block 416 +#-----| True (back edge) -> Block 415 + +# 1264| Block 416 +# 1264| r1264_1(glval) = VariableAddress[x415] : +# 1264| mu1264_2(String) = Uninitialized[x415] : &:r1264_1 +# 1264| r1264_3(glval) = FunctionAddress[String] : +# 1264| v1264_4(void) = Call[String] : func:r1264_3, this:r1264_1 +# 1264| mu1264_5(unknown) = ^CallSideEffect : ~m? +# 1264| mu1264_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1264_1 +# 1265| r1265_1(glval) = VariableAddress[x415] : +# 1265| r1265_2(glval) = FunctionAddress[~String] : +# 1265| v1265_3(void) = Call[~String] : func:r1265_2, this:r1265_1 +# 1265| mu1265_4(unknown) = ^CallSideEffect : ~m? +# 1265| v1265_5(void) = ^IndirectReadSideEffect[-1] : &:r1265_1, ~m? +# 1265| mu1265_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1265_1 +# 1265| r1265_7(bool) = Constant[0] : +# 1265| v1265_8(void) = ConditionalBranch : r1265_7 +#-----| False -> Block 417 +#-----| True (back edge) -> Block 416 + +# 1267| Block 417 +# 1267| r1267_1(glval) = VariableAddress[x416] : +# 1267| mu1267_2(String) = Uninitialized[x416] : &:r1267_1 +# 1267| r1267_3(glval) = FunctionAddress[String] : +# 1267| v1267_4(void) = Call[String] : func:r1267_3, this:r1267_1 +# 1267| mu1267_5(unknown) = ^CallSideEffect : ~m? +# 1267| mu1267_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1267_1 +# 1268| r1268_1(glval) = VariableAddress[x416] : +# 1268| r1268_2(glval) = FunctionAddress[~String] : +# 1268| v1268_3(void) = Call[~String] : func:r1268_2, this:r1268_1 +# 1268| mu1268_4(unknown) = ^CallSideEffect : ~m? +# 1268| v1268_5(void) = ^IndirectReadSideEffect[-1] : &:r1268_1, ~m? +# 1268| mu1268_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1268_1 +# 1268| r1268_7(bool) = Constant[0] : +# 1268| v1268_8(void) = ConditionalBranch : r1268_7 +#-----| False -> Block 418 +#-----| True (back edge) -> Block 417 + +# 1270| Block 418 +# 1270| r1270_1(glval) = VariableAddress[x417] : +# 1270| mu1270_2(String) = Uninitialized[x417] : &:r1270_1 +# 1270| r1270_3(glval) = FunctionAddress[String] : +# 1270| v1270_4(void) = Call[String] : func:r1270_3, this:r1270_1 +# 1270| mu1270_5(unknown) = ^CallSideEffect : ~m? +# 1270| mu1270_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1270_1 +# 1271| r1271_1(glval) = VariableAddress[x417] : +# 1271| r1271_2(glval) = FunctionAddress[~String] : +# 1271| v1271_3(void) = Call[~String] : func:r1271_2, this:r1271_1 +# 1271| mu1271_4(unknown) = ^CallSideEffect : ~m? +# 1271| v1271_5(void) = ^IndirectReadSideEffect[-1] : &:r1271_1, ~m? +# 1271| mu1271_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1271_1 +# 1271| r1271_7(bool) = Constant[0] : +# 1271| v1271_8(void) = ConditionalBranch : r1271_7 +#-----| False -> Block 419 +#-----| True (back edge) -> Block 418 + +# 1273| Block 419 +# 1273| r1273_1(glval) = VariableAddress[x418] : +# 1273| mu1273_2(String) = Uninitialized[x418] : &:r1273_1 +# 1273| r1273_3(glval) = FunctionAddress[String] : +# 1273| v1273_4(void) = Call[String] : func:r1273_3, this:r1273_1 +# 1273| mu1273_5(unknown) = ^CallSideEffect : ~m? +# 1273| mu1273_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1273_1 +# 1274| r1274_1(glval) = VariableAddress[x418] : +# 1274| r1274_2(glval) = FunctionAddress[~String] : +# 1274| v1274_3(void) = Call[~String] : func:r1274_2, this:r1274_1 +# 1274| mu1274_4(unknown) = ^CallSideEffect : ~m? +# 1274| v1274_5(void) = ^IndirectReadSideEffect[-1] : &:r1274_1, ~m? +# 1274| mu1274_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1274_1 +# 1274| r1274_7(bool) = Constant[0] : +# 1274| v1274_8(void) = ConditionalBranch : r1274_7 +#-----| False -> Block 420 +#-----| True (back edge) -> Block 419 + +# 1276| Block 420 +# 1276| r1276_1(glval) = VariableAddress[x419] : +# 1276| mu1276_2(String) = Uninitialized[x419] : &:r1276_1 +# 1276| r1276_3(glval) = FunctionAddress[String] : +# 1276| v1276_4(void) = Call[String] : func:r1276_3, this:r1276_1 +# 1276| mu1276_5(unknown) = ^CallSideEffect : ~m? +# 1276| mu1276_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1276_1 +# 1277| r1277_1(glval) = VariableAddress[x419] : +# 1277| r1277_2(glval) = FunctionAddress[~String] : +# 1277| v1277_3(void) = Call[~String] : func:r1277_2, this:r1277_1 +# 1277| mu1277_4(unknown) = ^CallSideEffect : ~m? +# 1277| v1277_5(void) = ^IndirectReadSideEffect[-1] : &:r1277_1, ~m? +# 1277| mu1277_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1277_1 +# 1277| r1277_7(bool) = Constant[0] : +# 1277| v1277_8(void) = ConditionalBranch : r1277_7 +#-----| False -> Block 421 +#-----| True (back edge) -> Block 420 + +# 1279| Block 421 +# 1279| r1279_1(glval) = VariableAddress[x420] : +# 1279| mu1279_2(String) = Uninitialized[x420] : &:r1279_1 +# 1279| r1279_3(glval) = FunctionAddress[String] : +# 1279| v1279_4(void) = Call[String] : func:r1279_3, this:r1279_1 +# 1279| mu1279_5(unknown) = ^CallSideEffect : ~m? +# 1279| mu1279_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1279_1 +# 1280| r1280_1(glval) = VariableAddress[x420] : +# 1280| r1280_2(glval) = FunctionAddress[~String] : +# 1280| v1280_3(void) = Call[~String] : func:r1280_2, this:r1280_1 +# 1280| mu1280_4(unknown) = ^CallSideEffect : ~m? +# 1280| v1280_5(void) = ^IndirectReadSideEffect[-1] : &:r1280_1, ~m? +# 1280| mu1280_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1280_1 +# 1280| r1280_7(bool) = Constant[0] : +# 1280| v1280_8(void) = ConditionalBranch : r1280_7 +#-----| False -> Block 422 +#-----| True (back edge) -> Block 421 + +# 1282| Block 422 +# 1282| r1282_1(glval) = VariableAddress[x421] : +# 1282| mu1282_2(String) = Uninitialized[x421] : &:r1282_1 +# 1282| r1282_3(glval) = FunctionAddress[String] : +# 1282| v1282_4(void) = Call[String] : func:r1282_3, this:r1282_1 +# 1282| mu1282_5(unknown) = ^CallSideEffect : ~m? +# 1282| mu1282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1282_1 +# 1283| r1283_1(glval) = VariableAddress[x421] : +# 1283| r1283_2(glval) = FunctionAddress[~String] : +# 1283| v1283_3(void) = Call[~String] : func:r1283_2, this:r1283_1 +# 1283| mu1283_4(unknown) = ^CallSideEffect : ~m? +# 1283| v1283_5(void) = ^IndirectReadSideEffect[-1] : &:r1283_1, ~m? +# 1283| mu1283_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1283_1 +# 1283| r1283_7(bool) = Constant[0] : +# 1283| v1283_8(void) = ConditionalBranch : r1283_7 +#-----| False -> Block 423 +#-----| True (back edge) -> Block 422 + +# 1285| Block 423 +# 1285| r1285_1(glval) = VariableAddress[x422] : +# 1285| mu1285_2(String) = Uninitialized[x422] : &:r1285_1 +# 1285| r1285_3(glval) = FunctionAddress[String] : +# 1285| v1285_4(void) = Call[String] : func:r1285_3, this:r1285_1 +# 1285| mu1285_5(unknown) = ^CallSideEffect : ~m? +# 1285| mu1285_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1285_1 +# 1286| r1286_1(glval) = VariableAddress[x422] : +# 1286| r1286_2(glval) = FunctionAddress[~String] : +# 1286| v1286_3(void) = Call[~String] : func:r1286_2, this:r1286_1 +# 1286| mu1286_4(unknown) = ^CallSideEffect : ~m? +# 1286| v1286_5(void) = ^IndirectReadSideEffect[-1] : &:r1286_1, ~m? +# 1286| mu1286_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1286_1 +# 1286| r1286_7(bool) = Constant[0] : +# 1286| v1286_8(void) = ConditionalBranch : r1286_7 +#-----| False -> Block 424 +#-----| True (back edge) -> Block 423 + +# 1288| Block 424 +# 1288| r1288_1(glval) = VariableAddress[x423] : +# 1288| mu1288_2(String) = Uninitialized[x423] : &:r1288_1 +# 1288| r1288_3(glval) = FunctionAddress[String] : +# 1288| v1288_4(void) = Call[String] : func:r1288_3, this:r1288_1 +# 1288| mu1288_5(unknown) = ^CallSideEffect : ~m? +# 1288| mu1288_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1288_1 +# 1289| r1289_1(glval) = VariableAddress[x423] : +# 1289| r1289_2(glval) = FunctionAddress[~String] : +# 1289| v1289_3(void) = Call[~String] : func:r1289_2, this:r1289_1 +# 1289| mu1289_4(unknown) = ^CallSideEffect : ~m? +# 1289| v1289_5(void) = ^IndirectReadSideEffect[-1] : &:r1289_1, ~m? +# 1289| mu1289_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1289_1 +# 1289| r1289_7(bool) = Constant[0] : +# 1289| v1289_8(void) = ConditionalBranch : r1289_7 +#-----| False -> Block 425 +#-----| True (back edge) -> Block 424 + +# 1291| Block 425 +# 1291| r1291_1(glval) = VariableAddress[x424] : +# 1291| mu1291_2(String) = Uninitialized[x424] : &:r1291_1 +# 1291| r1291_3(glval) = FunctionAddress[String] : +# 1291| v1291_4(void) = Call[String] : func:r1291_3, this:r1291_1 +# 1291| mu1291_5(unknown) = ^CallSideEffect : ~m? +# 1291| mu1291_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1291_1 +# 1292| r1292_1(glval) = VariableAddress[x424] : +# 1292| r1292_2(glval) = FunctionAddress[~String] : +# 1292| v1292_3(void) = Call[~String] : func:r1292_2, this:r1292_1 +# 1292| mu1292_4(unknown) = ^CallSideEffect : ~m? +# 1292| v1292_5(void) = ^IndirectReadSideEffect[-1] : &:r1292_1, ~m? +# 1292| mu1292_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1292_1 +# 1292| r1292_7(bool) = Constant[0] : +# 1292| v1292_8(void) = ConditionalBranch : r1292_7 +#-----| False -> Block 426 +#-----| True (back edge) -> Block 425 + +# 1294| Block 426 +# 1294| r1294_1(glval) = VariableAddress[x425] : +# 1294| mu1294_2(String) = Uninitialized[x425] : &:r1294_1 +# 1294| r1294_3(glval) = FunctionAddress[String] : +# 1294| v1294_4(void) = Call[String] : func:r1294_3, this:r1294_1 +# 1294| mu1294_5(unknown) = ^CallSideEffect : ~m? +# 1294| mu1294_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1294_1 +# 1295| r1295_1(glval) = VariableAddress[x425] : +# 1295| r1295_2(glval) = FunctionAddress[~String] : +# 1295| v1295_3(void) = Call[~String] : func:r1295_2, this:r1295_1 +# 1295| mu1295_4(unknown) = ^CallSideEffect : ~m? +# 1295| v1295_5(void) = ^IndirectReadSideEffect[-1] : &:r1295_1, ~m? +# 1295| mu1295_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1295_1 +# 1295| r1295_7(bool) = Constant[0] : +# 1295| v1295_8(void) = ConditionalBranch : r1295_7 +#-----| False -> Block 427 +#-----| True (back edge) -> Block 426 + +# 1297| Block 427 +# 1297| r1297_1(glval) = VariableAddress[x426] : +# 1297| mu1297_2(String) = Uninitialized[x426] : &:r1297_1 +# 1297| r1297_3(glval) = FunctionAddress[String] : +# 1297| v1297_4(void) = Call[String] : func:r1297_3, this:r1297_1 +# 1297| mu1297_5(unknown) = ^CallSideEffect : ~m? +# 1297| mu1297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1297_1 +# 1298| r1298_1(glval) = VariableAddress[x426] : +# 1298| r1298_2(glval) = FunctionAddress[~String] : +# 1298| v1298_3(void) = Call[~String] : func:r1298_2, this:r1298_1 +# 1298| mu1298_4(unknown) = ^CallSideEffect : ~m? +# 1298| v1298_5(void) = ^IndirectReadSideEffect[-1] : &:r1298_1, ~m? +# 1298| mu1298_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1298_1 +# 1298| r1298_7(bool) = Constant[0] : +# 1298| v1298_8(void) = ConditionalBranch : r1298_7 +#-----| False -> Block 428 +#-----| True (back edge) -> Block 427 + +# 1300| Block 428 +# 1300| r1300_1(glval) = VariableAddress[x427] : +# 1300| mu1300_2(String) = Uninitialized[x427] : &:r1300_1 +# 1300| r1300_3(glval) = FunctionAddress[String] : +# 1300| v1300_4(void) = Call[String] : func:r1300_3, this:r1300_1 +# 1300| mu1300_5(unknown) = ^CallSideEffect : ~m? +# 1300| mu1300_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1300_1 +# 1301| r1301_1(glval) = VariableAddress[x427] : +# 1301| r1301_2(glval) = FunctionAddress[~String] : +# 1301| v1301_3(void) = Call[~String] : func:r1301_2, this:r1301_1 +# 1301| mu1301_4(unknown) = ^CallSideEffect : ~m? +# 1301| v1301_5(void) = ^IndirectReadSideEffect[-1] : &:r1301_1, ~m? +# 1301| mu1301_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1301_1 +# 1301| r1301_7(bool) = Constant[0] : +# 1301| v1301_8(void) = ConditionalBranch : r1301_7 +#-----| False -> Block 429 +#-----| True (back edge) -> Block 428 + +# 1303| Block 429 +# 1303| r1303_1(glval) = VariableAddress[x428] : +# 1303| mu1303_2(String) = Uninitialized[x428] : &:r1303_1 +# 1303| r1303_3(glval) = FunctionAddress[String] : +# 1303| v1303_4(void) = Call[String] : func:r1303_3, this:r1303_1 +# 1303| mu1303_5(unknown) = ^CallSideEffect : ~m? +# 1303| mu1303_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1303_1 +# 1304| r1304_1(glval) = VariableAddress[x428] : +# 1304| r1304_2(glval) = FunctionAddress[~String] : +# 1304| v1304_3(void) = Call[~String] : func:r1304_2, this:r1304_1 +# 1304| mu1304_4(unknown) = ^CallSideEffect : ~m? +# 1304| v1304_5(void) = ^IndirectReadSideEffect[-1] : &:r1304_1, ~m? +# 1304| mu1304_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1304_1 +# 1304| r1304_7(bool) = Constant[0] : +# 1304| v1304_8(void) = ConditionalBranch : r1304_7 +#-----| False -> Block 430 +#-----| True (back edge) -> Block 429 + +# 1306| Block 430 +# 1306| r1306_1(glval) = VariableAddress[x429] : +# 1306| mu1306_2(String) = Uninitialized[x429] : &:r1306_1 +# 1306| r1306_3(glval) = FunctionAddress[String] : +# 1306| v1306_4(void) = Call[String] : func:r1306_3, this:r1306_1 +# 1306| mu1306_5(unknown) = ^CallSideEffect : ~m? +# 1306| mu1306_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1306_1 +# 1307| r1307_1(glval) = VariableAddress[x429] : +# 1307| r1307_2(glval) = FunctionAddress[~String] : +# 1307| v1307_3(void) = Call[~String] : func:r1307_2, this:r1307_1 +# 1307| mu1307_4(unknown) = ^CallSideEffect : ~m? +# 1307| v1307_5(void) = ^IndirectReadSideEffect[-1] : &:r1307_1, ~m? +# 1307| mu1307_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1307_1 +# 1307| r1307_7(bool) = Constant[0] : +# 1307| v1307_8(void) = ConditionalBranch : r1307_7 +#-----| False -> Block 431 +#-----| True (back edge) -> Block 430 + +# 1309| Block 431 +# 1309| r1309_1(glval) = VariableAddress[x430] : +# 1309| mu1309_2(String) = Uninitialized[x430] : &:r1309_1 +# 1309| r1309_3(glval) = FunctionAddress[String] : +# 1309| v1309_4(void) = Call[String] : func:r1309_3, this:r1309_1 +# 1309| mu1309_5(unknown) = ^CallSideEffect : ~m? +# 1309| mu1309_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1309_1 +# 1310| r1310_1(glval) = VariableAddress[x430] : +# 1310| r1310_2(glval) = FunctionAddress[~String] : +# 1310| v1310_3(void) = Call[~String] : func:r1310_2, this:r1310_1 +# 1310| mu1310_4(unknown) = ^CallSideEffect : ~m? +# 1310| v1310_5(void) = ^IndirectReadSideEffect[-1] : &:r1310_1, ~m? +# 1310| mu1310_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1310_1 +# 1310| r1310_7(bool) = Constant[0] : +# 1310| v1310_8(void) = ConditionalBranch : r1310_7 +#-----| False -> Block 432 +#-----| True (back edge) -> Block 431 + +# 1312| Block 432 +# 1312| r1312_1(glval) = VariableAddress[x431] : +# 1312| mu1312_2(String) = Uninitialized[x431] : &:r1312_1 +# 1312| r1312_3(glval) = FunctionAddress[String] : +# 1312| v1312_4(void) = Call[String] : func:r1312_3, this:r1312_1 +# 1312| mu1312_5(unknown) = ^CallSideEffect : ~m? +# 1312| mu1312_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1312_1 +# 1313| r1313_1(glval) = VariableAddress[x431] : +# 1313| r1313_2(glval) = FunctionAddress[~String] : +# 1313| v1313_3(void) = Call[~String] : func:r1313_2, this:r1313_1 +# 1313| mu1313_4(unknown) = ^CallSideEffect : ~m? +# 1313| v1313_5(void) = ^IndirectReadSideEffect[-1] : &:r1313_1, ~m? +# 1313| mu1313_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1313_1 +# 1313| r1313_7(bool) = Constant[0] : +# 1313| v1313_8(void) = ConditionalBranch : r1313_7 +#-----| False -> Block 433 +#-----| True (back edge) -> Block 432 + +# 1315| Block 433 +# 1315| r1315_1(glval) = VariableAddress[x432] : +# 1315| mu1315_2(String) = Uninitialized[x432] : &:r1315_1 +# 1315| r1315_3(glval) = FunctionAddress[String] : +# 1315| v1315_4(void) = Call[String] : func:r1315_3, this:r1315_1 +# 1315| mu1315_5(unknown) = ^CallSideEffect : ~m? +# 1315| mu1315_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1315_1 +# 1316| r1316_1(glval) = VariableAddress[x432] : +# 1316| r1316_2(glval) = FunctionAddress[~String] : +# 1316| v1316_3(void) = Call[~String] : func:r1316_2, this:r1316_1 +# 1316| mu1316_4(unknown) = ^CallSideEffect : ~m? +# 1316| v1316_5(void) = ^IndirectReadSideEffect[-1] : &:r1316_1, ~m? +# 1316| mu1316_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1316_1 +# 1316| r1316_7(bool) = Constant[0] : +# 1316| v1316_8(void) = ConditionalBranch : r1316_7 +#-----| False -> Block 434 +#-----| True (back edge) -> Block 433 + +# 1318| Block 434 +# 1318| r1318_1(glval) = VariableAddress[x433] : +# 1318| mu1318_2(String) = Uninitialized[x433] : &:r1318_1 +# 1318| r1318_3(glval) = FunctionAddress[String] : +# 1318| v1318_4(void) = Call[String] : func:r1318_3, this:r1318_1 +# 1318| mu1318_5(unknown) = ^CallSideEffect : ~m? +# 1318| mu1318_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1318_1 +# 1319| r1319_1(glval) = VariableAddress[x433] : +# 1319| r1319_2(glval) = FunctionAddress[~String] : +# 1319| v1319_3(void) = Call[~String] : func:r1319_2, this:r1319_1 +# 1319| mu1319_4(unknown) = ^CallSideEffect : ~m? +# 1319| v1319_5(void) = ^IndirectReadSideEffect[-1] : &:r1319_1, ~m? +# 1319| mu1319_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1319_1 +# 1319| r1319_7(bool) = Constant[0] : +# 1319| v1319_8(void) = ConditionalBranch : r1319_7 +#-----| False -> Block 435 +#-----| True (back edge) -> Block 434 + +# 1321| Block 435 +# 1321| r1321_1(glval) = VariableAddress[x434] : +# 1321| mu1321_2(String) = Uninitialized[x434] : &:r1321_1 +# 1321| r1321_3(glval) = FunctionAddress[String] : +# 1321| v1321_4(void) = Call[String] : func:r1321_3, this:r1321_1 +# 1321| mu1321_5(unknown) = ^CallSideEffect : ~m? +# 1321| mu1321_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1321_1 +# 1322| r1322_1(glval) = VariableAddress[x434] : +# 1322| r1322_2(glval) = FunctionAddress[~String] : +# 1322| v1322_3(void) = Call[~String] : func:r1322_2, this:r1322_1 +# 1322| mu1322_4(unknown) = ^CallSideEffect : ~m? +# 1322| v1322_5(void) = ^IndirectReadSideEffect[-1] : &:r1322_1, ~m? +# 1322| mu1322_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1322_1 +# 1322| r1322_7(bool) = Constant[0] : +# 1322| v1322_8(void) = ConditionalBranch : r1322_7 +#-----| False -> Block 436 +#-----| True (back edge) -> Block 435 + +# 1324| Block 436 +# 1324| r1324_1(glval) = VariableAddress[x435] : +# 1324| mu1324_2(String) = Uninitialized[x435] : &:r1324_1 +# 1324| r1324_3(glval) = FunctionAddress[String] : +# 1324| v1324_4(void) = Call[String] : func:r1324_3, this:r1324_1 +# 1324| mu1324_5(unknown) = ^CallSideEffect : ~m? +# 1324| mu1324_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1324_1 +# 1325| r1325_1(glval) = VariableAddress[x435] : +# 1325| r1325_2(glval) = FunctionAddress[~String] : +# 1325| v1325_3(void) = Call[~String] : func:r1325_2, this:r1325_1 +# 1325| mu1325_4(unknown) = ^CallSideEffect : ~m? +# 1325| v1325_5(void) = ^IndirectReadSideEffect[-1] : &:r1325_1, ~m? +# 1325| mu1325_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1325_1 +# 1325| r1325_7(bool) = Constant[0] : +# 1325| v1325_8(void) = ConditionalBranch : r1325_7 +#-----| False -> Block 437 +#-----| True (back edge) -> Block 436 + +# 1327| Block 437 +# 1327| r1327_1(glval) = VariableAddress[x436] : +# 1327| mu1327_2(String) = Uninitialized[x436] : &:r1327_1 +# 1327| r1327_3(glval) = FunctionAddress[String] : +# 1327| v1327_4(void) = Call[String] : func:r1327_3, this:r1327_1 +# 1327| mu1327_5(unknown) = ^CallSideEffect : ~m? +# 1327| mu1327_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1327_1 +# 1328| r1328_1(glval) = VariableAddress[x436] : +# 1328| r1328_2(glval) = FunctionAddress[~String] : +# 1328| v1328_3(void) = Call[~String] : func:r1328_2, this:r1328_1 +# 1328| mu1328_4(unknown) = ^CallSideEffect : ~m? +# 1328| v1328_5(void) = ^IndirectReadSideEffect[-1] : &:r1328_1, ~m? +# 1328| mu1328_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1328_1 +# 1328| r1328_7(bool) = Constant[0] : +# 1328| v1328_8(void) = ConditionalBranch : r1328_7 +#-----| False -> Block 438 +#-----| True (back edge) -> Block 437 + +# 1330| Block 438 +# 1330| r1330_1(glval) = VariableAddress[x437] : +# 1330| mu1330_2(String) = Uninitialized[x437] : &:r1330_1 +# 1330| r1330_3(glval) = FunctionAddress[String] : +# 1330| v1330_4(void) = Call[String] : func:r1330_3, this:r1330_1 +# 1330| mu1330_5(unknown) = ^CallSideEffect : ~m? +# 1330| mu1330_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1330_1 +# 1331| r1331_1(glval) = VariableAddress[x437] : +# 1331| r1331_2(glval) = FunctionAddress[~String] : +# 1331| v1331_3(void) = Call[~String] : func:r1331_2, this:r1331_1 +# 1331| mu1331_4(unknown) = ^CallSideEffect : ~m? +# 1331| v1331_5(void) = ^IndirectReadSideEffect[-1] : &:r1331_1, ~m? +# 1331| mu1331_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1331_1 +# 1331| r1331_7(bool) = Constant[0] : +# 1331| v1331_8(void) = ConditionalBranch : r1331_7 +#-----| False -> Block 439 +#-----| True (back edge) -> Block 438 + +# 1333| Block 439 +# 1333| r1333_1(glval) = VariableAddress[x438] : +# 1333| mu1333_2(String) = Uninitialized[x438] : &:r1333_1 +# 1333| r1333_3(glval) = FunctionAddress[String] : +# 1333| v1333_4(void) = Call[String] : func:r1333_3, this:r1333_1 +# 1333| mu1333_5(unknown) = ^CallSideEffect : ~m? +# 1333| mu1333_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1333_1 +# 1334| r1334_1(glval) = VariableAddress[x438] : +# 1334| r1334_2(glval) = FunctionAddress[~String] : +# 1334| v1334_3(void) = Call[~String] : func:r1334_2, this:r1334_1 +# 1334| mu1334_4(unknown) = ^CallSideEffect : ~m? +# 1334| v1334_5(void) = ^IndirectReadSideEffect[-1] : &:r1334_1, ~m? +# 1334| mu1334_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1334_1 +# 1334| r1334_7(bool) = Constant[0] : +# 1334| v1334_8(void) = ConditionalBranch : r1334_7 +#-----| False -> Block 440 +#-----| True (back edge) -> Block 439 + +# 1336| Block 440 +# 1336| r1336_1(glval) = VariableAddress[x439] : +# 1336| mu1336_2(String) = Uninitialized[x439] : &:r1336_1 +# 1336| r1336_3(glval) = FunctionAddress[String] : +# 1336| v1336_4(void) = Call[String] : func:r1336_3, this:r1336_1 +# 1336| mu1336_5(unknown) = ^CallSideEffect : ~m? +# 1336| mu1336_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1336_1 +# 1337| r1337_1(glval) = VariableAddress[x439] : +# 1337| r1337_2(glval) = FunctionAddress[~String] : +# 1337| v1337_3(void) = Call[~String] : func:r1337_2, this:r1337_1 +# 1337| mu1337_4(unknown) = ^CallSideEffect : ~m? +# 1337| v1337_5(void) = ^IndirectReadSideEffect[-1] : &:r1337_1, ~m? +# 1337| mu1337_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1337_1 +# 1337| r1337_7(bool) = Constant[0] : +# 1337| v1337_8(void) = ConditionalBranch : r1337_7 +#-----| False -> Block 441 +#-----| True (back edge) -> Block 440 + +# 1339| Block 441 +# 1339| r1339_1(glval) = VariableAddress[x440] : +# 1339| mu1339_2(String) = Uninitialized[x440] : &:r1339_1 +# 1339| r1339_3(glval) = FunctionAddress[String] : +# 1339| v1339_4(void) = Call[String] : func:r1339_3, this:r1339_1 +# 1339| mu1339_5(unknown) = ^CallSideEffect : ~m? +# 1339| mu1339_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1339_1 +# 1340| r1340_1(glval) = VariableAddress[x440] : +# 1340| r1340_2(glval) = FunctionAddress[~String] : +# 1340| v1340_3(void) = Call[~String] : func:r1340_2, this:r1340_1 +# 1340| mu1340_4(unknown) = ^CallSideEffect : ~m? +# 1340| v1340_5(void) = ^IndirectReadSideEffect[-1] : &:r1340_1, ~m? +# 1340| mu1340_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1340_1 +# 1340| r1340_7(bool) = Constant[0] : +# 1340| v1340_8(void) = ConditionalBranch : r1340_7 +#-----| False -> Block 442 +#-----| True (back edge) -> Block 441 + +# 1342| Block 442 +# 1342| r1342_1(glval) = VariableAddress[x441] : +# 1342| mu1342_2(String) = Uninitialized[x441] : &:r1342_1 +# 1342| r1342_3(glval) = FunctionAddress[String] : +# 1342| v1342_4(void) = Call[String] : func:r1342_3, this:r1342_1 +# 1342| mu1342_5(unknown) = ^CallSideEffect : ~m? +# 1342| mu1342_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1342_1 +# 1343| r1343_1(glval) = VariableAddress[x441] : +# 1343| r1343_2(glval) = FunctionAddress[~String] : +# 1343| v1343_3(void) = Call[~String] : func:r1343_2, this:r1343_1 +# 1343| mu1343_4(unknown) = ^CallSideEffect : ~m? +# 1343| v1343_5(void) = ^IndirectReadSideEffect[-1] : &:r1343_1, ~m? +# 1343| mu1343_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1343_1 +# 1343| r1343_7(bool) = Constant[0] : +# 1343| v1343_8(void) = ConditionalBranch : r1343_7 +#-----| False -> Block 443 +#-----| True (back edge) -> Block 442 + +# 1345| Block 443 +# 1345| r1345_1(glval) = VariableAddress[x442] : +# 1345| mu1345_2(String) = Uninitialized[x442] : &:r1345_1 +# 1345| r1345_3(glval) = FunctionAddress[String] : +# 1345| v1345_4(void) = Call[String] : func:r1345_3, this:r1345_1 +# 1345| mu1345_5(unknown) = ^CallSideEffect : ~m? +# 1345| mu1345_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1345_1 +# 1346| r1346_1(glval) = VariableAddress[x442] : +# 1346| r1346_2(glval) = FunctionAddress[~String] : +# 1346| v1346_3(void) = Call[~String] : func:r1346_2, this:r1346_1 +# 1346| mu1346_4(unknown) = ^CallSideEffect : ~m? +# 1346| v1346_5(void) = ^IndirectReadSideEffect[-1] : &:r1346_1, ~m? +# 1346| mu1346_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1346_1 +# 1346| r1346_7(bool) = Constant[0] : +# 1346| v1346_8(void) = ConditionalBranch : r1346_7 +#-----| False -> Block 444 +#-----| True (back edge) -> Block 443 + +# 1348| Block 444 +# 1348| r1348_1(glval) = VariableAddress[x443] : +# 1348| mu1348_2(String) = Uninitialized[x443] : &:r1348_1 +# 1348| r1348_3(glval) = FunctionAddress[String] : +# 1348| v1348_4(void) = Call[String] : func:r1348_3, this:r1348_1 +# 1348| mu1348_5(unknown) = ^CallSideEffect : ~m? +# 1348| mu1348_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1348_1 +# 1349| r1349_1(glval) = VariableAddress[x443] : +# 1349| r1349_2(glval) = FunctionAddress[~String] : +# 1349| v1349_3(void) = Call[~String] : func:r1349_2, this:r1349_1 +# 1349| mu1349_4(unknown) = ^CallSideEffect : ~m? +# 1349| v1349_5(void) = ^IndirectReadSideEffect[-1] : &:r1349_1, ~m? +# 1349| mu1349_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1349_1 +# 1349| r1349_7(bool) = Constant[0] : +# 1349| v1349_8(void) = ConditionalBranch : r1349_7 +#-----| False -> Block 445 +#-----| True (back edge) -> Block 444 + +# 1351| Block 445 +# 1351| r1351_1(glval) = VariableAddress[x444] : +# 1351| mu1351_2(String) = Uninitialized[x444] : &:r1351_1 +# 1351| r1351_3(glval) = FunctionAddress[String] : +# 1351| v1351_4(void) = Call[String] : func:r1351_3, this:r1351_1 +# 1351| mu1351_5(unknown) = ^CallSideEffect : ~m? +# 1351| mu1351_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1351_1 +# 1352| r1352_1(glval) = VariableAddress[x444] : +# 1352| r1352_2(glval) = FunctionAddress[~String] : +# 1352| v1352_3(void) = Call[~String] : func:r1352_2, this:r1352_1 +# 1352| mu1352_4(unknown) = ^CallSideEffect : ~m? +# 1352| v1352_5(void) = ^IndirectReadSideEffect[-1] : &:r1352_1, ~m? +# 1352| mu1352_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1352_1 +# 1352| r1352_7(bool) = Constant[0] : +# 1352| v1352_8(void) = ConditionalBranch : r1352_7 +#-----| False -> Block 446 +#-----| True (back edge) -> Block 445 + +# 1354| Block 446 +# 1354| r1354_1(glval) = VariableAddress[x445] : +# 1354| mu1354_2(String) = Uninitialized[x445] : &:r1354_1 +# 1354| r1354_3(glval) = FunctionAddress[String] : +# 1354| v1354_4(void) = Call[String] : func:r1354_3, this:r1354_1 +# 1354| mu1354_5(unknown) = ^CallSideEffect : ~m? +# 1354| mu1354_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1354_1 +# 1355| r1355_1(glval) = VariableAddress[x445] : +# 1355| r1355_2(glval) = FunctionAddress[~String] : +# 1355| v1355_3(void) = Call[~String] : func:r1355_2, this:r1355_1 +# 1355| mu1355_4(unknown) = ^CallSideEffect : ~m? +# 1355| v1355_5(void) = ^IndirectReadSideEffect[-1] : &:r1355_1, ~m? +# 1355| mu1355_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1355_1 +# 1355| r1355_7(bool) = Constant[0] : +# 1355| v1355_8(void) = ConditionalBranch : r1355_7 +#-----| False -> Block 447 +#-----| True (back edge) -> Block 446 + +# 1357| Block 447 +# 1357| r1357_1(glval) = VariableAddress[x446] : +# 1357| mu1357_2(String) = Uninitialized[x446] : &:r1357_1 +# 1357| r1357_3(glval) = FunctionAddress[String] : +# 1357| v1357_4(void) = Call[String] : func:r1357_3, this:r1357_1 +# 1357| mu1357_5(unknown) = ^CallSideEffect : ~m? +# 1357| mu1357_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1357_1 +# 1358| r1358_1(glval) = VariableAddress[x446] : +# 1358| r1358_2(glval) = FunctionAddress[~String] : +# 1358| v1358_3(void) = Call[~String] : func:r1358_2, this:r1358_1 +# 1358| mu1358_4(unknown) = ^CallSideEffect : ~m? +# 1358| v1358_5(void) = ^IndirectReadSideEffect[-1] : &:r1358_1, ~m? +# 1358| mu1358_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1358_1 +# 1358| r1358_7(bool) = Constant[0] : +# 1358| v1358_8(void) = ConditionalBranch : r1358_7 +#-----| False -> Block 448 +#-----| True (back edge) -> Block 447 + +# 1360| Block 448 +# 1360| r1360_1(glval) = VariableAddress[x447] : +# 1360| mu1360_2(String) = Uninitialized[x447] : &:r1360_1 +# 1360| r1360_3(glval) = FunctionAddress[String] : +# 1360| v1360_4(void) = Call[String] : func:r1360_3, this:r1360_1 +# 1360| mu1360_5(unknown) = ^CallSideEffect : ~m? +# 1360| mu1360_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1360_1 +# 1361| r1361_1(glval) = VariableAddress[x447] : +# 1361| r1361_2(glval) = FunctionAddress[~String] : +# 1361| v1361_3(void) = Call[~String] : func:r1361_2, this:r1361_1 +# 1361| mu1361_4(unknown) = ^CallSideEffect : ~m? +# 1361| v1361_5(void) = ^IndirectReadSideEffect[-1] : &:r1361_1, ~m? +# 1361| mu1361_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1361_1 +# 1361| r1361_7(bool) = Constant[0] : +# 1361| v1361_8(void) = ConditionalBranch : r1361_7 +#-----| False -> Block 449 +#-----| True (back edge) -> Block 448 + +# 1363| Block 449 +# 1363| r1363_1(glval) = VariableAddress[x448] : +# 1363| mu1363_2(String) = Uninitialized[x448] : &:r1363_1 +# 1363| r1363_3(glval) = FunctionAddress[String] : +# 1363| v1363_4(void) = Call[String] : func:r1363_3, this:r1363_1 +# 1363| mu1363_5(unknown) = ^CallSideEffect : ~m? +# 1363| mu1363_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1363_1 +# 1364| r1364_1(glval) = VariableAddress[x448] : +# 1364| r1364_2(glval) = FunctionAddress[~String] : +# 1364| v1364_3(void) = Call[~String] : func:r1364_2, this:r1364_1 +# 1364| mu1364_4(unknown) = ^CallSideEffect : ~m? +# 1364| v1364_5(void) = ^IndirectReadSideEffect[-1] : &:r1364_1, ~m? +# 1364| mu1364_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1364_1 +# 1364| r1364_7(bool) = Constant[0] : +# 1364| v1364_8(void) = ConditionalBranch : r1364_7 +#-----| False -> Block 450 +#-----| True (back edge) -> Block 449 + +# 1366| Block 450 +# 1366| r1366_1(glval) = VariableAddress[x449] : +# 1366| mu1366_2(String) = Uninitialized[x449] : &:r1366_1 +# 1366| r1366_3(glval) = FunctionAddress[String] : +# 1366| v1366_4(void) = Call[String] : func:r1366_3, this:r1366_1 +# 1366| mu1366_5(unknown) = ^CallSideEffect : ~m? +# 1366| mu1366_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1366_1 +# 1367| r1367_1(glval) = VariableAddress[x449] : +# 1367| r1367_2(glval) = FunctionAddress[~String] : +# 1367| v1367_3(void) = Call[~String] : func:r1367_2, this:r1367_1 +# 1367| mu1367_4(unknown) = ^CallSideEffect : ~m? +# 1367| v1367_5(void) = ^IndirectReadSideEffect[-1] : &:r1367_1, ~m? +# 1367| mu1367_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1367_1 +# 1367| r1367_7(bool) = Constant[0] : +# 1367| v1367_8(void) = ConditionalBranch : r1367_7 +#-----| False -> Block 451 +#-----| True (back edge) -> Block 450 + +# 1369| Block 451 +# 1369| r1369_1(glval) = VariableAddress[x450] : +# 1369| mu1369_2(String) = Uninitialized[x450] : &:r1369_1 +# 1369| r1369_3(glval) = FunctionAddress[String] : +# 1369| v1369_4(void) = Call[String] : func:r1369_3, this:r1369_1 +# 1369| mu1369_5(unknown) = ^CallSideEffect : ~m? +# 1369| mu1369_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1369_1 +# 1370| r1370_1(glval) = VariableAddress[x450] : +# 1370| r1370_2(glval) = FunctionAddress[~String] : +# 1370| v1370_3(void) = Call[~String] : func:r1370_2, this:r1370_1 +# 1370| mu1370_4(unknown) = ^CallSideEffect : ~m? +# 1370| v1370_5(void) = ^IndirectReadSideEffect[-1] : &:r1370_1, ~m? +# 1370| mu1370_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1370_1 +# 1370| r1370_7(bool) = Constant[0] : +# 1370| v1370_8(void) = ConditionalBranch : r1370_7 +#-----| False -> Block 452 +#-----| True (back edge) -> Block 451 + +# 1372| Block 452 +# 1372| r1372_1(glval) = VariableAddress[x451] : +# 1372| mu1372_2(String) = Uninitialized[x451] : &:r1372_1 +# 1372| r1372_3(glval) = FunctionAddress[String] : +# 1372| v1372_4(void) = Call[String] : func:r1372_3, this:r1372_1 +# 1372| mu1372_5(unknown) = ^CallSideEffect : ~m? +# 1372| mu1372_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1372_1 +# 1373| r1373_1(glval) = VariableAddress[x451] : +# 1373| r1373_2(glval) = FunctionAddress[~String] : +# 1373| v1373_3(void) = Call[~String] : func:r1373_2, this:r1373_1 +# 1373| mu1373_4(unknown) = ^CallSideEffect : ~m? +# 1373| v1373_5(void) = ^IndirectReadSideEffect[-1] : &:r1373_1, ~m? +# 1373| mu1373_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1373_1 +# 1373| r1373_7(bool) = Constant[0] : +# 1373| v1373_8(void) = ConditionalBranch : r1373_7 +#-----| False -> Block 453 +#-----| True (back edge) -> Block 452 + +# 1375| Block 453 +# 1375| r1375_1(glval) = VariableAddress[x452] : +# 1375| mu1375_2(String) = Uninitialized[x452] : &:r1375_1 +# 1375| r1375_3(glval) = FunctionAddress[String] : +# 1375| v1375_4(void) = Call[String] : func:r1375_3, this:r1375_1 +# 1375| mu1375_5(unknown) = ^CallSideEffect : ~m? +# 1375| mu1375_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1375_1 +# 1376| r1376_1(glval) = VariableAddress[x452] : +# 1376| r1376_2(glval) = FunctionAddress[~String] : +# 1376| v1376_3(void) = Call[~String] : func:r1376_2, this:r1376_1 +# 1376| mu1376_4(unknown) = ^CallSideEffect : ~m? +# 1376| v1376_5(void) = ^IndirectReadSideEffect[-1] : &:r1376_1, ~m? +# 1376| mu1376_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1376_1 +# 1376| r1376_7(bool) = Constant[0] : +# 1376| v1376_8(void) = ConditionalBranch : r1376_7 +#-----| False -> Block 454 +#-----| True (back edge) -> Block 453 + +# 1378| Block 454 +# 1378| r1378_1(glval) = VariableAddress[x453] : +# 1378| mu1378_2(String) = Uninitialized[x453] : &:r1378_1 +# 1378| r1378_3(glval) = FunctionAddress[String] : +# 1378| v1378_4(void) = Call[String] : func:r1378_3, this:r1378_1 +# 1378| mu1378_5(unknown) = ^CallSideEffect : ~m? +# 1378| mu1378_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1378_1 +# 1379| r1379_1(glval) = VariableAddress[x453] : +# 1379| r1379_2(glval) = FunctionAddress[~String] : +# 1379| v1379_3(void) = Call[~String] : func:r1379_2, this:r1379_1 +# 1379| mu1379_4(unknown) = ^CallSideEffect : ~m? +# 1379| v1379_5(void) = ^IndirectReadSideEffect[-1] : &:r1379_1, ~m? +# 1379| mu1379_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1379_1 +# 1379| r1379_7(bool) = Constant[0] : +# 1379| v1379_8(void) = ConditionalBranch : r1379_7 +#-----| False -> Block 455 +#-----| True (back edge) -> Block 454 + +# 1381| Block 455 +# 1381| r1381_1(glval) = VariableAddress[x454] : +# 1381| mu1381_2(String) = Uninitialized[x454] : &:r1381_1 +# 1381| r1381_3(glval) = FunctionAddress[String] : +# 1381| v1381_4(void) = Call[String] : func:r1381_3, this:r1381_1 +# 1381| mu1381_5(unknown) = ^CallSideEffect : ~m? +# 1381| mu1381_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1381_1 +# 1382| r1382_1(glval) = VariableAddress[x454] : +# 1382| r1382_2(glval) = FunctionAddress[~String] : +# 1382| v1382_3(void) = Call[~String] : func:r1382_2, this:r1382_1 +# 1382| mu1382_4(unknown) = ^CallSideEffect : ~m? +# 1382| v1382_5(void) = ^IndirectReadSideEffect[-1] : &:r1382_1, ~m? +# 1382| mu1382_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1382_1 +# 1382| r1382_7(bool) = Constant[0] : +# 1382| v1382_8(void) = ConditionalBranch : r1382_7 +#-----| False -> Block 456 +#-----| True (back edge) -> Block 455 + +# 1384| Block 456 +# 1384| r1384_1(glval) = VariableAddress[x455] : +# 1384| mu1384_2(String) = Uninitialized[x455] : &:r1384_1 +# 1384| r1384_3(glval) = FunctionAddress[String] : +# 1384| v1384_4(void) = Call[String] : func:r1384_3, this:r1384_1 +# 1384| mu1384_5(unknown) = ^CallSideEffect : ~m? +# 1384| mu1384_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1384_1 +# 1385| r1385_1(glval) = VariableAddress[x455] : +# 1385| r1385_2(glval) = FunctionAddress[~String] : +# 1385| v1385_3(void) = Call[~String] : func:r1385_2, this:r1385_1 +# 1385| mu1385_4(unknown) = ^CallSideEffect : ~m? +# 1385| v1385_5(void) = ^IndirectReadSideEffect[-1] : &:r1385_1, ~m? +# 1385| mu1385_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1385_1 +# 1385| r1385_7(bool) = Constant[0] : +# 1385| v1385_8(void) = ConditionalBranch : r1385_7 +#-----| False -> Block 457 +#-----| True (back edge) -> Block 456 + +# 1387| Block 457 +# 1387| r1387_1(glval) = VariableAddress[x456] : +# 1387| mu1387_2(String) = Uninitialized[x456] : &:r1387_1 +# 1387| r1387_3(glval) = FunctionAddress[String] : +# 1387| v1387_4(void) = Call[String] : func:r1387_3, this:r1387_1 +# 1387| mu1387_5(unknown) = ^CallSideEffect : ~m? +# 1387| mu1387_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1387_1 +# 1388| r1388_1(glval) = VariableAddress[x456] : +# 1388| r1388_2(glval) = FunctionAddress[~String] : +# 1388| v1388_3(void) = Call[~String] : func:r1388_2, this:r1388_1 +# 1388| mu1388_4(unknown) = ^CallSideEffect : ~m? +# 1388| v1388_5(void) = ^IndirectReadSideEffect[-1] : &:r1388_1, ~m? +# 1388| mu1388_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1388_1 +# 1388| r1388_7(bool) = Constant[0] : +# 1388| v1388_8(void) = ConditionalBranch : r1388_7 +#-----| False -> Block 458 +#-----| True (back edge) -> Block 457 + +# 1390| Block 458 +# 1390| r1390_1(glval) = VariableAddress[x457] : +# 1390| mu1390_2(String) = Uninitialized[x457] : &:r1390_1 +# 1390| r1390_3(glval) = FunctionAddress[String] : +# 1390| v1390_4(void) = Call[String] : func:r1390_3, this:r1390_1 +# 1390| mu1390_5(unknown) = ^CallSideEffect : ~m? +# 1390| mu1390_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1390_1 +# 1391| r1391_1(glval) = VariableAddress[x457] : +# 1391| r1391_2(glval) = FunctionAddress[~String] : +# 1391| v1391_3(void) = Call[~String] : func:r1391_2, this:r1391_1 +# 1391| mu1391_4(unknown) = ^CallSideEffect : ~m? +# 1391| v1391_5(void) = ^IndirectReadSideEffect[-1] : &:r1391_1, ~m? +# 1391| mu1391_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1391_1 +# 1391| r1391_7(bool) = Constant[0] : +# 1391| v1391_8(void) = ConditionalBranch : r1391_7 +#-----| False -> Block 459 +#-----| True (back edge) -> Block 458 + +# 1393| Block 459 +# 1393| r1393_1(glval) = VariableAddress[x458] : +# 1393| mu1393_2(String) = Uninitialized[x458] : &:r1393_1 +# 1393| r1393_3(glval) = FunctionAddress[String] : +# 1393| v1393_4(void) = Call[String] : func:r1393_3, this:r1393_1 +# 1393| mu1393_5(unknown) = ^CallSideEffect : ~m? +# 1393| mu1393_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1393_1 +# 1394| r1394_1(glval) = VariableAddress[x458] : +# 1394| r1394_2(glval) = FunctionAddress[~String] : +# 1394| v1394_3(void) = Call[~String] : func:r1394_2, this:r1394_1 +# 1394| mu1394_4(unknown) = ^CallSideEffect : ~m? +# 1394| v1394_5(void) = ^IndirectReadSideEffect[-1] : &:r1394_1, ~m? +# 1394| mu1394_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1394_1 +# 1394| r1394_7(bool) = Constant[0] : +# 1394| v1394_8(void) = ConditionalBranch : r1394_7 +#-----| False -> Block 460 +#-----| True (back edge) -> Block 459 + +# 1396| Block 460 +# 1396| r1396_1(glval) = VariableAddress[x459] : +# 1396| mu1396_2(String) = Uninitialized[x459] : &:r1396_1 +# 1396| r1396_3(glval) = FunctionAddress[String] : +# 1396| v1396_4(void) = Call[String] : func:r1396_3, this:r1396_1 +# 1396| mu1396_5(unknown) = ^CallSideEffect : ~m? +# 1396| mu1396_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1396_1 +# 1397| r1397_1(glval) = VariableAddress[x459] : +# 1397| r1397_2(glval) = FunctionAddress[~String] : +# 1397| v1397_3(void) = Call[~String] : func:r1397_2, this:r1397_1 +# 1397| mu1397_4(unknown) = ^CallSideEffect : ~m? +# 1397| v1397_5(void) = ^IndirectReadSideEffect[-1] : &:r1397_1, ~m? +# 1397| mu1397_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1397_1 +# 1397| r1397_7(bool) = Constant[0] : +# 1397| v1397_8(void) = ConditionalBranch : r1397_7 +#-----| False -> Block 461 +#-----| True (back edge) -> Block 460 + +# 1399| Block 461 +# 1399| r1399_1(glval) = VariableAddress[x460] : +# 1399| mu1399_2(String) = Uninitialized[x460] : &:r1399_1 +# 1399| r1399_3(glval) = FunctionAddress[String] : +# 1399| v1399_4(void) = Call[String] : func:r1399_3, this:r1399_1 +# 1399| mu1399_5(unknown) = ^CallSideEffect : ~m? +# 1399| mu1399_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1399_1 +# 1400| r1400_1(glval) = VariableAddress[x460] : +# 1400| r1400_2(glval) = FunctionAddress[~String] : +# 1400| v1400_3(void) = Call[~String] : func:r1400_2, this:r1400_1 +# 1400| mu1400_4(unknown) = ^CallSideEffect : ~m? +# 1400| v1400_5(void) = ^IndirectReadSideEffect[-1] : &:r1400_1, ~m? +# 1400| mu1400_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1400_1 +# 1400| r1400_7(bool) = Constant[0] : +# 1400| v1400_8(void) = ConditionalBranch : r1400_7 +#-----| False -> Block 462 +#-----| True (back edge) -> Block 461 + +# 1402| Block 462 +# 1402| r1402_1(glval) = VariableAddress[x461] : +# 1402| mu1402_2(String) = Uninitialized[x461] : &:r1402_1 +# 1402| r1402_3(glval) = FunctionAddress[String] : +# 1402| v1402_4(void) = Call[String] : func:r1402_3, this:r1402_1 +# 1402| mu1402_5(unknown) = ^CallSideEffect : ~m? +# 1402| mu1402_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1402_1 +# 1403| r1403_1(glval) = VariableAddress[x461] : +# 1403| r1403_2(glval) = FunctionAddress[~String] : +# 1403| v1403_3(void) = Call[~String] : func:r1403_2, this:r1403_1 +# 1403| mu1403_4(unknown) = ^CallSideEffect : ~m? +# 1403| v1403_5(void) = ^IndirectReadSideEffect[-1] : &:r1403_1, ~m? +# 1403| mu1403_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1403_1 +# 1403| r1403_7(bool) = Constant[0] : +# 1403| v1403_8(void) = ConditionalBranch : r1403_7 +#-----| False -> Block 463 +#-----| True (back edge) -> Block 462 + +# 1405| Block 463 +# 1405| r1405_1(glval) = VariableAddress[x462] : +# 1405| mu1405_2(String) = Uninitialized[x462] : &:r1405_1 +# 1405| r1405_3(glval) = FunctionAddress[String] : +# 1405| v1405_4(void) = Call[String] : func:r1405_3, this:r1405_1 +# 1405| mu1405_5(unknown) = ^CallSideEffect : ~m? +# 1405| mu1405_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1405_1 +# 1406| r1406_1(glval) = VariableAddress[x462] : +# 1406| r1406_2(glval) = FunctionAddress[~String] : +# 1406| v1406_3(void) = Call[~String] : func:r1406_2, this:r1406_1 +# 1406| mu1406_4(unknown) = ^CallSideEffect : ~m? +# 1406| v1406_5(void) = ^IndirectReadSideEffect[-1] : &:r1406_1, ~m? +# 1406| mu1406_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1406_1 +# 1406| r1406_7(bool) = Constant[0] : +# 1406| v1406_8(void) = ConditionalBranch : r1406_7 +#-----| False -> Block 464 +#-----| True (back edge) -> Block 463 + +# 1408| Block 464 +# 1408| r1408_1(glval) = VariableAddress[x463] : +# 1408| mu1408_2(String) = Uninitialized[x463] : &:r1408_1 +# 1408| r1408_3(glval) = FunctionAddress[String] : +# 1408| v1408_4(void) = Call[String] : func:r1408_3, this:r1408_1 +# 1408| mu1408_5(unknown) = ^CallSideEffect : ~m? +# 1408| mu1408_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1408_1 +# 1409| r1409_1(glval) = VariableAddress[x463] : +# 1409| r1409_2(glval) = FunctionAddress[~String] : +# 1409| v1409_3(void) = Call[~String] : func:r1409_2, this:r1409_1 +# 1409| mu1409_4(unknown) = ^CallSideEffect : ~m? +# 1409| v1409_5(void) = ^IndirectReadSideEffect[-1] : &:r1409_1, ~m? +# 1409| mu1409_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1409_1 +# 1409| r1409_7(bool) = Constant[0] : +# 1409| v1409_8(void) = ConditionalBranch : r1409_7 +#-----| False -> Block 465 +#-----| True (back edge) -> Block 464 + +# 1411| Block 465 +# 1411| r1411_1(glval) = VariableAddress[x464] : +# 1411| mu1411_2(String) = Uninitialized[x464] : &:r1411_1 +# 1411| r1411_3(glval) = FunctionAddress[String] : +# 1411| v1411_4(void) = Call[String] : func:r1411_3, this:r1411_1 +# 1411| mu1411_5(unknown) = ^CallSideEffect : ~m? +# 1411| mu1411_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1411_1 +# 1412| r1412_1(glval) = VariableAddress[x464] : +# 1412| r1412_2(glval) = FunctionAddress[~String] : +# 1412| v1412_3(void) = Call[~String] : func:r1412_2, this:r1412_1 +# 1412| mu1412_4(unknown) = ^CallSideEffect : ~m? +# 1412| v1412_5(void) = ^IndirectReadSideEffect[-1] : &:r1412_1, ~m? +# 1412| mu1412_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1412_1 +# 1412| r1412_7(bool) = Constant[0] : +# 1412| v1412_8(void) = ConditionalBranch : r1412_7 +#-----| False -> Block 466 +#-----| True (back edge) -> Block 465 + +# 1414| Block 466 +# 1414| r1414_1(glval) = VariableAddress[x465] : +# 1414| mu1414_2(String) = Uninitialized[x465] : &:r1414_1 +# 1414| r1414_3(glval) = FunctionAddress[String] : +# 1414| v1414_4(void) = Call[String] : func:r1414_3, this:r1414_1 +# 1414| mu1414_5(unknown) = ^CallSideEffect : ~m? +# 1414| mu1414_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1414_1 +# 1415| r1415_1(glval) = VariableAddress[x465] : +# 1415| r1415_2(glval) = FunctionAddress[~String] : +# 1415| v1415_3(void) = Call[~String] : func:r1415_2, this:r1415_1 +# 1415| mu1415_4(unknown) = ^CallSideEffect : ~m? +# 1415| v1415_5(void) = ^IndirectReadSideEffect[-1] : &:r1415_1, ~m? +# 1415| mu1415_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1415_1 +# 1415| r1415_7(bool) = Constant[0] : +# 1415| v1415_8(void) = ConditionalBranch : r1415_7 +#-----| False -> Block 467 +#-----| True (back edge) -> Block 466 + +# 1417| Block 467 +# 1417| r1417_1(glval) = VariableAddress[x466] : +# 1417| mu1417_2(String) = Uninitialized[x466] : &:r1417_1 +# 1417| r1417_3(glval) = FunctionAddress[String] : +# 1417| v1417_4(void) = Call[String] : func:r1417_3, this:r1417_1 +# 1417| mu1417_5(unknown) = ^CallSideEffect : ~m? +# 1417| mu1417_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1417_1 +# 1418| r1418_1(glval) = VariableAddress[x466] : +# 1418| r1418_2(glval) = FunctionAddress[~String] : +# 1418| v1418_3(void) = Call[~String] : func:r1418_2, this:r1418_1 +# 1418| mu1418_4(unknown) = ^CallSideEffect : ~m? +# 1418| v1418_5(void) = ^IndirectReadSideEffect[-1] : &:r1418_1, ~m? +# 1418| mu1418_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1418_1 +# 1418| r1418_7(bool) = Constant[0] : +# 1418| v1418_8(void) = ConditionalBranch : r1418_7 +#-----| False -> Block 468 +#-----| True (back edge) -> Block 467 + +# 1420| Block 468 +# 1420| r1420_1(glval) = VariableAddress[x467] : +# 1420| mu1420_2(String) = Uninitialized[x467] : &:r1420_1 +# 1420| r1420_3(glval) = FunctionAddress[String] : +# 1420| v1420_4(void) = Call[String] : func:r1420_3, this:r1420_1 +# 1420| mu1420_5(unknown) = ^CallSideEffect : ~m? +# 1420| mu1420_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1420_1 +# 1421| r1421_1(glval) = VariableAddress[x467] : +# 1421| r1421_2(glval) = FunctionAddress[~String] : +# 1421| v1421_3(void) = Call[~String] : func:r1421_2, this:r1421_1 +# 1421| mu1421_4(unknown) = ^CallSideEffect : ~m? +# 1421| v1421_5(void) = ^IndirectReadSideEffect[-1] : &:r1421_1, ~m? +# 1421| mu1421_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1421_1 +# 1421| r1421_7(bool) = Constant[0] : +# 1421| v1421_8(void) = ConditionalBranch : r1421_7 +#-----| False -> Block 469 +#-----| True (back edge) -> Block 468 + +# 1423| Block 469 +# 1423| r1423_1(glval) = VariableAddress[x468] : +# 1423| mu1423_2(String) = Uninitialized[x468] : &:r1423_1 +# 1423| r1423_3(glval) = FunctionAddress[String] : +# 1423| v1423_4(void) = Call[String] : func:r1423_3, this:r1423_1 +# 1423| mu1423_5(unknown) = ^CallSideEffect : ~m? +# 1423| mu1423_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1423_1 +# 1424| r1424_1(glval) = VariableAddress[x468] : +# 1424| r1424_2(glval) = FunctionAddress[~String] : +# 1424| v1424_3(void) = Call[~String] : func:r1424_2, this:r1424_1 +# 1424| mu1424_4(unknown) = ^CallSideEffect : ~m? +# 1424| v1424_5(void) = ^IndirectReadSideEffect[-1] : &:r1424_1, ~m? +# 1424| mu1424_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1424_1 +# 1424| r1424_7(bool) = Constant[0] : +# 1424| v1424_8(void) = ConditionalBranch : r1424_7 +#-----| False -> Block 470 +#-----| True (back edge) -> Block 469 + +# 1426| Block 470 +# 1426| r1426_1(glval) = VariableAddress[x469] : +# 1426| mu1426_2(String) = Uninitialized[x469] : &:r1426_1 +# 1426| r1426_3(glval) = FunctionAddress[String] : +# 1426| v1426_4(void) = Call[String] : func:r1426_3, this:r1426_1 +# 1426| mu1426_5(unknown) = ^CallSideEffect : ~m? +# 1426| mu1426_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1426_1 +# 1427| r1427_1(glval) = VariableAddress[x469] : +# 1427| r1427_2(glval) = FunctionAddress[~String] : +# 1427| v1427_3(void) = Call[~String] : func:r1427_2, this:r1427_1 +# 1427| mu1427_4(unknown) = ^CallSideEffect : ~m? +# 1427| v1427_5(void) = ^IndirectReadSideEffect[-1] : &:r1427_1, ~m? +# 1427| mu1427_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1427_1 +# 1427| r1427_7(bool) = Constant[0] : +# 1427| v1427_8(void) = ConditionalBranch : r1427_7 +#-----| False -> Block 471 +#-----| True (back edge) -> Block 470 + +# 1429| Block 471 +# 1429| r1429_1(glval) = VariableAddress[x470] : +# 1429| mu1429_2(String) = Uninitialized[x470] : &:r1429_1 +# 1429| r1429_3(glval) = FunctionAddress[String] : +# 1429| v1429_4(void) = Call[String] : func:r1429_3, this:r1429_1 +# 1429| mu1429_5(unknown) = ^CallSideEffect : ~m? +# 1429| mu1429_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1429_1 +# 1430| r1430_1(glval) = VariableAddress[x470] : +# 1430| r1430_2(glval) = FunctionAddress[~String] : +# 1430| v1430_3(void) = Call[~String] : func:r1430_2, this:r1430_1 +# 1430| mu1430_4(unknown) = ^CallSideEffect : ~m? +# 1430| v1430_5(void) = ^IndirectReadSideEffect[-1] : &:r1430_1, ~m? +# 1430| mu1430_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1430_1 +# 1430| r1430_7(bool) = Constant[0] : +# 1430| v1430_8(void) = ConditionalBranch : r1430_7 +#-----| False -> Block 472 +#-----| True (back edge) -> Block 471 + +# 1432| Block 472 +# 1432| r1432_1(glval) = VariableAddress[x471] : +# 1432| mu1432_2(String) = Uninitialized[x471] : &:r1432_1 +# 1432| r1432_3(glval) = FunctionAddress[String] : +# 1432| v1432_4(void) = Call[String] : func:r1432_3, this:r1432_1 +# 1432| mu1432_5(unknown) = ^CallSideEffect : ~m? +# 1432| mu1432_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1432_1 +# 1433| r1433_1(glval) = VariableAddress[x471] : +# 1433| r1433_2(glval) = FunctionAddress[~String] : +# 1433| v1433_3(void) = Call[~String] : func:r1433_2, this:r1433_1 +# 1433| mu1433_4(unknown) = ^CallSideEffect : ~m? +# 1433| v1433_5(void) = ^IndirectReadSideEffect[-1] : &:r1433_1, ~m? +# 1433| mu1433_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1433_1 +# 1433| r1433_7(bool) = Constant[0] : +# 1433| v1433_8(void) = ConditionalBranch : r1433_7 +#-----| False -> Block 473 +#-----| True (back edge) -> Block 472 + +# 1435| Block 473 +# 1435| r1435_1(glval) = VariableAddress[x472] : +# 1435| mu1435_2(String) = Uninitialized[x472] : &:r1435_1 +# 1435| r1435_3(glval) = FunctionAddress[String] : +# 1435| v1435_4(void) = Call[String] : func:r1435_3, this:r1435_1 +# 1435| mu1435_5(unknown) = ^CallSideEffect : ~m? +# 1435| mu1435_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1435_1 +# 1436| r1436_1(glval) = VariableAddress[x472] : +# 1436| r1436_2(glval) = FunctionAddress[~String] : +# 1436| v1436_3(void) = Call[~String] : func:r1436_2, this:r1436_1 +# 1436| mu1436_4(unknown) = ^CallSideEffect : ~m? +# 1436| v1436_5(void) = ^IndirectReadSideEffect[-1] : &:r1436_1, ~m? +# 1436| mu1436_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1436_1 +# 1436| r1436_7(bool) = Constant[0] : +# 1436| v1436_8(void) = ConditionalBranch : r1436_7 +#-----| False -> Block 474 +#-----| True (back edge) -> Block 473 + +# 1438| Block 474 +# 1438| r1438_1(glval) = VariableAddress[x473] : +# 1438| mu1438_2(String) = Uninitialized[x473] : &:r1438_1 +# 1438| r1438_3(glval) = FunctionAddress[String] : +# 1438| v1438_4(void) = Call[String] : func:r1438_3, this:r1438_1 +# 1438| mu1438_5(unknown) = ^CallSideEffect : ~m? +# 1438| mu1438_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1438_1 +# 1439| r1439_1(glval) = VariableAddress[x473] : +# 1439| r1439_2(glval) = FunctionAddress[~String] : +# 1439| v1439_3(void) = Call[~String] : func:r1439_2, this:r1439_1 +# 1439| mu1439_4(unknown) = ^CallSideEffect : ~m? +# 1439| v1439_5(void) = ^IndirectReadSideEffect[-1] : &:r1439_1, ~m? +# 1439| mu1439_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1439_1 +# 1439| r1439_7(bool) = Constant[0] : +# 1439| v1439_8(void) = ConditionalBranch : r1439_7 +#-----| False -> Block 475 +#-----| True (back edge) -> Block 474 + +# 1441| Block 475 +# 1441| r1441_1(glval) = VariableAddress[x474] : +# 1441| mu1441_2(String) = Uninitialized[x474] : &:r1441_1 +# 1441| r1441_3(glval) = FunctionAddress[String] : +# 1441| v1441_4(void) = Call[String] : func:r1441_3, this:r1441_1 +# 1441| mu1441_5(unknown) = ^CallSideEffect : ~m? +# 1441| mu1441_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1441_1 +# 1442| r1442_1(glval) = VariableAddress[x474] : +# 1442| r1442_2(glval) = FunctionAddress[~String] : +# 1442| v1442_3(void) = Call[~String] : func:r1442_2, this:r1442_1 +# 1442| mu1442_4(unknown) = ^CallSideEffect : ~m? +# 1442| v1442_5(void) = ^IndirectReadSideEffect[-1] : &:r1442_1, ~m? +# 1442| mu1442_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1442_1 +# 1442| r1442_7(bool) = Constant[0] : +# 1442| v1442_8(void) = ConditionalBranch : r1442_7 +#-----| False -> Block 476 +#-----| True (back edge) -> Block 475 + +# 1444| Block 476 +# 1444| r1444_1(glval) = VariableAddress[x475] : +# 1444| mu1444_2(String) = Uninitialized[x475] : &:r1444_1 +# 1444| r1444_3(glval) = FunctionAddress[String] : +# 1444| v1444_4(void) = Call[String] : func:r1444_3, this:r1444_1 +# 1444| mu1444_5(unknown) = ^CallSideEffect : ~m? +# 1444| mu1444_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1444_1 +# 1445| r1445_1(glval) = VariableAddress[x475] : +# 1445| r1445_2(glval) = FunctionAddress[~String] : +# 1445| v1445_3(void) = Call[~String] : func:r1445_2, this:r1445_1 +# 1445| mu1445_4(unknown) = ^CallSideEffect : ~m? +# 1445| v1445_5(void) = ^IndirectReadSideEffect[-1] : &:r1445_1, ~m? +# 1445| mu1445_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1445_1 +# 1445| r1445_7(bool) = Constant[0] : +# 1445| v1445_8(void) = ConditionalBranch : r1445_7 +#-----| False -> Block 477 +#-----| True (back edge) -> Block 476 + +# 1447| Block 477 +# 1447| r1447_1(glval) = VariableAddress[x476] : +# 1447| mu1447_2(String) = Uninitialized[x476] : &:r1447_1 +# 1447| r1447_3(glval) = FunctionAddress[String] : +# 1447| v1447_4(void) = Call[String] : func:r1447_3, this:r1447_1 +# 1447| mu1447_5(unknown) = ^CallSideEffect : ~m? +# 1447| mu1447_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1447_1 +# 1448| r1448_1(glval) = VariableAddress[x476] : +# 1448| r1448_2(glval) = FunctionAddress[~String] : +# 1448| v1448_3(void) = Call[~String] : func:r1448_2, this:r1448_1 +# 1448| mu1448_4(unknown) = ^CallSideEffect : ~m? +# 1448| v1448_5(void) = ^IndirectReadSideEffect[-1] : &:r1448_1, ~m? +# 1448| mu1448_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1448_1 +# 1448| r1448_7(bool) = Constant[0] : +# 1448| v1448_8(void) = ConditionalBranch : r1448_7 +#-----| False -> Block 478 +#-----| True (back edge) -> Block 477 + +# 1450| Block 478 +# 1450| r1450_1(glval) = VariableAddress[x477] : +# 1450| mu1450_2(String) = Uninitialized[x477] : &:r1450_1 +# 1450| r1450_3(glval) = FunctionAddress[String] : +# 1450| v1450_4(void) = Call[String] : func:r1450_3, this:r1450_1 +# 1450| mu1450_5(unknown) = ^CallSideEffect : ~m? +# 1450| mu1450_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1450_1 +# 1451| r1451_1(glval) = VariableAddress[x477] : +# 1451| r1451_2(glval) = FunctionAddress[~String] : +# 1451| v1451_3(void) = Call[~String] : func:r1451_2, this:r1451_1 +# 1451| mu1451_4(unknown) = ^CallSideEffect : ~m? +# 1451| v1451_5(void) = ^IndirectReadSideEffect[-1] : &:r1451_1, ~m? +# 1451| mu1451_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1451_1 +# 1451| r1451_7(bool) = Constant[0] : +# 1451| v1451_8(void) = ConditionalBranch : r1451_7 +#-----| False -> Block 479 +#-----| True (back edge) -> Block 478 + +# 1453| Block 479 +# 1453| r1453_1(glval) = VariableAddress[x478] : +# 1453| mu1453_2(String) = Uninitialized[x478] : &:r1453_1 +# 1453| r1453_3(glval) = FunctionAddress[String] : +# 1453| v1453_4(void) = Call[String] : func:r1453_3, this:r1453_1 +# 1453| mu1453_5(unknown) = ^CallSideEffect : ~m? +# 1453| mu1453_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1453_1 +# 1454| r1454_1(glval) = VariableAddress[x478] : +# 1454| r1454_2(glval) = FunctionAddress[~String] : +# 1454| v1454_3(void) = Call[~String] : func:r1454_2, this:r1454_1 +# 1454| mu1454_4(unknown) = ^CallSideEffect : ~m? +# 1454| v1454_5(void) = ^IndirectReadSideEffect[-1] : &:r1454_1, ~m? +# 1454| mu1454_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1454_1 +# 1454| r1454_7(bool) = Constant[0] : +# 1454| v1454_8(void) = ConditionalBranch : r1454_7 +#-----| False -> Block 480 +#-----| True (back edge) -> Block 479 + +# 1456| Block 480 +# 1456| r1456_1(glval) = VariableAddress[x479] : +# 1456| mu1456_2(String) = Uninitialized[x479] : &:r1456_1 +# 1456| r1456_3(glval) = FunctionAddress[String] : +# 1456| v1456_4(void) = Call[String] : func:r1456_3, this:r1456_1 +# 1456| mu1456_5(unknown) = ^CallSideEffect : ~m? +# 1456| mu1456_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1456_1 +# 1457| r1457_1(glval) = VariableAddress[x479] : +# 1457| r1457_2(glval) = FunctionAddress[~String] : +# 1457| v1457_3(void) = Call[~String] : func:r1457_2, this:r1457_1 +# 1457| mu1457_4(unknown) = ^CallSideEffect : ~m? +# 1457| v1457_5(void) = ^IndirectReadSideEffect[-1] : &:r1457_1, ~m? +# 1457| mu1457_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1457_1 +# 1457| r1457_7(bool) = Constant[0] : +# 1457| v1457_8(void) = ConditionalBranch : r1457_7 +#-----| False -> Block 481 +#-----| True (back edge) -> Block 480 + +# 1459| Block 481 +# 1459| r1459_1(glval) = VariableAddress[x480] : +# 1459| mu1459_2(String) = Uninitialized[x480] : &:r1459_1 +# 1459| r1459_3(glval) = FunctionAddress[String] : +# 1459| v1459_4(void) = Call[String] : func:r1459_3, this:r1459_1 +# 1459| mu1459_5(unknown) = ^CallSideEffect : ~m? +# 1459| mu1459_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1459_1 +# 1460| r1460_1(glval) = VariableAddress[x480] : +# 1460| r1460_2(glval) = FunctionAddress[~String] : +# 1460| v1460_3(void) = Call[~String] : func:r1460_2, this:r1460_1 +# 1460| mu1460_4(unknown) = ^CallSideEffect : ~m? +# 1460| v1460_5(void) = ^IndirectReadSideEffect[-1] : &:r1460_1, ~m? +# 1460| mu1460_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1460_1 +# 1460| r1460_7(bool) = Constant[0] : +# 1460| v1460_8(void) = ConditionalBranch : r1460_7 +#-----| False -> Block 482 +#-----| True (back edge) -> Block 481 + +# 1462| Block 482 +# 1462| r1462_1(glval) = VariableAddress[x481] : +# 1462| mu1462_2(String) = Uninitialized[x481] : &:r1462_1 +# 1462| r1462_3(glval) = FunctionAddress[String] : +# 1462| v1462_4(void) = Call[String] : func:r1462_3, this:r1462_1 +# 1462| mu1462_5(unknown) = ^CallSideEffect : ~m? +# 1462| mu1462_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1462_1 +# 1463| r1463_1(glval) = VariableAddress[x481] : +# 1463| r1463_2(glval) = FunctionAddress[~String] : +# 1463| v1463_3(void) = Call[~String] : func:r1463_2, this:r1463_1 +# 1463| mu1463_4(unknown) = ^CallSideEffect : ~m? +# 1463| v1463_5(void) = ^IndirectReadSideEffect[-1] : &:r1463_1, ~m? +# 1463| mu1463_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1463_1 +# 1463| r1463_7(bool) = Constant[0] : +# 1463| v1463_8(void) = ConditionalBranch : r1463_7 +#-----| False -> Block 483 +#-----| True (back edge) -> Block 482 + +# 1465| Block 483 +# 1465| r1465_1(glval) = VariableAddress[x482] : +# 1465| mu1465_2(String) = Uninitialized[x482] : &:r1465_1 +# 1465| r1465_3(glval) = FunctionAddress[String] : +# 1465| v1465_4(void) = Call[String] : func:r1465_3, this:r1465_1 +# 1465| mu1465_5(unknown) = ^CallSideEffect : ~m? +# 1465| mu1465_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1465_1 +# 1466| r1466_1(glval) = VariableAddress[x482] : +# 1466| r1466_2(glval) = FunctionAddress[~String] : +# 1466| v1466_3(void) = Call[~String] : func:r1466_2, this:r1466_1 +# 1466| mu1466_4(unknown) = ^CallSideEffect : ~m? +# 1466| v1466_5(void) = ^IndirectReadSideEffect[-1] : &:r1466_1, ~m? +# 1466| mu1466_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1466_1 +# 1466| r1466_7(bool) = Constant[0] : +# 1466| v1466_8(void) = ConditionalBranch : r1466_7 +#-----| False -> Block 484 +#-----| True (back edge) -> Block 483 + +# 1468| Block 484 +# 1468| r1468_1(glval) = VariableAddress[x483] : +# 1468| mu1468_2(String) = Uninitialized[x483] : &:r1468_1 +# 1468| r1468_3(glval) = FunctionAddress[String] : +# 1468| v1468_4(void) = Call[String] : func:r1468_3, this:r1468_1 +# 1468| mu1468_5(unknown) = ^CallSideEffect : ~m? +# 1468| mu1468_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1468_1 +# 1469| r1469_1(glval) = VariableAddress[x483] : +# 1469| r1469_2(glval) = FunctionAddress[~String] : +# 1469| v1469_3(void) = Call[~String] : func:r1469_2, this:r1469_1 +# 1469| mu1469_4(unknown) = ^CallSideEffect : ~m? +# 1469| v1469_5(void) = ^IndirectReadSideEffect[-1] : &:r1469_1, ~m? +# 1469| mu1469_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1469_1 +# 1469| r1469_7(bool) = Constant[0] : +# 1469| v1469_8(void) = ConditionalBranch : r1469_7 +#-----| False -> Block 485 +#-----| True (back edge) -> Block 484 + +# 1471| Block 485 +# 1471| r1471_1(glval) = VariableAddress[x484] : +# 1471| mu1471_2(String) = Uninitialized[x484] : &:r1471_1 +# 1471| r1471_3(glval) = FunctionAddress[String] : +# 1471| v1471_4(void) = Call[String] : func:r1471_3, this:r1471_1 +# 1471| mu1471_5(unknown) = ^CallSideEffect : ~m? +# 1471| mu1471_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1471_1 +# 1472| r1472_1(glval) = VariableAddress[x484] : +# 1472| r1472_2(glval) = FunctionAddress[~String] : +# 1472| v1472_3(void) = Call[~String] : func:r1472_2, this:r1472_1 +# 1472| mu1472_4(unknown) = ^CallSideEffect : ~m? +# 1472| v1472_5(void) = ^IndirectReadSideEffect[-1] : &:r1472_1, ~m? +# 1472| mu1472_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1472_1 +# 1472| r1472_7(bool) = Constant[0] : +# 1472| v1472_8(void) = ConditionalBranch : r1472_7 +#-----| False -> Block 486 +#-----| True (back edge) -> Block 485 + +# 1474| Block 486 +# 1474| r1474_1(glval) = VariableAddress[x485] : +# 1474| mu1474_2(String) = Uninitialized[x485] : &:r1474_1 +# 1474| r1474_3(glval) = FunctionAddress[String] : +# 1474| v1474_4(void) = Call[String] : func:r1474_3, this:r1474_1 +# 1474| mu1474_5(unknown) = ^CallSideEffect : ~m? +# 1474| mu1474_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1474_1 +# 1475| r1475_1(glval) = VariableAddress[x485] : +# 1475| r1475_2(glval) = FunctionAddress[~String] : +# 1475| v1475_3(void) = Call[~String] : func:r1475_2, this:r1475_1 +# 1475| mu1475_4(unknown) = ^CallSideEffect : ~m? +# 1475| v1475_5(void) = ^IndirectReadSideEffect[-1] : &:r1475_1, ~m? +# 1475| mu1475_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1475_1 +# 1475| r1475_7(bool) = Constant[0] : +# 1475| v1475_8(void) = ConditionalBranch : r1475_7 +#-----| False -> Block 487 +#-----| True (back edge) -> Block 486 + +# 1477| Block 487 +# 1477| r1477_1(glval) = VariableAddress[x486] : +# 1477| mu1477_2(String) = Uninitialized[x486] : &:r1477_1 +# 1477| r1477_3(glval) = FunctionAddress[String] : +# 1477| v1477_4(void) = Call[String] : func:r1477_3, this:r1477_1 +# 1477| mu1477_5(unknown) = ^CallSideEffect : ~m? +# 1477| mu1477_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1477_1 +# 1478| r1478_1(glval) = VariableAddress[x486] : +# 1478| r1478_2(glval) = FunctionAddress[~String] : +# 1478| v1478_3(void) = Call[~String] : func:r1478_2, this:r1478_1 +# 1478| mu1478_4(unknown) = ^CallSideEffect : ~m? +# 1478| v1478_5(void) = ^IndirectReadSideEffect[-1] : &:r1478_1, ~m? +# 1478| mu1478_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1478_1 +# 1478| r1478_7(bool) = Constant[0] : +# 1478| v1478_8(void) = ConditionalBranch : r1478_7 +#-----| False -> Block 488 +#-----| True (back edge) -> Block 487 + +# 1480| Block 488 +# 1480| r1480_1(glval) = VariableAddress[x487] : +# 1480| mu1480_2(String) = Uninitialized[x487] : &:r1480_1 +# 1480| r1480_3(glval) = FunctionAddress[String] : +# 1480| v1480_4(void) = Call[String] : func:r1480_3, this:r1480_1 +# 1480| mu1480_5(unknown) = ^CallSideEffect : ~m? +# 1480| mu1480_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1480_1 +# 1481| r1481_1(glval) = VariableAddress[x487] : +# 1481| r1481_2(glval) = FunctionAddress[~String] : +# 1481| v1481_3(void) = Call[~String] : func:r1481_2, this:r1481_1 +# 1481| mu1481_4(unknown) = ^CallSideEffect : ~m? +# 1481| v1481_5(void) = ^IndirectReadSideEffect[-1] : &:r1481_1, ~m? +# 1481| mu1481_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1481_1 +# 1481| r1481_7(bool) = Constant[0] : +# 1481| v1481_8(void) = ConditionalBranch : r1481_7 +#-----| False -> Block 489 +#-----| True (back edge) -> Block 488 + +# 1483| Block 489 +# 1483| r1483_1(glval) = VariableAddress[x488] : +# 1483| mu1483_2(String) = Uninitialized[x488] : &:r1483_1 +# 1483| r1483_3(glval) = FunctionAddress[String] : +# 1483| v1483_4(void) = Call[String] : func:r1483_3, this:r1483_1 +# 1483| mu1483_5(unknown) = ^CallSideEffect : ~m? +# 1483| mu1483_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1483_1 +# 1484| r1484_1(glval) = VariableAddress[x488] : +# 1484| r1484_2(glval) = FunctionAddress[~String] : +# 1484| v1484_3(void) = Call[~String] : func:r1484_2, this:r1484_1 +# 1484| mu1484_4(unknown) = ^CallSideEffect : ~m? +# 1484| v1484_5(void) = ^IndirectReadSideEffect[-1] : &:r1484_1, ~m? +# 1484| mu1484_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1484_1 +# 1484| r1484_7(bool) = Constant[0] : +# 1484| v1484_8(void) = ConditionalBranch : r1484_7 +#-----| False -> Block 490 +#-----| True (back edge) -> Block 489 + +# 1486| Block 490 +# 1486| r1486_1(glval) = VariableAddress[x489] : +# 1486| mu1486_2(String) = Uninitialized[x489] : &:r1486_1 +# 1486| r1486_3(glval) = FunctionAddress[String] : +# 1486| v1486_4(void) = Call[String] : func:r1486_3, this:r1486_1 +# 1486| mu1486_5(unknown) = ^CallSideEffect : ~m? +# 1486| mu1486_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1486_1 +# 1487| r1487_1(glval) = VariableAddress[x489] : +# 1487| r1487_2(glval) = FunctionAddress[~String] : +# 1487| v1487_3(void) = Call[~String] : func:r1487_2, this:r1487_1 +# 1487| mu1487_4(unknown) = ^CallSideEffect : ~m? +# 1487| v1487_5(void) = ^IndirectReadSideEffect[-1] : &:r1487_1, ~m? +# 1487| mu1487_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1487_1 +# 1487| r1487_7(bool) = Constant[0] : +# 1487| v1487_8(void) = ConditionalBranch : r1487_7 +#-----| False -> Block 491 +#-----| True (back edge) -> Block 490 + +# 1489| Block 491 +# 1489| r1489_1(glval) = VariableAddress[x490] : +# 1489| mu1489_2(String) = Uninitialized[x490] : &:r1489_1 +# 1489| r1489_3(glval) = FunctionAddress[String] : +# 1489| v1489_4(void) = Call[String] : func:r1489_3, this:r1489_1 +# 1489| mu1489_5(unknown) = ^CallSideEffect : ~m? +# 1489| mu1489_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1489_1 +# 1490| r1490_1(glval) = VariableAddress[x490] : +# 1490| r1490_2(glval) = FunctionAddress[~String] : +# 1490| v1490_3(void) = Call[~String] : func:r1490_2, this:r1490_1 +# 1490| mu1490_4(unknown) = ^CallSideEffect : ~m? +# 1490| v1490_5(void) = ^IndirectReadSideEffect[-1] : &:r1490_1, ~m? +# 1490| mu1490_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1490_1 +# 1490| r1490_7(bool) = Constant[0] : +# 1490| v1490_8(void) = ConditionalBranch : r1490_7 +#-----| False -> Block 492 +#-----| True (back edge) -> Block 491 + +# 1492| Block 492 +# 1492| r1492_1(glval) = VariableAddress[x491] : +# 1492| mu1492_2(String) = Uninitialized[x491] : &:r1492_1 +# 1492| r1492_3(glval) = FunctionAddress[String] : +# 1492| v1492_4(void) = Call[String] : func:r1492_3, this:r1492_1 +# 1492| mu1492_5(unknown) = ^CallSideEffect : ~m? +# 1492| mu1492_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1492_1 +# 1493| r1493_1(glval) = VariableAddress[x491] : +# 1493| r1493_2(glval) = FunctionAddress[~String] : +# 1493| v1493_3(void) = Call[~String] : func:r1493_2, this:r1493_1 +# 1493| mu1493_4(unknown) = ^CallSideEffect : ~m? +# 1493| v1493_5(void) = ^IndirectReadSideEffect[-1] : &:r1493_1, ~m? +# 1493| mu1493_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1493_1 +# 1493| r1493_7(bool) = Constant[0] : +# 1493| v1493_8(void) = ConditionalBranch : r1493_7 +#-----| False -> Block 493 +#-----| True (back edge) -> Block 492 + +# 1495| Block 493 +# 1495| r1495_1(glval) = VariableAddress[x492] : +# 1495| mu1495_2(String) = Uninitialized[x492] : &:r1495_1 +# 1495| r1495_3(glval) = FunctionAddress[String] : +# 1495| v1495_4(void) = Call[String] : func:r1495_3, this:r1495_1 +# 1495| mu1495_5(unknown) = ^CallSideEffect : ~m? +# 1495| mu1495_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1495_1 +# 1496| r1496_1(glval) = VariableAddress[x492] : +# 1496| r1496_2(glval) = FunctionAddress[~String] : +# 1496| v1496_3(void) = Call[~String] : func:r1496_2, this:r1496_1 +# 1496| mu1496_4(unknown) = ^CallSideEffect : ~m? +# 1496| v1496_5(void) = ^IndirectReadSideEffect[-1] : &:r1496_1, ~m? +# 1496| mu1496_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1496_1 +# 1496| r1496_7(bool) = Constant[0] : +# 1496| v1496_8(void) = ConditionalBranch : r1496_7 +#-----| False -> Block 494 +#-----| True (back edge) -> Block 493 + +# 1498| Block 494 +# 1498| r1498_1(glval) = VariableAddress[x493] : +# 1498| mu1498_2(String) = Uninitialized[x493] : &:r1498_1 +# 1498| r1498_3(glval) = FunctionAddress[String] : +# 1498| v1498_4(void) = Call[String] : func:r1498_3, this:r1498_1 +# 1498| mu1498_5(unknown) = ^CallSideEffect : ~m? +# 1498| mu1498_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1498_1 +# 1499| r1499_1(glval) = VariableAddress[x493] : +# 1499| r1499_2(glval) = FunctionAddress[~String] : +# 1499| v1499_3(void) = Call[~String] : func:r1499_2, this:r1499_1 +# 1499| mu1499_4(unknown) = ^CallSideEffect : ~m? +# 1499| v1499_5(void) = ^IndirectReadSideEffect[-1] : &:r1499_1, ~m? +# 1499| mu1499_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1499_1 +# 1499| r1499_7(bool) = Constant[0] : +# 1499| v1499_8(void) = ConditionalBranch : r1499_7 +#-----| False -> Block 495 +#-----| True (back edge) -> Block 494 + +# 1501| Block 495 +# 1501| r1501_1(glval) = VariableAddress[x494] : +# 1501| mu1501_2(String) = Uninitialized[x494] : &:r1501_1 +# 1501| r1501_3(glval) = FunctionAddress[String] : +# 1501| v1501_4(void) = Call[String] : func:r1501_3, this:r1501_1 +# 1501| mu1501_5(unknown) = ^CallSideEffect : ~m? +# 1501| mu1501_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1501_1 +# 1502| r1502_1(glval) = VariableAddress[x494] : +# 1502| r1502_2(glval) = FunctionAddress[~String] : +# 1502| v1502_3(void) = Call[~String] : func:r1502_2, this:r1502_1 +# 1502| mu1502_4(unknown) = ^CallSideEffect : ~m? +# 1502| v1502_5(void) = ^IndirectReadSideEffect[-1] : &:r1502_1, ~m? +# 1502| mu1502_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1502_1 +# 1502| r1502_7(bool) = Constant[0] : +# 1502| v1502_8(void) = ConditionalBranch : r1502_7 +#-----| False -> Block 496 +#-----| True (back edge) -> Block 495 + +# 1504| Block 496 +# 1504| r1504_1(glval) = VariableAddress[x495] : +# 1504| mu1504_2(String) = Uninitialized[x495] : &:r1504_1 +# 1504| r1504_3(glval) = FunctionAddress[String] : +# 1504| v1504_4(void) = Call[String] : func:r1504_3, this:r1504_1 +# 1504| mu1504_5(unknown) = ^CallSideEffect : ~m? +# 1504| mu1504_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1504_1 +# 1505| r1505_1(glval) = VariableAddress[x495] : +# 1505| r1505_2(glval) = FunctionAddress[~String] : +# 1505| v1505_3(void) = Call[~String] : func:r1505_2, this:r1505_1 +# 1505| mu1505_4(unknown) = ^CallSideEffect : ~m? +# 1505| v1505_5(void) = ^IndirectReadSideEffect[-1] : &:r1505_1, ~m? +# 1505| mu1505_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1505_1 +# 1505| r1505_7(bool) = Constant[0] : +# 1505| v1505_8(void) = ConditionalBranch : r1505_7 +#-----| False -> Block 497 +#-----| True (back edge) -> Block 496 + +# 1507| Block 497 +# 1507| r1507_1(glval) = VariableAddress[x496] : +# 1507| mu1507_2(String) = Uninitialized[x496] : &:r1507_1 +# 1507| r1507_3(glval) = FunctionAddress[String] : +# 1507| v1507_4(void) = Call[String] : func:r1507_3, this:r1507_1 +# 1507| mu1507_5(unknown) = ^CallSideEffect : ~m? +# 1507| mu1507_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1507_1 +# 1508| r1508_1(glval) = VariableAddress[x496] : +# 1508| r1508_2(glval) = FunctionAddress[~String] : +# 1508| v1508_3(void) = Call[~String] : func:r1508_2, this:r1508_1 +# 1508| mu1508_4(unknown) = ^CallSideEffect : ~m? +# 1508| v1508_5(void) = ^IndirectReadSideEffect[-1] : &:r1508_1, ~m? +# 1508| mu1508_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1508_1 +# 1508| r1508_7(bool) = Constant[0] : +# 1508| v1508_8(void) = ConditionalBranch : r1508_7 +#-----| False -> Block 498 +#-----| True (back edge) -> Block 497 + +# 1510| Block 498 +# 1510| r1510_1(glval) = VariableAddress[x497] : +# 1510| mu1510_2(String) = Uninitialized[x497] : &:r1510_1 +# 1510| r1510_3(glval) = FunctionAddress[String] : +# 1510| v1510_4(void) = Call[String] : func:r1510_3, this:r1510_1 +# 1510| mu1510_5(unknown) = ^CallSideEffect : ~m? +# 1510| mu1510_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1510_1 +# 1511| r1511_1(glval) = VariableAddress[x497] : +# 1511| r1511_2(glval) = FunctionAddress[~String] : +# 1511| v1511_3(void) = Call[~String] : func:r1511_2, this:r1511_1 +# 1511| mu1511_4(unknown) = ^CallSideEffect : ~m? +# 1511| v1511_5(void) = ^IndirectReadSideEffect[-1] : &:r1511_1, ~m? +# 1511| mu1511_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1511_1 +# 1511| r1511_7(bool) = Constant[0] : +# 1511| v1511_8(void) = ConditionalBranch : r1511_7 +#-----| False -> Block 499 +#-----| True (back edge) -> Block 498 + +# 1513| Block 499 +# 1513| r1513_1(glval) = VariableAddress[x498] : +# 1513| mu1513_2(String) = Uninitialized[x498] : &:r1513_1 +# 1513| r1513_3(glval) = FunctionAddress[String] : +# 1513| v1513_4(void) = Call[String] : func:r1513_3, this:r1513_1 +# 1513| mu1513_5(unknown) = ^CallSideEffect : ~m? +# 1513| mu1513_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1513_1 +# 1514| r1514_1(glval) = VariableAddress[x498] : +# 1514| r1514_2(glval) = FunctionAddress[~String] : +# 1514| v1514_3(void) = Call[~String] : func:r1514_2, this:r1514_1 +# 1514| mu1514_4(unknown) = ^CallSideEffect : ~m? +# 1514| v1514_5(void) = ^IndirectReadSideEffect[-1] : &:r1514_1, ~m? +# 1514| mu1514_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1514_1 +# 1514| r1514_7(bool) = Constant[0] : +# 1514| v1514_8(void) = ConditionalBranch : r1514_7 +#-----| False -> Block 500 +#-----| True (back edge) -> Block 499 + +# 1516| Block 500 +# 1516| r1516_1(glval) = VariableAddress[x499] : +# 1516| mu1516_2(String) = Uninitialized[x499] : &:r1516_1 +# 1516| r1516_3(glval) = FunctionAddress[String] : +# 1516| v1516_4(void) = Call[String] : func:r1516_3, this:r1516_1 +# 1516| mu1516_5(unknown) = ^CallSideEffect : ~m? +# 1516| mu1516_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1516_1 +# 1517| r1517_1(glval) = VariableAddress[x499] : +# 1517| r1517_2(glval) = FunctionAddress[~String] : +# 1517| v1517_3(void) = Call[~String] : func:r1517_2, this:r1517_1 +# 1517| mu1517_4(unknown) = ^CallSideEffect : ~m? +# 1517| v1517_5(void) = ^IndirectReadSideEffect[-1] : &:r1517_1, ~m? +# 1517| mu1517_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1517_1 +# 1517| r1517_7(bool) = Constant[0] : +# 1517| v1517_8(void) = ConditionalBranch : r1517_7 +#-----| False -> Block 501 +#-----| True (back edge) -> Block 500 + +# 1519| Block 501 +# 1519| r1519_1(glval) = VariableAddress[x500] : +# 1519| mu1519_2(String) = Uninitialized[x500] : &:r1519_1 +# 1519| r1519_3(glval) = FunctionAddress[String] : +# 1519| v1519_4(void) = Call[String] : func:r1519_3, this:r1519_1 +# 1519| mu1519_5(unknown) = ^CallSideEffect : ~m? +# 1519| mu1519_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1519_1 +# 1520| r1520_1(glval) = VariableAddress[x500] : +# 1520| r1520_2(glval) = FunctionAddress[~String] : +# 1520| v1520_3(void) = Call[~String] : func:r1520_2, this:r1520_1 +# 1520| mu1520_4(unknown) = ^CallSideEffect : ~m? +# 1520| v1520_5(void) = ^IndirectReadSideEffect[-1] : &:r1520_1, ~m? +# 1520| mu1520_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1520_1 +# 1520| r1520_7(bool) = Constant[0] : +# 1520| v1520_8(void) = ConditionalBranch : r1520_7 +#-----| False -> Block 502 +#-----| True (back edge) -> Block 501 + +# 1522| Block 502 +# 1522| r1522_1(glval) = VariableAddress[x501] : +# 1522| mu1522_2(String) = Uninitialized[x501] : &:r1522_1 +# 1522| r1522_3(glval) = FunctionAddress[String] : +# 1522| v1522_4(void) = Call[String] : func:r1522_3, this:r1522_1 +# 1522| mu1522_5(unknown) = ^CallSideEffect : ~m? +# 1522| mu1522_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1522_1 +# 1523| r1523_1(glval) = VariableAddress[x501] : +# 1523| r1523_2(glval) = FunctionAddress[~String] : +# 1523| v1523_3(void) = Call[~String] : func:r1523_2, this:r1523_1 +# 1523| mu1523_4(unknown) = ^CallSideEffect : ~m? +# 1523| v1523_5(void) = ^IndirectReadSideEffect[-1] : &:r1523_1, ~m? +# 1523| mu1523_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1523_1 +# 1523| r1523_7(bool) = Constant[0] : +# 1523| v1523_8(void) = ConditionalBranch : r1523_7 +#-----| False -> Block 503 +#-----| True (back edge) -> Block 502 + +# 1525| Block 503 +# 1525| r1525_1(glval) = VariableAddress[x502] : +# 1525| mu1525_2(String) = Uninitialized[x502] : &:r1525_1 +# 1525| r1525_3(glval) = FunctionAddress[String] : +# 1525| v1525_4(void) = Call[String] : func:r1525_3, this:r1525_1 +# 1525| mu1525_5(unknown) = ^CallSideEffect : ~m? +# 1525| mu1525_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1525_1 +# 1526| r1526_1(glval) = VariableAddress[x502] : +# 1526| r1526_2(glval) = FunctionAddress[~String] : +# 1526| v1526_3(void) = Call[~String] : func:r1526_2, this:r1526_1 +# 1526| mu1526_4(unknown) = ^CallSideEffect : ~m? +# 1526| v1526_5(void) = ^IndirectReadSideEffect[-1] : &:r1526_1, ~m? +# 1526| mu1526_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1526_1 +# 1526| r1526_7(bool) = Constant[0] : +# 1526| v1526_8(void) = ConditionalBranch : r1526_7 +#-----| False -> Block 504 +#-----| True (back edge) -> Block 503 + +# 1528| Block 504 +# 1528| r1528_1(glval) = VariableAddress[x503] : +# 1528| mu1528_2(String) = Uninitialized[x503] : &:r1528_1 +# 1528| r1528_3(glval) = FunctionAddress[String] : +# 1528| v1528_4(void) = Call[String] : func:r1528_3, this:r1528_1 +# 1528| mu1528_5(unknown) = ^CallSideEffect : ~m? +# 1528| mu1528_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1528_1 +# 1529| r1529_1(glval) = VariableAddress[x503] : +# 1529| r1529_2(glval) = FunctionAddress[~String] : +# 1529| v1529_3(void) = Call[~String] : func:r1529_2, this:r1529_1 +# 1529| mu1529_4(unknown) = ^CallSideEffect : ~m? +# 1529| v1529_5(void) = ^IndirectReadSideEffect[-1] : &:r1529_1, ~m? +# 1529| mu1529_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1529_1 +# 1529| r1529_7(bool) = Constant[0] : +# 1529| v1529_8(void) = ConditionalBranch : r1529_7 +#-----| False -> Block 505 +#-----| True (back edge) -> Block 504 + +# 1531| Block 505 +# 1531| r1531_1(glval) = VariableAddress[x504] : +# 1531| mu1531_2(String) = Uninitialized[x504] : &:r1531_1 +# 1531| r1531_3(glval) = FunctionAddress[String] : +# 1531| v1531_4(void) = Call[String] : func:r1531_3, this:r1531_1 +# 1531| mu1531_5(unknown) = ^CallSideEffect : ~m? +# 1531| mu1531_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1531_1 +# 1532| r1532_1(glval) = VariableAddress[x504] : +# 1532| r1532_2(glval) = FunctionAddress[~String] : +# 1532| v1532_3(void) = Call[~String] : func:r1532_2, this:r1532_1 +# 1532| mu1532_4(unknown) = ^CallSideEffect : ~m? +# 1532| v1532_5(void) = ^IndirectReadSideEffect[-1] : &:r1532_1, ~m? +# 1532| mu1532_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1532_1 +# 1532| r1532_7(bool) = Constant[0] : +# 1532| v1532_8(void) = ConditionalBranch : r1532_7 +#-----| False -> Block 506 +#-----| True (back edge) -> Block 505 + +# 1534| Block 506 +# 1534| r1534_1(glval) = VariableAddress[x505] : +# 1534| mu1534_2(String) = Uninitialized[x505] : &:r1534_1 +# 1534| r1534_3(glval) = FunctionAddress[String] : +# 1534| v1534_4(void) = Call[String] : func:r1534_3, this:r1534_1 +# 1534| mu1534_5(unknown) = ^CallSideEffect : ~m? +# 1534| mu1534_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1534_1 +# 1535| r1535_1(glval) = VariableAddress[x505] : +# 1535| r1535_2(glval) = FunctionAddress[~String] : +# 1535| v1535_3(void) = Call[~String] : func:r1535_2, this:r1535_1 +# 1535| mu1535_4(unknown) = ^CallSideEffect : ~m? +# 1535| v1535_5(void) = ^IndirectReadSideEffect[-1] : &:r1535_1, ~m? +# 1535| mu1535_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1535_1 +# 1535| r1535_7(bool) = Constant[0] : +# 1535| v1535_8(void) = ConditionalBranch : r1535_7 +#-----| False -> Block 507 +#-----| True (back edge) -> Block 506 + +# 1537| Block 507 +# 1537| r1537_1(glval) = VariableAddress[x506] : +# 1537| mu1537_2(String) = Uninitialized[x506] : &:r1537_1 +# 1537| r1537_3(glval) = FunctionAddress[String] : +# 1537| v1537_4(void) = Call[String] : func:r1537_3, this:r1537_1 +# 1537| mu1537_5(unknown) = ^CallSideEffect : ~m? +# 1537| mu1537_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1537_1 +# 1538| r1538_1(glval) = VariableAddress[x506] : +# 1538| r1538_2(glval) = FunctionAddress[~String] : +# 1538| v1538_3(void) = Call[~String] : func:r1538_2, this:r1538_1 +# 1538| mu1538_4(unknown) = ^CallSideEffect : ~m? +# 1538| v1538_5(void) = ^IndirectReadSideEffect[-1] : &:r1538_1, ~m? +# 1538| mu1538_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1538_1 +# 1538| r1538_7(bool) = Constant[0] : +# 1538| v1538_8(void) = ConditionalBranch : r1538_7 +#-----| False -> Block 508 +#-----| True (back edge) -> Block 507 + +# 1540| Block 508 +# 1540| r1540_1(glval) = VariableAddress[x507] : +# 1540| mu1540_2(String) = Uninitialized[x507] : &:r1540_1 +# 1540| r1540_3(glval) = FunctionAddress[String] : +# 1540| v1540_4(void) = Call[String] : func:r1540_3, this:r1540_1 +# 1540| mu1540_5(unknown) = ^CallSideEffect : ~m? +# 1540| mu1540_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1540_1 +# 1541| r1541_1(glval) = VariableAddress[x507] : +# 1541| r1541_2(glval) = FunctionAddress[~String] : +# 1541| v1541_3(void) = Call[~String] : func:r1541_2, this:r1541_1 +# 1541| mu1541_4(unknown) = ^CallSideEffect : ~m? +# 1541| v1541_5(void) = ^IndirectReadSideEffect[-1] : &:r1541_1, ~m? +# 1541| mu1541_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1541_1 +# 1541| r1541_7(bool) = Constant[0] : +# 1541| v1541_8(void) = ConditionalBranch : r1541_7 +#-----| False -> Block 509 +#-----| True (back edge) -> Block 508 + +# 1543| Block 509 +# 1543| r1543_1(glval) = VariableAddress[x508] : +# 1543| mu1543_2(String) = Uninitialized[x508] : &:r1543_1 +# 1543| r1543_3(glval) = FunctionAddress[String] : +# 1543| v1543_4(void) = Call[String] : func:r1543_3, this:r1543_1 +# 1543| mu1543_5(unknown) = ^CallSideEffect : ~m? +# 1543| mu1543_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1543_1 +# 1544| r1544_1(glval) = VariableAddress[x508] : +# 1544| r1544_2(glval) = FunctionAddress[~String] : +# 1544| v1544_3(void) = Call[~String] : func:r1544_2, this:r1544_1 +# 1544| mu1544_4(unknown) = ^CallSideEffect : ~m? +# 1544| v1544_5(void) = ^IndirectReadSideEffect[-1] : &:r1544_1, ~m? +# 1544| mu1544_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1544_1 +# 1544| r1544_7(bool) = Constant[0] : +# 1544| v1544_8(void) = ConditionalBranch : r1544_7 +#-----| False -> Block 510 +#-----| True (back edge) -> Block 509 + +# 1546| Block 510 +# 1546| r1546_1(glval) = VariableAddress[x509] : +# 1546| mu1546_2(String) = Uninitialized[x509] : &:r1546_1 +# 1546| r1546_3(glval) = FunctionAddress[String] : +# 1546| v1546_4(void) = Call[String] : func:r1546_3, this:r1546_1 +# 1546| mu1546_5(unknown) = ^CallSideEffect : ~m? +# 1546| mu1546_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1546_1 +# 1547| r1547_1(glval) = VariableAddress[x509] : +# 1547| r1547_2(glval) = FunctionAddress[~String] : +# 1547| v1547_3(void) = Call[~String] : func:r1547_2, this:r1547_1 +# 1547| mu1547_4(unknown) = ^CallSideEffect : ~m? +# 1547| v1547_5(void) = ^IndirectReadSideEffect[-1] : &:r1547_1, ~m? +# 1547| mu1547_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1547_1 +# 1547| r1547_7(bool) = Constant[0] : +# 1547| v1547_8(void) = ConditionalBranch : r1547_7 +#-----| False -> Block 511 +#-----| True (back edge) -> Block 510 + +# 1549| Block 511 +# 1549| r1549_1(glval) = VariableAddress[x510] : +# 1549| mu1549_2(String) = Uninitialized[x510] : &:r1549_1 +# 1549| r1549_3(glval) = FunctionAddress[String] : +# 1549| v1549_4(void) = Call[String] : func:r1549_3, this:r1549_1 +# 1549| mu1549_5(unknown) = ^CallSideEffect : ~m? +# 1549| mu1549_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1549_1 +# 1550| r1550_1(glval) = VariableAddress[x510] : +# 1550| r1550_2(glval) = FunctionAddress[~String] : +# 1550| v1550_3(void) = Call[~String] : func:r1550_2, this:r1550_1 +# 1550| mu1550_4(unknown) = ^CallSideEffect : ~m? +# 1550| v1550_5(void) = ^IndirectReadSideEffect[-1] : &:r1550_1, ~m? +# 1550| mu1550_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1550_1 +# 1550| r1550_7(bool) = Constant[0] : +# 1550| v1550_8(void) = ConditionalBranch : r1550_7 +#-----| False -> Block 512 +#-----| True (back edge) -> Block 511 + +# 1552| Block 512 +# 1552| r1552_1(glval) = VariableAddress[x511] : +# 1552| mu1552_2(String) = Uninitialized[x511] : &:r1552_1 +# 1552| r1552_3(glval) = FunctionAddress[String] : +# 1552| v1552_4(void) = Call[String] : func:r1552_3, this:r1552_1 +# 1552| mu1552_5(unknown) = ^CallSideEffect : ~m? +# 1552| mu1552_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1552_1 +# 1553| r1553_1(glval) = VariableAddress[x511] : +# 1553| r1553_2(glval) = FunctionAddress[~String] : +# 1553| v1553_3(void) = Call[~String] : func:r1553_2, this:r1553_1 +# 1553| mu1553_4(unknown) = ^CallSideEffect : ~m? +# 1553| v1553_5(void) = ^IndirectReadSideEffect[-1] : &:r1553_1, ~m? +# 1553| mu1553_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1553_1 +# 1553| r1553_7(bool) = Constant[0] : +# 1553| v1553_8(void) = ConditionalBranch : r1553_7 +#-----| False -> Block 513 +#-----| True (back edge) -> Block 512 + +# 1555| Block 513 +# 1555| r1555_1(glval) = VariableAddress[x512] : +# 1555| mu1555_2(String) = Uninitialized[x512] : &:r1555_1 +# 1555| r1555_3(glval) = FunctionAddress[String] : +# 1555| v1555_4(void) = Call[String] : func:r1555_3, this:r1555_1 +# 1555| mu1555_5(unknown) = ^CallSideEffect : ~m? +# 1555| mu1555_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1555_1 +# 1556| r1556_1(glval) = VariableAddress[x512] : +# 1556| r1556_2(glval) = FunctionAddress[~String] : +# 1556| v1556_3(void) = Call[~String] : func:r1556_2, this:r1556_1 +# 1556| mu1556_4(unknown) = ^CallSideEffect : ~m? +# 1556| v1556_5(void) = ^IndirectReadSideEffect[-1] : &:r1556_1, ~m? +# 1556| mu1556_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1556_1 +# 1556| r1556_7(bool) = Constant[0] : +# 1556| v1556_8(void) = ConditionalBranch : r1556_7 +#-----| False -> Block 514 +#-----| True (back edge) -> Block 513 + +# 1558| Block 514 +# 1558| r1558_1(glval) = VariableAddress[x513] : +# 1558| mu1558_2(String) = Uninitialized[x513] : &:r1558_1 +# 1558| r1558_3(glval) = FunctionAddress[String] : +# 1558| v1558_4(void) = Call[String] : func:r1558_3, this:r1558_1 +# 1558| mu1558_5(unknown) = ^CallSideEffect : ~m? +# 1558| mu1558_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1558_1 +# 1559| r1559_1(glval) = VariableAddress[x513] : +# 1559| r1559_2(glval) = FunctionAddress[~String] : +# 1559| v1559_3(void) = Call[~String] : func:r1559_2, this:r1559_1 +# 1559| mu1559_4(unknown) = ^CallSideEffect : ~m? +# 1559| v1559_5(void) = ^IndirectReadSideEffect[-1] : &:r1559_1, ~m? +# 1559| mu1559_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1559_1 +# 1559| r1559_7(bool) = Constant[0] : +# 1559| v1559_8(void) = ConditionalBranch : r1559_7 +#-----| False -> Block 515 +#-----| True (back edge) -> Block 514 + +# 1561| Block 515 +# 1561| r1561_1(glval) = VariableAddress[x514] : +# 1561| mu1561_2(String) = Uninitialized[x514] : &:r1561_1 +# 1561| r1561_3(glval) = FunctionAddress[String] : +# 1561| v1561_4(void) = Call[String] : func:r1561_3, this:r1561_1 +# 1561| mu1561_5(unknown) = ^CallSideEffect : ~m? +# 1561| mu1561_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1561_1 +# 1562| r1562_1(glval) = VariableAddress[x514] : +# 1562| r1562_2(glval) = FunctionAddress[~String] : +# 1562| v1562_3(void) = Call[~String] : func:r1562_2, this:r1562_1 +# 1562| mu1562_4(unknown) = ^CallSideEffect : ~m? +# 1562| v1562_5(void) = ^IndirectReadSideEffect[-1] : &:r1562_1, ~m? +# 1562| mu1562_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1562_1 +# 1562| r1562_7(bool) = Constant[0] : +# 1562| v1562_8(void) = ConditionalBranch : r1562_7 +#-----| False -> Block 516 +#-----| True (back edge) -> Block 515 + +# 1564| Block 516 +# 1564| r1564_1(glval) = VariableAddress[x515] : +# 1564| mu1564_2(String) = Uninitialized[x515] : &:r1564_1 +# 1564| r1564_3(glval) = FunctionAddress[String] : +# 1564| v1564_4(void) = Call[String] : func:r1564_3, this:r1564_1 +# 1564| mu1564_5(unknown) = ^CallSideEffect : ~m? +# 1564| mu1564_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1564_1 +# 1565| r1565_1(glval) = VariableAddress[x515] : +# 1565| r1565_2(glval) = FunctionAddress[~String] : +# 1565| v1565_3(void) = Call[~String] : func:r1565_2, this:r1565_1 +# 1565| mu1565_4(unknown) = ^CallSideEffect : ~m? +# 1565| v1565_5(void) = ^IndirectReadSideEffect[-1] : &:r1565_1, ~m? +# 1565| mu1565_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1565_1 +# 1565| r1565_7(bool) = Constant[0] : +# 1565| v1565_8(void) = ConditionalBranch : r1565_7 +#-----| False -> Block 517 +#-----| True (back edge) -> Block 516 + +# 1567| Block 517 +# 1567| r1567_1(glval) = VariableAddress[x516] : +# 1567| mu1567_2(String) = Uninitialized[x516] : &:r1567_1 +# 1567| r1567_3(glval) = FunctionAddress[String] : +# 1567| v1567_4(void) = Call[String] : func:r1567_3, this:r1567_1 +# 1567| mu1567_5(unknown) = ^CallSideEffect : ~m? +# 1567| mu1567_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1567_1 +# 1568| r1568_1(glval) = VariableAddress[x516] : +# 1568| r1568_2(glval) = FunctionAddress[~String] : +# 1568| v1568_3(void) = Call[~String] : func:r1568_2, this:r1568_1 +# 1568| mu1568_4(unknown) = ^CallSideEffect : ~m? +# 1568| v1568_5(void) = ^IndirectReadSideEffect[-1] : &:r1568_1, ~m? +# 1568| mu1568_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1568_1 +# 1568| r1568_7(bool) = Constant[0] : +# 1568| v1568_8(void) = ConditionalBranch : r1568_7 +#-----| False -> Block 518 +#-----| True (back edge) -> Block 517 + +# 1570| Block 518 +# 1570| r1570_1(glval) = VariableAddress[x517] : +# 1570| mu1570_2(String) = Uninitialized[x517] : &:r1570_1 +# 1570| r1570_3(glval) = FunctionAddress[String] : +# 1570| v1570_4(void) = Call[String] : func:r1570_3, this:r1570_1 +# 1570| mu1570_5(unknown) = ^CallSideEffect : ~m? +# 1570| mu1570_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1570_1 +# 1571| r1571_1(glval) = VariableAddress[x517] : +# 1571| r1571_2(glval) = FunctionAddress[~String] : +# 1571| v1571_3(void) = Call[~String] : func:r1571_2, this:r1571_1 +# 1571| mu1571_4(unknown) = ^CallSideEffect : ~m? +# 1571| v1571_5(void) = ^IndirectReadSideEffect[-1] : &:r1571_1, ~m? +# 1571| mu1571_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1571_1 +# 1571| r1571_7(bool) = Constant[0] : +# 1571| v1571_8(void) = ConditionalBranch : r1571_7 +#-----| False -> Block 519 +#-----| True (back edge) -> Block 518 + +# 1573| Block 519 +# 1573| r1573_1(glval) = VariableAddress[x518] : +# 1573| mu1573_2(String) = Uninitialized[x518] : &:r1573_1 +# 1573| r1573_3(glval) = FunctionAddress[String] : +# 1573| v1573_4(void) = Call[String] : func:r1573_3, this:r1573_1 +# 1573| mu1573_5(unknown) = ^CallSideEffect : ~m? +# 1573| mu1573_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1573_1 +# 1574| r1574_1(glval) = VariableAddress[x518] : +# 1574| r1574_2(glval) = FunctionAddress[~String] : +# 1574| v1574_3(void) = Call[~String] : func:r1574_2, this:r1574_1 +# 1574| mu1574_4(unknown) = ^CallSideEffect : ~m? +# 1574| v1574_5(void) = ^IndirectReadSideEffect[-1] : &:r1574_1, ~m? +# 1574| mu1574_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1574_1 +# 1574| r1574_7(bool) = Constant[0] : +# 1574| v1574_8(void) = ConditionalBranch : r1574_7 +#-----| False -> Block 520 +#-----| True (back edge) -> Block 519 + +# 1576| Block 520 +# 1576| r1576_1(glval) = VariableAddress[x519] : +# 1576| mu1576_2(String) = Uninitialized[x519] : &:r1576_1 +# 1576| r1576_3(glval) = FunctionAddress[String] : +# 1576| v1576_4(void) = Call[String] : func:r1576_3, this:r1576_1 +# 1576| mu1576_5(unknown) = ^CallSideEffect : ~m? +# 1576| mu1576_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1576_1 +# 1577| r1577_1(glval) = VariableAddress[x519] : +# 1577| r1577_2(glval) = FunctionAddress[~String] : +# 1577| v1577_3(void) = Call[~String] : func:r1577_2, this:r1577_1 +# 1577| mu1577_4(unknown) = ^CallSideEffect : ~m? +# 1577| v1577_5(void) = ^IndirectReadSideEffect[-1] : &:r1577_1, ~m? +# 1577| mu1577_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1577_1 +# 1577| r1577_7(bool) = Constant[0] : +# 1577| v1577_8(void) = ConditionalBranch : r1577_7 +#-----| False -> Block 521 +#-----| True (back edge) -> Block 520 + +# 1579| Block 521 +# 1579| r1579_1(glval) = VariableAddress[x520] : +# 1579| mu1579_2(String) = Uninitialized[x520] : &:r1579_1 +# 1579| r1579_3(glval) = FunctionAddress[String] : +# 1579| v1579_4(void) = Call[String] : func:r1579_3, this:r1579_1 +# 1579| mu1579_5(unknown) = ^CallSideEffect : ~m? +# 1579| mu1579_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1579_1 +# 1580| r1580_1(glval) = VariableAddress[x520] : +# 1580| r1580_2(glval) = FunctionAddress[~String] : +# 1580| v1580_3(void) = Call[~String] : func:r1580_2, this:r1580_1 +# 1580| mu1580_4(unknown) = ^CallSideEffect : ~m? +# 1580| v1580_5(void) = ^IndirectReadSideEffect[-1] : &:r1580_1, ~m? +# 1580| mu1580_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1580_1 +# 1580| r1580_7(bool) = Constant[0] : +# 1580| v1580_8(void) = ConditionalBranch : r1580_7 +#-----| False -> Block 522 +#-----| True (back edge) -> Block 521 + +# 1582| Block 522 +# 1582| r1582_1(glval) = VariableAddress[x521] : +# 1582| mu1582_2(String) = Uninitialized[x521] : &:r1582_1 +# 1582| r1582_3(glval) = FunctionAddress[String] : +# 1582| v1582_4(void) = Call[String] : func:r1582_3, this:r1582_1 +# 1582| mu1582_5(unknown) = ^CallSideEffect : ~m? +# 1582| mu1582_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1582_1 +# 1583| r1583_1(glval) = VariableAddress[x521] : +# 1583| r1583_2(glval) = FunctionAddress[~String] : +# 1583| v1583_3(void) = Call[~String] : func:r1583_2, this:r1583_1 +# 1583| mu1583_4(unknown) = ^CallSideEffect : ~m? +# 1583| v1583_5(void) = ^IndirectReadSideEffect[-1] : &:r1583_1, ~m? +# 1583| mu1583_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1583_1 +# 1583| r1583_7(bool) = Constant[0] : +# 1583| v1583_8(void) = ConditionalBranch : r1583_7 +#-----| False -> Block 523 +#-----| True (back edge) -> Block 522 + +# 1585| Block 523 +# 1585| r1585_1(glval) = VariableAddress[x522] : +# 1585| mu1585_2(String) = Uninitialized[x522] : &:r1585_1 +# 1585| r1585_3(glval) = FunctionAddress[String] : +# 1585| v1585_4(void) = Call[String] : func:r1585_3, this:r1585_1 +# 1585| mu1585_5(unknown) = ^CallSideEffect : ~m? +# 1585| mu1585_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1585_1 +# 1586| r1586_1(glval) = VariableAddress[x522] : +# 1586| r1586_2(glval) = FunctionAddress[~String] : +# 1586| v1586_3(void) = Call[~String] : func:r1586_2, this:r1586_1 +# 1586| mu1586_4(unknown) = ^CallSideEffect : ~m? +# 1586| v1586_5(void) = ^IndirectReadSideEffect[-1] : &:r1586_1, ~m? +# 1586| mu1586_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1586_1 +# 1586| r1586_7(bool) = Constant[0] : +# 1586| v1586_8(void) = ConditionalBranch : r1586_7 +#-----| False -> Block 524 +#-----| True (back edge) -> Block 523 + +# 1588| Block 524 +# 1588| r1588_1(glval) = VariableAddress[x523] : +# 1588| mu1588_2(String) = Uninitialized[x523] : &:r1588_1 +# 1588| r1588_3(glval) = FunctionAddress[String] : +# 1588| v1588_4(void) = Call[String] : func:r1588_3, this:r1588_1 +# 1588| mu1588_5(unknown) = ^CallSideEffect : ~m? +# 1588| mu1588_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1588_1 +# 1589| r1589_1(glval) = VariableAddress[x523] : +# 1589| r1589_2(glval) = FunctionAddress[~String] : +# 1589| v1589_3(void) = Call[~String] : func:r1589_2, this:r1589_1 +# 1589| mu1589_4(unknown) = ^CallSideEffect : ~m? +# 1589| v1589_5(void) = ^IndirectReadSideEffect[-1] : &:r1589_1, ~m? +# 1589| mu1589_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1589_1 +# 1589| r1589_7(bool) = Constant[0] : +# 1589| v1589_8(void) = ConditionalBranch : r1589_7 +#-----| False -> Block 525 +#-----| True (back edge) -> Block 524 + +# 1591| Block 525 +# 1591| r1591_1(glval) = VariableAddress[x524] : +# 1591| mu1591_2(String) = Uninitialized[x524] : &:r1591_1 +# 1591| r1591_3(glval) = FunctionAddress[String] : +# 1591| v1591_4(void) = Call[String] : func:r1591_3, this:r1591_1 +# 1591| mu1591_5(unknown) = ^CallSideEffect : ~m? +# 1591| mu1591_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1591_1 +# 1592| r1592_1(glval) = VariableAddress[x524] : +# 1592| r1592_2(glval) = FunctionAddress[~String] : +# 1592| v1592_3(void) = Call[~String] : func:r1592_2, this:r1592_1 +# 1592| mu1592_4(unknown) = ^CallSideEffect : ~m? +# 1592| v1592_5(void) = ^IndirectReadSideEffect[-1] : &:r1592_1, ~m? +# 1592| mu1592_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1592_1 +# 1592| r1592_7(bool) = Constant[0] : +# 1592| v1592_8(void) = ConditionalBranch : r1592_7 +#-----| False -> Block 526 +#-----| True (back edge) -> Block 525 + +# 1594| Block 526 +# 1594| r1594_1(glval) = VariableAddress[x525] : +# 1594| mu1594_2(String) = Uninitialized[x525] : &:r1594_1 +# 1594| r1594_3(glval) = FunctionAddress[String] : +# 1594| v1594_4(void) = Call[String] : func:r1594_3, this:r1594_1 +# 1594| mu1594_5(unknown) = ^CallSideEffect : ~m? +# 1594| mu1594_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1594_1 +# 1595| r1595_1(glval) = VariableAddress[x525] : +# 1595| r1595_2(glval) = FunctionAddress[~String] : +# 1595| v1595_3(void) = Call[~String] : func:r1595_2, this:r1595_1 +# 1595| mu1595_4(unknown) = ^CallSideEffect : ~m? +# 1595| v1595_5(void) = ^IndirectReadSideEffect[-1] : &:r1595_1, ~m? +# 1595| mu1595_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1595_1 +# 1595| r1595_7(bool) = Constant[0] : +# 1595| v1595_8(void) = ConditionalBranch : r1595_7 +#-----| False -> Block 527 +#-----| True (back edge) -> Block 526 + +# 1597| Block 527 +# 1597| r1597_1(glval) = VariableAddress[x526] : +# 1597| mu1597_2(String) = Uninitialized[x526] : &:r1597_1 +# 1597| r1597_3(glval) = FunctionAddress[String] : +# 1597| v1597_4(void) = Call[String] : func:r1597_3, this:r1597_1 +# 1597| mu1597_5(unknown) = ^CallSideEffect : ~m? +# 1597| mu1597_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1597_1 +# 1598| r1598_1(glval) = VariableAddress[x526] : +# 1598| r1598_2(glval) = FunctionAddress[~String] : +# 1598| v1598_3(void) = Call[~String] : func:r1598_2, this:r1598_1 +# 1598| mu1598_4(unknown) = ^CallSideEffect : ~m? +# 1598| v1598_5(void) = ^IndirectReadSideEffect[-1] : &:r1598_1, ~m? +# 1598| mu1598_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1598_1 +# 1598| r1598_7(bool) = Constant[0] : +# 1598| v1598_8(void) = ConditionalBranch : r1598_7 +#-----| False -> Block 528 +#-----| True (back edge) -> Block 527 + +# 1600| Block 528 +# 1600| r1600_1(glval) = VariableAddress[x527] : +# 1600| mu1600_2(String) = Uninitialized[x527] : &:r1600_1 +# 1600| r1600_3(glval) = FunctionAddress[String] : +# 1600| v1600_4(void) = Call[String] : func:r1600_3, this:r1600_1 +# 1600| mu1600_5(unknown) = ^CallSideEffect : ~m? +# 1600| mu1600_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1600_1 +# 1601| r1601_1(glval) = VariableAddress[x527] : +# 1601| r1601_2(glval) = FunctionAddress[~String] : +# 1601| v1601_3(void) = Call[~String] : func:r1601_2, this:r1601_1 +# 1601| mu1601_4(unknown) = ^CallSideEffect : ~m? +# 1601| v1601_5(void) = ^IndirectReadSideEffect[-1] : &:r1601_1, ~m? +# 1601| mu1601_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1601_1 +# 1601| r1601_7(bool) = Constant[0] : +# 1601| v1601_8(void) = ConditionalBranch : r1601_7 +#-----| False -> Block 529 +#-----| True (back edge) -> Block 528 + +# 1603| Block 529 +# 1603| r1603_1(glval) = VariableAddress[x528] : +# 1603| mu1603_2(String) = Uninitialized[x528] : &:r1603_1 +# 1603| r1603_3(glval) = FunctionAddress[String] : +# 1603| v1603_4(void) = Call[String] : func:r1603_3, this:r1603_1 +# 1603| mu1603_5(unknown) = ^CallSideEffect : ~m? +# 1603| mu1603_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1603_1 +# 1604| r1604_1(glval) = VariableAddress[x528] : +# 1604| r1604_2(glval) = FunctionAddress[~String] : +# 1604| v1604_3(void) = Call[~String] : func:r1604_2, this:r1604_1 +# 1604| mu1604_4(unknown) = ^CallSideEffect : ~m? +# 1604| v1604_5(void) = ^IndirectReadSideEffect[-1] : &:r1604_1, ~m? +# 1604| mu1604_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1604_1 +# 1604| r1604_7(bool) = Constant[0] : +# 1604| v1604_8(void) = ConditionalBranch : r1604_7 +#-----| False -> Block 530 +#-----| True (back edge) -> Block 529 + +# 1606| Block 530 +# 1606| r1606_1(glval) = VariableAddress[x529] : +# 1606| mu1606_2(String) = Uninitialized[x529] : &:r1606_1 +# 1606| r1606_3(glval) = FunctionAddress[String] : +# 1606| v1606_4(void) = Call[String] : func:r1606_3, this:r1606_1 +# 1606| mu1606_5(unknown) = ^CallSideEffect : ~m? +# 1606| mu1606_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1606_1 +# 1607| r1607_1(glval) = VariableAddress[x529] : +# 1607| r1607_2(glval) = FunctionAddress[~String] : +# 1607| v1607_3(void) = Call[~String] : func:r1607_2, this:r1607_1 +# 1607| mu1607_4(unknown) = ^CallSideEffect : ~m? +# 1607| v1607_5(void) = ^IndirectReadSideEffect[-1] : &:r1607_1, ~m? +# 1607| mu1607_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1607_1 +# 1607| r1607_7(bool) = Constant[0] : +# 1607| v1607_8(void) = ConditionalBranch : r1607_7 +#-----| False -> Block 531 +#-----| True (back edge) -> Block 530 + +# 1609| Block 531 +# 1609| r1609_1(glval) = VariableAddress[x530] : +# 1609| mu1609_2(String) = Uninitialized[x530] : &:r1609_1 +# 1609| r1609_3(glval) = FunctionAddress[String] : +# 1609| v1609_4(void) = Call[String] : func:r1609_3, this:r1609_1 +# 1609| mu1609_5(unknown) = ^CallSideEffect : ~m? +# 1609| mu1609_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1609_1 +# 1610| r1610_1(glval) = VariableAddress[x530] : +# 1610| r1610_2(glval) = FunctionAddress[~String] : +# 1610| v1610_3(void) = Call[~String] : func:r1610_2, this:r1610_1 +# 1610| mu1610_4(unknown) = ^CallSideEffect : ~m? +# 1610| v1610_5(void) = ^IndirectReadSideEffect[-1] : &:r1610_1, ~m? +# 1610| mu1610_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1610_1 +# 1610| r1610_7(bool) = Constant[0] : +# 1610| v1610_8(void) = ConditionalBranch : r1610_7 +#-----| False -> Block 532 +#-----| True (back edge) -> Block 531 + +# 1612| Block 532 +# 1612| r1612_1(glval) = VariableAddress[x531] : +# 1612| mu1612_2(String) = Uninitialized[x531] : &:r1612_1 +# 1612| r1612_3(glval) = FunctionAddress[String] : +# 1612| v1612_4(void) = Call[String] : func:r1612_3, this:r1612_1 +# 1612| mu1612_5(unknown) = ^CallSideEffect : ~m? +# 1612| mu1612_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1612_1 +# 1613| r1613_1(glval) = VariableAddress[x531] : +# 1613| r1613_2(glval) = FunctionAddress[~String] : +# 1613| v1613_3(void) = Call[~String] : func:r1613_2, this:r1613_1 +# 1613| mu1613_4(unknown) = ^CallSideEffect : ~m? +# 1613| v1613_5(void) = ^IndirectReadSideEffect[-1] : &:r1613_1, ~m? +# 1613| mu1613_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1613_1 +# 1613| r1613_7(bool) = Constant[0] : +# 1613| v1613_8(void) = ConditionalBranch : r1613_7 +#-----| False -> Block 533 +#-----| True (back edge) -> Block 532 + +# 1615| Block 533 +# 1615| r1615_1(glval) = VariableAddress[x532] : +# 1615| mu1615_2(String) = Uninitialized[x532] : &:r1615_1 +# 1615| r1615_3(glval) = FunctionAddress[String] : +# 1615| v1615_4(void) = Call[String] : func:r1615_3, this:r1615_1 +# 1615| mu1615_5(unknown) = ^CallSideEffect : ~m? +# 1615| mu1615_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1615_1 +# 1616| r1616_1(glval) = VariableAddress[x532] : +# 1616| r1616_2(glval) = FunctionAddress[~String] : +# 1616| v1616_3(void) = Call[~String] : func:r1616_2, this:r1616_1 +# 1616| mu1616_4(unknown) = ^CallSideEffect : ~m? +# 1616| v1616_5(void) = ^IndirectReadSideEffect[-1] : &:r1616_1, ~m? +# 1616| mu1616_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1616_1 +# 1616| r1616_7(bool) = Constant[0] : +# 1616| v1616_8(void) = ConditionalBranch : r1616_7 +#-----| False -> Block 534 +#-----| True (back edge) -> Block 533 + +# 1618| Block 534 +# 1618| r1618_1(glval) = VariableAddress[x533] : +# 1618| mu1618_2(String) = Uninitialized[x533] : &:r1618_1 +# 1618| r1618_3(glval) = FunctionAddress[String] : +# 1618| v1618_4(void) = Call[String] : func:r1618_3, this:r1618_1 +# 1618| mu1618_5(unknown) = ^CallSideEffect : ~m? +# 1618| mu1618_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1618_1 +# 1619| r1619_1(glval) = VariableAddress[x533] : +# 1619| r1619_2(glval) = FunctionAddress[~String] : +# 1619| v1619_3(void) = Call[~String] : func:r1619_2, this:r1619_1 +# 1619| mu1619_4(unknown) = ^CallSideEffect : ~m? +# 1619| v1619_5(void) = ^IndirectReadSideEffect[-1] : &:r1619_1, ~m? +# 1619| mu1619_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1619_1 +# 1619| r1619_7(bool) = Constant[0] : +# 1619| v1619_8(void) = ConditionalBranch : r1619_7 +#-----| False -> Block 535 +#-----| True (back edge) -> Block 534 + +# 1621| Block 535 +# 1621| r1621_1(glval) = VariableAddress[x534] : +# 1621| mu1621_2(String) = Uninitialized[x534] : &:r1621_1 +# 1621| r1621_3(glval) = FunctionAddress[String] : +# 1621| v1621_4(void) = Call[String] : func:r1621_3, this:r1621_1 +# 1621| mu1621_5(unknown) = ^CallSideEffect : ~m? +# 1621| mu1621_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1621_1 +# 1622| r1622_1(glval) = VariableAddress[x534] : +# 1622| r1622_2(glval) = FunctionAddress[~String] : +# 1622| v1622_3(void) = Call[~String] : func:r1622_2, this:r1622_1 +# 1622| mu1622_4(unknown) = ^CallSideEffect : ~m? +# 1622| v1622_5(void) = ^IndirectReadSideEffect[-1] : &:r1622_1, ~m? +# 1622| mu1622_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1622_1 +# 1622| r1622_7(bool) = Constant[0] : +# 1622| v1622_8(void) = ConditionalBranch : r1622_7 +#-----| False -> Block 536 +#-----| True (back edge) -> Block 535 + +# 1624| Block 536 +# 1624| r1624_1(glval) = VariableAddress[x535] : +# 1624| mu1624_2(String) = Uninitialized[x535] : &:r1624_1 +# 1624| r1624_3(glval) = FunctionAddress[String] : +# 1624| v1624_4(void) = Call[String] : func:r1624_3, this:r1624_1 +# 1624| mu1624_5(unknown) = ^CallSideEffect : ~m? +# 1624| mu1624_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1624_1 +# 1625| r1625_1(glval) = VariableAddress[x535] : +# 1625| r1625_2(glval) = FunctionAddress[~String] : +# 1625| v1625_3(void) = Call[~String] : func:r1625_2, this:r1625_1 +# 1625| mu1625_4(unknown) = ^CallSideEffect : ~m? +# 1625| v1625_5(void) = ^IndirectReadSideEffect[-1] : &:r1625_1, ~m? +# 1625| mu1625_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1625_1 +# 1625| r1625_7(bool) = Constant[0] : +# 1625| v1625_8(void) = ConditionalBranch : r1625_7 +#-----| False -> Block 537 +#-----| True (back edge) -> Block 536 + +# 1627| Block 537 +# 1627| r1627_1(glval) = VariableAddress[x536] : +# 1627| mu1627_2(String) = Uninitialized[x536] : &:r1627_1 +# 1627| r1627_3(glval) = FunctionAddress[String] : +# 1627| v1627_4(void) = Call[String] : func:r1627_3, this:r1627_1 +# 1627| mu1627_5(unknown) = ^CallSideEffect : ~m? +# 1627| mu1627_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1627_1 +# 1628| r1628_1(glval) = VariableAddress[x536] : +# 1628| r1628_2(glval) = FunctionAddress[~String] : +# 1628| v1628_3(void) = Call[~String] : func:r1628_2, this:r1628_1 +# 1628| mu1628_4(unknown) = ^CallSideEffect : ~m? +# 1628| v1628_5(void) = ^IndirectReadSideEffect[-1] : &:r1628_1, ~m? +# 1628| mu1628_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1628_1 +# 1628| r1628_7(bool) = Constant[0] : +# 1628| v1628_8(void) = ConditionalBranch : r1628_7 +#-----| False -> Block 538 +#-----| True (back edge) -> Block 537 + +# 1630| Block 538 +# 1630| r1630_1(glval) = VariableAddress[x537] : +# 1630| mu1630_2(String) = Uninitialized[x537] : &:r1630_1 +# 1630| r1630_3(glval) = FunctionAddress[String] : +# 1630| v1630_4(void) = Call[String] : func:r1630_3, this:r1630_1 +# 1630| mu1630_5(unknown) = ^CallSideEffect : ~m? +# 1630| mu1630_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1630_1 +# 1631| r1631_1(glval) = VariableAddress[x537] : +# 1631| r1631_2(glval) = FunctionAddress[~String] : +# 1631| v1631_3(void) = Call[~String] : func:r1631_2, this:r1631_1 +# 1631| mu1631_4(unknown) = ^CallSideEffect : ~m? +# 1631| v1631_5(void) = ^IndirectReadSideEffect[-1] : &:r1631_1, ~m? +# 1631| mu1631_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1631_1 +# 1631| r1631_7(bool) = Constant[0] : +# 1631| v1631_8(void) = ConditionalBranch : r1631_7 +#-----| False -> Block 539 +#-----| True (back edge) -> Block 538 + +# 1633| Block 539 +# 1633| r1633_1(glval) = VariableAddress[x538] : +# 1633| mu1633_2(String) = Uninitialized[x538] : &:r1633_1 +# 1633| r1633_3(glval) = FunctionAddress[String] : +# 1633| v1633_4(void) = Call[String] : func:r1633_3, this:r1633_1 +# 1633| mu1633_5(unknown) = ^CallSideEffect : ~m? +# 1633| mu1633_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1633_1 +# 1634| r1634_1(glval) = VariableAddress[x538] : +# 1634| r1634_2(glval) = FunctionAddress[~String] : +# 1634| v1634_3(void) = Call[~String] : func:r1634_2, this:r1634_1 +# 1634| mu1634_4(unknown) = ^CallSideEffect : ~m? +# 1634| v1634_5(void) = ^IndirectReadSideEffect[-1] : &:r1634_1, ~m? +# 1634| mu1634_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1634_1 +# 1634| r1634_7(bool) = Constant[0] : +# 1634| v1634_8(void) = ConditionalBranch : r1634_7 +#-----| False -> Block 540 +#-----| True (back edge) -> Block 539 + +# 1636| Block 540 +# 1636| r1636_1(glval) = VariableAddress[x539] : +# 1636| mu1636_2(String) = Uninitialized[x539] : &:r1636_1 +# 1636| r1636_3(glval) = FunctionAddress[String] : +# 1636| v1636_4(void) = Call[String] : func:r1636_3, this:r1636_1 +# 1636| mu1636_5(unknown) = ^CallSideEffect : ~m? +# 1636| mu1636_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1636_1 +# 1637| r1637_1(glval) = VariableAddress[x539] : +# 1637| r1637_2(glval) = FunctionAddress[~String] : +# 1637| v1637_3(void) = Call[~String] : func:r1637_2, this:r1637_1 +# 1637| mu1637_4(unknown) = ^CallSideEffect : ~m? +# 1637| v1637_5(void) = ^IndirectReadSideEffect[-1] : &:r1637_1, ~m? +# 1637| mu1637_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1637_1 +# 1637| r1637_7(bool) = Constant[0] : +# 1637| v1637_8(void) = ConditionalBranch : r1637_7 +#-----| False -> Block 541 +#-----| True (back edge) -> Block 540 + +# 1639| Block 541 +# 1639| r1639_1(glval) = VariableAddress[x540] : +# 1639| mu1639_2(String) = Uninitialized[x540] : &:r1639_1 +# 1639| r1639_3(glval) = FunctionAddress[String] : +# 1639| v1639_4(void) = Call[String] : func:r1639_3, this:r1639_1 +# 1639| mu1639_5(unknown) = ^CallSideEffect : ~m? +# 1639| mu1639_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1639_1 +# 1640| r1640_1(glval) = VariableAddress[x540] : +# 1640| r1640_2(glval) = FunctionAddress[~String] : +# 1640| v1640_3(void) = Call[~String] : func:r1640_2, this:r1640_1 +# 1640| mu1640_4(unknown) = ^CallSideEffect : ~m? +# 1640| v1640_5(void) = ^IndirectReadSideEffect[-1] : &:r1640_1, ~m? +# 1640| mu1640_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1640_1 +# 1640| r1640_7(bool) = Constant[0] : +# 1640| v1640_8(void) = ConditionalBranch : r1640_7 +#-----| False -> Block 542 +#-----| True (back edge) -> Block 541 + +# 1642| Block 542 +# 1642| r1642_1(glval) = VariableAddress[x541] : +# 1642| mu1642_2(String) = Uninitialized[x541] : &:r1642_1 +# 1642| r1642_3(glval) = FunctionAddress[String] : +# 1642| v1642_4(void) = Call[String] : func:r1642_3, this:r1642_1 +# 1642| mu1642_5(unknown) = ^CallSideEffect : ~m? +# 1642| mu1642_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1642_1 +# 1643| r1643_1(glval) = VariableAddress[x541] : +# 1643| r1643_2(glval) = FunctionAddress[~String] : +# 1643| v1643_3(void) = Call[~String] : func:r1643_2, this:r1643_1 +# 1643| mu1643_4(unknown) = ^CallSideEffect : ~m? +# 1643| v1643_5(void) = ^IndirectReadSideEffect[-1] : &:r1643_1, ~m? +# 1643| mu1643_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1643_1 +# 1643| r1643_7(bool) = Constant[0] : +# 1643| v1643_8(void) = ConditionalBranch : r1643_7 +#-----| False -> Block 543 +#-----| True (back edge) -> Block 542 + +# 1645| Block 543 +# 1645| r1645_1(glval) = VariableAddress[x542] : +# 1645| mu1645_2(String) = Uninitialized[x542] : &:r1645_1 +# 1645| r1645_3(glval) = FunctionAddress[String] : +# 1645| v1645_4(void) = Call[String] : func:r1645_3, this:r1645_1 +# 1645| mu1645_5(unknown) = ^CallSideEffect : ~m? +# 1645| mu1645_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1645_1 +# 1646| r1646_1(glval) = VariableAddress[x542] : +# 1646| r1646_2(glval) = FunctionAddress[~String] : +# 1646| v1646_3(void) = Call[~String] : func:r1646_2, this:r1646_1 +# 1646| mu1646_4(unknown) = ^CallSideEffect : ~m? +# 1646| v1646_5(void) = ^IndirectReadSideEffect[-1] : &:r1646_1, ~m? +# 1646| mu1646_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1646_1 +# 1646| r1646_7(bool) = Constant[0] : +# 1646| v1646_8(void) = ConditionalBranch : r1646_7 +#-----| False -> Block 544 +#-----| True (back edge) -> Block 543 + +# 1648| Block 544 +# 1648| r1648_1(glval) = VariableAddress[x543] : +# 1648| mu1648_2(String) = Uninitialized[x543] : &:r1648_1 +# 1648| r1648_3(glval) = FunctionAddress[String] : +# 1648| v1648_4(void) = Call[String] : func:r1648_3, this:r1648_1 +# 1648| mu1648_5(unknown) = ^CallSideEffect : ~m? +# 1648| mu1648_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1648_1 +# 1649| r1649_1(glval) = VariableAddress[x543] : +# 1649| r1649_2(glval) = FunctionAddress[~String] : +# 1649| v1649_3(void) = Call[~String] : func:r1649_2, this:r1649_1 +# 1649| mu1649_4(unknown) = ^CallSideEffect : ~m? +# 1649| v1649_5(void) = ^IndirectReadSideEffect[-1] : &:r1649_1, ~m? +# 1649| mu1649_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1649_1 +# 1649| r1649_7(bool) = Constant[0] : +# 1649| v1649_8(void) = ConditionalBranch : r1649_7 +#-----| False -> Block 545 +#-----| True (back edge) -> Block 544 + +# 1651| Block 545 +# 1651| r1651_1(glval) = VariableAddress[x544] : +# 1651| mu1651_2(String) = Uninitialized[x544] : &:r1651_1 +# 1651| r1651_3(glval) = FunctionAddress[String] : +# 1651| v1651_4(void) = Call[String] : func:r1651_3, this:r1651_1 +# 1651| mu1651_5(unknown) = ^CallSideEffect : ~m? +# 1651| mu1651_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1651_1 +# 1652| r1652_1(glval) = VariableAddress[x544] : +# 1652| r1652_2(glval) = FunctionAddress[~String] : +# 1652| v1652_3(void) = Call[~String] : func:r1652_2, this:r1652_1 +# 1652| mu1652_4(unknown) = ^CallSideEffect : ~m? +# 1652| v1652_5(void) = ^IndirectReadSideEffect[-1] : &:r1652_1, ~m? +# 1652| mu1652_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1652_1 +# 1652| r1652_7(bool) = Constant[0] : +# 1652| v1652_8(void) = ConditionalBranch : r1652_7 +#-----| False -> Block 546 +#-----| True (back edge) -> Block 545 + +# 1654| Block 546 +# 1654| r1654_1(glval) = VariableAddress[x545] : +# 1654| mu1654_2(String) = Uninitialized[x545] : &:r1654_1 +# 1654| r1654_3(glval) = FunctionAddress[String] : +# 1654| v1654_4(void) = Call[String] : func:r1654_3, this:r1654_1 +# 1654| mu1654_5(unknown) = ^CallSideEffect : ~m? +# 1654| mu1654_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1654_1 +# 1655| r1655_1(glval) = VariableAddress[x545] : +# 1655| r1655_2(glval) = FunctionAddress[~String] : +# 1655| v1655_3(void) = Call[~String] : func:r1655_2, this:r1655_1 +# 1655| mu1655_4(unknown) = ^CallSideEffect : ~m? +# 1655| v1655_5(void) = ^IndirectReadSideEffect[-1] : &:r1655_1, ~m? +# 1655| mu1655_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1655_1 +# 1655| r1655_7(bool) = Constant[0] : +# 1655| v1655_8(void) = ConditionalBranch : r1655_7 +#-----| False -> Block 547 +#-----| True (back edge) -> Block 546 + +# 1657| Block 547 +# 1657| r1657_1(glval) = VariableAddress[x546] : +# 1657| mu1657_2(String) = Uninitialized[x546] : &:r1657_1 +# 1657| r1657_3(glval) = FunctionAddress[String] : +# 1657| v1657_4(void) = Call[String] : func:r1657_3, this:r1657_1 +# 1657| mu1657_5(unknown) = ^CallSideEffect : ~m? +# 1657| mu1657_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1657_1 +# 1658| r1658_1(glval) = VariableAddress[x546] : +# 1658| r1658_2(glval) = FunctionAddress[~String] : +# 1658| v1658_3(void) = Call[~String] : func:r1658_2, this:r1658_1 +# 1658| mu1658_4(unknown) = ^CallSideEffect : ~m? +# 1658| v1658_5(void) = ^IndirectReadSideEffect[-1] : &:r1658_1, ~m? +# 1658| mu1658_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1658_1 +# 1658| r1658_7(bool) = Constant[0] : +# 1658| v1658_8(void) = ConditionalBranch : r1658_7 +#-----| False -> Block 548 +#-----| True (back edge) -> Block 547 + +# 1660| Block 548 +# 1660| r1660_1(glval) = VariableAddress[x547] : +# 1660| mu1660_2(String) = Uninitialized[x547] : &:r1660_1 +# 1660| r1660_3(glval) = FunctionAddress[String] : +# 1660| v1660_4(void) = Call[String] : func:r1660_3, this:r1660_1 +# 1660| mu1660_5(unknown) = ^CallSideEffect : ~m? +# 1660| mu1660_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1660_1 +# 1661| r1661_1(glval) = VariableAddress[x547] : +# 1661| r1661_2(glval) = FunctionAddress[~String] : +# 1661| v1661_3(void) = Call[~String] : func:r1661_2, this:r1661_1 +# 1661| mu1661_4(unknown) = ^CallSideEffect : ~m? +# 1661| v1661_5(void) = ^IndirectReadSideEffect[-1] : &:r1661_1, ~m? +# 1661| mu1661_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1661_1 +# 1661| r1661_7(bool) = Constant[0] : +# 1661| v1661_8(void) = ConditionalBranch : r1661_7 +#-----| False -> Block 549 +#-----| True (back edge) -> Block 548 + +# 1663| Block 549 +# 1663| r1663_1(glval) = VariableAddress[x548] : +# 1663| mu1663_2(String) = Uninitialized[x548] : &:r1663_1 +# 1663| r1663_3(glval) = FunctionAddress[String] : +# 1663| v1663_4(void) = Call[String] : func:r1663_3, this:r1663_1 +# 1663| mu1663_5(unknown) = ^CallSideEffect : ~m? +# 1663| mu1663_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1663_1 +# 1664| r1664_1(glval) = VariableAddress[x548] : +# 1664| r1664_2(glval) = FunctionAddress[~String] : +# 1664| v1664_3(void) = Call[~String] : func:r1664_2, this:r1664_1 +# 1664| mu1664_4(unknown) = ^CallSideEffect : ~m? +# 1664| v1664_5(void) = ^IndirectReadSideEffect[-1] : &:r1664_1, ~m? +# 1664| mu1664_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1664_1 +# 1664| r1664_7(bool) = Constant[0] : +# 1664| v1664_8(void) = ConditionalBranch : r1664_7 +#-----| False -> Block 550 +#-----| True (back edge) -> Block 549 + +# 1666| Block 550 +# 1666| r1666_1(glval) = VariableAddress[x549] : +# 1666| mu1666_2(String) = Uninitialized[x549] : &:r1666_1 +# 1666| r1666_3(glval) = FunctionAddress[String] : +# 1666| v1666_4(void) = Call[String] : func:r1666_3, this:r1666_1 +# 1666| mu1666_5(unknown) = ^CallSideEffect : ~m? +# 1666| mu1666_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1666_1 +# 1667| r1667_1(glval) = VariableAddress[x549] : +# 1667| r1667_2(glval) = FunctionAddress[~String] : +# 1667| v1667_3(void) = Call[~String] : func:r1667_2, this:r1667_1 +# 1667| mu1667_4(unknown) = ^CallSideEffect : ~m? +# 1667| v1667_5(void) = ^IndirectReadSideEffect[-1] : &:r1667_1, ~m? +# 1667| mu1667_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1667_1 +# 1667| r1667_7(bool) = Constant[0] : +# 1667| v1667_8(void) = ConditionalBranch : r1667_7 +#-----| False -> Block 551 +#-----| True (back edge) -> Block 550 + +# 1669| Block 551 +# 1669| r1669_1(glval) = VariableAddress[x550] : +# 1669| mu1669_2(String) = Uninitialized[x550] : &:r1669_1 +# 1669| r1669_3(glval) = FunctionAddress[String] : +# 1669| v1669_4(void) = Call[String] : func:r1669_3, this:r1669_1 +# 1669| mu1669_5(unknown) = ^CallSideEffect : ~m? +# 1669| mu1669_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1669_1 +# 1670| r1670_1(glval) = VariableAddress[x550] : +# 1670| r1670_2(glval) = FunctionAddress[~String] : +# 1670| v1670_3(void) = Call[~String] : func:r1670_2, this:r1670_1 +# 1670| mu1670_4(unknown) = ^CallSideEffect : ~m? +# 1670| v1670_5(void) = ^IndirectReadSideEffect[-1] : &:r1670_1, ~m? +# 1670| mu1670_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1670_1 +# 1670| r1670_7(bool) = Constant[0] : +# 1670| v1670_8(void) = ConditionalBranch : r1670_7 +#-----| False -> Block 552 +#-----| True (back edge) -> Block 551 + +# 1672| Block 552 +# 1672| r1672_1(glval) = VariableAddress[x551] : +# 1672| mu1672_2(String) = Uninitialized[x551] : &:r1672_1 +# 1672| r1672_3(glval) = FunctionAddress[String] : +# 1672| v1672_4(void) = Call[String] : func:r1672_3, this:r1672_1 +# 1672| mu1672_5(unknown) = ^CallSideEffect : ~m? +# 1672| mu1672_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1672_1 +# 1673| r1673_1(glval) = VariableAddress[x551] : +# 1673| r1673_2(glval) = FunctionAddress[~String] : +# 1673| v1673_3(void) = Call[~String] : func:r1673_2, this:r1673_1 +# 1673| mu1673_4(unknown) = ^CallSideEffect : ~m? +# 1673| v1673_5(void) = ^IndirectReadSideEffect[-1] : &:r1673_1, ~m? +# 1673| mu1673_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1673_1 +# 1673| r1673_7(bool) = Constant[0] : +# 1673| v1673_8(void) = ConditionalBranch : r1673_7 +#-----| False -> Block 553 +#-----| True (back edge) -> Block 552 + +# 1675| Block 553 +# 1675| r1675_1(glval) = VariableAddress[x552] : +# 1675| mu1675_2(String) = Uninitialized[x552] : &:r1675_1 +# 1675| r1675_3(glval) = FunctionAddress[String] : +# 1675| v1675_4(void) = Call[String] : func:r1675_3, this:r1675_1 +# 1675| mu1675_5(unknown) = ^CallSideEffect : ~m? +# 1675| mu1675_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1675_1 +# 1676| r1676_1(glval) = VariableAddress[x552] : +# 1676| r1676_2(glval) = FunctionAddress[~String] : +# 1676| v1676_3(void) = Call[~String] : func:r1676_2, this:r1676_1 +# 1676| mu1676_4(unknown) = ^CallSideEffect : ~m? +# 1676| v1676_5(void) = ^IndirectReadSideEffect[-1] : &:r1676_1, ~m? +# 1676| mu1676_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1676_1 +# 1676| r1676_7(bool) = Constant[0] : +# 1676| v1676_8(void) = ConditionalBranch : r1676_7 +#-----| False -> Block 554 +#-----| True (back edge) -> Block 553 + +# 1678| Block 554 +# 1678| r1678_1(glval) = VariableAddress[x553] : +# 1678| mu1678_2(String) = Uninitialized[x553] : &:r1678_1 +# 1678| r1678_3(glval) = FunctionAddress[String] : +# 1678| v1678_4(void) = Call[String] : func:r1678_3, this:r1678_1 +# 1678| mu1678_5(unknown) = ^CallSideEffect : ~m? +# 1678| mu1678_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1678_1 +# 1679| r1679_1(glval) = VariableAddress[x553] : +# 1679| r1679_2(glval) = FunctionAddress[~String] : +# 1679| v1679_3(void) = Call[~String] : func:r1679_2, this:r1679_1 +# 1679| mu1679_4(unknown) = ^CallSideEffect : ~m? +# 1679| v1679_5(void) = ^IndirectReadSideEffect[-1] : &:r1679_1, ~m? +# 1679| mu1679_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1679_1 +# 1679| r1679_7(bool) = Constant[0] : +# 1679| v1679_8(void) = ConditionalBranch : r1679_7 +#-----| False -> Block 555 +#-----| True (back edge) -> Block 554 + +# 1681| Block 555 +# 1681| r1681_1(glval) = VariableAddress[x554] : +# 1681| mu1681_2(String) = Uninitialized[x554] : &:r1681_1 +# 1681| r1681_3(glval) = FunctionAddress[String] : +# 1681| v1681_4(void) = Call[String] : func:r1681_3, this:r1681_1 +# 1681| mu1681_5(unknown) = ^CallSideEffect : ~m? +# 1681| mu1681_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1681_1 +# 1682| r1682_1(glval) = VariableAddress[x554] : +# 1682| r1682_2(glval) = FunctionAddress[~String] : +# 1682| v1682_3(void) = Call[~String] : func:r1682_2, this:r1682_1 +# 1682| mu1682_4(unknown) = ^CallSideEffect : ~m? +# 1682| v1682_5(void) = ^IndirectReadSideEffect[-1] : &:r1682_1, ~m? +# 1682| mu1682_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1682_1 +# 1682| r1682_7(bool) = Constant[0] : +# 1682| v1682_8(void) = ConditionalBranch : r1682_7 +#-----| False -> Block 556 +#-----| True (back edge) -> Block 555 + +# 1684| Block 556 +# 1684| r1684_1(glval) = VariableAddress[x555] : +# 1684| mu1684_2(String) = Uninitialized[x555] : &:r1684_1 +# 1684| r1684_3(glval) = FunctionAddress[String] : +# 1684| v1684_4(void) = Call[String] : func:r1684_3, this:r1684_1 +# 1684| mu1684_5(unknown) = ^CallSideEffect : ~m? +# 1684| mu1684_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1684_1 +# 1685| r1685_1(glval) = VariableAddress[x555] : +# 1685| r1685_2(glval) = FunctionAddress[~String] : +# 1685| v1685_3(void) = Call[~String] : func:r1685_2, this:r1685_1 +# 1685| mu1685_4(unknown) = ^CallSideEffect : ~m? +# 1685| v1685_5(void) = ^IndirectReadSideEffect[-1] : &:r1685_1, ~m? +# 1685| mu1685_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1685_1 +# 1685| r1685_7(bool) = Constant[0] : +# 1685| v1685_8(void) = ConditionalBranch : r1685_7 +#-----| False -> Block 557 +#-----| True (back edge) -> Block 556 + +# 1687| Block 557 +# 1687| r1687_1(glval) = VariableAddress[x556] : +# 1687| mu1687_2(String) = Uninitialized[x556] : &:r1687_1 +# 1687| r1687_3(glval) = FunctionAddress[String] : +# 1687| v1687_4(void) = Call[String] : func:r1687_3, this:r1687_1 +# 1687| mu1687_5(unknown) = ^CallSideEffect : ~m? +# 1687| mu1687_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1687_1 +# 1688| r1688_1(glval) = VariableAddress[x556] : +# 1688| r1688_2(glval) = FunctionAddress[~String] : +# 1688| v1688_3(void) = Call[~String] : func:r1688_2, this:r1688_1 +# 1688| mu1688_4(unknown) = ^CallSideEffect : ~m? +# 1688| v1688_5(void) = ^IndirectReadSideEffect[-1] : &:r1688_1, ~m? +# 1688| mu1688_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1688_1 +# 1688| r1688_7(bool) = Constant[0] : +# 1688| v1688_8(void) = ConditionalBranch : r1688_7 +#-----| False -> Block 558 +#-----| True (back edge) -> Block 557 + +# 1690| Block 558 +# 1690| r1690_1(glval) = VariableAddress[x557] : +# 1690| mu1690_2(String) = Uninitialized[x557] : &:r1690_1 +# 1690| r1690_3(glval) = FunctionAddress[String] : +# 1690| v1690_4(void) = Call[String] : func:r1690_3, this:r1690_1 +# 1690| mu1690_5(unknown) = ^CallSideEffect : ~m? +# 1690| mu1690_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1690_1 +# 1691| r1691_1(glval) = VariableAddress[x557] : +# 1691| r1691_2(glval) = FunctionAddress[~String] : +# 1691| v1691_3(void) = Call[~String] : func:r1691_2, this:r1691_1 +# 1691| mu1691_4(unknown) = ^CallSideEffect : ~m? +# 1691| v1691_5(void) = ^IndirectReadSideEffect[-1] : &:r1691_1, ~m? +# 1691| mu1691_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1691_1 +# 1691| r1691_7(bool) = Constant[0] : +# 1691| v1691_8(void) = ConditionalBranch : r1691_7 +#-----| False -> Block 559 +#-----| True (back edge) -> Block 558 + +# 1693| Block 559 +# 1693| r1693_1(glval) = VariableAddress[x558] : +# 1693| mu1693_2(String) = Uninitialized[x558] : &:r1693_1 +# 1693| r1693_3(glval) = FunctionAddress[String] : +# 1693| v1693_4(void) = Call[String] : func:r1693_3, this:r1693_1 +# 1693| mu1693_5(unknown) = ^CallSideEffect : ~m? +# 1693| mu1693_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1693_1 +# 1694| r1694_1(glval) = VariableAddress[x558] : +# 1694| r1694_2(glval) = FunctionAddress[~String] : +# 1694| v1694_3(void) = Call[~String] : func:r1694_2, this:r1694_1 +# 1694| mu1694_4(unknown) = ^CallSideEffect : ~m? +# 1694| v1694_5(void) = ^IndirectReadSideEffect[-1] : &:r1694_1, ~m? +# 1694| mu1694_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1694_1 +# 1694| r1694_7(bool) = Constant[0] : +# 1694| v1694_8(void) = ConditionalBranch : r1694_7 +#-----| False -> Block 560 +#-----| True (back edge) -> Block 559 + +# 1696| Block 560 +# 1696| r1696_1(glval) = VariableAddress[x559] : +# 1696| mu1696_2(String) = Uninitialized[x559] : &:r1696_1 +# 1696| r1696_3(glval) = FunctionAddress[String] : +# 1696| v1696_4(void) = Call[String] : func:r1696_3, this:r1696_1 +# 1696| mu1696_5(unknown) = ^CallSideEffect : ~m? +# 1696| mu1696_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1696_1 +# 1697| r1697_1(glval) = VariableAddress[x559] : +# 1697| r1697_2(glval) = FunctionAddress[~String] : +# 1697| v1697_3(void) = Call[~String] : func:r1697_2, this:r1697_1 +# 1697| mu1697_4(unknown) = ^CallSideEffect : ~m? +# 1697| v1697_5(void) = ^IndirectReadSideEffect[-1] : &:r1697_1, ~m? +# 1697| mu1697_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1697_1 +# 1697| r1697_7(bool) = Constant[0] : +# 1697| v1697_8(void) = ConditionalBranch : r1697_7 +#-----| False -> Block 561 +#-----| True (back edge) -> Block 560 + +# 1699| Block 561 +# 1699| r1699_1(glval) = VariableAddress[x560] : +# 1699| mu1699_2(String) = Uninitialized[x560] : &:r1699_1 +# 1699| r1699_3(glval) = FunctionAddress[String] : +# 1699| v1699_4(void) = Call[String] : func:r1699_3, this:r1699_1 +# 1699| mu1699_5(unknown) = ^CallSideEffect : ~m? +# 1699| mu1699_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1699_1 +# 1700| r1700_1(glval) = VariableAddress[x560] : +# 1700| r1700_2(glval) = FunctionAddress[~String] : +# 1700| v1700_3(void) = Call[~String] : func:r1700_2, this:r1700_1 +# 1700| mu1700_4(unknown) = ^CallSideEffect : ~m? +# 1700| v1700_5(void) = ^IndirectReadSideEffect[-1] : &:r1700_1, ~m? +# 1700| mu1700_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1700_1 +# 1700| r1700_7(bool) = Constant[0] : +# 1700| v1700_8(void) = ConditionalBranch : r1700_7 +#-----| False -> Block 562 +#-----| True (back edge) -> Block 561 + +# 1702| Block 562 +# 1702| r1702_1(glval) = VariableAddress[x561] : +# 1702| mu1702_2(String) = Uninitialized[x561] : &:r1702_1 +# 1702| r1702_3(glval) = FunctionAddress[String] : +# 1702| v1702_4(void) = Call[String] : func:r1702_3, this:r1702_1 +# 1702| mu1702_5(unknown) = ^CallSideEffect : ~m? +# 1702| mu1702_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1702_1 +# 1703| r1703_1(glval) = VariableAddress[x561] : +# 1703| r1703_2(glval) = FunctionAddress[~String] : +# 1703| v1703_3(void) = Call[~String] : func:r1703_2, this:r1703_1 +# 1703| mu1703_4(unknown) = ^CallSideEffect : ~m? +# 1703| v1703_5(void) = ^IndirectReadSideEffect[-1] : &:r1703_1, ~m? +# 1703| mu1703_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1703_1 +# 1703| r1703_7(bool) = Constant[0] : +# 1703| v1703_8(void) = ConditionalBranch : r1703_7 +#-----| False -> Block 563 +#-----| True (back edge) -> Block 562 + +# 1705| Block 563 +# 1705| r1705_1(glval) = VariableAddress[x562] : +# 1705| mu1705_2(String) = Uninitialized[x562] : &:r1705_1 +# 1705| r1705_3(glval) = FunctionAddress[String] : +# 1705| v1705_4(void) = Call[String] : func:r1705_3, this:r1705_1 +# 1705| mu1705_5(unknown) = ^CallSideEffect : ~m? +# 1705| mu1705_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1705_1 +# 1706| r1706_1(glval) = VariableAddress[x562] : +# 1706| r1706_2(glval) = FunctionAddress[~String] : +# 1706| v1706_3(void) = Call[~String] : func:r1706_2, this:r1706_1 +# 1706| mu1706_4(unknown) = ^CallSideEffect : ~m? +# 1706| v1706_5(void) = ^IndirectReadSideEffect[-1] : &:r1706_1, ~m? +# 1706| mu1706_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1706_1 +# 1706| r1706_7(bool) = Constant[0] : +# 1706| v1706_8(void) = ConditionalBranch : r1706_7 +#-----| False -> Block 564 +#-----| True (back edge) -> Block 563 + +# 1708| Block 564 +# 1708| r1708_1(glval) = VariableAddress[x563] : +# 1708| mu1708_2(String) = Uninitialized[x563] : &:r1708_1 +# 1708| r1708_3(glval) = FunctionAddress[String] : +# 1708| v1708_4(void) = Call[String] : func:r1708_3, this:r1708_1 +# 1708| mu1708_5(unknown) = ^CallSideEffect : ~m? +# 1708| mu1708_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1708_1 +# 1709| r1709_1(glval) = VariableAddress[x563] : +# 1709| r1709_2(glval) = FunctionAddress[~String] : +# 1709| v1709_3(void) = Call[~String] : func:r1709_2, this:r1709_1 +# 1709| mu1709_4(unknown) = ^CallSideEffect : ~m? +# 1709| v1709_5(void) = ^IndirectReadSideEffect[-1] : &:r1709_1, ~m? +# 1709| mu1709_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1709_1 +# 1709| r1709_7(bool) = Constant[0] : +# 1709| v1709_8(void) = ConditionalBranch : r1709_7 +#-----| False -> Block 565 +#-----| True (back edge) -> Block 564 + +# 1711| Block 565 +# 1711| r1711_1(glval) = VariableAddress[x564] : +# 1711| mu1711_2(String) = Uninitialized[x564] : &:r1711_1 +# 1711| r1711_3(glval) = FunctionAddress[String] : +# 1711| v1711_4(void) = Call[String] : func:r1711_3, this:r1711_1 +# 1711| mu1711_5(unknown) = ^CallSideEffect : ~m? +# 1711| mu1711_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1711_1 +# 1712| r1712_1(glval) = VariableAddress[x564] : +# 1712| r1712_2(glval) = FunctionAddress[~String] : +# 1712| v1712_3(void) = Call[~String] : func:r1712_2, this:r1712_1 +# 1712| mu1712_4(unknown) = ^CallSideEffect : ~m? +# 1712| v1712_5(void) = ^IndirectReadSideEffect[-1] : &:r1712_1, ~m? +# 1712| mu1712_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1712_1 +# 1712| r1712_7(bool) = Constant[0] : +# 1712| v1712_8(void) = ConditionalBranch : r1712_7 +#-----| False -> Block 566 +#-----| True (back edge) -> Block 565 + +# 1714| Block 566 +# 1714| r1714_1(glval) = VariableAddress[x565] : +# 1714| mu1714_2(String) = Uninitialized[x565] : &:r1714_1 +# 1714| r1714_3(glval) = FunctionAddress[String] : +# 1714| v1714_4(void) = Call[String] : func:r1714_3, this:r1714_1 +# 1714| mu1714_5(unknown) = ^CallSideEffect : ~m? +# 1714| mu1714_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1714_1 +# 1715| r1715_1(glval) = VariableAddress[x565] : +# 1715| r1715_2(glval) = FunctionAddress[~String] : +# 1715| v1715_3(void) = Call[~String] : func:r1715_2, this:r1715_1 +# 1715| mu1715_4(unknown) = ^CallSideEffect : ~m? +# 1715| v1715_5(void) = ^IndirectReadSideEffect[-1] : &:r1715_1, ~m? +# 1715| mu1715_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1715_1 +# 1715| r1715_7(bool) = Constant[0] : +# 1715| v1715_8(void) = ConditionalBranch : r1715_7 +#-----| False -> Block 567 +#-----| True (back edge) -> Block 566 + +# 1717| Block 567 +# 1717| r1717_1(glval) = VariableAddress[x566] : +# 1717| mu1717_2(String) = Uninitialized[x566] : &:r1717_1 +# 1717| r1717_3(glval) = FunctionAddress[String] : +# 1717| v1717_4(void) = Call[String] : func:r1717_3, this:r1717_1 +# 1717| mu1717_5(unknown) = ^CallSideEffect : ~m? +# 1717| mu1717_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1717_1 +# 1718| r1718_1(glval) = VariableAddress[x566] : +# 1718| r1718_2(glval) = FunctionAddress[~String] : +# 1718| v1718_3(void) = Call[~String] : func:r1718_2, this:r1718_1 +# 1718| mu1718_4(unknown) = ^CallSideEffect : ~m? +# 1718| v1718_5(void) = ^IndirectReadSideEffect[-1] : &:r1718_1, ~m? +# 1718| mu1718_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1718_1 +# 1718| r1718_7(bool) = Constant[0] : +# 1718| v1718_8(void) = ConditionalBranch : r1718_7 +#-----| False -> Block 568 +#-----| True (back edge) -> Block 567 + +# 1720| Block 568 +# 1720| r1720_1(glval) = VariableAddress[x567] : +# 1720| mu1720_2(String) = Uninitialized[x567] : &:r1720_1 +# 1720| r1720_3(glval) = FunctionAddress[String] : +# 1720| v1720_4(void) = Call[String] : func:r1720_3, this:r1720_1 +# 1720| mu1720_5(unknown) = ^CallSideEffect : ~m? +# 1720| mu1720_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1720_1 +# 1721| r1721_1(glval) = VariableAddress[x567] : +# 1721| r1721_2(glval) = FunctionAddress[~String] : +# 1721| v1721_3(void) = Call[~String] : func:r1721_2, this:r1721_1 +# 1721| mu1721_4(unknown) = ^CallSideEffect : ~m? +# 1721| v1721_5(void) = ^IndirectReadSideEffect[-1] : &:r1721_1, ~m? +# 1721| mu1721_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1721_1 +# 1721| r1721_7(bool) = Constant[0] : +# 1721| v1721_8(void) = ConditionalBranch : r1721_7 +#-----| False -> Block 569 +#-----| True (back edge) -> Block 568 + +# 1723| Block 569 +# 1723| r1723_1(glval) = VariableAddress[x568] : +# 1723| mu1723_2(String) = Uninitialized[x568] : &:r1723_1 +# 1723| r1723_3(glval) = FunctionAddress[String] : +# 1723| v1723_4(void) = Call[String] : func:r1723_3, this:r1723_1 +# 1723| mu1723_5(unknown) = ^CallSideEffect : ~m? +# 1723| mu1723_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1723_1 +# 1724| r1724_1(glval) = VariableAddress[x568] : +# 1724| r1724_2(glval) = FunctionAddress[~String] : +# 1724| v1724_3(void) = Call[~String] : func:r1724_2, this:r1724_1 +# 1724| mu1724_4(unknown) = ^CallSideEffect : ~m? +# 1724| v1724_5(void) = ^IndirectReadSideEffect[-1] : &:r1724_1, ~m? +# 1724| mu1724_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1724_1 +# 1724| r1724_7(bool) = Constant[0] : +# 1724| v1724_8(void) = ConditionalBranch : r1724_7 +#-----| False -> Block 570 +#-----| True (back edge) -> Block 569 + +# 1726| Block 570 +# 1726| r1726_1(glval) = VariableAddress[x569] : +# 1726| mu1726_2(String) = Uninitialized[x569] : &:r1726_1 +# 1726| r1726_3(glval) = FunctionAddress[String] : +# 1726| v1726_4(void) = Call[String] : func:r1726_3, this:r1726_1 +# 1726| mu1726_5(unknown) = ^CallSideEffect : ~m? +# 1726| mu1726_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1726_1 +# 1727| r1727_1(glval) = VariableAddress[x569] : +# 1727| r1727_2(glval) = FunctionAddress[~String] : +# 1727| v1727_3(void) = Call[~String] : func:r1727_2, this:r1727_1 +# 1727| mu1727_4(unknown) = ^CallSideEffect : ~m? +# 1727| v1727_5(void) = ^IndirectReadSideEffect[-1] : &:r1727_1, ~m? +# 1727| mu1727_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1727_1 +# 1727| r1727_7(bool) = Constant[0] : +# 1727| v1727_8(void) = ConditionalBranch : r1727_7 +#-----| False -> Block 571 +#-----| True (back edge) -> Block 570 + +# 1729| Block 571 +# 1729| r1729_1(glval) = VariableAddress[x570] : +# 1729| mu1729_2(String) = Uninitialized[x570] : &:r1729_1 +# 1729| r1729_3(glval) = FunctionAddress[String] : +# 1729| v1729_4(void) = Call[String] : func:r1729_3, this:r1729_1 +# 1729| mu1729_5(unknown) = ^CallSideEffect : ~m? +# 1729| mu1729_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1729_1 +# 1730| r1730_1(glval) = VariableAddress[x570] : +# 1730| r1730_2(glval) = FunctionAddress[~String] : +# 1730| v1730_3(void) = Call[~String] : func:r1730_2, this:r1730_1 +# 1730| mu1730_4(unknown) = ^CallSideEffect : ~m? +# 1730| v1730_5(void) = ^IndirectReadSideEffect[-1] : &:r1730_1, ~m? +# 1730| mu1730_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1730_1 +# 1730| r1730_7(bool) = Constant[0] : +# 1730| v1730_8(void) = ConditionalBranch : r1730_7 +#-----| False -> Block 572 +#-----| True (back edge) -> Block 571 + +# 1732| Block 572 +# 1732| r1732_1(glval) = VariableAddress[x571] : +# 1732| mu1732_2(String) = Uninitialized[x571] : &:r1732_1 +# 1732| r1732_3(glval) = FunctionAddress[String] : +# 1732| v1732_4(void) = Call[String] : func:r1732_3, this:r1732_1 +# 1732| mu1732_5(unknown) = ^CallSideEffect : ~m? +# 1732| mu1732_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1732_1 +# 1733| r1733_1(glval) = VariableAddress[x571] : +# 1733| r1733_2(glval) = FunctionAddress[~String] : +# 1733| v1733_3(void) = Call[~String] : func:r1733_2, this:r1733_1 +# 1733| mu1733_4(unknown) = ^CallSideEffect : ~m? +# 1733| v1733_5(void) = ^IndirectReadSideEffect[-1] : &:r1733_1, ~m? +# 1733| mu1733_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1733_1 +# 1733| r1733_7(bool) = Constant[0] : +# 1733| v1733_8(void) = ConditionalBranch : r1733_7 +#-----| False -> Block 573 +#-----| True (back edge) -> Block 572 + +# 1735| Block 573 +# 1735| r1735_1(glval) = VariableAddress[x572] : +# 1735| mu1735_2(String) = Uninitialized[x572] : &:r1735_1 +# 1735| r1735_3(glval) = FunctionAddress[String] : +# 1735| v1735_4(void) = Call[String] : func:r1735_3, this:r1735_1 +# 1735| mu1735_5(unknown) = ^CallSideEffect : ~m? +# 1735| mu1735_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1735_1 +# 1736| r1736_1(glval) = VariableAddress[x572] : +# 1736| r1736_2(glval) = FunctionAddress[~String] : +# 1736| v1736_3(void) = Call[~String] : func:r1736_2, this:r1736_1 +# 1736| mu1736_4(unknown) = ^CallSideEffect : ~m? +# 1736| v1736_5(void) = ^IndirectReadSideEffect[-1] : &:r1736_1, ~m? +# 1736| mu1736_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1736_1 +# 1736| r1736_7(bool) = Constant[0] : +# 1736| v1736_8(void) = ConditionalBranch : r1736_7 +#-----| False -> Block 574 +#-----| True (back edge) -> Block 573 + +# 1738| Block 574 +# 1738| r1738_1(glval) = VariableAddress[x573] : +# 1738| mu1738_2(String) = Uninitialized[x573] : &:r1738_1 +# 1738| r1738_3(glval) = FunctionAddress[String] : +# 1738| v1738_4(void) = Call[String] : func:r1738_3, this:r1738_1 +# 1738| mu1738_5(unknown) = ^CallSideEffect : ~m? +# 1738| mu1738_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1738_1 +# 1739| r1739_1(glval) = VariableAddress[x573] : +# 1739| r1739_2(glval) = FunctionAddress[~String] : +# 1739| v1739_3(void) = Call[~String] : func:r1739_2, this:r1739_1 +# 1739| mu1739_4(unknown) = ^CallSideEffect : ~m? +# 1739| v1739_5(void) = ^IndirectReadSideEffect[-1] : &:r1739_1, ~m? +# 1739| mu1739_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1739_1 +# 1739| r1739_7(bool) = Constant[0] : +# 1739| v1739_8(void) = ConditionalBranch : r1739_7 +#-----| False -> Block 575 +#-----| True (back edge) -> Block 574 + +# 1741| Block 575 +# 1741| r1741_1(glval) = VariableAddress[x574] : +# 1741| mu1741_2(String) = Uninitialized[x574] : &:r1741_1 +# 1741| r1741_3(glval) = FunctionAddress[String] : +# 1741| v1741_4(void) = Call[String] : func:r1741_3, this:r1741_1 +# 1741| mu1741_5(unknown) = ^CallSideEffect : ~m? +# 1741| mu1741_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1741_1 +# 1742| r1742_1(glval) = VariableAddress[x574] : +# 1742| r1742_2(glval) = FunctionAddress[~String] : +# 1742| v1742_3(void) = Call[~String] : func:r1742_2, this:r1742_1 +# 1742| mu1742_4(unknown) = ^CallSideEffect : ~m? +# 1742| v1742_5(void) = ^IndirectReadSideEffect[-1] : &:r1742_1, ~m? +# 1742| mu1742_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1742_1 +# 1742| r1742_7(bool) = Constant[0] : +# 1742| v1742_8(void) = ConditionalBranch : r1742_7 +#-----| False -> Block 576 +#-----| True (back edge) -> Block 575 + +# 1744| Block 576 +# 1744| r1744_1(glval) = VariableAddress[x575] : +# 1744| mu1744_2(String) = Uninitialized[x575] : &:r1744_1 +# 1744| r1744_3(glval) = FunctionAddress[String] : +# 1744| v1744_4(void) = Call[String] : func:r1744_3, this:r1744_1 +# 1744| mu1744_5(unknown) = ^CallSideEffect : ~m? +# 1744| mu1744_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1744_1 +# 1745| r1745_1(glval) = VariableAddress[x575] : +# 1745| r1745_2(glval) = FunctionAddress[~String] : +# 1745| v1745_3(void) = Call[~String] : func:r1745_2, this:r1745_1 +# 1745| mu1745_4(unknown) = ^CallSideEffect : ~m? +# 1745| v1745_5(void) = ^IndirectReadSideEffect[-1] : &:r1745_1, ~m? +# 1745| mu1745_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1745_1 +# 1745| r1745_7(bool) = Constant[0] : +# 1745| v1745_8(void) = ConditionalBranch : r1745_7 +#-----| False -> Block 577 +#-----| True (back edge) -> Block 576 + +# 1747| Block 577 +# 1747| r1747_1(glval) = VariableAddress[x576] : +# 1747| mu1747_2(String) = Uninitialized[x576] : &:r1747_1 +# 1747| r1747_3(glval) = FunctionAddress[String] : +# 1747| v1747_4(void) = Call[String] : func:r1747_3, this:r1747_1 +# 1747| mu1747_5(unknown) = ^CallSideEffect : ~m? +# 1747| mu1747_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1747_1 +# 1748| r1748_1(glval) = VariableAddress[x576] : +# 1748| r1748_2(glval) = FunctionAddress[~String] : +# 1748| v1748_3(void) = Call[~String] : func:r1748_2, this:r1748_1 +# 1748| mu1748_4(unknown) = ^CallSideEffect : ~m? +# 1748| v1748_5(void) = ^IndirectReadSideEffect[-1] : &:r1748_1, ~m? +# 1748| mu1748_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1748_1 +# 1748| r1748_7(bool) = Constant[0] : +# 1748| v1748_8(void) = ConditionalBranch : r1748_7 +#-----| False -> Block 578 +#-----| True (back edge) -> Block 577 + +# 1750| Block 578 +# 1750| r1750_1(glval) = VariableAddress[x577] : +# 1750| mu1750_2(String) = Uninitialized[x577] : &:r1750_1 +# 1750| r1750_3(glval) = FunctionAddress[String] : +# 1750| v1750_4(void) = Call[String] : func:r1750_3, this:r1750_1 +# 1750| mu1750_5(unknown) = ^CallSideEffect : ~m? +# 1750| mu1750_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1750_1 +# 1751| r1751_1(glval) = VariableAddress[x577] : +# 1751| r1751_2(glval) = FunctionAddress[~String] : +# 1751| v1751_3(void) = Call[~String] : func:r1751_2, this:r1751_1 +# 1751| mu1751_4(unknown) = ^CallSideEffect : ~m? +# 1751| v1751_5(void) = ^IndirectReadSideEffect[-1] : &:r1751_1, ~m? +# 1751| mu1751_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1751_1 +# 1751| r1751_7(bool) = Constant[0] : +# 1751| v1751_8(void) = ConditionalBranch : r1751_7 +#-----| False -> Block 579 +#-----| True (back edge) -> Block 578 + +# 1753| Block 579 +# 1753| r1753_1(glval) = VariableAddress[x578] : +# 1753| mu1753_2(String) = Uninitialized[x578] : &:r1753_1 +# 1753| r1753_3(glval) = FunctionAddress[String] : +# 1753| v1753_4(void) = Call[String] : func:r1753_3, this:r1753_1 +# 1753| mu1753_5(unknown) = ^CallSideEffect : ~m? +# 1753| mu1753_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1753_1 +# 1754| r1754_1(glval) = VariableAddress[x578] : +# 1754| r1754_2(glval) = FunctionAddress[~String] : +# 1754| v1754_3(void) = Call[~String] : func:r1754_2, this:r1754_1 +# 1754| mu1754_4(unknown) = ^CallSideEffect : ~m? +# 1754| v1754_5(void) = ^IndirectReadSideEffect[-1] : &:r1754_1, ~m? +# 1754| mu1754_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1754_1 +# 1754| r1754_7(bool) = Constant[0] : +# 1754| v1754_8(void) = ConditionalBranch : r1754_7 +#-----| False -> Block 580 +#-----| True (back edge) -> Block 579 + +# 1756| Block 580 +# 1756| r1756_1(glval) = VariableAddress[x579] : +# 1756| mu1756_2(String) = Uninitialized[x579] : &:r1756_1 +# 1756| r1756_3(glval) = FunctionAddress[String] : +# 1756| v1756_4(void) = Call[String] : func:r1756_3, this:r1756_1 +# 1756| mu1756_5(unknown) = ^CallSideEffect : ~m? +# 1756| mu1756_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1756_1 +# 1757| r1757_1(glval) = VariableAddress[x579] : +# 1757| r1757_2(glval) = FunctionAddress[~String] : +# 1757| v1757_3(void) = Call[~String] : func:r1757_2, this:r1757_1 +# 1757| mu1757_4(unknown) = ^CallSideEffect : ~m? +# 1757| v1757_5(void) = ^IndirectReadSideEffect[-1] : &:r1757_1, ~m? +# 1757| mu1757_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1757_1 +# 1757| r1757_7(bool) = Constant[0] : +# 1757| v1757_8(void) = ConditionalBranch : r1757_7 +#-----| False -> Block 581 +#-----| True (back edge) -> Block 580 + +# 1759| Block 581 +# 1759| r1759_1(glval) = VariableAddress[x580] : +# 1759| mu1759_2(String) = Uninitialized[x580] : &:r1759_1 +# 1759| r1759_3(glval) = FunctionAddress[String] : +# 1759| v1759_4(void) = Call[String] : func:r1759_3, this:r1759_1 +# 1759| mu1759_5(unknown) = ^CallSideEffect : ~m? +# 1759| mu1759_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1759_1 +# 1760| r1760_1(glval) = VariableAddress[x580] : +# 1760| r1760_2(glval) = FunctionAddress[~String] : +# 1760| v1760_3(void) = Call[~String] : func:r1760_2, this:r1760_1 +# 1760| mu1760_4(unknown) = ^CallSideEffect : ~m? +# 1760| v1760_5(void) = ^IndirectReadSideEffect[-1] : &:r1760_1, ~m? +# 1760| mu1760_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1760_1 +# 1760| r1760_7(bool) = Constant[0] : +# 1760| v1760_8(void) = ConditionalBranch : r1760_7 +#-----| False -> Block 582 +#-----| True (back edge) -> Block 581 + +# 1762| Block 582 +# 1762| r1762_1(glval) = VariableAddress[x581] : +# 1762| mu1762_2(String) = Uninitialized[x581] : &:r1762_1 +# 1762| r1762_3(glval) = FunctionAddress[String] : +# 1762| v1762_4(void) = Call[String] : func:r1762_3, this:r1762_1 +# 1762| mu1762_5(unknown) = ^CallSideEffect : ~m? +# 1762| mu1762_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1762_1 +# 1763| r1763_1(glval) = VariableAddress[x581] : +# 1763| r1763_2(glval) = FunctionAddress[~String] : +# 1763| v1763_3(void) = Call[~String] : func:r1763_2, this:r1763_1 +# 1763| mu1763_4(unknown) = ^CallSideEffect : ~m? +# 1763| v1763_5(void) = ^IndirectReadSideEffect[-1] : &:r1763_1, ~m? +# 1763| mu1763_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1763_1 +# 1763| r1763_7(bool) = Constant[0] : +# 1763| v1763_8(void) = ConditionalBranch : r1763_7 +#-----| False -> Block 583 +#-----| True (back edge) -> Block 582 + +# 1765| Block 583 +# 1765| r1765_1(glval) = VariableAddress[x582] : +# 1765| mu1765_2(String) = Uninitialized[x582] : &:r1765_1 +# 1765| r1765_3(glval) = FunctionAddress[String] : +# 1765| v1765_4(void) = Call[String] : func:r1765_3, this:r1765_1 +# 1765| mu1765_5(unknown) = ^CallSideEffect : ~m? +# 1765| mu1765_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1765_1 +# 1766| r1766_1(glval) = VariableAddress[x582] : +# 1766| r1766_2(glval) = FunctionAddress[~String] : +# 1766| v1766_3(void) = Call[~String] : func:r1766_2, this:r1766_1 +# 1766| mu1766_4(unknown) = ^CallSideEffect : ~m? +# 1766| v1766_5(void) = ^IndirectReadSideEffect[-1] : &:r1766_1, ~m? +# 1766| mu1766_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1766_1 +# 1766| r1766_7(bool) = Constant[0] : +# 1766| v1766_8(void) = ConditionalBranch : r1766_7 +#-----| False -> Block 584 +#-----| True (back edge) -> Block 583 + +# 1768| Block 584 +# 1768| r1768_1(glval) = VariableAddress[x583] : +# 1768| mu1768_2(String) = Uninitialized[x583] : &:r1768_1 +# 1768| r1768_3(glval) = FunctionAddress[String] : +# 1768| v1768_4(void) = Call[String] : func:r1768_3, this:r1768_1 +# 1768| mu1768_5(unknown) = ^CallSideEffect : ~m? +# 1768| mu1768_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1768_1 +# 1769| r1769_1(glval) = VariableAddress[x583] : +# 1769| r1769_2(glval) = FunctionAddress[~String] : +# 1769| v1769_3(void) = Call[~String] : func:r1769_2, this:r1769_1 +# 1769| mu1769_4(unknown) = ^CallSideEffect : ~m? +# 1769| v1769_5(void) = ^IndirectReadSideEffect[-1] : &:r1769_1, ~m? +# 1769| mu1769_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1769_1 +# 1769| r1769_7(bool) = Constant[0] : +# 1769| v1769_8(void) = ConditionalBranch : r1769_7 +#-----| False -> Block 585 +#-----| True (back edge) -> Block 584 + +# 1771| Block 585 +# 1771| r1771_1(glval) = VariableAddress[x584] : +# 1771| mu1771_2(String) = Uninitialized[x584] : &:r1771_1 +# 1771| r1771_3(glval) = FunctionAddress[String] : +# 1771| v1771_4(void) = Call[String] : func:r1771_3, this:r1771_1 +# 1771| mu1771_5(unknown) = ^CallSideEffect : ~m? +# 1771| mu1771_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1771_1 +# 1772| r1772_1(glval) = VariableAddress[x584] : +# 1772| r1772_2(glval) = FunctionAddress[~String] : +# 1772| v1772_3(void) = Call[~String] : func:r1772_2, this:r1772_1 +# 1772| mu1772_4(unknown) = ^CallSideEffect : ~m? +# 1772| v1772_5(void) = ^IndirectReadSideEffect[-1] : &:r1772_1, ~m? +# 1772| mu1772_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1772_1 +# 1772| r1772_7(bool) = Constant[0] : +# 1772| v1772_8(void) = ConditionalBranch : r1772_7 +#-----| False -> Block 586 +#-----| True (back edge) -> Block 585 + +# 1774| Block 586 +# 1774| r1774_1(glval) = VariableAddress[x585] : +# 1774| mu1774_2(String) = Uninitialized[x585] : &:r1774_1 +# 1774| r1774_3(glval) = FunctionAddress[String] : +# 1774| v1774_4(void) = Call[String] : func:r1774_3, this:r1774_1 +# 1774| mu1774_5(unknown) = ^CallSideEffect : ~m? +# 1774| mu1774_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1774_1 +# 1775| r1775_1(glval) = VariableAddress[x585] : +# 1775| r1775_2(glval) = FunctionAddress[~String] : +# 1775| v1775_3(void) = Call[~String] : func:r1775_2, this:r1775_1 +# 1775| mu1775_4(unknown) = ^CallSideEffect : ~m? +# 1775| v1775_5(void) = ^IndirectReadSideEffect[-1] : &:r1775_1, ~m? +# 1775| mu1775_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1775_1 +# 1775| r1775_7(bool) = Constant[0] : +# 1775| v1775_8(void) = ConditionalBranch : r1775_7 +#-----| False -> Block 587 +#-----| True (back edge) -> Block 586 + +# 1777| Block 587 +# 1777| r1777_1(glval) = VariableAddress[x586] : +# 1777| mu1777_2(String) = Uninitialized[x586] : &:r1777_1 +# 1777| r1777_3(glval) = FunctionAddress[String] : +# 1777| v1777_4(void) = Call[String] : func:r1777_3, this:r1777_1 +# 1777| mu1777_5(unknown) = ^CallSideEffect : ~m? +# 1777| mu1777_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1777_1 +# 1778| r1778_1(glval) = VariableAddress[x586] : +# 1778| r1778_2(glval) = FunctionAddress[~String] : +# 1778| v1778_3(void) = Call[~String] : func:r1778_2, this:r1778_1 +# 1778| mu1778_4(unknown) = ^CallSideEffect : ~m? +# 1778| v1778_5(void) = ^IndirectReadSideEffect[-1] : &:r1778_1, ~m? +# 1778| mu1778_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1778_1 +# 1778| r1778_7(bool) = Constant[0] : +# 1778| v1778_8(void) = ConditionalBranch : r1778_7 +#-----| False -> Block 588 +#-----| True (back edge) -> Block 587 + +# 1780| Block 588 +# 1780| r1780_1(glval) = VariableAddress[x587] : +# 1780| mu1780_2(String) = Uninitialized[x587] : &:r1780_1 +# 1780| r1780_3(glval) = FunctionAddress[String] : +# 1780| v1780_4(void) = Call[String] : func:r1780_3, this:r1780_1 +# 1780| mu1780_5(unknown) = ^CallSideEffect : ~m? +# 1780| mu1780_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1780_1 +# 1781| r1781_1(glval) = VariableAddress[x587] : +# 1781| r1781_2(glval) = FunctionAddress[~String] : +# 1781| v1781_3(void) = Call[~String] : func:r1781_2, this:r1781_1 +# 1781| mu1781_4(unknown) = ^CallSideEffect : ~m? +# 1781| v1781_5(void) = ^IndirectReadSideEffect[-1] : &:r1781_1, ~m? +# 1781| mu1781_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1781_1 +# 1781| r1781_7(bool) = Constant[0] : +# 1781| v1781_8(void) = ConditionalBranch : r1781_7 +#-----| False -> Block 589 +#-----| True (back edge) -> Block 588 + +# 1783| Block 589 +# 1783| r1783_1(glval) = VariableAddress[x588] : +# 1783| mu1783_2(String) = Uninitialized[x588] : &:r1783_1 +# 1783| r1783_3(glval) = FunctionAddress[String] : +# 1783| v1783_4(void) = Call[String] : func:r1783_3, this:r1783_1 +# 1783| mu1783_5(unknown) = ^CallSideEffect : ~m? +# 1783| mu1783_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1783_1 +# 1784| r1784_1(glval) = VariableAddress[x588] : +# 1784| r1784_2(glval) = FunctionAddress[~String] : +# 1784| v1784_3(void) = Call[~String] : func:r1784_2, this:r1784_1 +# 1784| mu1784_4(unknown) = ^CallSideEffect : ~m? +# 1784| v1784_5(void) = ^IndirectReadSideEffect[-1] : &:r1784_1, ~m? +# 1784| mu1784_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1784_1 +# 1784| r1784_7(bool) = Constant[0] : +# 1784| v1784_8(void) = ConditionalBranch : r1784_7 +#-----| False -> Block 590 +#-----| True (back edge) -> Block 589 + +# 1786| Block 590 +# 1786| r1786_1(glval) = VariableAddress[x589] : +# 1786| mu1786_2(String) = Uninitialized[x589] : &:r1786_1 +# 1786| r1786_3(glval) = FunctionAddress[String] : +# 1786| v1786_4(void) = Call[String] : func:r1786_3, this:r1786_1 +# 1786| mu1786_5(unknown) = ^CallSideEffect : ~m? +# 1786| mu1786_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1786_1 +# 1787| r1787_1(glval) = VariableAddress[x589] : +# 1787| r1787_2(glval) = FunctionAddress[~String] : +# 1787| v1787_3(void) = Call[~String] : func:r1787_2, this:r1787_1 +# 1787| mu1787_4(unknown) = ^CallSideEffect : ~m? +# 1787| v1787_5(void) = ^IndirectReadSideEffect[-1] : &:r1787_1, ~m? +# 1787| mu1787_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1787_1 +# 1787| r1787_7(bool) = Constant[0] : +# 1787| v1787_8(void) = ConditionalBranch : r1787_7 +#-----| False -> Block 591 +#-----| True (back edge) -> Block 590 + +# 1789| Block 591 +# 1789| r1789_1(glval) = VariableAddress[x590] : +# 1789| mu1789_2(String) = Uninitialized[x590] : &:r1789_1 +# 1789| r1789_3(glval) = FunctionAddress[String] : +# 1789| v1789_4(void) = Call[String] : func:r1789_3, this:r1789_1 +# 1789| mu1789_5(unknown) = ^CallSideEffect : ~m? +# 1789| mu1789_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1789_1 +# 1790| r1790_1(glval) = VariableAddress[x590] : +# 1790| r1790_2(glval) = FunctionAddress[~String] : +# 1790| v1790_3(void) = Call[~String] : func:r1790_2, this:r1790_1 +# 1790| mu1790_4(unknown) = ^CallSideEffect : ~m? +# 1790| v1790_5(void) = ^IndirectReadSideEffect[-1] : &:r1790_1, ~m? +# 1790| mu1790_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1790_1 +# 1790| r1790_7(bool) = Constant[0] : +# 1790| v1790_8(void) = ConditionalBranch : r1790_7 +#-----| False -> Block 592 +#-----| True (back edge) -> Block 591 + +# 1792| Block 592 +# 1792| r1792_1(glval) = VariableAddress[x591] : +# 1792| mu1792_2(String) = Uninitialized[x591] : &:r1792_1 +# 1792| r1792_3(glval) = FunctionAddress[String] : +# 1792| v1792_4(void) = Call[String] : func:r1792_3, this:r1792_1 +# 1792| mu1792_5(unknown) = ^CallSideEffect : ~m? +# 1792| mu1792_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1792_1 +# 1793| r1793_1(glval) = VariableAddress[x591] : +# 1793| r1793_2(glval) = FunctionAddress[~String] : +# 1793| v1793_3(void) = Call[~String] : func:r1793_2, this:r1793_1 +# 1793| mu1793_4(unknown) = ^CallSideEffect : ~m? +# 1793| v1793_5(void) = ^IndirectReadSideEffect[-1] : &:r1793_1, ~m? +# 1793| mu1793_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1793_1 +# 1793| r1793_7(bool) = Constant[0] : +# 1793| v1793_8(void) = ConditionalBranch : r1793_7 +#-----| False -> Block 593 +#-----| True (back edge) -> Block 592 + +# 1795| Block 593 +# 1795| r1795_1(glval) = VariableAddress[x592] : +# 1795| mu1795_2(String) = Uninitialized[x592] : &:r1795_1 +# 1795| r1795_3(glval) = FunctionAddress[String] : +# 1795| v1795_4(void) = Call[String] : func:r1795_3, this:r1795_1 +# 1795| mu1795_5(unknown) = ^CallSideEffect : ~m? +# 1795| mu1795_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1795_1 +# 1796| r1796_1(glval) = VariableAddress[x592] : +# 1796| r1796_2(glval) = FunctionAddress[~String] : +# 1796| v1796_3(void) = Call[~String] : func:r1796_2, this:r1796_1 +# 1796| mu1796_4(unknown) = ^CallSideEffect : ~m? +# 1796| v1796_5(void) = ^IndirectReadSideEffect[-1] : &:r1796_1, ~m? +# 1796| mu1796_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1796_1 +# 1796| r1796_7(bool) = Constant[0] : +# 1796| v1796_8(void) = ConditionalBranch : r1796_7 +#-----| False -> Block 594 +#-----| True (back edge) -> Block 593 + +# 1798| Block 594 +# 1798| r1798_1(glval) = VariableAddress[x593] : +# 1798| mu1798_2(String) = Uninitialized[x593] : &:r1798_1 +# 1798| r1798_3(glval) = FunctionAddress[String] : +# 1798| v1798_4(void) = Call[String] : func:r1798_3, this:r1798_1 +# 1798| mu1798_5(unknown) = ^CallSideEffect : ~m? +# 1798| mu1798_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1798_1 +# 1799| r1799_1(glval) = VariableAddress[x593] : +# 1799| r1799_2(glval) = FunctionAddress[~String] : +# 1799| v1799_3(void) = Call[~String] : func:r1799_2, this:r1799_1 +# 1799| mu1799_4(unknown) = ^CallSideEffect : ~m? +# 1799| v1799_5(void) = ^IndirectReadSideEffect[-1] : &:r1799_1, ~m? +# 1799| mu1799_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1799_1 +# 1799| r1799_7(bool) = Constant[0] : +# 1799| v1799_8(void) = ConditionalBranch : r1799_7 +#-----| False -> Block 595 +#-----| True (back edge) -> Block 594 + +# 1801| Block 595 +# 1801| r1801_1(glval) = VariableAddress[x594] : +# 1801| mu1801_2(String) = Uninitialized[x594] : &:r1801_1 +# 1801| r1801_3(glval) = FunctionAddress[String] : +# 1801| v1801_4(void) = Call[String] : func:r1801_3, this:r1801_1 +# 1801| mu1801_5(unknown) = ^CallSideEffect : ~m? +# 1801| mu1801_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1801_1 +# 1802| r1802_1(glval) = VariableAddress[x594] : +# 1802| r1802_2(glval) = FunctionAddress[~String] : +# 1802| v1802_3(void) = Call[~String] : func:r1802_2, this:r1802_1 +# 1802| mu1802_4(unknown) = ^CallSideEffect : ~m? +# 1802| v1802_5(void) = ^IndirectReadSideEffect[-1] : &:r1802_1, ~m? +# 1802| mu1802_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1802_1 +# 1802| r1802_7(bool) = Constant[0] : +# 1802| v1802_8(void) = ConditionalBranch : r1802_7 +#-----| False -> Block 596 +#-----| True (back edge) -> Block 595 + +# 1804| Block 596 +# 1804| r1804_1(glval) = VariableAddress[x595] : +# 1804| mu1804_2(String) = Uninitialized[x595] : &:r1804_1 +# 1804| r1804_3(glval) = FunctionAddress[String] : +# 1804| v1804_4(void) = Call[String] : func:r1804_3, this:r1804_1 +# 1804| mu1804_5(unknown) = ^CallSideEffect : ~m? +# 1804| mu1804_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1804_1 +# 1805| r1805_1(glval) = VariableAddress[x595] : +# 1805| r1805_2(glval) = FunctionAddress[~String] : +# 1805| v1805_3(void) = Call[~String] : func:r1805_2, this:r1805_1 +# 1805| mu1805_4(unknown) = ^CallSideEffect : ~m? +# 1805| v1805_5(void) = ^IndirectReadSideEffect[-1] : &:r1805_1, ~m? +# 1805| mu1805_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1805_1 +# 1805| r1805_7(bool) = Constant[0] : +# 1805| v1805_8(void) = ConditionalBranch : r1805_7 +#-----| False -> Block 597 +#-----| True (back edge) -> Block 596 + +# 1807| Block 597 +# 1807| r1807_1(glval) = VariableAddress[x596] : +# 1807| mu1807_2(String) = Uninitialized[x596] : &:r1807_1 +# 1807| r1807_3(glval) = FunctionAddress[String] : +# 1807| v1807_4(void) = Call[String] : func:r1807_3, this:r1807_1 +# 1807| mu1807_5(unknown) = ^CallSideEffect : ~m? +# 1807| mu1807_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1807_1 +# 1808| r1808_1(glval) = VariableAddress[x596] : +# 1808| r1808_2(glval) = FunctionAddress[~String] : +# 1808| v1808_3(void) = Call[~String] : func:r1808_2, this:r1808_1 +# 1808| mu1808_4(unknown) = ^CallSideEffect : ~m? +# 1808| v1808_5(void) = ^IndirectReadSideEffect[-1] : &:r1808_1, ~m? +# 1808| mu1808_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1808_1 +# 1808| r1808_7(bool) = Constant[0] : +# 1808| v1808_8(void) = ConditionalBranch : r1808_7 +#-----| False -> Block 598 +#-----| True (back edge) -> Block 597 + +# 1810| Block 598 +# 1810| r1810_1(glval) = VariableAddress[x597] : +# 1810| mu1810_2(String) = Uninitialized[x597] : &:r1810_1 +# 1810| r1810_3(glval) = FunctionAddress[String] : +# 1810| v1810_4(void) = Call[String] : func:r1810_3, this:r1810_1 +# 1810| mu1810_5(unknown) = ^CallSideEffect : ~m? +# 1810| mu1810_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1810_1 +# 1811| r1811_1(glval) = VariableAddress[x597] : +# 1811| r1811_2(glval) = FunctionAddress[~String] : +# 1811| v1811_3(void) = Call[~String] : func:r1811_2, this:r1811_1 +# 1811| mu1811_4(unknown) = ^CallSideEffect : ~m? +# 1811| v1811_5(void) = ^IndirectReadSideEffect[-1] : &:r1811_1, ~m? +# 1811| mu1811_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1811_1 +# 1811| r1811_7(bool) = Constant[0] : +# 1811| v1811_8(void) = ConditionalBranch : r1811_7 +#-----| False -> Block 599 +#-----| True (back edge) -> Block 598 + +# 1813| Block 599 +# 1813| r1813_1(glval) = VariableAddress[x598] : +# 1813| mu1813_2(String) = Uninitialized[x598] : &:r1813_1 +# 1813| r1813_3(glval) = FunctionAddress[String] : +# 1813| v1813_4(void) = Call[String] : func:r1813_3, this:r1813_1 +# 1813| mu1813_5(unknown) = ^CallSideEffect : ~m? +# 1813| mu1813_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1813_1 +# 1814| r1814_1(glval) = VariableAddress[x598] : +# 1814| r1814_2(glval) = FunctionAddress[~String] : +# 1814| v1814_3(void) = Call[~String] : func:r1814_2, this:r1814_1 +# 1814| mu1814_4(unknown) = ^CallSideEffect : ~m? +# 1814| v1814_5(void) = ^IndirectReadSideEffect[-1] : &:r1814_1, ~m? +# 1814| mu1814_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1814_1 +# 1814| r1814_7(bool) = Constant[0] : +# 1814| v1814_8(void) = ConditionalBranch : r1814_7 +#-----| False -> Block 600 +#-----| True (back edge) -> Block 599 + +# 1816| Block 600 +# 1816| r1816_1(glval) = VariableAddress[x599] : +# 1816| mu1816_2(String) = Uninitialized[x599] : &:r1816_1 +# 1816| r1816_3(glval) = FunctionAddress[String] : +# 1816| v1816_4(void) = Call[String] : func:r1816_3, this:r1816_1 +# 1816| mu1816_5(unknown) = ^CallSideEffect : ~m? +# 1816| mu1816_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1816_1 +# 1817| r1817_1(glval) = VariableAddress[x599] : +# 1817| r1817_2(glval) = FunctionAddress[~String] : +# 1817| v1817_3(void) = Call[~String] : func:r1817_2, this:r1817_1 +# 1817| mu1817_4(unknown) = ^CallSideEffect : ~m? +# 1817| v1817_5(void) = ^IndirectReadSideEffect[-1] : &:r1817_1, ~m? +# 1817| mu1817_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1817_1 +# 1817| r1817_7(bool) = Constant[0] : +# 1817| v1817_8(void) = ConditionalBranch : r1817_7 +#-----| False -> Block 601 +#-----| True (back edge) -> Block 600 + +# 1819| Block 601 +# 1819| r1819_1(glval) = VariableAddress[x600] : +# 1819| mu1819_2(String) = Uninitialized[x600] : &:r1819_1 +# 1819| r1819_3(glval) = FunctionAddress[String] : +# 1819| v1819_4(void) = Call[String] : func:r1819_3, this:r1819_1 +# 1819| mu1819_5(unknown) = ^CallSideEffect : ~m? +# 1819| mu1819_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1819_1 +# 1820| r1820_1(glval) = VariableAddress[x600] : +# 1820| r1820_2(glval) = FunctionAddress[~String] : +# 1820| v1820_3(void) = Call[~String] : func:r1820_2, this:r1820_1 +# 1820| mu1820_4(unknown) = ^CallSideEffect : ~m? +# 1820| v1820_5(void) = ^IndirectReadSideEffect[-1] : &:r1820_1, ~m? +# 1820| mu1820_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1820_1 +# 1820| r1820_7(bool) = Constant[0] : +# 1820| v1820_8(void) = ConditionalBranch : r1820_7 +#-----| False -> Block 602 +#-----| True (back edge) -> Block 601 + +# 1822| Block 602 +# 1822| r1822_1(glval) = VariableAddress[x601] : +# 1822| mu1822_2(String) = Uninitialized[x601] : &:r1822_1 +# 1822| r1822_3(glval) = FunctionAddress[String] : +# 1822| v1822_4(void) = Call[String] : func:r1822_3, this:r1822_1 +# 1822| mu1822_5(unknown) = ^CallSideEffect : ~m? +# 1822| mu1822_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1822_1 +# 1823| r1823_1(glval) = VariableAddress[x601] : +# 1823| r1823_2(glval) = FunctionAddress[~String] : +# 1823| v1823_3(void) = Call[~String] : func:r1823_2, this:r1823_1 +# 1823| mu1823_4(unknown) = ^CallSideEffect : ~m? +# 1823| v1823_5(void) = ^IndirectReadSideEffect[-1] : &:r1823_1, ~m? +# 1823| mu1823_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1823_1 +# 1823| r1823_7(bool) = Constant[0] : +# 1823| v1823_8(void) = ConditionalBranch : r1823_7 +#-----| False -> Block 603 +#-----| True (back edge) -> Block 602 + +# 1825| Block 603 +# 1825| r1825_1(glval) = VariableAddress[x602] : +# 1825| mu1825_2(String) = Uninitialized[x602] : &:r1825_1 +# 1825| r1825_3(glval) = FunctionAddress[String] : +# 1825| v1825_4(void) = Call[String] : func:r1825_3, this:r1825_1 +# 1825| mu1825_5(unknown) = ^CallSideEffect : ~m? +# 1825| mu1825_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1825_1 +# 1826| r1826_1(glval) = VariableAddress[x602] : +# 1826| r1826_2(glval) = FunctionAddress[~String] : +# 1826| v1826_3(void) = Call[~String] : func:r1826_2, this:r1826_1 +# 1826| mu1826_4(unknown) = ^CallSideEffect : ~m? +# 1826| v1826_5(void) = ^IndirectReadSideEffect[-1] : &:r1826_1, ~m? +# 1826| mu1826_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1826_1 +# 1826| r1826_7(bool) = Constant[0] : +# 1826| v1826_8(void) = ConditionalBranch : r1826_7 +#-----| False -> Block 604 +#-----| True (back edge) -> Block 603 + +# 1828| Block 604 +# 1828| r1828_1(glval) = VariableAddress[x603] : +# 1828| mu1828_2(String) = Uninitialized[x603] : &:r1828_1 +# 1828| r1828_3(glval) = FunctionAddress[String] : +# 1828| v1828_4(void) = Call[String] : func:r1828_3, this:r1828_1 +# 1828| mu1828_5(unknown) = ^CallSideEffect : ~m? +# 1828| mu1828_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1828_1 +# 1829| r1829_1(glval) = VariableAddress[x603] : +# 1829| r1829_2(glval) = FunctionAddress[~String] : +# 1829| v1829_3(void) = Call[~String] : func:r1829_2, this:r1829_1 +# 1829| mu1829_4(unknown) = ^CallSideEffect : ~m? +# 1829| v1829_5(void) = ^IndirectReadSideEffect[-1] : &:r1829_1, ~m? +# 1829| mu1829_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1829_1 +# 1829| r1829_7(bool) = Constant[0] : +# 1829| v1829_8(void) = ConditionalBranch : r1829_7 +#-----| False -> Block 605 +#-----| True (back edge) -> Block 604 + +# 1831| Block 605 +# 1831| r1831_1(glval) = VariableAddress[x604] : +# 1831| mu1831_2(String) = Uninitialized[x604] : &:r1831_1 +# 1831| r1831_3(glval) = FunctionAddress[String] : +# 1831| v1831_4(void) = Call[String] : func:r1831_3, this:r1831_1 +# 1831| mu1831_5(unknown) = ^CallSideEffect : ~m? +# 1831| mu1831_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1831_1 +# 1832| r1832_1(glval) = VariableAddress[x604] : +# 1832| r1832_2(glval) = FunctionAddress[~String] : +# 1832| v1832_3(void) = Call[~String] : func:r1832_2, this:r1832_1 +# 1832| mu1832_4(unknown) = ^CallSideEffect : ~m? +# 1832| v1832_5(void) = ^IndirectReadSideEffect[-1] : &:r1832_1, ~m? +# 1832| mu1832_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1832_1 +# 1832| r1832_7(bool) = Constant[0] : +# 1832| v1832_8(void) = ConditionalBranch : r1832_7 +#-----| False -> Block 606 +#-----| True (back edge) -> Block 605 + +# 1834| Block 606 +# 1834| r1834_1(glval) = VariableAddress[x605] : +# 1834| mu1834_2(String) = Uninitialized[x605] : &:r1834_1 +# 1834| r1834_3(glval) = FunctionAddress[String] : +# 1834| v1834_4(void) = Call[String] : func:r1834_3, this:r1834_1 +# 1834| mu1834_5(unknown) = ^CallSideEffect : ~m? +# 1834| mu1834_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1834_1 +# 1835| r1835_1(glval) = VariableAddress[x605] : +# 1835| r1835_2(glval) = FunctionAddress[~String] : +# 1835| v1835_3(void) = Call[~String] : func:r1835_2, this:r1835_1 +# 1835| mu1835_4(unknown) = ^CallSideEffect : ~m? +# 1835| v1835_5(void) = ^IndirectReadSideEffect[-1] : &:r1835_1, ~m? +# 1835| mu1835_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1835_1 +# 1835| r1835_7(bool) = Constant[0] : +# 1835| v1835_8(void) = ConditionalBranch : r1835_7 +#-----| False -> Block 607 +#-----| True (back edge) -> Block 606 + +# 1837| Block 607 +# 1837| r1837_1(glval) = VariableAddress[x606] : +# 1837| mu1837_2(String) = Uninitialized[x606] : &:r1837_1 +# 1837| r1837_3(glval) = FunctionAddress[String] : +# 1837| v1837_4(void) = Call[String] : func:r1837_3, this:r1837_1 +# 1837| mu1837_5(unknown) = ^CallSideEffect : ~m? +# 1837| mu1837_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1837_1 +# 1838| r1838_1(glval) = VariableAddress[x606] : +# 1838| r1838_2(glval) = FunctionAddress[~String] : +# 1838| v1838_3(void) = Call[~String] : func:r1838_2, this:r1838_1 +# 1838| mu1838_4(unknown) = ^CallSideEffect : ~m? +# 1838| v1838_5(void) = ^IndirectReadSideEffect[-1] : &:r1838_1, ~m? +# 1838| mu1838_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1838_1 +# 1838| r1838_7(bool) = Constant[0] : +# 1838| v1838_8(void) = ConditionalBranch : r1838_7 +#-----| False -> Block 608 +#-----| True (back edge) -> Block 607 + +# 1840| Block 608 +# 1840| r1840_1(glval) = VariableAddress[x607] : +# 1840| mu1840_2(String) = Uninitialized[x607] : &:r1840_1 +# 1840| r1840_3(glval) = FunctionAddress[String] : +# 1840| v1840_4(void) = Call[String] : func:r1840_3, this:r1840_1 +# 1840| mu1840_5(unknown) = ^CallSideEffect : ~m? +# 1840| mu1840_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1840_1 +# 1841| r1841_1(glval) = VariableAddress[x607] : +# 1841| r1841_2(glval) = FunctionAddress[~String] : +# 1841| v1841_3(void) = Call[~String] : func:r1841_2, this:r1841_1 +# 1841| mu1841_4(unknown) = ^CallSideEffect : ~m? +# 1841| v1841_5(void) = ^IndirectReadSideEffect[-1] : &:r1841_1, ~m? +# 1841| mu1841_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1841_1 +# 1841| r1841_7(bool) = Constant[0] : +# 1841| v1841_8(void) = ConditionalBranch : r1841_7 +#-----| False -> Block 609 +#-----| True (back edge) -> Block 608 + +# 1843| Block 609 +# 1843| r1843_1(glval) = VariableAddress[x608] : +# 1843| mu1843_2(String) = Uninitialized[x608] : &:r1843_1 +# 1843| r1843_3(glval) = FunctionAddress[String] : +# 1843| v1843_4(void) = Call[String] : func:r1843_3, this:r1843_1 +# 1843| mu1843_5(unknown) = ^CallSideEffect : ~m? +# 1843| mu1843_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1843_1 +# 1844| r1844_1(glval) = VariableAddress[x608] : +# 1844| r1844_2(glval) = FunctionAddress[~String] : +# 1844| v1844_3(void) = Call[~String] : func:r1844_2, this:r1844_1 +# 1844| mu1844_4(unknown) = ^CallSideEffect : ~m? +# 1844| v1844_5(void) = ^IndirectReadSideEffect[-1] : &:r1844_1, ~m? +# 1844| mu1844_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1844_1 +# 1844| r1844_7(bool) = Constant[0] : +# 1844| v1844_8(void) = ConditionalBranch : r1844_7 +#-----| False -> Block 610 +#-----| True (back edge) -> Block 609 + +# 1846| Block 610 +# 1846| r1846_1(glval) = VariableAddress[x609] : +# 1846| mu1846_2(String) = Uninitialized[x609] : &:r1846_1 +# 1846| r1846_3(glval) = FunctionAddress[String] : +# 1846| v1846_4(void) = Call[String] : func:r1846_3, this:r1846_1 +# 1846| mu1846_5(unknown) = ^CallSideEffect : ~m? +# 1846| mu1846_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1846_1 +# 1847| r1847_1(glval) = VariableAddress[x609] : +# 1847| r1847_2(glval) = FunctionAddress[~String] : +# 1847| v1847_3(void) = Call[~String] : func:r1847_2, this:r1847_1 +# 1847| mu1847_4(unknown) = ^CallSideEffect : ~m? +# 1847| v1847_5(void) = ^IndirectReadSideEffect[-1] : &:r1847_1, ~m? +# 1847| mu1847_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1847_1 +# 1847| r1847_7(bool) = Constant[0] : +# 1847| v1847_8(void) = ConditionalBranch : r1847_7 +#-----| False -> Block 611 +#-----| True (back edge) -> Block 610 + +# 1849| Block 611 +# 1849| r1849_1(glval) = VariableAddress[x610] : +# 1849| mu1849_2(String) = Uninitialized[x610] : &:r1849_1 +# 1849| r1849_3(glval) = FunctionAddress[String] : +# 1849| v1849_4(void) = Call[String] : func:r1849_3, this:r1849_1 +# 1849| mu1849_5(unknown) = ^CallSideEffect : ~m? +# 1849| mu1849_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1849_1 +# 1850| r1850_1(glval) = VariableAddress[x610] : +# 1850| r1850_2(glval) = FunctionAddress[~String] : +# 1850| v1850_3(void) = Call[~String] : func:r1850_2, this:r1850_1 +# 1850| mu1850_4(unknown) = ^CallSideEffect : ~m? +# 1850| v1850_5(void) = ^IndirectReadSideEffect[-1] : &:r1850_1, ~m? +# 1850| mu1850_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1850_1 +# 1850| r1850_7(bool) = Constant[0] : +# 1850| v1850_8(void) = ConditionalBranch : r1850_7 +#-----| False -> Block 612 +#-----| True (back edge) -> Block 611 + +# 1852| Block 612 +# 1852| r1852_1(glval) = VariableAddress[x611] : +# 1852| mu1852_2(String) = Uninitialized[x611] : &:r1852_1 +# 1852| r1852_3(glval) = FunctionAddress[String] : +# 1852| v1852_4(void) = Call[String] : func:r1852_3, this:r1852_1 +# 1852| mu1852_5(unknown) = ^CallSideEffect : ~m? +# 1852| mu1852_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1852_1 +# 1853| r1853_1(glval) = VariableAddress[x611] : +# 1853| r1853_2(glval) = FunctionAddress[~String] : +# 1853| v1853_3(void) = Call[~String] : func:r1853_2, this:r1853_1 +# 1853| mu1853_4(unknown) = ^CallSideEffect : ~m? +# 1853| v1853_5(void) = ^IndirectReadSideEffect[-1] : &:r1853_1, ~m? +# 1853| mu1853_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1853_1 +# 1853| r1853_7(bool) = Constant[0] : +# 1853| v1853_8(void) = ConditionalBranch : r1853_7 +#-----| False -> Block 613 +#-----| True (back edge) -> Block 612 + +# 1855| Block 613 +# 1855| r1855_1(glval) = VariableAddress[x612] : +# 1855| mu1855_2(String) = Uninitialized[x612] : &:r1855_1 +# 1855| r1855_3(glval) = FunctionAddress[String] : +# 1855| v1855_4(void) = Call[String] : func:r1855_3, this:r1855_1 +# 1855| mu1855_5(unknown) = ^CallSideEffect : ~m? +# 1855| mu1855_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1855_1 +# 1856| r1856_1(glval) = VariableAddress[x612] : +# 1856| r1856_2(glval) = FunctionAddress[~String] : +# 1856| v1856_3(void) = Call[~String] : func:r1856_2, this:r1856_1 +# 1856| mu1856_4(unknown) = ^CallSideEffect : ~m? +# 1856| v1856_5(void) = ^IndirectReadSideEffect[-1] : &:r1856_1, ~m? +# 1856| mu1856_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1856_1 +# 1856| r1856_7(bool) = Constant[0] : +# 1856| v1856_8(void) = ConditionalBranch : r1856_7 +#-----| False -> Block 614 +#-----| True (back edge) -> Block 613 + +# 1858| Block 614 +# 1858| r1858_1(glval) = VariableAddress[x613] : +# 1858| mu1858_2(String) = Uninitialized[x613] : &:r1858_1 +# 1858| r1858_3(glval) = FunctionAddress[String] : +# 1858| v1858_4(void) = Call[String] : func:r1858_3, this:r1858_1 +# 1858| mu1858_5(unknown) = ^CallSideEffect : ~m? +# 1858| mu1858_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1858_1 +# 1859| r1859_1(glval) = VariableAddress[x613] : +# 1859| r1859_2(glval) = FunctionAddress[~String] : +# 1859| v1859_3(void) = Call[~String] : func:r1859_2, this:r1859_1 +# 1859| mu1859_4(unknown) = ^CallSideEffect : ~m? +# 1859| v1859_5(void) = ^IndirectReadSideEffect[-1] : &:r1859_1, ~m? +# 1859| mu1859_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1859_1 +# 1859| r1859_7(bool) = Constant[0] : +# 1859| v1859_8(void) = ConditionalBranch : r1859_7 +#-----| False -> Block 615 +#-----| True (back edge) -> Block 614 + +# 1861| Block 615 +# 1861| r1861_1(glval) = VariableAddress[x614] : +# 1861| mu1861_2(String) = Uninitialized[x614] : &:r1861_1 +# 1861| r1861_3(glval) = FunctionAddress[String] : +# 1861| v1861_4(void) = Call[String] : func:r1861_3, this:r1861_1 +# 1861| mu1861_5(unknown) = ^CallSideEffect : ~m? +# 1861| mu1861_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1861_1 +# 1862| r1862_1(glval) = VariableAddress[x614] : +# 1862| r1862_2(glval) = FunctionAddress[~String] : +# 1862| v1862_3(void) = Call[~String] : func:r1862_2, this:r1862_1 +# 1862| mu1862_4(unknown) = ^CallSideEffect : ~m? +# 1862| v1862_5(void) = ^IndirectReadSideEffect[-1] : &:r1862_1, ~m? +# 1862| mu1862_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1862_1 +# 1862| r1862_7(bool) = Constant[0] : +# 1862| v1862_8(void) = ConditionalBranch : r1862_7 +#-----| False -> Block 616 +#-----| True (back edge) -> Block 615 + +# 1864| Block 616 +# 1864| r1864_1(glval) = VariableAddress[x615] : +# 1864| mu1864_2(String) = Uninitialized[x615] : &:r1864_1 +# 1864| r1864_3(glval) = FunctionAddress[String] : +# 1864| v1864_4(void) = Call[String] : func:r1864_3, this:r1864_1 +# 1864| mu1864_5(unknown) = ^CallSideEffect : ~m? +# 1864| mu1864_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1864_1 +# 1865| r1865_1(glval) = VariableAddress[x615] : +# 1865| r1865_2(glval) = FunctionAddress[~String] : +# 1865| v1865_3(void) = Call[~String] : func:r1865_2, this:r1865_1 +# 1865| mu1865_4(unknown) = ^CallSideEffect : ~m? +# 1865| v1865_5(void) = ^IndirectReadSideEffect[-1] : &:r1865_1, ~m? +# 1865| mu1865_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1865_1 +# 1865| r1865_7(bool) = Constant[0] : +# 1865| v1865_8(void) = ConditionalBranch : r1865_7 +#-----| False -> Block 617 +#-----| True (back edge) -> Block 616 + +# 1867| Block 617 +# 1867| r1867_1(glval) = VariableAddress[x616] : +# 1867| mu1867_2(String) = Uninitialized[x616] : &:r1867_1 +# 1867| r1867_3(glval) = FunctionAddress[String] : +# 1867| v1867_4(void) = Call[String] : func:r1867_3, this:r1867_1 +# 1867| mu1867_5(unknown) = ^CallSideEffect : ~m? +# 1867| mu1867_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1867_1 +# 1868| r1868_1(glval) = VariableAddress[x616] : +# 1868| r1868_2(glval) = FunctionAddress[~String] : +# 1868| v1868_3(void) = Call[~String] : func:r1868_2, this:r1868_1 +# 1868| mu1868_4(unknown) = ^CallSideEffect : ~m? +# 1868| v1868_5(void) = ^IndirectReadSideEffect[-1] : &:r1868_1, ~m? +# 1868| mu1868_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1868_1 +# 1868| r1868_7(bool) = Constant[0] : +# 1868| v1868_8(void) = ConditionalBranch : r1868_7 +#-----| False -> Block 618 +#-----| True (back edge) -> Block 617 + +# 1870| Block 618 +# 1870| r1870_1(glval) = VariableAddress[x617] : +# 1870| mu1870_2(String) = Uninitialized[x617] : &:r1870_1 +# 1870| r1870_3(glval) = FunctionAddress[String] : +# 1870| v1870_4(void) = Call[String] : func:r1870_3, this:r1870_1 +# 1870| mu1870_5(unknown) = ^CallSideEffect : ~m? +# 1870| mu1870_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1870_1 +# 1871| r1871_1(glval) = VariableAddress[x617] : +# 1871| r1871_2(glval) = FunctionAddress[~String] : +# 1871| v1871_3(void) = Call[~String] : func:r1871_2, this:r1871_1 +# 1871| mu1871_4(unknown) = ^CallSideEffect : ~m? +# 1871| v1871_5(void) = ^IndirectReadSideEffect[-1] : &:r1871_1, ~m? +# 1871| mu1871_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1871_1 +# 1871| r1871_7(bool) = Constant[0] : +# 1871| v1871_8(void) = ConditionalBranch : r1871_7 +#-----| False -> Block 619 +#-----| True (back edge) -> Block 618 + +# 1873| Block 619 +# 1873| r1873_1(glval) = VariableAddress[x618] : +# 1873| mu1873_2(String) = Uninitialized[x618] : &:r1873_1 +# 1873| r1873_3(glval) = FunctionAddress[String] : +# 1873| v1873_4(void) = Call[String] : func:r1873_3, this:r1873_1 +# 1873| mu1873_5(unknown) = ^CallSideEffect : ~m? +# 1873| mu1873_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1873_1 +# 1874| r1874_1(glval) = VariableAddress[x618] : +# 1874| r1874_2(glval) = FunctionAddress[~String] : +# 1874| v1874_3(void) = Call[~String] : func:r1874_2, this:r1874_1 +# 1874| mu1874_4(unknown) = ^CallSideEffect : ~m? +# 1874| v1874_5(void) = ^IndirectReadSideEffect[-1] : &:r1874_1, ~m? +# 1874| mu1874_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1874_1 +# 1874| r1874_7(bool) = Constant[0] : +# 1874| v1874_8(void) = ConditionalBranch : r1874_7 +#-----| False -> Block 620 +#-----| True (back edge) -> Block 619 + +# 1876| Block 620 +# 1876| r1876_1(glval) = VariableAddress[x619] : +# 1876| mu1876_2(String) = Uninitialized[x619] : &:r1876_1 +# 1876| r1876_3(glval) = FunctionAddress[String] : +# 1876| v1876_4(void) = Call[String] : func:r1876_3, this:r1876_1 +# 1876| mu1876_5(unknown) = ^CallSideEffect : ~m? +# 1876| mu1876_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1876_1 +# 1877| r1877_1(glval) = VariableAddress[x619] : +# 1877| r1877_2(glval) = FunctionAddress[~String] : +# 1877| v1877_3(void) = Call[~String] : func:r1877_2, this:r1877_1 +# 1877| mu1877_4(unknown) = ^CallSideEffect : ~m? +# 1877| v1877_5(void) = ^IndirectReadSideEffect[-1] : &:r1877_1, ~m? +# 1877| mu1877_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1877_1 +# 1877| r1877_7(bool) = Constant[0] : +# 1877| v1877_8(void) = ConditionalBranch : r1877_7 +#-----| False -> Block 621 +#-----| True (back edge) -> Block 620 + +# 1879| Block 621 +# 1879| r1879_1(glval) = VariableAddress[x620] : +# 1879| mu1879_2(String) = Uninitialized[x620] : &:r1879_1 +# 1879| r1879_3(glval) = FunctionAddress[String] : +# 1879| v1879_4(void) = Call[String] : func:r1879_3, this:r1879_1 +# 1879| mu1879_5(unknown) = ^CallSideEffect : ~m? +# 1879| mu1879_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1879_1 +# 1880| r1880_1(glval) = VariableAddress[x620] : +# 1880| r1880_2(glval) = FunctionAddress[~String] : +# 1880| v1880_3(void) = Call[~String] : func:r1880_2, this:r1880_1 +# 1880| mu1880_4(unknown) = ^CallSideEffect : ~m? +# 1880| v1880_5(void) = ^IndirectReadSideEffect[-1] : &:r1880_1, ~m? +# 1880| mu1880_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1880_1 +# 1880| r1880_7(bool) = Constant[0] : +# 1880| v1880_8(void) = ConditionalBranch : r1880_7 +#-----| False -> Block 622 +#-----| True (back edge) -> Block 621 + +# 1882| Block 622 +# 1882| r1882_1(glval) = VariableAddress[x621] : +# 1882| mu1882_2(String) = Uninitialized[x621] : &:r1882_1 +# 1882| r1882_3(glval) = FunctionAddress[String] : +# 1882| v1882_4(void) = Call[String] : func:r1882_3, this:r1882_1 +# 1882| mu1882_5(unknown) = ^CallSideEffect : ~m? +# 1882| mu1882_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1882_1 +# 1883| r1883_1(glval) = VariableAddress[x621] : +# 1883| r1883_2(glval) = FunctionAddress[~String] : +# 1883| v1883_3(void) = Call[~String] : func:r1883_2, this:r1883_1 +# 1883| mu1883_4(unknown) = ^CallSideEffect : ~m? +# 1883| v1883_5(void) = ^IndirectReadSideEffect[-1] : &:r1883_1, ~m? +# 1883| mu1883_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1883_1 +# 1883| r1883_7(bool) = Constant[0] : +# 1883| v1883_8(void) = ConditionalBranch : r1883_7 +#-----| False -> Block 623 +#-----| True (back edge) -> Block 622 + +# 1885| Block 623 +# 1885| r1885_1(glval) = VariableAddress[x622] : +# 1885| mu1885_2(String) = Uninitialized[x622] : &:r1885_1 +# 1885| r1885_3(glval) = FunctionAddress[String] : +# 1885| v1885_4(void) = Call[String] : func:r1885_3, this:r1885_1 +# 1885| mu1885_5(unknown) = ^CallSideEffect : ~m? +# 1885| mu1885_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1885_1 +# 1886| r1886_1(glval) = VariableAddress[x622] : +# 1886| r1886_2(glval) = FunctionAddress[~String] : +# 1886| v1886_3(void) = Call[~String] : func:r1886_2, this:r1886_1 +# 1886| mu1886_4(unknown) = ^CallSideEffect : ~m? +# 1886| v1886_5(void) = ^IndirectReadSideEffect[-1] : &:r1886_1, ~m? +# 1886| mu1886_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1886_1 +# 1886| r1886_7(bool) = Constant[0] : +# 1886| v1886_8(void) = ConditionalBranch : r1886_7 +#-----| False -> Block 624 +#-----| True (back edge) -> Block 623 + +# 1888| Block 624 +# 1888| r1888_1(glval) = VariableAddress[x623] : +# 1888| mu1888_2(String) = Uninitialized[x623] : &:r1888_1 +# 1888| r1888_3(glval) = FunctionAddress[String] : +# 1888| v1888_4(void) = Call[String] : func:r1888_3, this:r1888_1 +# 1888| mu1888_5(unknown) = ^CallSideEffect : ~m? +# 1888| mu1888_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1888_1 +# 1889| r1889_1(glval) = VariableAddress[x623] : +# 1889| r1889_2(glval) = FunctionAddress[~String] : +# 1889| v1889_3(void) = Call[~String] : func:r1889_2, this:r1889_1 +# 1889| mu1889_4(unknown) = ^CallSideEffect : ~m? +# 1889| v1889_5(void) = ^IndirectReadSideEffect[-1] : &:r1889_1, ~m? +# 1889| mu1889_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1889_1 +# 1889| r1889_7(bool) = Constant[0] : +# 1889| v1889_8(void) = ConditionalBranch : r1889_7 +#-----| False -> Block 625 +#-----| True (back edge) -> Block 624 + +# 1891| Block 625 +# 1891| r1891_1(glval) = VariableAddress[x624] : +# 1891| mu1891_2(String) = Uninitialized[x624] : &:r1891_1 +# 1891| r1891_3(glval) = FunctionAddress[String] : +# 1891| v1891_4(void) = Call[String] : func:r1891_3, this:r1891_1 +# 1891| mu1891_5(unknown) = ^CallSideEffect : ~m? +# 1891| mu1891_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1891_1 +# 1892| r1892_1(glval) = VariableAddress[x624] : +# 1892| r1892_2(glval) = FunctionAddress[~String] : +# 1892| v1892_3(void) = Call[~String] : func:r1892_2, this:r1892_1 +# 1892| mu1892_4(unknown) = ^CallSideEffect : ~m? +# 1892| v1892_5(void) = ^IndirectReadSideEffect[-1] : &:r1892_1, ~m? +# 1892| mu1892_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1892_1 +# 1892| r1892_7(bool) = Constant[0] : +# 1892| v1892_8(void) = ConditionalBranch : r1892_7 +#-----| False -> Block 626 +#-----| True (back edge) -> Block 625 + +# 1894| Block 626 +# 1894| r1894_1(glval) = VariableAddress[x625] : +# 1894| mu1894_2(String) = Uninitialized[x625] : &:r1894_1 +# 1894| r1894_3(glval) = FunctionAddress[String] : +# 1894| v1894_4(void) = Call[String] : func:r1894_3, this:r1894_1 +# 1894| mu1894_5(unknown) = ^CallSideEffect : ~m? +# 1894| mu1894_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1894_1 +# 1895| r1895_1(glval) = VariableAddress[x625] : +# 1895| r1895_2(glval) = FunctionAddress[~String] : +# 1895| v1895_3(void) = Call[~String] : func:r1895_2, this:r1895_1 +# 1895| mu1895_4(unknown) = ^CallSideEffect : ~m? +# 1895| v1895_5(void) = ^IndirectReadSideEffect[-1] : &:r1895_1, ~m? +# 1895| mu1895_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1895_1 +# 1895| r1895_7(bool) = Constant[0] : +# 1895| v1895_8(void) = ConditionalBranch : r1895_7 +#-----| False -> Block 627 +#-----| True (back edge) -> Block 626 + +# 1897| Block 627 +# 1897| r1897_1(glval) = VariableAddress[x626] : +# 1897| mu1897_2(String) = Uninitialized[x626] : &:r1897_1 +# 1897| r1897_3(glval) = FunctionAddress[String] : +# 1897| v1897_4(void) = Call[String] : func:r1897_3, this:r1897_1 +# 1897| mu1897_5(unknown) = ^CallSideEffect : ~m? +# 1897| mu1897_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1897_1 +# 1898| r1898_1(glval) = VariableAddress[x626] : +# 1898| r1898_2(glval) = FunctionAddress[~String] : +# 1898| v1898_3(void) = Call[~String] : func:r1898_2, this:r1898_1 +# 1898| mu1898_4(unknown) = ^CallSideEffect : ~m? +# 1898| v1898_5(void) = ^IndirectReadSideEffect[-1] : &:r1898_1, ~m? +# 1898| mu1898_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1898_1 +# 1898| r1898_7(bool) = Constant[0] : +# 1898| v1898_8(void) = ConditionalBranch : r1898_7 +#-----| False -> Block 628 +#-----| True (back edge) -> Block 627 + +# 1900| Block 628 +# 1900| r1900_1(glval) = VariableAddress[x627] : +# 1900| mu1900_2(String) = Uninitialized[x627] : &:r1900_1 +# 1900| r1900_3(glval) = FunctionAddress[String] : +# 1900| v1900_4(void) = Call[String] : func:r1900_3, this:r1900_1 +# 1900| mu1900_5(unknown) = ^CallSideEffect : ~m? +# 1900| mu1900_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1900_1 +# 1901| r1901_1(glval) = VariableAddress[x627] : +# 1901| r1901_2(glval) = FunctionAddress[~String] : +# 1901| v1901_3(void) = Call[~String] : func:r1901_2, this:r1901_1 +# 1901| mu1901_4(unknown) = ^CallSideEffect : ~m? +# 1901| v1901_5(void) = ^IndirectReadSideEffect[-1] : &:r1901_1, ~m? +# 1901| mu1901_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1901_1 +# 1901| r1901_7(bool) = Constant[0] : +# 1901| v1901_8(void) = ConditionalBranch : r1901_7 +#-----| False -> Block 629 +#-----| True (back edge) -> Block 628 + +# 1903| Block 629 +# 1903| r1903_1(glval) = VariableAddress[x628] : +# 1903| mu1903_2(String) = Uninitialized[x628] : &:r1903_1 +# 1903| r1903_3(glval) = FunctionAddress[String] : +# 1903| v1903_4(void) = Call[String] : func:r1903_3, this:r1903_1 +# 1903| mu1903_5(unknown) = ^CallSideEffect : ~m? +# 1903| mu1903_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1903_1 +# 1904| r1904_1(glval) = VariableAddress[x628] : +# 1904| r1904_2(glval) = FunctionAddress[~String] : +# 1904| v1904_3(void) = Call[~String] : func:r1904_2, this:r1904_1 +# 1904| mu1904_4(unknown) = ^CallSideEffect : ~m? +# 1904| v1904_5(void) = ^IndirectReadSideEffect[-1] : &:r1904_1, ~m? +# 1904| mu1904_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1904_1 +# 1904| r1904_7(bool) = Constant[0] : +# 1904| v1904_8(void) = ConditionalBranch : r1904_7 +#-----| False -> Block 630 +#-----| True (back edge) -> Block 629 + +# 1906| Block 630 +# 1906| r1906_1(glval) = VariableAddress[x629] : +# 1906| mu1906_2(String) = Uninitialized[x629] : &:r1906_1 +# 1906| r1906_3(glval) = FunctionAddress[String] : +# 1906| v1906_4(void) = Call[String] : func:r1906_3, this:r1906_1 +# 1906| mu1906_5(unknown) = ^CallSideEffect : ~m? +# 1906| mu1906_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1906_1 +# 1907| r1907_1(glval) = VariableAddress[x629] : +# 1907| r1907_2(glval) = FunctionAddress[~String] : +# 1907| v1907_3(void) = Call[~String] : func:r1907_2, this:r1907_1 +# 1907| mu1907_4(unknown) = ^CallSideEffect : ~m? +# 1907| v1907_5(void) = ^IndirectReadSideEffect[-1] : &:r1907_1, ~m? +# 1907| mu1907_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1907_1 +# 1907| r1907_7(bool) = Constant[0] : +# 1907| v1907_8(void) = ConditionalBranch : r1907_7 +#-----| False -> Block 631 +#-----| True (back edge) -> Block 630 + +# 1909| Block 631 +# 1909| r1909_1(glval) = VariableAddress[x630] : +# 1909| mu1909_2(String) = Uninitialized[x630] : &:r1909_1 +# 1909| r1909_3(glval) = FunctionAddress[String] : +# 1909| v1909_4(void) = Call[String] : func:r1909_3, this:r1909_1 +# 1909| mu1909_5(unknown) = ^CallSideEffect : ~m? +# 1909| mu1909_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1909_1 +# 1910| r1910_1(glval) = VariableAddress[x630] : +# 1910| r1910_2(glval) = FunctionAddress[~String] : +# 1910| v1910_3(void) = Call[~String] : func:r1910_2, this:r1910_1 +# 1910| mu1910_4(unknown) = ^CallSideEffect : ~m? +# 1910| v1910_5(void) = ^IndirectReadSideEffect[-1] : &:r1910_1, ~m? +# 1910| mu1910_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1910_1 +# 1910| r1910_7(bool) = Constant[0] : +# 1910| v1910_8(void) = ConditionalBranch : r1910_7 +#-----| False -> Block 632 +#-----| True (back edge) -> Block 631 + +# 1912| Block 632 +# 1912| r1912_1(glval) = VariableAddress[x631] : +# 1912| mu1912_2(String) = Uninitialized[x631] : &:r1912_1 +# 1912| r1912_3(glval) = FunctionAddress[String] : +# 1912| v1912_4(void) = Call[String] : func:r1912_3, this:r1912_1 +# 1912| mu1912_5(unknown) = ^CallSideEffect : ~m? +# 1912| mu1912_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1912_1 +# 1913| r1913_1(glval) = VariableAddress[x631] : +# 1913| r1913_2(glval) = FunctionAddress[~String] : +# 1913| v1913_3(void) = Call[~String] : func:r1913_2, this:r1913_1 +# 1913| mu1913_4(unknown) = ^CallSideEffect : ~m? +# 1913| v1913_5(void) = ^IndirectReadSideEffect[-1] : &:r1913_1, ~m? +# 1913| mu1913_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1913_1 +# 1913| r1913_7(bool) = Constant[0] : +# 1913| v1913_8(void) = ConditionalBranch : r1913_7 +#-----| False -> Block 633 +#-----| True (back edge) -> Block 632 + +# 1915| Block 633 +# 1915| r1915_1(glval) = VariableAddress[x632] : +# 1915| mu1915_2(String) = Uninitialized[x632] : &:r1915_1 +# 1915| r1915_3(glval) = FunctionAddress[String] : +# 1915| v1915_4(void) = Call[String] : func:r1915_3, this:r1915_1 +# 1915| mu1915_5(unknown) = ^CallSideEffect : ~m? +# 1915| mu1915_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1915_1 +# 1916| r1916_1(glval) = VariableAddress[x632] : +# 1916| r1916_2(glval) = FunctionAddress[~String] : +# 1916| v1916_3(void) = Call[~String] : func:r1916_2, this:r1916_1 +# 1916| mu1916_4(unknown) = ^CallSideEffect : ~m? +# 1916| v1916_5(void) = ^IndirectReadSideEffect[-1] : &:r1916_1, ~m? +# 1916| mu1916_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1916_1 +# 1916| r1916_7(bool) = Constant[0] : +# 1916| v1916_8(void) = ConditionalBranch : r1916_7 +#-----| False -> Block 634 +#-----| True (back edge) -> Block 633 + +# 1918| Block 634 +# 1918| r1918_1(glval) = VariableAddress[x633] : +# 1918| mu1918_2(String) = Uninitialized[x633] : &:r1918_1 +# 1918| r1918_3(glval) = FunctionAddress[String] : +# 1918| v1918_4(void) = Call[String] : func:r1918_3, this:r1918_1 +# 1918| mu1918_5(unknown) = ^CallSideEffect : ~m? +# 1918| mu1918_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1918_1 +# 1919| r1919_1(glval) = VariableAddress[x633] : +# 1919| r1919_2(glval) = FunctionAddress[~String] : +# 1919| v1919_3(void) = Call[~String] : func:r1919_2, this:r1919_1 +# 1919| mu1919_4(unknown) = ^CallSideEffect : ~m? +# 1919| v1919_5(void) = ^IndirectReadSideEffect[-1] : &:r1919_1, ~m? +# 1919| mu1919_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1919_1 +# 1919| r1919_7(bool) = Constant[0] : +# 1919| v1919_8(void) = ConditionalBranch : r1919_7 +#-----| False -> Block 635 +#-----| True (back edge) -> Block 634 + +# 1921| Block 635 +# 1921| r1921_1(glval) = VariableAddress[x634] : +# 1921| mu1921_2(String) = Uninitialized[x634] : &:r1921_1 +# 1921| r1921_3(glval) = FunctionAddress[String] : +# 1921| v1921_4(void) = Call[String] : func:r1921_3, this:r1921_1 +# 1921| mu1921_5(unknown) = ^CallSideEffect : ~m? +# 1921| mu1921_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1921_1 +# 1922| r1922_1(glval) = VariableAddress[x634] : +# 1922| r1922_2(glval) = FunctionAddress[~String] : +# 1922| v1922_3(void) = Call[~String] : func:r1922_2, this:r1922_1 +# 1922| mu1922_4(unknown) = ^CallSideEffect : ~m? +# 1922| v1922_5(void) = ^IndirectReadSideEffect[-1] : &:r1922_1, ~m? +# 1922| mu1922_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1922_1 +# 1922| r1922_7(bool) = Constant[0] : +# 1922| v1922_8(void) = ConditionalBranch : r1922_7 +#-----| False -> Block 636 +#-----| True (back edge) -> Block 635 + +# 1924| Block 636 +# 1924| r1924_1(glval) = VariableAddress[x635] : +# 1924| mu1924_2(String) = Uninitialized[x635] : &:r1924_1 +# 1924| r1924_3(glval) = FunctionAddress[String] : +# 1924| v1924_4(void) = Call[String] : func:r1924_3, this:r1924_1 +# 1924| mu1924_5(unknown) = ^CallSideEffect : ~m? +# 1924| mu1924_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1924_1 +# 1925| r1925_1(glval) = VariableAddress[x635] : +# 1925| r1925_2(glval) = FunctionAddress[~String] : +# 1925| v1925_3(void) = Call[~String] : func:r1925_2, this:r1925_1 +# 1925| mu1925_4(unknown) = ^CallSideEffect : ~m? +# 1925| v1925_5(void) = ^IndirectReadSideEffect[-1] : &:r1925_1, ~m? +# 1925| mu1925_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1925_1 +# 1925| r1925_7(bool) = Constant[0] : +# 1925| v1925_8(void) = ConditionalBranch : r1925_7 +#-----| False -> Block 637 +#-----| True (back edge) -> Block 636 + +# 1927| Block 637 +# 1927| r1927_1(glval) = VariableAddress[x636] : +# 1927| mu1927_2(String) = Uninitialized[x636] : &:r1927_1 +# 1927| r1927_3(glval) = FunctionAddress[String] : +# 1927| v1927_4(void) = Call[String] : func:r1927_3, this:r1927_1 +# 1927| mu1927_5(unknown) = ^CallSideEffect : ~m? +# 1927| mu1927_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1927_1 +# 1928| r1928_1(glval) = VariableAddress[x636] : +# 1928| r1928_2(glval) = FunctionAddress[~String] : +# 1928| v1928_3(void) = Call[~String] : func:r1928_2, this:r1928_1 +# 1928| mu1928_4(unknown) = ^CallSideEffect : ~m? +# 1928| v1928_5(void) = ^IndirectReadSideEffect[-1] : &:r1928_1, ~m? +# 1928| mu1928_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1928_1 +# 1928| r1928_7(bool) = Constant[0] : +# 1928| v1928_8(void) = ConditionalBranch : r1928_7 +#-----| False -> Block 638 +#-----| True (back edge) -> Block 637 + +# 1930| Block 638 +# 1930| r1930_1(glval) = VariableAddress[x637] : +# 1930| mu1930_2(String) = Uninitialized[x637] : &:r1930_1 +# 1930| r1930_3(glval) = FunctionAddress[String] : +# 1930| v1930_4(void) = Call[String] : func:r1930_3, this:r1930_1 +# 1930| mu1930_5(unknown) = ^CallSideEffect : ~m? +# 1930| mu1930_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1930_1 +# 1931| r1931_1(glval) = VariableAddress[x637] : +# 1931| r1931_2(glval) = FunctionAddress[~String] : +# 1931| v1931_3(void) = Call[~String] : func:r1931_2, this:r1931_1 +# 1931| mu1931_4(unknown) = ^CallSideEffect : ~m? +# 1931| v1931_5(void) = ^IndirectReadSideEffect[-1] : &:r1931_1, ~m? +# 1931| mu1931_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1931_1 +# 1931| r1931_7(bool) = Constant[0] : +# 1931| v1931_8(void) = ConditionalBranch : r1931_7 +#-----| False -> Block 639 +#-----| True (back edge) -> Block 638 + +# 1933| Block 639 +# 1933| r1933_1(glval) = VariableAddress[x638] : +# 1933| mu1933_2(String) = Uninitialized[x638] : &:r1933_1 +# 1933| r1933_3(glval) = FunctionAddress[String] : +# 1933| v1933_4(void) = Call[String] : func:r1933_3, this:r1933_1 +# 1933| mu1933_5(unknown) = ^CallSideEffect : ~m? +# 1933| mu1933_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1933_1 +# 1934| r1934_1(glval) = VariableAddress[x638] : +# 1934| r1934_2(glval) = FunctionAddress[~String] : +# 1934| v1934_3(void) = Call[~String] : func:r1934_2, this:r1934_1 +# 1934| mu1934_4(unknown) = ^CallSideEffect : ~m? +# 1934| v1934_5(void) = ^IndirectReadSideEffect[-1] : &:r1934_1, ~m? +# 1934| mu1934_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1934_1 +# 1934| r1934_7(bool) = Constant[0] : +# 1934| v1934_8(void) = ConditionalBranch : r1934_7 +#-----| False -> Block 640 +#-----| True (back edge) -> Block 639 + +# 1936| Block 640 +# 1936| r1936_1(glval) = VariableAddress[x639] : +# 1936| mu1936_2(String) = Uninitialized[x639] : &:r1936_1 +# 1936| r1936_3(glval) = FunctionAddress[String] : +# 1936| v1936_4(void) = Call[String] : func:r1936_3, this:r1936_1 +# 1936| mu1936_5(unknown) = ^CallSideEffect : ~m? +# 1936| mu1936_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1936_1 +# 1937| r1937_1(glval) = VariableAddress[x639] : +# 1937| r1937_2(glval) = FunctionAddress[~String] : +# 1937| v1937_3(void) = Call[~String] : func:r1937_2, this:r1937_1 +# 1937| mu1937_4(unknown) = ^CallSideEffect : ~m? +# 1937| v1937_5(void) = ^IndirectReadSideEffect[-1] : &:r1937_1, ~m? +# 1937| mu1937_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1937_1 +# 1937| r1937_7(bool) = Constant[0] : +# 1937| v1937_8(void) = ConditionalBranch : r1937_7 +#-----| False -> Block 641 +#-----| True (back edge) -> Block 640 + +# 1939| Block 641 +# 1939| r1939_1(glval) = VariableAddress[x640] : +# 1939| mu1939_2(String) = Uninitialized[x640] : &:r1939_1 +# 1939| r1939_3(glval) = FunctionAddress[String] : +# 1939| v1939_4(void) = Call[String] : func:r1939_3, this:r1939_1 +# 1939| mu1939_5(unknown) = ^CallSideEffect : ~m? +# 1939| mu1939_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1939_1 +# 1940| r1940_1(glval) = VariableAddress[x640] : +# 1940| r1940_2(glval) = FunctionAddress[~String] : +# 1940| v1940_3(void) = Call[~String] : func:r1940_2, this:r1940_1 +# 1940| mu1940_4(unknown) = ^CallSideEffect : ~m? +# 1940| v1940_5(void) = ^IndirectReadSideEffect[-1] : &:r1940_1, ~m? +# 1940| mu1940_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1940_1 +# 1940| r1940_7(bool) = Constant[0] : +# 1940| v1940_8(void) = ConditionalBranch : r1940_7 +#-----| False -> Block 642 +#-----| True (back edge) -> Block 641 + +# 1942| Block 642 +# 1942| r1942_1(glval) = VariableAddress[x641] : +# 1942| mu1942_2(String) = Uninitialized[x641] : &:r1942_1 +# 1942| r1942_3(glval) = FunctionAddress[String] : +# 1942| v1942_4(void) = Call[String] : func:r1942_3, this:r1942_1 +# 1942| mu1942_5(unknown) = ^CallSideEffect : ~m? +# 1942| mu1942_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1942_1 +# 1943| r1943_1(glval) = VariableAddress[x641] : +# 1943| r1943_2(glval) = FunctionAddress[~String] : +# 1943| v1943_3(void) = Call[~String] : func:r1943_2, this:r1943_1 +# 1943| mu1943_4(unknown) = ^CallSideEffect : ~m? +# 1943| v1943_5(void) = ^IndirectReadSideEffect[-1] : &:r1943_1, ~m? +# 1943| mu1943_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1943_1 +# 1943| r1943_7(bool) = Constant[0] : +# 1943| v1943_8(void) = ConditionalBranch : r1943_7 +#-----| False -> Block 643 +#-----| True (back edge) -> Block 642 + +# 1945| Block 643 +# 1945| r1945_1(glval) = VariableAddress[x642] : +# 1945| mu1945_2(String) = Uninitialized[x642] : &:r1945_1 +# 1945| r1945_3(glval) = FunctionAddress[String] : +# 1945| v1945_4(void) = Call[String] : func:r1945_3, this:r1945_1 +# 1945| mu1945_5(unknown) = ^CallSideEffect : ~m? +# 1945| mu1945_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1945_1 +# 1946| r1946_1(glval) = VariableAddress[x642] : +# 1946| r1946_2(glval) = FunctionAddress[~String] : +# 1946| v1946_3(void) = Call[~String] : func:r1946_2, this:r1946_1 +# 1946| mu1946_4(unknown) = ^CallSideEffect : ~m? +# 1946| v1946_5(void) = ^IndirectReadSideEffect[-1] : &:r1946_1, ~m? +# 1946| mu1946_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1946_1 +# 1946| r1946_7(bool) = Constant[0] : +# 1946| v1946_8(void) = ConditionalBranch : r1946_7 +#-----| False -> Block 644 +#-----| True (back edge) -> Block 643 + +# 1948| Block 644 +# 1948| r1948_1(glval) = VariableAddress[x643] : +# 1948| mu1948_2(String) = Uninitialized[x643] : &:r1948_1 +# 1948| r1948_3(glval) = FunctionAddress[String] : +# 1948| v1948_4(void) = Call[String] : func:r1948_3, this:r1948_1 +# 1948| mu1948_5(unknown) = ^CallSideEffect : ~m? +# 1948| mu1948_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1948_1 +# 1949| r1949_1(glval) = VariableAddress[x643] : +# 1949| r1949_2(glval) = FunctionAddress[~String] : +# 1949| v1949_3(void) = Call[~String] : func:r1949_2, this:r1949_1 +# 1949| mu1949_4(unknown) = ^CallSideEffect : ~m? +# 1949| v1949_5(void) = ^IndirectReadSideEffect[-1] : &:r1949_1, ~m? +# 1949| mu1949_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1949_1 +# 1949| r1949_7(bool) = Constant[0] : +# 1949| v1949_8(void) = ConditionalBranch : r1949_7 +#-----| False -> Block 645 +#-----| True (back edge) -> Block 644 + +# 1951| Block 645 +# 1951| r1951_1(glval) = VariableAddress[x644] : +# 1951| mu1951_2(String) = Uninitialized[x644] : &:r1951_1 +# 1951| r1951_3(glval) = FunctionAddress[String] : +# 1951| v1951_4(void) = Call[String] : func:r1951_3, this:r1951_1 +# 1951| mu1951_5(unknown) = ^CallSideEffect : ~m? +# 1951| mu1951_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1951_1 +# 1952| r1952_1(glval) = VariableAddress[x644] : +# 1952| r1952_2(glval) = FunctionAddress[~String] : +# 1952| v1952_3(void) = Call[~String] : func:r1952_2, this:r1952_1 +# 1952| mu1952_4(unknown) = ^CallSideEffect : ~m? +# 1952| v1952_5(void) = ^IndirectReadSideEffect[-1] : &:r1952_1, ~m? +# 1952| mu1952_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1952_1 +# 1952| r1952_7(bool) = Constant[0] : +# 1952| v1952_8(void) = ConditionalBranch : r1952_7 +#-----| False -> Block 646 +#-----| True (back edge) -> Block 645 + +# 1954| Block 646 +# 1954| r1954_1(glval) = VariableAddress[x645] : +# 1954| mu1954_2(String) = Uninitialized[x645] : &:r1954_1 +# 1954| r1954_3(glval) = FunctionAddress[String] : +# 1954| v1954_4(void) = Call[String] : func:r1954_3, this:r1954_1 +# 1954| mu1954_5(unknown) = ^CallSideEffect : ~m? +# 1954| mu1954_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1954_1 +# 1955| r1955_1(glval) = VariableAddress[x645] : +# 1955| r1955_2(glval) = FunctionAddress[~String] : +# 1955| v1955_3(void) = Call[~String] : func:r1955_2, this:r1955_1 +# 1955| mu1955_4(unknown) = ^CallSideEffect : ~m? +# 1955| v1955_5(void) = ^IndirectReadSideEffect[-1] : &:r1955_1, ~m? +# 1955| mu1955_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1955_1 +# 1955| r1955_7(bool) = Constant[0] : +# 1955| v1955_8(void) = ConditionalBranch : r1955_7 +#-----| False -> Block 647 +#-----| True (back edge) -> Block 646 + +# 1957| Block 647 +# 1957| r1957_1(glval) = VariableAddress[x646] : +# 1957| mu1957_2(String) = Uninitialized[x646] : &:r1957_1 +# 1957| r1957_3(glval) = FunctionAddress[String] : +# 1957| v1957_4(void) = Call[String] : func:r1957_3, this:r1957_1 +# 1957| mu1957_5(unknown) = ^CallSideEffect : ~m? +# 1957| mu1957_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1957_1 +# 1958| r1958_1(glval) = VariableAddress[x646] : +# 1958| r1958_2(glval) = FunctionAddress[~String] : +# 1958| v1958_3(void) = Call[~String] : func:r1958_2, this:r1958_1 +# 1958| mu1958_4(unknown) = ^CallSideEffect : ~m? +# 1958| v1958_5(void) = ^IndirectReadSideEffect[-1] : &:r1958_1, ~m? +# 1958| mu1958_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1958_1 +# 1958| r1958_7(bool) = Constant[0] : +# 1958| v1958_8(void) = ConditionalBranch : r1958_7 +#-----| False -> Block 648 +#-----| True (back edge) -> Block 647 + +# 1960| Block 648 +# 1960| r1960_1(glval) = VariableAddress[x647] : +# 1960| mu1960_2(String) = Uninitialized[x647] : &:r1960_1 +# 1960| r1960_3(glval) = FunctionAddress[String] : +# 1960| v1960_4(void) = Call[String] : func:r1960_3, this:r1960_1 +# 1960| mu1960_5(unknown) = ^CallSideEffect : ~m? +# 1960| mu1960_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1960_1 +# 1961| r1961_1(glval) = VariableAddress[x647] : +# 1961| r1961_2(glval) = FunctionAddress[~String] : +# 1961| v1961_3(void) = Call[~String] : func:r1961_2, this:r1961_1 +# 1961| mu1961_4(unknown) = ^CallSideEffect : ~m? +# 1961| v1961_5(void) = ^IndirectReadSideEffect[-1] : &:r1961_1, ~m? +# 1961| mu1961_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1961_1 +# 1961| r1961_7(bool) = Constant[0] : +# 1961| v1961_8(void) = ConditionalBranch : r1961_7 +#-----| False -> Block 649 +#-----| True (back edge) -> Block 648 + +# 1963| Block 649 +# 1963| r1963_1(glval) = VariableAddress[x648] : +# 1963| mu1963_2(String) = Uninitialized[x648] : &:r1963_1 +# 1963| r1963_3(glval) = FunctionAddress[String] : +# 1963| v1963_4(void) = Call[String] : func:r1963_3, this:r1963_1 +# 1963| mu1963_5(unknown) = ^CallSideEffect : ~m? +# 1963| mu1963_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1963_1 +# 1964| r1964_1(glval) = VariableAddress[x648] : +# 1964| r1964_2(glval) = FunctionAddress[~String] : +# 1964| v1964_3(void) = Call[~String] : func:r1964_2, this:r1964_1 +# 1964| mu1964_4(unknown) = ^CallSideEffect : ~m? +# 1964| v1964_5(void) = ^IndirectReadSideEffect[-1] : &:r1964_1, ~m? +# 1964| mu1964_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1964_1 +# 1964| r1964_7(bool) = Constant[0] : +# 1964| v1964_8(void) = ConditionalBranch : r1964_7 +#-----| False -> Block 650 +#-----| True (back edge) -> Block 649 + +# 1966| Block 650 +# 1966| r1966_1(glval) = VariableAddress[x649] : +# 1966| mu1966_2(String) = Uninitialized[x649] : &:r1966_1 +# 1966| r1966_3(glval) = FunctionAddress[String] : +# 1966| v1966_4(void) = Call[String] : func:r1966_3, this:r1966_1 +# 1966| mu1966_5(unknown) = ^CallSideEffect : ~m? +# 1966| mu1966_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1966_1 +# 1967| r1967_1(glval) = VariableAddress[x649] : +# 1967| r1967_2(glval) = FunctionAddress[~String] : +# 1967| v1967_3(void) = Call[~String] : func:r1967_2, this:r1967_1 +# 1967| mu1967_4(unknown) = ^CallSideEffect : ~m? +# 1967| v1967_5(void) = ^IndirectReadSideEffect[-1] : &:r1967_1, ~m? +# 1967| mu1967_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1967_1 +# 1967| r1967_7(bool) = Constant[0] : +# 1967| v1967_8(void) = ConditionalBranch : r1967_7 +#-----| False -> Block 651 +#-----| True (back edge) -> Block 650 + +# 1969| Block 651 +# 1969| r1969_1(glval) = VariableAddress[x650] : +# 1969| mu1969_2(String) = Uninitialized[x650] : &:r1969_1 +# 1969| r1969_3(glval) = FunctionAddress[String] : +# 1969| v1969_4(void) = Call[String] : func:r1969_3, this:r1969_1 +# 1969| mu1969_5(unknown) = ^CallSideEffect : ~m? +# 1969| mu1969_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1969_1 +# 1970| r1970_1(glval) = VariableAddress[x650] : +# 1970| r1970_2(glval) = FunctionAddress[~String] : +# 1970| v1970_3(void) = Call[~String] : func:r1970_2, this:r1970_1 +# 1970| mu1970_4(unknown) = ^CallSideEffect : ~m? +# 1970| v1970_5(void) = ^IndirectReadSideEffect[-1] : &:r1970_1, ~m? +# 1970| mu1970_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1970_1 +# 1970| r1970_7(bool) = Constant[0] : +# 1970| v1970_8(void) = ConditionalBranch : r1970_7 +#-----| False -> Block 652 +#-----| True (back edge) -> Block 651 + +# 1972| Block 652 +# 1972| r1972_1(glval) = VariableAddress[x651] : +# 1972| mu1972_2(String) = Uninitialized[x651] : &:r1972_1 +# 1972| r1972_3(glval) = FunctionAddress[String] : +# 1972| v1972_4(void) = Call[String] : func:r1972_3, this:r1972_1 +# 1972| mu1972_5(unknown) = ^CallSideEffect : ~m? +# 1972| mu1972_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1972_1 +# 1973| r1973_1(glval) = VariableAddress[x651] : +# 1973| r1973_2(glval) = FunctionAddress[~String] : +# 1973| v1973_3(void) = Call[~String] : func:r1973_2, this:r1973_1 +# 1973| mu1973_4(unknown) = ^CallSideEffect : ~m? +# 1973| v1973_5(void) = ^IndirectReadSideEffect[-1] : &:r1973_1, ~m? +# 1973| mu1973_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1973_1 +# 1973| r1973_7(bool) = Constant[0] : +# 1973| v1973_8(void) = ConditionalBranch : r1973_7 +#-----| False -> Block 653 +#-----| True (back edge) -> Block 652 + +# 1975| Block 653 +# 1975| r1975_1(glval) = VariableAddress[x652] : +# 1975| mu1975_2(String) = Uninitialized[x652] : &:r1975_1 +# 1975| r1975_3(glval) = FunctionAddress[String] : +# 1975| v1975_4(void) = Call[String] : func:r1975_3, this:r1975_1 +# 1975| mu1975_5(unknown) = ^CallSideEffect : ~m? +# 1975| mu1975_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1975_1 +# 1976| r1976_1(glval) = VariableAddress[x652] : +# 1976| r1976_2(glval) = FunctionAddress[~String] : +# 1976| v1976_3(void) = Call[~String] : func:r1976_2, this:r1976_1 +# 1976| mu1976_4(unknown) = ^CallSideEffect : ~m? +# 1976| v1976_5(void) = ^IndirectReadSideEffect[-1] : &:r1976_1, ~m? +# 1976| mu1976_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1976_1 +# 1976| r1976_7(bool) = Constant[0] : +# 1976| v1976_8(void) = ConditionalBranch : r1976_7 +#-----| False -> Block 654 +#-----| True (back edge) -> Block 653 + +# 1978| Block 654 +# 1978| r1978_1(glval) = VariableAddress[x653] : +# 1978| mu1978_2(String) = Uninitialized[x653] : &:r1978_1 +# 1978| r1978_3(glval) = FunctionAddress[String] : +# 1978| v1978_4(void) = Call[String] : func:r1978_3, this:r1978_1 +# 1978| mu1978_5(unknown) = ^CallSideEffect : ~m? +# 1978| mu1978_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1978_1 +# 1979| r1979_1(glval) = VariableAddress[x653] : +# 1979| r1979_2(glval) = FunctionAddress[~String] : +# 1979| v1979_3(void) = Call[~String] : func:r1979_2, this:r1979_1 +# 1979| mu1979_4(unknown) = ^CallSideEffect : ~m? +# 1979| v1979_5(void) = ^IndirectReadSideEffect[-1] : &:r1979_1, ~m? +# 1979| mu1979_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1979_1 +# 1979| r1979_7(bool) = Constant[0] : +# 1979| v1979_8(void) = ConditionalBranch : r1979_7 +#-----| False -> Block 655 +#-----| True (back edge) -> Block 654 + +# 1981| Block 655 +# 1981| r1981_1(glval) = VariableAddress[x654] : +# 1981| mu1981_2(String) = Uninitialized[x654] : &:r1981_1 +# 1981| r1981_3(glval) = FunctionAddress[String] : +# 1981| v1981_4(void) = Call[String] : func:r1981_3, this:r1981_1 +# 1981| mu1981_5(unknown) = ^CallSideEffect : ~m? +# 1981| mu1981_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1981_1 +# 1982| r1982_1(glval) = VariableAddress[x654] : +# 1982| r1982_2(glval) = FunctionAddress[~String] : +# 1982| v1982_3(void) = Call[~String] : func:r1982_2, this:r1982_1 +# 1982| mu1982_4(unknown) = ^CallSideEffect : ~m? +# 1982| v1982_5(void) = ^IndirectReadSideEffect[-1] : &:r1982_1, ~m? +# 1982| mu1982_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1982_1 +# 1982| r1982_7(bool) = Constant[0] : +# 1982| v1982_8(void) = ConditionalBranch : r1982_7 +#-----| False -> Block 656 +#-----| True (back edge) -> Block 655 + +# 1984| Block 656 +# 1984| r1984_1(glval) = VariableAddress[x655] : +# 1984| mu1984_2(String) = Uninitialized[x655] : &:r1984_1 +# 1984| r1984_3(glval) = FunctionAddress[String] : +# 1984| v1984_4(void) = Call[String] : func:r1984_3, this:r1984_1 +# 1984| mu1984_5(unknown) = ^CallSideEffect : ~m? +# 1984| mu1984_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1984_1 +# 1985| r1985_1(glval) = VariableAddress[x655] : +# 1985| r1985_2(glval) = FunctionAddress[~String] : +# 1985| v1985_3(void) = Call[~String] : func:r1985_2, this:r1985_1 +# 1985| mu1985_4(unknown) = ^CallSideEffect : ~m? +# 1985| v1985_5(void) = ^IndirectReadSideEffect[-1] : &:r1985_1, ~m? +# 1985| mu1985_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1985_1 +# 1985| r1985_7(bool) = Constant[0] : +# 1985| v1985_8(void) = ConditionalBranch : r1985_7 +#-----| False -> Block 657 +#-----| True (back edge) -> Block 656 + +# 1987| Block 657 +# 1987| r1987_1(glval) = VariableAddress[x656] : +# 1987| mu1987_2(String) = Uninitialized[x656] : &:r1987_1 +# 1987| r1987_3(glval) = FunctionAddress[String] : +# 1987| v1987_4(void) = Call[String] : func:r1987_3, this:r1987_1 +# 1987| mu1987_5(unknown) = ^CallSideEffect : ~m? +# 1987| mu1987_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1987_1 +# 1988| r1988_1(glval) = VariableAddress[x656] : +# 1988| r1988_2(glval) = FunctionAddress[~String] : +# 1988| v1988_3(void) = Call[~String] : func:r1988_2, this:r1988_1 +# 1988| mu1988_4(unknown) = ^CallSideEffect : ~m? +# 1988| v1988_5(void) = ^IndirectReadSideEffect[-1] : &:r1988_1, ~m? +# 1988| mu1988_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1988_1 +# 1988| r1988_7(bool) = Constant[0] : +# 1988| v1988_8(void) = ConditionalBranch : r1988_7 +#-----| False -> Block 658 +#-----| True (back edge) -> Block 657 + +# 1990| Block 658 +# 1990| r1990_1(glval) = VariableAddress[x657] : +# 1990| mu1990_2(String) = Uninitialized[x657] : &:r1990_1 +# 1990| r1990_3(glval) = FunctionAddress[String] : +# 1990| v1990_4(void) = Call[String] : func:r1990_3, this:r1990_1 +# 1990| mu1990_5(unknown) = ^CallSideEffect : ~m? +# 1990| mu1990_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1990_1 +# 1991| r1991_1(glval) = VariableAddress[x657] : +# 1991| r1991_2(glval) = FunctionAddress[~String] : +# 1991| v1991_3(void) = Call[~String] : func:r1991_2, this:r1991_1 +# 1991| mu1991_4(unknown) = ^CallSideEffect : ~m? +# 1991| v1991_5(void) = ^IndirectReadSideEffect[-1] : &:r1991_1, ~m? +# 1991| mu1991_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1991_1 +# 1991| r1991_7(bool) = Constant[0] : +# 1991| v1991_8(void) = ConditionalBranch : r1991_7 +#-----| False -> Block 659 +#-----| True (back edge) -> Block 658 + +# 1993| Block 659 +# 1993| r1993_1(glval) = VariableAddress[x658] : +# 1993| mu1993_2(String) = Uninitialized[x658] : &:r1993_1 +# 1993| r1993_3(glval) = FunctionAddress[String] : +# 1993| v1993_4(void) = Call[String] : func:r1993_3, this:r1993_1 +# 1993| mu1993_5(unknown) = ^CallSideEffect : ~m? +# 1993| mu1993_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1993_1 +# 1994| r1994_1(glval) = VariableAddress[x658] : +# 1994| r1994_2(glval) = FunctionAddress[~String] : +# 1994| v1994_3(void) = Call[~String] : func:r1994_2, this:r1994_1 +# 1994| mu1994_4(unknown) = ^CallSideEffect : ~m? +# 1994| v1994_5(void) = ^IndirectReadSideEffect[-1] : &:r1994_1, ~m? +# 1994| mu1994_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1994_1 +# 1994| r1994_7(bool) = Constant[0] : +# 1994| v1994_8(void) = ConditionalBranch : r1994_7 +#-----| False -> Block 660 +#-----| True (back edge) -> Block 659 + +# 1996| Block 660 +# 1996| r1996_1(glval) = VariableAddress[x659] : +# 1996| mu1996_2(String) = Uninitialized[x659] : &:r1996_1 +# 1996| r1996_3(glval) = FunctionAddress[String] : +# 1996| v1996_4(void) = Call[String] : func:r1996_3, this:r1996_1 +# 1996| mu1996_5(unknown) = ^CallSideEffect : ~m? +# 1996| mu1996_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1996_1 +# 1997| r1997_1(glval) = VariableAddress[x659] : +# 1997| r1997_2(glval) = FunctionAddress[~String] : +# 1997| v1997_3(void) = Call[~String] : func:r1997_2, this:r1997_1 +# 1997| mu1997_4(unknown) = ^CallSideEffect : ~m? +# 1997| v1997_5(void) = ^IndirectReadSideEffect[-1] : &:r1997_1, ~m? +# 1997| mu1997_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1997_1 +# 1997| r1997_7(bool) = Constant[0] : +# 1997| v1997_8(void) = ConditionalBranch : r1997_7 +#-----| False -> Block 661 +#-----| True (back edge) -> Block 660 + +# 1999| Block 661 +# 1999| r1999_1(glval) = VariableAddress[x660] : +# 1999| mu1999_2(String) = Uninitialized[x660] : &:r1999_1 +# 1999| r1999_3(glval) = FunctionAddress[String] : +# 1999| v1999_4(void) = Call[String] : func:r1999_3, this:r1999_1 +# 1999| mu1999_5(unknown) = ^CallSideEffect : ~m? +# 1999| mu1999_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r1999_1 +# 2000| r2000_1(glval) = VariableAddress[x660] : +# 2000| r2000_2(glval) = FunctionAddress[~String] : +# 2000| v2000_3(void) = Call[~String] : func:r2000_2, this:r2000_1 +# 2000| mu2000_4(unknown) = ^CallSideEffect : ~m? +# 2000| v2000_5(void) = ^IndirectReadSideEffect[-1] : &:r2000_1, ~m? +# 2000| mu2000_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2000_1 +# 2000| r2000_7(bool) = Constant[0] : +# 2000| v2000_8(void) = ConditionalBranch : r2000_7 +#-----| False -> Block 662 +#-----| True (back edge) -> Block 661 + +# 2002| Block 662 +# 2002| r2002_1(glval) = VariableAddress[x661] : +# 2002| mu2002_2(String) = Uninitialized[x661] : &:r2002_1 +# 2002| r2002_3(glval) = FunctionAddress[String] : +# 2002| v2002_4(void) = Call[String] : func:r2002_3, this:r2002_1 +# 2002| mu2002_5(unknown) = ^CallSideEffect : ~m? +# 2002| mu2002_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2002_1 +# 2003| r2003_1(glval) = VariableAddress[x661] : +# 2003| r2003_2(glval) = FunctionAddress[~String] : +# 2003| v2003_3(void) = Call[~String] : func:r2003_2, this:r2003_1 +# 2003| mu2003_4(unknown) = ^CallSideEffect : ~m? +# 2003| v2003_5(void) = ^IndirectReadSideEffect[-1] : &:r2003_1, ~m? +# 2003| mu2003_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2003_1 +# 2003| r2003_7(bool) = Constant[0] : +# 2003| v2003_8(void) = ConditionalBranch : r2003_7 +#-----| False -> Block 663 +#-----| True (back edge) -> Block 662 + +# 2005| Block 663 +# 2005| r2005_1(glval) = VariableAddress[x662] : +# 2005| mu2005_2(String) = Uninitialized[x662] : &:r2005_1 +# 2005| r2005_3(glval) = FunctionAddress[String] : +# 2005| v2005_4(void) = Call[String] : func:r2005_3, this:r2005_1 +# 2005| mu2005_5(unknown) = ^CallSideEffect : ~m? +# 2005| mu2005_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2005_1 +# 2006| r2006_1(glval) = VariableAddress[x662] : +# 2006| r2006_2(glval) = FunctionAddress[~String] : +# 2006| v2006_3(void) = Call[~String] : func:r2006_2, this:r2006_1 +# 2006| mu2006_4(unknown) = ^CallSideEffect : ~m? +# 2006| v2006_5(void) = ^IndirectReadSideEffect[-1] : &:r2006_1, ~m? +# 2006| mu2006_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2006_1 +# 2006| r2006_7(bool) = Constant[0] : +# 2006| v2006_8(void) = ConditionalBranch : r2006_7 +#-----| False -> Block 664 +#-----| True (back edge) -> Block 663 + +# 2008| Block 664 +# 2008| r2008_1(glval) = VariableAddress[x663] : +# 2008| mu2008_2(String) = Uninitialized[x663] : &:r2008_1 +# 2008| r2008_3(glval) = FunctionAddress[String] : +# 2008| v2008_4(void) = Call[String] : func:r2008_3, this:r2008_1 +# 2008| mu2008_5(unknown) = ^CallSideEffect : ~m? +# 2008| mu2008_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2008_1 +# 2009| r2009_1(glval) = VariableAddress[x663] : +# 2009| r2009_2(glval) = FunctionAddress[~String] : +# 2009| v2009_3(void) = Call[~String] : func:r2009_2, this:r2009_1 +# 2009| mu2009_4(unknown) = ^CallSideEffect : ~m? +# 2009| v2009_5(void) = ^IndirectReadSideEffect[-1] : &:r2009_1, ~m? +# 2009| mu2009_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2009_1 +# 2009| r2009_7(bool) = Constant[0] : +# 2009| v2009_8(void) = ConditionalBranch : r2009_7 +#-----| False -> Block 665 +#-----| True (back edge) -> Block 664 + +# 2011| Block 665 +# 2011| r2011_1(glval) = VariableAddress[x664] : +# 2011| mu2011_2(String) = Uninitialized[x664] : &:r2011_1 +# 2011| r2011_3(glval) = FunctionAddress[String] : +# 2011| v2011_4(void) = Call[String] : func:r2011_3, this:r2011_1 +# 2011| mu2011_5(unknown) = ^CallSideEffect : ~m? +# 2011| mu2011_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2011_1 +# 2012| r2012_1(glval) = VariableAddress[x664] : +# 2012| r2012_2(glval) = FunctionAddress[~String] : +# 2012| v2012_3(void) = Call[~String] : func:r2012_2, this:r2012_1 +# 2012| mu2012_4(unknown) = ^CallSideEffect : ~m? +# 2012| v2012_5(void) = ^IndirectReadSideEffect[-1] : &:r2012_1, ~m? +# 2012| mu2012_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2012_1 +# 2012| r2012_7(bool) = Constant[0] : +# 2012| v2012_8(void) = ConditionalBranch : r2012_7 +#-----| False -> Block 666 +#-----| True (back edge) -> Block 665 + +# 2014| Block 666 +# 2014| r2014_1(glval) = VariableAddress[x665] : +# 2014| mu2014_2(String) = Uninitialized[x665] : &:r2014_1 +# 2014| r2014_3(glval) = FunctionAddress[String] : +# 2014| v2014_4(void) = Call[String] : func:r2014_3, this:r2014_1 +# 2014| mu2014_5(unknown) = ^CallSideEffect : ~m? +# 2014| mu2014_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2014_1 +# 2015| r2015_1(glval) = VariableAddress[x665] : +# 2015| r2015_2(glval) = FunctionAddress[~String] : +# 2015| v2015_3(void) = Call[~String] : func:r2015_2, this:r2015_1 +# 2015| mu2015_4(unknown) = ^CallSideEffect : ~m? +# 2015| v2015_5(void) = ^IndirectReadSideEffect[-1] : &:r2015_1, ~m? +# 2015| mu2015_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2015_1 +# 2015| r2015_7(bool) = Constant[0] : +# 2015| v2015_8(void) = ConditionalBranch : r2015_7 +#-----| False -> Block 667 +#-----| True (back edge) -> Block 666 + +# 2017| Block 667 +# 2017| r2017_1(glval) = VariableAddress[x666] : +# 2017| mu2017_2(String) = Uninitialized[x666] : &:r2017_1 +# 2017| r2017_3(glval) = FunctionAddress[String] : +# 2017| v2017_4(void) = Call[String] : func:r2017_3, this:r2017_1 +# 2017| mu2017_5(unknown) = ^CallSideEffect : ~m? +# 2017| mu2017_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2017_1 +# 2018| r2018_1(glval) = VariableAddress[x666] : +# 2018| r2018_2(glval) = FunctionAddress[~String] : +# 2018| v2018_3(void) = Call[~String] : func:r2018_2, this:r2018_1 +# 2018| mu2018_4(unknown) = ^CallSideEffect : ~m? +# 2018| v2018_5(void) = ^IndirectReadSideEffect[-1] : &:r2018_1, ~m? +# 2018| mu2018_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2018_1 +# 2018| r2018_7(bool) = Constant[0] : +# 2018| v2018_8(void) = ConditionalBranch : r2018_7 +#-----| False -> Block 668 +#-----| True (back edge) -> Block 667 + +# 2020| Block 668 +# 2020| r2020_1(glval) = VariableAddress[x667] : +# 2020| mu2020_2(String) = Uninitialized[x667] : &:r2020_1 +# 2020| r2020_3(glval) = FunctionAddress[String] : +# 2020| v2020_4(void) = Call[String] : func:r2020_3, this:r2020_1 +# 2020| mu2020_5(unknown) = ^CallSideEffect : ~m? +# 2020| mu2020_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2020_1 +# 2021| r2021_1(glval) = VariableAddress[x667] : +# 2021| r2021_2(glval) = FunctionAddress[~String] : +# 2021| v2021_3(void) = Call[~String] : func:r2021_2, this:r2021_1 +# 2021| mu2021_4(unknown) = ^CallSideEffect : ~m? +# 2021| v2021_5(void) = ^IndirectReadSideEffect[-1] : &:r2021_1, ~m? +# 2021| mu2021_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2021_1 +# 2021| r2021_7(bool) = Constant[0] : +# 2021| v2021_8(void) = ConditionalBranch : r2021_7 +#-----| False -> Block 669 +#-----| True (back edge) -> Block 668 + +# 2023| Block 669 +# 2023| r2023_1(glval) = VariableAddress[x668] : +# 2023| mu2023_2(String) = Uninitialized[x668] : &:r2023_1 +# 2023| r2023_3(glval) = FunctionAddress[String] : +# 2023| v2023_4(void) = Call[String] : func:r2023_3, this:r2023_1 +# 2023| mu2023_5(unknown) = ^CallSideEffect : ~m? +# 2023| mu2023_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2023_1 +# 2024| r2024_1(glval) = VariableAddress[x668] : +# 2024| r2024_2(glval) = FunctionAddress[~String] : +# 2024| v2024_3(void) = Call[~String] : func:r2024_2, this:r2024_1 +# 2024| mu2024_4(unknown) = ^CallSideEffect : ~m? +# 2024| v2024_5(void) = ^IndirectReadSideEffect[-1] : &:r2024_1, ~m? +# 2024| mu2024_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2024_1 +# 2024| r2024_7(bool) = Constant[0] : +# 2024| v2024_8(void) = ConditionalBranch : r2024_7 +#-----| False -> Block 670 +#-----| True (back edge) -> Block 669 + +# 2026| Block 670 +# 2026| r2026_1(glval) = VariableAddress[x669] : +# 2026| mu2026_2(String) = Uninitialized[x669] : &:r2026_1 +# 2026| r2026_3(glval) = FunctionAddress[String] : +# 2026| v2026_4(void) = Call[String] : func:r2026_3, this:r2026_1 +# 2026| mu2026_5(unknown) = ^CallSideEffect : ~m? +# 2026| mu2026_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2026_1 +# 2027| r2027_1(glval) = VariableAddress[x669] : +# 2027| r2027_2(glval) = FunctionAddress[~String] : +# 2027| v2027_3(void) = Call[~String] : func:r2027_2, this:r2027_1 +# 2027| mu2027_4(unknown) = ^CallSideEffect : ~m? +# 2027| v2027_5(void) = ^IndirectReadSideEffect[-1] : &:r2027_1, ~m? +# 2027| mu2027_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2027_1 +# 2027| r2027_7(bool) = Constant[0] : +# 2027| v2027_8(void) = ConditionalBranch : r2027_7 +#-----| False -> Block 671 +#-----| True (back edge) -> Block 670 + +# 2029| Block 671 +# 2029| r2029_1(glval) = VariableAddress[x670] : +# 2029| mu2029_2(String) = Uninitialized[x670] : &:r2029_1 +# 2029| r2029_3(glval) = FunctionAddress[String] : +# 2029| v2029_4(void) = Call[String] : func:r2029_3, this:r2029_1 +# 2029| mu2029_5(unknown) = ^CallSideEffect : ~m? +# 2029| mu2029_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2029_1 +# 2030| r2030_1(glval) = VariableAddress[x670] : +# 2030| r2030_2(glval) = FunctionAddress[~String] : +# 2030| v2030_3(void) = Call[~String] : func:r2030_2, this:r2030_1 +# 2030| mu2030_4(unknown) = ^CallSideEffect : ~m? +# 2030| v2030_5(void) = ^IndirectReadSideEffect[-1] : &:r2030_1, ~m? +# 2030| mu2030_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2030_1 +# 2030| r2030_7(bool) = Constant[0] : +# 2030| v2030_8(void) = ConditionalBranch : r2030_7 +#-----| False -> Block 672 +#-----| True (back edge) -> Block 671 + +# 2032| Block 672 +# 2032| r2032_1(glval) = VariableAddress[x671] : +# 2032| mu2032_2(String) = Uninitialized[x671] : &:r2032_1 +# 2032| r2032_3(glval) = FunctionAddress[String] : +# 2032| v2032_4(void) = Call[String] : func:r2032_3, this:r2032_1 +# 2032| mu2032_5(unknown) = ^CallSideEffect : ~m? +# 2032| mu2032_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2032_1 +# 2033| r2033_1(glval) = VariableAddress[x671] : +# 2033| r2033_2(glval) = FunctionAddress[~String] : +# 2033| v2033_3(void) = Call[~String] : func:r2033_2, this:r2033_1 +# 2033| mu2033_4(unknown) = ^CallSideEffect : ~m? +# 2033| v2033_5(void) = ^IndirectReadSideEffect[-1] : &:r2033_1, ~m? +# 2033| mu2033_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2033_1 +# 2033| r2033_7(bool) = Constant[0] : +# 2033| v2033_8(void) = ConditionalBranch : r2033_7 +#-----| False -> Block 673 +#-----| True (back edge) -> Block 672 + +# 2035| Block 673 +# 2035| r2035_1(glval) = VariableAddress[x672] : +# 2035| mu2035_2(String) = Uninitialized[x672] : &:r2035_1 +# 2035| r2035_3(glval) = FunctionAddress[String] : +# 2035| v2035_4(void) = Call[String] : func:r2035_3, this:r2035_1 +# 2035| mu2035_5(unknown) = ^CallSideEffect : ~m? +# 2035| mu2035_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2035_1 +# 2036| r2036_1(glval) = VariableAddress[x672] : +# 2036| r2036_2(glval) = FunctionAddress[~String] : +# 2036| v2036_3(void) = Call[~String] : func:r2036_2, this:r2036_1 +# 2036| mu2036_4(unknown) = ^CallSideEffect : ~m? +# 2036| v2036_5(void) = ^IndirectReadSideEffect[-1] : &:r2036_1, ~m? +# 2036| mu2036_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2036_1 +# 2036| r2036_7(bool) = Constant[0] : +# 2036| v2036_8(void) = ConditionalBranch : r2036_7 +#-----| False -> Block 674 +#-----| True (back edge) -> Block 673 + +# 2038| Block 674 +# 2038| r2038_1(glval) = VariableAddress[x673] : +# 2038| mu2038_2(String) = Uninitialized[x673] : &:r2038_1 +# 2038| r2038_3(glval) = FunctionAddress[String] : +# 2038| v2038_4(void) = Call[String] : func:r2038_3, this:r2038_1 +# 2038| mu2038_5(unknown) = ^CallSideEffect : ~m? +# 2038| mu2038_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2038_1 +# 2039| r2039_1(glval) = VariableAddress[x673] : +# 2039| r2039_2(glval) = FunctionAddress[~String] : +# 2039| v2039_3(void) = Call[~String] : func:r2039_2, this:r2039_1 +# 2039| mu2039_4(unknown) = ^CallSideEffect : ~m? +# 2039| v2039_5(void) = ^IndirectReadSideEffect[-1] : &:r2039_1, ~m? +# 2039| mu2039_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2039_1 +# 2039| r2039_7(bool) = Constant[0] : +# 2039| v2039_8(void) = ConditionalBranch : r2039_7 +#-----| False -> Block 675 +#-----| True (back edge) -> Block 674 + +# 2041| Block 675 +# 2041| r2041_1(glval) = VariableAddress[x674] : +# 2041| mu2041_2(String) = Uninitialized[x674] : &:r2041_1 +# 2041| r2041_3(glval) = FunctionAddress[String] : +# 2041| v2041_4(void) = Call[String] : func:r2041_3, this:r2041_1 +# 2041| mu2041_5(unknown) = ^CallSideEffect : ~m? +# 2041| mu2041_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2041_1 +# 2042| r2042_1(glval) = VariableAddress[x674] : +# 2042| r2042_2(glval) = FunctionAddress[~String] : +# 2042| v2042_3(void) = Call[~String] : func:r2042_2, this:r2042_1 +# 2042| mu2042_4(unknown) = ^CallSideEffect : ~m? +# 2042| v2042_5(void) = ^IndirectReadSideEffect[-1] : &:r2042_1, ~m? +# 2042| mu2042_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2042_1 +# 2042| r2042_7(bool) = Constant[0] : +# 2042| v2042_8(void) = ConditionalBranch : r2042_7 +#-----| False -> Block 676 +#-----| True (back edge) -> Block 675 + +# 2044| Block 676 +# 2044| r2044_1(glval) = VariableAddress[x675] : +# 2044| mu2044_2(String) = Uninitialized[x675] : &:r2044_1 +# 2044| r2044_3(glval) = FunctionAddress[String] : +# 2044| v2044_4(void) = Call[String] : func:r2044_3, this:r2044_1 +# 2044| mu2044_5(unknown) = ^CallSideEffect : ~m? +# 2044| mu2044_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2044_1 +# 2045| r2045_1(glval) = VariableAddress[x675] : +# 2045| r2045_2(glval) = FunctionAddress[~String] : +# 2045| v2045_3(void) = Call[~String] : func:r2045_2, this:r2045_1 +# 2045| mu2045_4(unknown) = ^CallSideEffect : ~m? +# 2045| v2045_5(void) = ^IndirectReadSideEffect[-1] : &:r2045_1, ~m? +# 2045| mu2045_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2045_1 +# 2045| r2045_7(bool) = Constant[0] : +# 2045| v2045_8(void) = ConditionalBranch : r2045_7 +#-----| False -> Block 677 +#-----| True (back edge) -> Block 676 + +# 2047| Block 677 +# 2047| r2047_1(glval) = VariableAddress[x676] : +# 2047| mu2047_2(String) = Uninitialized[x676] : &:r2047_1 +# 2047| r2047_3(glval) = FunctionAddress[String] : +# 2047| v2047_4(void) = Call[String] : func:r2047_3, this:r2047_1 +# 2047| mu2047_5(unknown) = ^CallSideEffect : ~m? +# 2047| mu2047_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2047_1 +# 2048| r2048_1(glval) = VariableAddress[x676] : +# 2048| r2048_2(glval) = FunctionAddress[~String] : +# 2048| v2048_3(void) = Call[~String] : func:r2048_2, this:r2048_1 +# 2048| mu2048_4(unknown) = ^CallSideEffect : ~m? +# 2048| v2048_5(void) = ^IndirectReadSideEffect[-1] : &:r2048_1, ~m? +# 2048| mu2048_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2048_1 +# 2048| r2048_7(bool) = Constant[0] : +# 2048| v2048_8(void) = ConditionalBranch : r2048_7 +#-----| False -> Block 678 +#-----| True (back edge) -> Block 677 + +# 2050| Block 678 +# 2050| r2050_1(glval) = VariableAddress[x677] : +# 2050| mu2050_2(String) = Uninitialized[x677] : &:r2050_1 +# 2050| r2050_3(glval) = FunctionAddress[String] : +# 2050| v2050_4(void) = Call[String] : func:r2050_3, this:r2050_1 +# 2050| mu2050_5(unknown) = ^CallSideEffect : ~m? +# 2050| mu2050_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2050_1 +# 2051| r2051_1(glval) = VariableAddress[x677] : +# 2051| r2051_2(glval) = FunctionAddress[~String] : +# 2051| v2051_3(void) = Call[~String] : func:r2051_2, this:r2051_1 +# 2051| mu2051_4(unknown) = ^CallSideEffect : ~m? +# 2051| v2051_5(void) = ^IndirectReadSideEffect[-1] : &:r2051_1, ~m? +# 2051| mu2051_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2051_1 +# 2051| r2051_7(bool) = Constant[0] : +# 2051| v2051_8(void) = ConditionalBranch : r2051_7 +#-----| False -> Block 679 +#-----| True (back edge) -> Block 678 + +# 2053| Block 679 +# 2053| r2053_1(glval) = VariableAddress[x678] : +# 2053| mu2053_2(String) = Uninitialized[x678] : &:r2053_1 +# 2053| r2053_3(glval) = FunctionAddress[String] : +# 2053| v2053_4(void) = Call[String] : func:r2053_3, this:r2053_1 +# 2053| mu2053_5(unknown) = ^CallSideEffect : ~m? +# 2053| mu2053_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2053_1 +# 2054| r2054_1(glval) = VariableAddress[x678] : +# 2054| r2054_2(glval) = FunctionAddress[~String] : +# 2054| v2054_3(void) = Call[~String] : func:r2054_2, this:r2054_1 +# 2054| mu2054_4(unknown) = ^CallSideEffect : ~m? +# 2054| v2054_5(void) = ^IndirectReadSideEffect[-1] : &:r2054_1, ~m? +# 2054| mu2054_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2054_1 +# 2054| r2054_7(bool) = Constant[0] : +# 2054| v2054_8(void) = ConditionalBranch : r2054_7 +#-----| False -> Block 680 +#-----| True (back edge) -> Block 679 + +# 2056| Block 680 +# 2056| r2056_1(glval) = VariableAddress[x679] : +# 2056| mu2056_2(String) = Uninitialized[x679] : &:r2056_1 +# 2056| r2056_3(glval) = FunctionAddress[String] : +# 2056| v2056_4(void) = Call[String] : func:r2056_3, this:r2056_1 +# 2056| mu2056_5(unknown) = ^CallSideEffect : ~m? +# 2056| mu2056_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2056_1 +# 2057| r2057_1(glval) = VariableAddress[x679] : +# 2057| r2057_2(glval) = FunctionAddress[~String] : +# 2057| v2057_3(void) = Call[~String] : func:r2057_2, this:r2057_1 +# 2057| mu2057_4(unknown) = ^CallSideEffect : ~m? +# 2057| v2057_5(void) = ^IndirectReadSideEffect[-1] : &:r2057_1, ~m? +# 2057| mu2057_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2057_1 +# 2057| r2057_7(bool) = Constant[0] : +# 2057| v2057_8(void) = ConditionalBranch : r2057_7 +#-----| False -> Block 681 +#-----| True (back edge) -> Block 680 + +# 2059| Block 681 +# 2059| r2059_1(glval) = VariableAddress[x680] : +# 2059| mu2059_2(String) = Uninitialized[x680] : &:r2059_1 +# 2059| r2059_3(glval) = FunctionAddress[String] : +# 2059| v2059_4(void) = Call[String] : func:r2059_3, this:r2059_1 +# 2059| mu2059_5(unknown) = ^CallSideEffect : ~m? +# 2059| mu2059_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2059_1 +# 2060| r2060_1(glval) = VariableAddress[x680] : +# 2060| r2060_2(glval) = FunctionAddress[~String] : +# 2060| v2060_3(void) = Call[~String] : func:r2060_2, this:r2060_1 +# 2060| mu2060_4(unknown) = ^CallSideEffect : ~m? +# 2060| v2060_5(void) = ^IndirectReadSideEffect[-1] : &:r2060_1, ~m? +# 2060| mu2060_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2060_1 +# 2060| r2060_7(bool) = Constant[0] : +# 2060| v2060_8(void) = ConditionalBranch : r2060_7 +#-----| False -> Block 682 +#-----| True (back edge) -> Block 681 + +# 2062| Block 682 +# 2062| r2062_1(glval) = VariableAddress[x681] : +# 2062| mu2062_2(String) = Uninitialized[x681] : &:r2062_1 +# 2062| r2062_3(glval) = FunctionAddress[String] : +# 2062| v2062_4(void) = Call[String] : func:r2062_3, this:r2062_1 +# 2062| mu2062_5(unknown) = ^CallSideEffect : ~m? +# 2062| mu2062_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2062_1 +# 2063| r2063_1(glval) = VariableAddress[x681] : +# 2063| r2063_2(glval) = FunctionAddress[~String] : +# 2063| v2063_3(void) = Call[~String] : func:r2063_2, this:r2063_1 +# 2063| mu2063_4(unknown) = ^CallSideEffect : ~m? +# 2063| v2063_5(void) = ^IndirectReadSideEffect[-1] : &:r2063_1, ~m? +# 2063| mu2063_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2063_1 +# 2063| r2063_7(bool) = Constant[0] : +# 2063| v2063_8(void) = ConditionalBranch : r2063_7 +#-----| False -> Block 683 +#-----| True (back edge) -> Block 682 + +# 2065| Block 683 +# 2065| r2065_1(glval) = VariableAddress[x682] : +# 2065| mu2065_2(String) = Uninitialized[x682] : &:r2065_1 +# 2065| r2065_3(glval) = FunctionAddress[String] : +# 2065| v2065_4(void) = Call[String] : func:r2065_3, this:r2065_1 +# 2065| mu2065_5(unknown) = ^CallSideEffect : ~m? +# 2065| mu2065_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2065_1 +# 2066| r2066_1(glval) = VariableAddress[x682] : +# 2066| r2066_2(glval) = FunctionAddress[~String] : +# 2066| v2066_3(void) = Call[~String] : func:r2066_2, this:r2066_1 +# 2066| mu2066_4(unknown) = ^CallSideEffect : ~m? +# 2066| v2066_5(void) = ^IndirectReadSideEffect[-1] : &:r2066_1, ~m? +# 2066| mu2066_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2066_1 +# 2066| r2066_7(bool) = Constant[0] : +# 2066| v2066_8(void) = ConditionalBranch : r2066_7 +#-----| False -> Block 684 +#-----| True (back edge) -> Block 683 + +# 2068| Block 684 +# 2068| r2068_1(glval) = VariableAddress[x683] : +# 2068| mu2068_2(String) = Uninitialized[x683] : &:r2068_1 +# 2068| r2068_3(glval) = FunctionAddress[String] : +# 2068| v2068_4(void) = Call[String] : func:r2068_3, this:r2068_1 +# 2068| mu2068_5(unknown) = ^CallSideEffect : ~m? +# 2068| mu2068_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2068_1 +# 2069| r2069_1(glval) = VariableAddress[x683] : +# 2069| r2069_2(glval) = FunctionAddress[~String] : +# 2069| v2069_3(void) = Call[~String] : func:r2069_2, this:r2069_1 +# 2069| mu2069_4(unknown) = ^CallSideEffect : ~m? +# 2069| v2069_5(void) = ^IndirectReadSideEffect[-1] : &:r2069_1, ~m? +# 2069| mu2069_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2069_1 +# 2069| r2069_7(bool) = Constant[0] : +# 2069| v2069_8(void) = ConditionalBranch : r2069_7 +#-----| False -> Block 685 +#-----| True (back edge) -> Block 684 + +# 2071| Block 685 +# 2071| r2071_1(glval) = VariableAddress[x684] : +# 2071| mu2071_2(String) = Uninitialized[x684] : &:r2071_1 +# 2071| r2071_3(glval) = FunctionAddress[String] : +# 2071| v2071_4(void) = Call[String] : func:r2071_3, this:r2071_1 +# 2071| mu2071_5(unknown) = ^CallSideEffect : ~m? +# 2071| mu2071_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2071_1 +# 2072| r2072_1(glval) = VariableAddress[x684] : +# 2072| r2072_2(glval) = FunctionAddress[~String] : +# 2072| v2072_3(void) = Call[~String] : func:r2072_2, this:r2072_1 +# 2072| mu2072_4(unknown) = ^CallSideEffect : ~m? +# 2072| v2072_5(void) = ^IndirectReadSideEffect[-1] : &:r2072_1, ~m? +# 2072| mu2072_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2072_1 +# 2072| r2072_7(bool) = Constant[0] : +# 2072| v2072_8(void) = ConditionalBranch : r2072_7 +#-----| False -> Block 686 +#-----| True (back edge) -> Block 685 + +# 2074| Block 686 +# 2074| r2074_1(glval) = VariableAddress[x685] : +# 2074| mu2074_2(String) = Uninitialized[x685] : &:r2074_1 +# 2074| r2074_3(glval) = FunctionAddress[String] : +# 2074| v2074_4(void) = Call[String] : func:r2074_3, this:r2074_1 +# 2074| mu2074_5(unknown) = ^CallSideEffect : ~m? +# 2074| mu2074_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2074_1 +# 2075| r2075_1(glval) = VariableAddress[x685] : +# 2075| r2075_2(glval) = FunctionAddress[~String] : +# 2075| v2075_3(void) = Call[~String] : func:r2075_2, this:r2075_1 +# 2075| mu2075_4(unknown) = ^CallSideEffect : ~m? +# 2075| v2075_5(void) = ^IndirectReadSideEffect[-1] : &:r2075_1, ~m? +# 2075| mu2075_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2075_1 +# 2075| r2075_7(bool) = Constant[0] : +# 2075| v2075_8(void) = ConditionalBranch : r2075_7 +#-----| False -> Block 687 +#-----| True (back edge) -> Block 686 + +# 2077| Block 687 +# 2077| r2077_1(glval) = VariableAddress[x686] : +# 2077| mu2077_2(String) = Uninitialized[x686] : &:r2077_1 +# 2077| r2077_3(glval) = FunctionAddress[String] : +# 2077| v2077_4(void) = Call[String] : func:r2077_3, this:r2077_1 +# 2077| mu2077_5(unknown) = ^CallSideEffect : ~m? +# 2077| mu2077_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2077_1 +# 2078| r2078_1(glval) = VariableAddress[x686] : +# 2078| r2078_2(glval) = FunctionAddress[~String] : +# 2078| v2078_3(void) = Call[~String] : func:r2078_2, this:r2078_1 +# 2078| mu2078_4(unknown) = ^CallSideEffect : ~m? +# 2078| v2078_5(void) = ^IndirectReadSideEffect[-1] : &:r2078_1, ~m? +# 2078| mu2078_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2078_1 +# 2078| r2078_7(bool) = Constant[0] : +# 2078| v2078_8(void) = ConditionalBranch : r2078_7 +#-----| False -> Block 688 +#-----| True (back edge) -> Block 687 + +# 2080| Block 688 +# 2080| r2080_1(glval) = VariableAddress[x687] : +# 2080| mu2080_2(String) = Uninitialized[x687] : &:r2080_1 +# 2080| r2080_3(glval) = FunctionAddress[String] : +# 2080| v2080_4(void) = Call[String] : func:r2080_3, this:r2080_1 +# 2080| mu2080_5(unknown) = ^CallSideEffect : ~m? +# 2080| mu2080_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2080_1 +# 2081| r2081_1(glval) = VariableAddress[x687] : +# 2081| r2081_2(glval) = FunctionAddress[~String] : +# 2081| v2081_3(void) = Call[~String] : func:r2081_2, this:r2081_1 +# 2081| mu2081_4(unknown) = ^CallSideEffect : ~m? +# 2081| v2081_5(void) = ^IndirectReadSideEffect[-1] : &:r2081_1, ~m? +# 2081| mu2081_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2081_1 +# 2081| r2081_7(bool) = Constant[0] : +# 2081| v2081_8(void) = ConditionalBranch : r2081_7 +#-----| False -> Block 689 +#-----| True (back edge) -> Block 688 + +# 2083| Block 689 +# 2083| r2083_1(glval) = VariableAddress[x688] : +# 2083| mu2083_2(String) = Uninitialized[x688] : &:r2083_1 +# 2083| r2083_3(glval) = FunctionAddress[String] : +# 2083| v2083_4(void) = Call[String] : func:r2083_3, this:r2083_1 +# 2083| mu2083_5(unknown) = ^CallSideEffect : ~m? +# 2083| mu2083_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2083_1 +# 2084| r2084_1(glval) = VariableAddress[x688] : +# 2084| r2084_2(glval) = FunctionAddress[~String] : +# 2084| v2084_3(void) = Call[~String] : func:r2084_2, this:r2084_1 +# 2084| mu2084_4(unknown) = ^CallSideEffect : ~m? +# 2084| v2084_5(void) = ^IndirectReadSideEffect[-1] : &:r2084_1, ~m? +# 2084| mu2084_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2084_1 +# 2084| r2084_7(bool) = Constant[0] : +# 2084| v2084_8(void) = ConditionalBranch : r2084_7 +#-----| False -> Block 690 +#-----| True (back edge) -> Block 689 + +# 2086| Block 690 +# 2086| r2086_1(glval) = VariableAddress[x689] : +# 2086| mu2086_2(String) = Uninitialized[x689] : &:r2086_1 +# 2086| r2086_3(glval) = FunctionAddress[String] : +# 2086| v2086_4(void) = Call[String] : func:r2086_3, this:r2086_1 +# 2086| mu2086_5(unknown) = ^CallSideEffect : ~m? +# 2086| mu2086_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2086_1 +# 2087| r2087_1(glval) = VariableAddress[x689] : +# 2087| r2087_2(glval) = FunctionAddress[~String] : +# 2087| v2087_3(void) = Call[~String] : func:r2087_2, this:r2087_1 +# 2087| mu2087_4(unknown) = ^CallSideEffect : ~m? +# 2087| v2087_5(void) = ^IndirectReadSideEffect[-1] : &:r2087_1, ~m? +# 2087| mu2087_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2087_1 +# 2087| r2087_7(bool) = Constant[0] : +# 2087| v2087_8(void) = ConditionalBranch : r2087_7 +#-----| False -> Block 691 +#-----| True (back edge) -> Block 690 + +# 2089| Block 691 +# 2089| r2089_1(glval) = VariableAddress[x690] : +# 2089| mu2089_2(String) = Uninitialized[x690] : &:r2089_1 +# 2089| r2089_3(glval) = FunctionAddress[String] : +# 2089| v2089_4(void) = Call[String] : func:r2089_3, this:r2089_1 +# 2089| mu2089_5(unknown) = ^CallSideEffect : ~m? +# 2089| mu2089_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2089_1 +# 2090| r2090_1(glval) = VariableAddress[x690] : +# 2090| r2090_2(glval) = FunctionAddress[~String] : +# 2090| v2090_3(void) = Call[~String] : func:r2090_2, this:r2090_1 +# 2090| mu2090_4(unknown) = ^CallSideEffect : ~m? +# 2090| v2090_5(void) = ^IndirectReadSideEffect[-1] : &:r2090_1, ~m? +# 2090| mu2090_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2090_1 +# 2090| r2090_7(bool) = Constant[0] : +# 2090| v2090_8(void) = ConditionalBranch : r2090_7 +#-----| False -> Block 692 +#-----| True (back edge) -> Block 691 + +# 2092| Block 692 +# 2092| r2092_1(glval) = VariableAddress[x691] : +# 2092| mu2092_2(String) = Uninitialized[x691] : &:r2092_1 +# 2092| r2092_3(glval) = FunctionAddress[String] : +# 2092| v2092_4(void) = Call[String] : func:r2092_3, this:r2092_1 +# 2092| mu2092_5(unknown) = ^CallSideEffect : ~m? +# 2092| mu2092_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2092_1 +# 2093| r2093_1(glval) = VariableAddress[x691] : +# 2093| r2093_2(glval) = FunctionAddress[~String] : +# 2093| v2093_3(void) = Call[~String] : func:r2093_2, this:r2093_1 +# 2093| mu2093_4(unknown) = ^CallSideEffect : ~m? +# 2093| v2093_5(void) = ^IndirectReadSideEffect[-1] : &:r2093_1, ~m? +# 2093| mu2093_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2093_1 +# 2093| r2093_7(bool) = Constant[0] : +# 2093| v2093_8(void) = ConditionalBranch : r2093_7 +#-----| False -> Block 693 +#-----| True (back edge) -> Block 692 + +# 2095| Block 693 +# 2095| r2095_1(glval) = VariableAddress[x692] : +# 2095| mu2095_2(String) = Uninitialized[x692] : &:r2095_1 +# 2095| r2095_3(glval) = FunctionAddress[String] : +# 2095| v2095_4(void) = Call[String] : func:r2095_3, this:r2095_1 +# 2095| mu2095_5(unknown) = ^CallSideEffect : ~m? +# 2095| mu2095_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2095_1 +# 2096| r2096_1(glval) = VariableAddress[x692] : +# 2096| r2096_2(glval) = FunctionAddress[~String] : +# 2096| v2096_3(void) = Call[~String] : func:r2096_2, this:r2096_1 +# 2096| mu2096_4(unknown) = ^CallSideEffect : ~m? +# 2096| v2096_5(void) = ^IndirectReadSideEffect[-1] : &:r2096_1, ~m? +# 2096| mu2096_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2096_1 +# 2096| r2096_7(bool) = Constant[0] : +# 2096| v2096_8(void) = ConditionalBranch : r2096_7 +#-----| False -> Block 694 +#-----| True (back edge) -> Block 693 + +# 2098| Block 694 +# 2098| r2098_1(glval) = VariableAddress[x693] : +# 2098| mu2098_2(String) = Uninitialized[x693] : &:r2098_1 +# 2098| r2098_3(glval) = FunctionAddress[String] : +# 2098| v2098_4(void) = Call[String] : func:r2098_3, this:r2098_1 +# 2098| mu2098_5(unknown) = ^CallSideEffect : ~m? +# 2098| mu2098_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2098_1 +# 2099| r2099_1(glval) = VariableAddress[x693] : +# 2099| r2099_2(glval) = FunctionAddress[~String] : +# 2099| v2099_3(void) = Call[~String] : func:r2099_2, this:r2099_1 +# 2099| mu2099_4(unknown) = ^CallSideEffect : ~m? +# 2099| v2099_5(void) = ^IndirectReadSideEffect[-1] : &:r2099_1, ~m? +# 2099| mu2099_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2099_1 +# 2099| r2099_7(bool) = Constant[0] : +# 2099| v2099_8(void) = ConditionalBranch : r2099_7 +#-----| False -> Block 695 +#-----| True (back edge) -> Block 694 + +# 2101| Block 695 +# 2101| r2101_1(glval) = VariableAddress[x694] : +# 2101| mu2101_2(String) = Uninitialized[x694] : &:r2101_1 +# 2101| r2101_3(glval) = FunctionAddress[String] : +# 2101| v2101_4(void) = Call[String] : func:r2101_3, this:r2101_1 +# 2101| mu2101_5(unknown) = ^CallSideEffect : ~m? +# 2101| mu2101_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2101_1 +# 2102| r2102_1(glval) = VariableAddress[x694] : +# 2102| r2102_2(glval) = FunctionAddress[~String] : +# 2102| v2102_3(void) = Call[~String] : func:r2102_2, this:r2102_1 +# 2102| mu2102_4(unknown) = ^CallSideEffect : ~m? +# 2102| v2102_5(void) = ^IndirectReadSideEffect[-1] : &:r2102_1, ~m? +# 2102| mu2102_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2102_1 +# 2102| r2102_7(bool) = Constant[0] : +# 2102| v2102_8(void) = ConditionalBranch : r2102_7 +#-----| False -> Block 696 +#-----| True (back edge) -> Block 695 + +# 2104| Block 696 +# 2104| r2104_1(glval) = VariableAddress[x695] : +# 2104| mu2104_2(String) = Uninitialized[x695] : &:r2104_1 +# 2104| r2104_3(glval) = FunctionAddress[String] : +# 2104| v2104_4(void) = Call[String] : func:r2104_3, this:r2104_1 +# 2104| mu2104_5(unknown) = ^CallSideEffect : ~m? +# 2104| mu2104_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2104_1 +# 2105| r2105_1(glval) = VariableAddress[x695] : +# 2105| r2105_2(glval) = FunctionAddress[~String] : +# 2105| v2105_3(void) = Call[~String] : func:r2105_2, this:r2105_1 +# 2105| mu2105_4(unknown) = ^CallSideEffect : ~m? +# 2105| v2105_5(void) = ^IndirectReadSideEffect[-1] : &:r2105_1, ~m? +# 2105| mu2105_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2105_1 +# 2105| r2105_7(bool) = Constant[0] : +# 2105| v2105_8(void) = ConditionalBranch : r2105_7 +#-----| False -> Block 697 +#-----| True (back edge) -> Block 696 + +# 2107| Block 697 +# 2107| r2107_1(glval) = VariableAddress[x696] : +# 2107| mu2107_2(String) = Uninitialized[x696] : &:r2107_1 +# 2107| r2107_3(glval) = FunctionAddress[String] : +# 2107| v2107_4(void) = Call[String] : func:r2107_3, this:r2107_1 +# 2107| mu2107_5(unknown) = ^CallSideEffect : ~m? +# 2107| mu2107_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2107_1 +# 2108| r2108_1(glval) = VariableAddress[x696] : +# 2108| r2108_2(glval) = FunctionAddress[~String] : +# 2108| v2108_3(void) = Call[~String] : func:r2108_2, this:r2108_1 +# 2108| mu2108_4(unknown) = ^CallSideEffect : ~m? +# 2108| v2108_5(void) = ^IndirectReadSideEffect[-1] : &:r2108_1, ~m? +# 2108| mu2108_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2108_1 +# 2108| r2108_7(bool) = Constant[0] : +# 2108| v2108_8(void) = ConditionalBranch : r2108_7 +#-----| False -> Block 698 +#-----| True (back edge) -> Block 697 + +# 2110| Block 698 +# 2110| r2110_1(glval) = VariableAddress[x697] : +# 2110| mu2110_2(String) = Uninitialized[x697] : &:r2110_1 +# 2110| r2110_3(glval) = FunctionAddress[String] : +# 2110| v2110_4(void) = Call[String] : func:r2110_3, this:r2110_1 +# 2110| mu2110_5(unknown) = ^CallSideEffect : ~m? +# 2110| mu2110_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2110_1 +# 2111| r2111_1(glval) = VariableAddress[x697] : +# 2111| r2111_2(glval) = FunctionAddress[~String] : +# 2111| v2111_3(void) = Call[~String] : func:r2111_2, this:r2111_1 +# 2111| mu2111_4(unknown) = ^CallSideEffect : ~m? +# 2111| v2111_5(void) = ^IndirectReadSideEffect[-1] : &:r2111_1, ~m? +# 2111| mu2111_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2111_1 +# 2111| r2111_7(bool) = Constant[0] : +# 2111| v2111_8(void) = ConditionalBranch : r2111_7 +#-----| False -> Block 699 +#-----| True (back edge) -> Block 698 + +# 2113| Block 699 +# 2113| r2113_1(glval) = VariableAddress[x698] : +# 2113| mu2113_2(String) = Uninitialized[x698] : &:r2113_1 +# 2113| r2113_3(glval) = FunctionAddress[String] : +# 2113| v2113_4(void) = Call[String] : func:r2113_3, this:r2113_1 +# 2113| mu2113_5(unknown) = ^CallSideEffect : ~m? +# 2113| mu2113_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2113_1 +# 2114| r2114_1(glval) = VariableAddress[x698] : +# 2114| r2114_2(glval) = FunctionAddress[~String] : +# 2114| v2114_3(void) = Call[~String] : func:r2114_2, this:r2114_1 +# 2114| mu2114_4(unknown) = ^CallSideEffect : ~m? +# 2114| v2114_5(void) = ^IndirectReadSideEffect[-1] : &:r2114_1, ~m? +# 2114| mu2114_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2114_1 +# 2114| r2114_7(bool) = Constant[0] : +# 2114| v2114_8(void) = ConditionalBranch : r2114_7 +#-----| False -> Block 700 +#-----| True (back edge) -> Block 699 + +# 2116| Block 700 +# 2116| r2116_1(glval) = VariableAddress[x699] : +# 2116| mu2116_2(String) = Uninitialized[x699] : &:r2116_1 +# 2116| r2116_3(glval) = FunctionAddress[String] : +# 2116| v2116_4(void) = Call[String] : func:r2116_3, this:r2116_1 +# 2116| mu2116_5(unknown) = ^CallSideEffect : ~m? +# 2116| mu2116_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2116_1 +# 2117| r2117_1(glval) = VariableAddress[x699] : +# 2117| r2117_2(glval) = FunctionAddress[~String] : +# 2117| v2117_3(void) = Call[~String] : func:r2117_2, this:r2117_1 +# 2117| mu2117_4(unknown) = ^CallSideEffect : ~m? +# 2117| v2117_5(void) = ^IndirectReadSideEffect[-1] : &:r2117_1, ~m? +# 2117| mu2117_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2117_1 +# 2117| r2117_7(bool) = Constant[0] : +# 2117| v2117_8(void) = ConditionalBranch : r2117_7 +#-----| False -> Block 701 +#-----| True (back edge) -> Block 700 + +# 2119| Block 701 +# 2119| r2119_1(glval) = VariableAddress[x700] : +# 2119| mu2119_2(String) = Uninitialized[x700] : &:r2119_1 +# 2119| r2119_3(glval) = FunctionAddress[String] : +# 2119| v2119_4(void) = Call[String] : func:r2119_3, this:r2119_1 +# 2119| mu2119_5(unknown) = ^CallSideEffect : ~m? +# 2119| mu2119_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2119_1 +# 2120| r2120_1(glval) = VariableAddress[x700] : +# 2120| r2120_2(glval) = FunctionAddress[~String] : +# 2120| v2120_3(void) = Call[~String] : func:r2120_2, this:r2120_1 +# 2120| mu2120_4(unknown) = ^CallSideEffect : ~m? +# 2120| v2120_5(void) = ^IndirectReadSideEffect[-1] : &:r2120_1, ~m? +# 2120| mu2120_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2120_1 +# 2120| r2120_7(bool) = Constant[0] : +# 2120| v2120_8(void) = ConditionalBranch : r2120_7 +#-----| False -> Block 702 +#-----| True (back edge) -> Block 701 + +# 2122| Block 702 +# 2122| r2122_1(glval) = VariableAddress[x701] : +# 2122| mu2122_2(String) = Uninitialized[x701] : &:r2122_1 +# 2122| r2122_3(glval) = FunctionAddress[String] : +# 2122| v2122_4(void) = Call[String] : func:r2122_3, this:r2122_1 +# 2122| mu2122_5(unknown) = ^CallSideEffect : ~m? +# 2122| mu2122_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2122_1 +# 2123| r2123_1(glval) = VariableAddress[x701] : +# 2123| r2123_2(glval) = FunctionAddress[~String] : +# 2123| v2123_3(void) = Call[~String] : func:r2123_2, this:r2123_1 +# 2123| mu2123_4(unknown) = ^CallSideEffect : ~m? +# 2123| v2123_5(void) = ^IndirectReadSideEffect[-1] : &:r2123_1, ~m? +# 2123| mu2123_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2123_1 +# 2123| r2123_7(bool) = Constant[0] : +# 2123| v2123_8(void) = ConditionalBranch : r2123_7 +#-----| False -> Block 703 +#-----| True (back edge) -> Block 702 + +# 2125| Block 703 +# 2125| r2125_1(glval) = VariableAddress[x702] : +# 2125| mu2125_2(String) = Uninitialized[x702] : &:r2125_1 +# 2125| r2125_3(glval) = FunctionAddress[String] : +# 2125| v2125_4(void) = Call[String] : func:r2125_3, this:r2125_1 +# 2125| mu2125_5(unknown) = ^CallSideEffect : ~m? +# 2125| mu2125_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2125_1 +# 2126| r2126_1(glval) = VariableAddress[x702] : +# 2126| r2126_2(glval) = FunctionAddress[~String] : +# 2126| v2126_3(void) = Call[~String] : func:r2126_2, this:r2126_1 +# 2126| mu2126_4(unknown) = ^CallSideEffect : ~m? +# 2126| v2126_5(void) = ^IndirectReadSideEffect[-1] : &:r2126_1, ~m? +# 2126| mu2126_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2126_1 +# 2126| r2126_7(bool) = Constant[0] : +# 2126| v2126_8(void) = ConditionalBranch : r2126_7 +#-----| False -> Block 704 +#-----| True (back edge) -> Block 703 + +# 2128| Block 704 +# 2128| r2128_1(glval) = VariableAddress[x703] : +# 2128| mu2128_2(String) = Uninitialized[x703] : &:r2128_1 +# 2128| r2128_3(glval) = FunctionAddress[String] : +# 2128| v2128_4(void) = Call[String] : func:r2128_3, this:r2128_1 +# 2128| mu2128_5(unknown) = ^CallSideEffect : ~m? +# 2128| mu2128_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2128_1 +# 2129| r2129_1(glval) = VariableAddress[x703] : +# 2129| r2129_2(glval) = FunctionAddress[~String] : +# 2129| v2129_3(void) = Call[~String] : func:r2129_2, this:r2129_1 +# 2129| mu2129_4(unknown) = ^CallSideEffect : ~m? +# 2129| v2129_5(void) = ^IndirectReadSideEffect[-1] : &:r2129_1, ~m? +# 2129| mu2129_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2129_1 +# 2129| r2129_7(bool) = Constant[0] : +# 2129| v2129_8(void) = ConditionalBranch : r2129_7 +#-----| False -> Block 705 +#-----| True (back edge) -> Block 704 + +# 2131| Block 705 +# 2131| r2131_1(glval) = VariableAddress[x704] : +# 2131| mu2131_2(String) = Uninitialized[x704] : &:r2131_1 +# 2131| r2131_3(glval) = FunctionAddress[String] : +# 2131| v2131_4(void) = Call[String] : func:r2131_3, this:r2131_1 +# 2131| mu2131_5(unknown) = ^CallSideEffect : ~m? +# 2131| mu2131_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2131_1 +# 2132| r2132_1(glval) = VariableAddress[x704] : +# 2132| r2132_2(glval) = FunctionAddress[~String] : +# 2132| v2132_3(void) = Call[~String] : func:r2132_2, this:r2132_1 +# 2132| mu2132_4(unknown) = ^CallSideEffect : ~m? +# 2132| v2132_5(void) = ^IndirectReadSideEffect[-1] : &:r2132_1, ~m? +# 2132| mu2132_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2132_1 +# 2132| r2132_7(bool) = Constant[0] : +# 2132| v2132_8(void) = ConditionalBranch : r2132_7 +#-----| False -> Block 706 +#-----| True (back edge) -> Block 705 + +# 2134| Block 706 +# 2134| r2134_1(glval) = VariableAddress[x705] : +# 2134| mu2134_2(String) = Uninitialized[x705] : &:r2134_1 +# 2134| r2134_3(glval) = FunctionAddress[String] : +# 2134| v2134_4(void) = Call[String] : func:r2134_3, this:r2134_1 +# 2134| mu2134_5(unknown) = ^CallSideEffect : ~m? +# 2134| mu2134_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2134_1 +# 2135| r2135_1(glval) = VariableAddress[x705] : +# 2135| r2135_2(glval) = FunctionAddress[~String] : +# 2135| v2135_3(void) = Call[~String] : func:r2135_2, this:r2135_1 +# 2135| mu2135_4(unknown) = ^CallSideEffect : ~m? +# 2135| v2135_5(void) = ^IndirectReadSideEffect[-1] : &:r2135_1, ~m? +# 2135| mu2135_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2135_1 +# 2135| r2135_7(bool) = Constant[0] : +# 2135| v2135_8(void) = ConditionalBranch : r2135_7 +#-----| False -> Block 707 +#-----| True (back edge) -> Block 706 + +# 2137| Block 707 +# 2137| r2137_1(glval) = VariableAddress[x706] : +# 2137| mu2137_2(String) = Uninitialized[x706] : &:r2137_1 +# 2137| r2137_3(glval) = FunctionAddress[String] : +# 2137| v2137_4(void) = Call[String] : func:r2137_3, this:r2137_1 +# 2137| mu2137_5(unknown) = ^CallSideEffect : ~m? +# 2137| mu2137_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2137_1 +# 2138| r2138_1(glval) = VariableAddress[x706] : +# 2138| r2138_2(glval) = FunctionAddress[~String] : +# 2138| v2138_3(void) = Call[~String] : func:r2138_2, this:r2138_1 +# 2138| mu2138_4(unknown) = ^CallSideEffect : ~m? +# 2138| v2138_5(void) = ^IndirectReadSideEffect[-1] : &:r2138_1, ~m? +# 2138| mu2138_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2138_1 +# 2138| r2138_7(bool) = Constant[0] : +# 2138| v2138_8(void) = ConditionalBranch : r2138_7 +#-----| False -> Block 708 +#-----| True (back edge) -> Block 707 + +# 2140| Block 708 +# 2140| r2140_1(glval) = VariableAddress[x707] : +# 2140| mu2140_2(String) = Uninitialized[x707] : &:r2140_1 +# 2140| r2140_3(glval) = FunctionAddress[String] : +# 2140| v2140_4(void) = Call[String] : func:r2140_3, this:r2140_1 +# 2140| mu2140_5(unknown) = ^CallSideEffect : ~m? +# 2140| mu2140_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2140_1 +# 2141| r2141_1(glval) = VariableAddress[x707] : +# 2141| r2141_2(glval) = FunctionAddress[~String] : +# 2141| v2141_3(void) = Call[~String] : func:r2141_2, this:r2141_1 +# 2141| mu2141_4(unknown) = ^CallSideEffect : ~m? +# 2141| v2141_5(void) = ^IndirectReadSideEffect[-1] : &:r2141_1, ~m? +# 2141| mu2141_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2141_1 +# 2141| r2141_7(bool) = Constant[0] : +# 2141| v2141_8(void) = ConditionalBranch : r2141_7 +#-----| False -> Block 709 +#-----| True (back edge) -> Block 708 + +# 2143| Block 709 +# 2143| r2143_1(glval) = VariableAddress[x708] : +# 2143| mu2143_2(String) = Uninitialized[x708] : &:r2143_1 +# 2143| r2143_3(glval) = FunctionAddress[String] : +# 2143| v2143_4(void) = Call[String] : func:r2143_3, this:r2143_1 +# 2143| mu2143_5(unknown) = ^CallSideEffect : ~m? +# 2143| mu2143_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2143_1 +# 2144| r2144_1(glval) = VariableAddress[x708] : +# 2144| r2144_2(glval) = FunctionAddress[~String] : +# 2144| v2144_3(void) = Call[~String] : func:r2144_2, this:r2144_1 +# 2144| mu2144_4(unknown) = ^CallSideEffect : ~m? +# 2144| v2144_5(void) = ^IndirectReadSideEffect[-1] : &:r2144_1, ~m? +# 2144| mu2144_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2144_1 +# 2144| r2144_7(bool) = Constant[0] : +# 2144| v2144_8(void) = ConditionalBranch : r2144_7 +#-----| False -> Block 710 +#-----| True (back edge) -> Block 709 + +# 2146| Block 710 +# 2146| r2146_1(glval) = VariableAddress[x709] : +# 2146| mu2146_2(String) = Uninitialized[x709] : &:r2146_1 +# 2146| r2146_3(glval) = FunctionAddress[String] : +# 2146| v2146_4(void) = Call[String] : func:r2146_3, this:r2146_1 +# 2146| mu2146_5(unknown) = ^CallSideEffect : ~m? +# 2146| mu2146_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2146_1 +# 2147| r2147_1(glval) = VariableAddress[x709] : +# 2147| r2147_2(glval) = FunctionAddress[~String] : +# 2147| v2147_3(void) = Call[~String] : func:r2147_2, this:r2147_1 +# 2147| mu2147_4(unknown) = ^CallSideEffect : ~m? +# 2147| v2147_5(void) = ^IndirectReadSideEffect[-1] : &:r2147_1, ~m? +# 2147| mu2147_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2147_1 +# 2147| r2147_7(bool) = Constant[0] : +# 2147| v2147_8(void) = ConditionalBranch : r2147_7 +#-----| False -> Block 711 +#-----| True (back edge) -> Block 710 + +# 2149| Block 711 +# 2149| r2149_1(glval) = VariableAddress[x710] : +# 2149| mu2149_2(String) = Uninitialized[x710] : &:r2149_1 +# 2149| r2149_3(glval) = FunctionAddress[String] : +# 2149| v2149_4(void) = Call[String] : func:r2149_3, this:r2149_1 +# 2149| mu2149_5(unknown) = ^CallSideEffect : ~m? +# 2149| mu2149_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2149_1 +# 2150| r2150_1(glval) = VariableAddress[x710] : +# 2150| r2150_2(glval) = FunctionAddress[~String] : +# 2150| v2150_3(void) = Call[~String] : func:r2150_2, this:r2150_1 +# 2150| mu2150_4(unknown) = ^CallSideEffect : ~m? +# 2150| v2150_5(void) = ^IndirectReadSideEffect[-1] : &:r2150_1, ~m? +# 2150| mu2150_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2150_1 +# 2150| r2150_7(bool) = Constant[0] : +# 2150| v2150_8(void) = ConditionalBranch : r2150_7 +#-----| False -> Block 712 +#-----| True (back edge) -> Block 711 + +# 2152| Block 712 +# 2152| r2152_1(glval) = VariableAddress[x711] : +# 2152| mu2152_2(String) = Uninitialized[x711] : &:r2152_1 +# 2152| r2152_3(glval) = FunctionAddress[String] : +# 2152| v2152_4(void) = Call[String] : func:r2152_3, this:r2152_1 +# 2152| mu2152_5(unknown) = ^CallSideEffect : ~m? +# 2152| mu2152_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2152_1 +# 2153| r2153_1(glval) = VariableAddress[x711] : +# 2153| r2153_2(glval) = FunctionAddress[~String] : +# 2153| v2153_3(void) = Call[~String] : func:r2153_2, this:r2153_1 +# 2153| mu2153_4(unknown) = ^CallSideEffect : ~m? +# 2153| v2153_5(void) = ^IndirectReadSideEffect[-1] : &:r2153_1, ~m? +# 2153| mu2153_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2153_1 +# 2153| r2153_7(bool) = Constant[0] : +# 2153| v2153_8(void) = ConditionalBranch : r2153_7 +#-----| False -> Block 713 +#-----| True (back edge) -> Block 712 + +# 2155| Block 713 +# 2155| r2155_1(glval) = VariableAddress[x712] : +# 2155| mu2155_2(String) = Uninitialized[x712] : &:r2155_1 +# 2155| r2155_3(glval) = FunctionAddress[String] : +# 2155| v2155_4(void) = Call[String] : func:r2155_3, this:r2155_1 +# 2155| mu2155_5(unknown) = ^CallSideEffect : ~m? +# 2155| mu2155_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2155_1 +# 2156| r2156_1(glval) = VariableAddress[x712] : +# 2156| r2156_2(glval) = FunctionAddress[~String] : +# 2156| v2156_3(void) = Call[~String] : func:r2156_2, this:r2156_1 +# 2156| mu2156_4(unknown) = ^CallSideEffect : ~m? +# 2156| v2156_5(void) = ^IndirectReadSideEffect[-1] : &:r2156_1, ~m? +# 2156| mu2156_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2156_1 +# 2156| r2156_7(bool) = Constant[0] : +# 2156| v2156_8(void) = ConditionalBranch : r2156_7 +#-----| False -> Block 714 +#-----| True (back edge) -> Block 713 + +# 2158| Block 714 +# 2158| r2158_1(glval) = VariableAddress[x713] : +# 2158| mu2158_2(String) = Uninitialized[x713] : &:r2158_1 +# 2158| r2158_3(glval) = FunctionAddress[String] : +# 2158| v2158_4(void) = Call[String] : func:r2158_3, this:r2158_1 +# 2158| mu2158_5(unknown) = ^CallSideEffect : ~m? +# 2158| mu2158_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2158_1 +# 2159| r2159_1(glval) = VariableAddress[x713] : +# 2159| r2159_2(glval) = FunctionAddress[~String] : +# 2159| v2159_3(void) = Call[~String] : func:r2159_2, this:r2159_1 +# 2159| mu2159_4(unknown) = ^CallSideEffect : ~m? +# 2159| v2159_5(void) = ^IndirectReadSideEffect[-1] : &:r2159_1, ~m? +# 2159| mu2159_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2159_1 +# 2159| r2159_7(bool) = Constant[0] : +# 2159| v2159_8(void) = ConditionalBranch : r2159_7 +#-----| False -> Block 715 +#-----| True (back edge) -> Block 714 + +# 2161| Block 715 +# 2161| r2161_1(glval) = VariableAddress[x714] : +# 2161| mu2161_2(String) = Uninitialized[x714] : &:r2161_1 +# 2161| r2161_3(glval) = FunctionAddress[String] : +# 2161| v2161_4(void) = Call[String] : func:r2161_3, this:r2161_1 +# 2161| mu2161_5(unknown) = ^CallSideEffect : ~m? +# 2161| mu2161_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2161_1 +# 2162| r2162_1(glval) = VariableAddress[x714] : +# 2162| r2162_2(glval) = FunctionAddress[~String] : +# 2162| v2162_3(void) = Call[~String] : func:r2162_2, this:r2162_1 +# 2162| mu2162_4(unknown) = ^CallSideEffect : ~m? +# 2162| v2162_5(void) = ^IndirectReadSideEffect[-1] : &:r2162_1, ~m? +# 2162| mu2162_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2162_1 +# 2162| r2162_7(bool) = Constant[0] : +# 2162| v2162_8(void) = ConditionalBranch : r2162_7 +#-----| False -> Block 716 +#-----| True (back edge) -> Block 715 + +# 2164| Block 716 +# 2164| r2164_1(glval) = VariableAddress[x715] : +# 2164| mu2164_2(String) = Uninitialized[x715] : &:r2164_1 +# 2164| r2164_3(glval) = FunctionAddress[String] : +# 2164| v2164_4(void) = Call[String] : func:r2164_3, this:r2164_1 +# 2164| mu2164_5(unknown) = ^CallSideEffect : ~m? +# 2164| mu2164_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2164_1 +# 2165| r2165_1(glval) = VariableAddress[x715] : +# 2165| r2165_2(glval) = FunctionAddress[~String] : +# 2165| v2165_3(void) = Call[~String] : func:r2165_2, this:r2165_1 +# 2165| mu2165_4(unknown) = ^CallSideEffect : ~m? +# 2165| v2165_5(void) = ^IndirectReadSideEffect[-1] : &:r2165_1, ~m? +# 2165| mu2165_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2165_1 +# 2165| r2165_7(bool) = Constant[0] : +# 2165| v2165_8(void) = ConditionalBranch : r2165_7 +#-----| False -> Block 717 +#-----| True (back edge) -> Block 716 + +# 2167| Block 717 +# 2167| r2167_1(glval) = VariableAddress[x716] : +# 2167| mu2167_2(String) = Uninitialized[x716] : &:r2167_1 +# 2167| r2167_3(glval) = FunctionAddress[String] : +# 2167| v2167_4(void) = Call[String] : func:r2167_3, this:r2167_1 +# 2167| mu2167_5(unknown) = ^CallSideEffect : ~m? +# 2167| mu2167_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2167_1 +# 2168| r2168_1(glval) = VariableAddress[x716] : +# 2168| r2168_2(glval) = FunctionAddress[~String] : +# 2168| v2168_3(void) = Call[~String] : func:r2168_2, this:r2168_1 +# 2168| mu2168_4(unknown) = ^CallSideEffect : ~m? +# 2168| v2168_5(void) = ^IndirectReadSideEffect[-1] : &:r2168_1, ~m? +# 2168| mu2168_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2168_1 +# 2168| r2168_7(bool) = Constant[0] : +# 2168| v2168_8(void) = ConditionalBranch : r2168_7 +#-----| False -> Block 718 +#-----| True (back edge) -> Block 717 + +# 2170| Block 718 +# 2170| r2170_1(glval) = VariableAddress[x717] : +# 2170| mu2170_2(String) = Uninitialized[x717] : &:r2170_1 +# 2170| r2170_3(glval) = FunctionAddress[String] : +# 2170| v2170_4(void) = Call[String] : func:r2170_3, this:r2170_1 +# 2170| mu2170_5(unknown) = ^CallSideEffect : ~m? +# 2170| mu2170_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2170_1 +# 2171| r2171_1(glval) = VariableAddress[x717] : +# 2171| r2171_2(glval) = FunctionAddress[~String] : +# 2171| v2171_3(void) = Call[~String] : func:r2171_2, this:r2171_1 +# 2171| mu2171_4(unknown) = ^CallSideEffect : ~m? +# 2171| v2171_5(void) = ^IndirectReadSideEffect[-1] : &:r2171_1, ~m? +# 2171| mu2171_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2171_1 +# 2171| r2171_7(bool) = Constant[0] : +# 2171| v2171_8(void) = ConditionalBranch : r2171_7 +#-----| False -> Block 719 +#-----| True (back edge) -> Block 718 + +# 2173| Block 719 +# 2173| r2173_1(glval) = VariableAddress[x718] : +# 2173| mu2173_2(String) = Uninitialized[x718] : &:r2173_1 +# 2173| r2173_3(glval) = FunctionAddress[String] : +# 2173| v2173_4(void) = Call[String] : func:r2173_3, this:r2173_1 +# 2173| mu2173_5(unknown) = ^CallSideEffect : ~m? +# 2173| mu2173_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2173_1 +# 2174| r2174_1(glval) = VariableAddress[x718] : +# 2174| r2174_2(glval) = FunctionAddress[~String] : +# 2174| v2174_3(void) = Call[~String] : func:r2174_2, this:r2174_1 +# 2174| mu2174_4(unknown) = ^CallSideEffect : ~m? +# 2174| v2174_5(void) = ^IndirectReadSideEffect[-1] : &:r2174_1, ~m? +# 2174| mu2174_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2174_1 +# 2174| r2174_7(bool) = Constant[0] : +# 2174| v2174_8(void) = ConditionalBranch : r2174_7 +#-----| False -> Block 720 +#-----| True (back edge) -> Block 719 + +# 2176| Block 720 +# 2176| r2176_1(glval) = VariableAddress[x719] : +# 2176| mu2176_2(String) = Uninitialized[x719] : &:r2176_1 +# 2176| r2176_3(glval) = FunctionAddress[String] : +# 2176| v2176_4(void) = Call[String] : func:r2176_3, this:r2176_1 +# 2176| mu2176_5(unknown) = ^CallSideEffect : ~m? +# 2176| mu2176_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2176_1 +# 2177| r2177_1(glval) = VariableAddress[x719] : +# 2177| r2177_2(glval) = FunctionAddress[~String] : +# 2177| v2177_3(void) = Call[~String] : func:r2177_2, this:r2177_1 +# 2177| mu2177_4(unknown) = ^CallSideEffect : ~m? +# 2177| v2177_5(void) = ^IndirectReadSideEffect[-1] : &:r2177_1, ~m? +# 2177| mu2177_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2177_1 +# 2177| r2177_7(bool) = Constant[0] : +# 2177| v2177_8(void) = ConditionalBranch : r2177_7 +#-----| False -> Block 721 +#-----| True (back edge) -> Block 720 + +# 2179| Block 721 +# 2179| r2179_1(glval) = VariableAddress[x720] : +# 2179| mu2179_2(String) = Uninitialized[x720] : &:r2179_1 +# 2179| r2179_3(glval) = FunctionAddress[String] : +# 2179| v2179_4(void) = Call[String] : func:r2179_3, this:r2179_1 +# 2179| mu2179_5(unknown) = ^CallSideEffect : ~m? +# 2179| mu2179_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2179_1 +# 2180| r2180_1(glval) = VariableAddress[x720] : +# 2180| r2180_2(glval) = FunctionAddress[~String] : +# 2180| v2180_3(void) = Call[~String] : func:r2180_2, this:r2180_1 +# 2180| mu2180_4(unknown) = ^CallSideEffect : ~m? +# 2180| v2180_5(void) = ^IndirectReadSideEffect[-1] : &:r2180_1, ~m? +# 2180| mu2180_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2180_1 +# 2180| r2180_7(bool) = Constant[0] : +# 2180| v2180_8(void) = ConditionalBranch : r2180_7 +#-----| False -> Block 722 +#-----| True (back edge) -> Block 721 + +# 2182| Block 722 +# 2182| r2182_1(glval) = VariableAddress[x721] : +# 2182| mu2182_2(String) = Uninitialized[x721] : &:r2182_1 +# 2182| r2182_3(glval) = FunctionAddress[String] : +# 2182| v2182_4(void) = Call[String] : func:r2182_3, this:r2182_1 +# 2182| mu2182_5(unknown) = ^CallSideEffect : ~m? +# 2182| mu2182_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2182_1 +# 2183| r2183_1(glval) = VariableAddress[x721] : +# 2183| r2183_2(glval) = FunctionAddress[~String] : +# 2183| v2183_3(void) = Call[~String] : func:r2183_2, this:r2183_1 +# 2183| mu2183_4(unknown) = ^CallSideEffect : ~m? +# 2183| v2183_5(void) = ^IndirectReadSideEffect[-1] : &:r2183_1, ~m? +# 2183| mu2183_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2183_1 +# 2183| r2183_7(bool) = Constant[0] : +# 2183| v2183_8(void) = ConditionalBranch : r2183_7 +#-----| False -> Block 723 +#-----| True (back edge) -> Block 722 + +# 2185| Block 723 +# 2185| r2185_1(glval) = VariableAddress[x722] : +# 2185| mu2185_2(String) = Uninitialized[x722] : &:r2185_1 +# 2185| r2185_3(glval) = FunctionAddress[String] : +# 2185| v2185_4(void) = Call[String] : func:r2185_3, this:r2185_1 +# 2185| mu2185_5(unknown) = ^CallSideEffect : ~m? +# 2185| mu2185_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2185_1 +# 2186| r2186_1(glval) = VariableAddress[x722] : +# 2186| r2186_2(glval) = FunctionAddress[~String] : +# 2186| v2186_3(void) = Call[~String] : func:r2186_2, this:r2186_1 +# 2186| mu2186_4(unknown) = ^CallSideEffect : ~m? +# 2186| v2186_5(void) = ^IndirectReadSideEffect[-1] : &:r2186_1, ~m? +# 2186| mu2186_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2186_1 +# 2186| r2186_7(bool) = Constant[0] : +# 2186| v2186_8(void) = ConditionalBranch : r2186_7 +#-----| False -> Block 724 +#-----| True (back edge) -> Block 723 + +# 2188| Block 724 +# 2188| r2188_1(glval) = VariableAddress[x723] : +# 2188| mu2188_2(String) = Uninitialized[x723] : &:r2188_1 +# 2188| r2188_3(glval) = FunctionAddress[String] : +# 2188| v2188_4(void) = Call[String] : func:r2188_3, this:r2188_1 +# 2188| mu2188_5(unknown) = ^CallSideEffect : ~m? +# 2188| mu2188_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2188_1 +# 2189| r2189_1(glval) = VariableAddress[x723] : +# 2189| r2189_2(glval) = FunctionAddress[~String] : +# 2189| v2189_3(void) = Call[~String] : func:r2189_2, this:r2189_1 +# 2189| mu2189_4(unknown) = ^CallSideEffect : ~m? +# 2189| v2189_5(void) = ^IndirectReadSideEffect[-1] : &:r2189_1, ~m? +# 2189| mu2189_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2189_1 +# 2189| r2189_7(bool) = Constant[0] : +# 2189| v2189_8(void) = ConditionalBranch : r2189_7 +#-----| False -> Block 725 +#-----| True (back edge) -> Block 724 + +# 2191| Block 725 +# 2191| r2191_1(glval) = VariableAddress[x724] : +# 2191| mu2191_2(String) = Uninitialized[x724] : &:r2191_1 +# 2191| r2191_3(glval) = FunctionAddress[String] : +# 2191| v2191_4(void) = Call[String] : func:r2191_3, this:r2191_1 +# 2191| mu2191_5(unknown) = ^CallSideEffect : ~m? +# 2191| mu2191_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2191_1 +# 2192| r2192_1(glval) = VariableAddress[x724] : +# 2192| r2192_2(glval) = FunctionAddress[~String] : +# 2192| v2192_3(void) = Call[~String] : func:r2192_2, this:r2192_1 +# 2192| mu2192_4(unknown) = ^CallSideEffect : ~m? +# 2192| v2192_5(void) = ^IndirectReadSideEffect[-1] : &:r2192_1, ~m? +# 2192| mu2192_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2192_1 +# 2192| r2192_7(bool) = Constant[0] : +# 2192| v2192_8(void) = ConditionalBranch : r2192_7 +#-----| False -> Block 726 +#-----| True (back edge) -> Block 725 + +# 2194| Block 726 +# 2194| r2194_1(glval) = VariableAddress[x725] : +# 2194| mu2194_2(String) = Uninitialized[x725] : &:r2194_1 +# 2194| r2194_3(glval) = FunctionAddress[String] : +# 2194| v2194_4(void) = Call[String] : func:r2194_3, this:r2194_1 +# 2194| mu2194_5(unknown) = ^CallSideEffect : ~m? +# 2194| mu2194_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2194_1 +# 2195| r2195_1(glval) = VariableAddress[x725] : +# 2195| r2195_2(glval) = FunctionAddress[~String] : +# 2195| v2195_3(void) = Call[~String] : func:r2195_2, this:r2195_1 +# 2195| mu2195_4(unknown) = ^CallSideEffect : ~m? +# 2195| v2195_5(void) = ^IndirectReadSideEffect[-1] : &:r2195_1, ~m? +# 2195| mu2195_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2195_1 +# 2195| r2195_7(bool) = Constant[0] : +# 2195| v2195_8(void) = ConditionalBranch : r2195_7 +#-----| False -> Block 727 +#-----| True (back edge) -> Block 726 + +# 2197| Block 727 +# 2197| r2197_1(glval) = VariableAddress[x726] : +# 2197| mu2197_2(String) = Uninitialized[x726] : &:r2197_1 +# 2197| r2197_3(glval) = FunctionAddress[String] : +# 2197| v2197_4(void) = Call[String] : func:r2197_3, this:r2197_1 +# 2197| mu2197_5(unknown) = ^CallSideEffect : ~m? +# 2197| mu2197_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2197_1 +# 2198| r2198_1(glval) = VariableAddress[x726] : +# 2198| r2198_2(glval) = FunctionAddress[~String] : +# 2198| v2198_3(void) = Call[~String] : func:r2198_2, this:r2198_1 +# 2198| mu2198_4(unknown) = ^CallSideEffect : ~m? +# 2198| v2198_5(void) = ^IndirectReadSideEffect[-1] : &:r2198_1, ~m? +# 2198| mu2198_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2198_1 +# 2198| r2198_7(bool) = Constant[0] : +# 2198| v2198_8(void) = ConditionalBranch : r2198_7 +#-----| False -> Block 728 +#-----| True (back edge) -> Block 727 + +# 2200| Block 728 +# 2200| r2200_1(glval) = VariableAddress[x727] : +# 2200| mu2200_2(String) = Uninitialized[x727] : &:r2200_1 +# 2200| r2200_3(glval) = FunctionAddress[String] : +# 2200| v2200_4(void) = Call[String] : func:r2200_3, this:r2200_1 +# 2200| mu2200_5(unknown) = ^CallSideEffect : ~m? +# 2200| mu2200_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2200_1 +# 2201| r2201_1(glval) = VariableAddress[x727] : +# 2201| r2201_2(glval) = FunctionAddress[~String] : +# 2201| v2201_3(void) = Call[~String] : func:r2201_2, this:r2201_1 +# 2201| mu2201_4(unknown) = ^CallSideEffect : ~m? +# 2201| v2201_5(void) = ^IndirectReadSideEffect[-1] : &:r2201_1, ~m? +# 2201| mu2201_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2201_1 +# 2201| r2201_7(bool) = Constant[0] : +# 2201| v2201_8(void) = ConditionalBranch : r2201_7 +#-----| False -> Block 729 +#-----| True (back edge) -> Block 728 + +# 2203| Block 729 +# 2203| r2203_1(glval) = VariableAddress[x728] : +# 2203| mu2203_2(String) = Uninitialized[x728] : &:r2203_1 +# 2203| r2203_3(glval) = FunctionAddress[String] : +# 2203| v2203_4(void) = Call[String] : func:r2203_3, this:r2203_1 +# 2203| mu2203_5(unknown) = ^CallSideEffect : ~m? +# 2203| mu2203_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2203_1 +# 2204| r2204_1(glval) = VariableAddress[x728] : +# 2204| r2204_2(glval) = FunctionAddress[~String] : +# 2204| v2204_3(void) = Call[~String] : func:r2204_2, this:r2204_1 +# 2204| mu2204_4(unknown) = ^CallSideEffect : ~m? +# 2204| v2204_5(void) = ^IndirectReadSideEffect[-1] : &:r2204_1, ~m? +# 2204| mu2204_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2204_1 +# 2204| r2204_7(bool) = Constant[0] : +# 2204| v2204_8(void) = ConditionalBranch : r2204_7 +#-----| False -> Block 730 +#-----| True (back edge) -> Block 729 + +# 2206| Block 730 +# 2206| r2206_1(glval) = VariableAddress[x729] : +# 2206| mu2206_2(String) = Uninitialized[x729] : &:r2206_1 +# 2206| r2206_3(glval) = FunctionAddress[String] : +# 2206| v2206_4(void) = Call[String] : func:r2206_3, this:r2206_1 +# 2206| mu2206_5(unknown) = ^CallSideEffect : ~m? +# 2206| mu2206_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2206_1 +# 2207| r2207_1(glval) = VariableAddress[x729] : +# 2207| r2207_2(glval) = FunctionAddress[~String] : +# 2207| v2207_3(void) = Call[~String] : func:r2207_2, this:r2207_1 +# 2207| mu2207_4(unknown) = ^CallSideEffect : ~m? +# 2207| v2207_5(void) = ^IndirectReadSideEffect[-1] : &:r2207_1, ~m? +# 2207| mu2207_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2207_1 +# 2207| r2207_7(bool) = Constant[0] : +# 2207| v2207_8(void) = ConditionalBranch : r2207_7 +#-----| False -> Block 731 +#-----| True (back edge) -> Block 730 + +# 2209| Block 731 +# 2209| r2209_1(glval) = VariableAddress[x730] : +# 2209| mu2209_2(String) = Uninitialized[x730] : &:r2209_1 +# 2209| r2209_3(glval) = FunctionAddress[String] : +# 2209| v2209_4(void) = Call[String] : func:r2209_3, this:r2209_1 +# 2209| mu2209_5(unknown) = ^CallSideEffect : ~m? +# 2209| mu2209_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2209_1 +# 2210| r2210_1(glval) = VariableAddress[x730] : +# 2210| r2210_2(glval) = FunctionAddress[~String] : +# 2210| v2210_3(void) = Call[~String] : func:r2210_2, this:r2210_1 +# 2210| mu2210_4(unknown) = ^CallSideEffect : ~m? +# 2210| v2210_5(void) = ^IndirectReadSideEffect[-1] : &:r2210_1, ~m? +# 2210| mu2210_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2210_1 +# 2210| r2210_7(bool) = Constant[0] : +# 2210| v2210_8(void) = ConditionalBranch : r2210_7 +#-----| False -> Block 732 +#-----| True (back edge) -> Block 731 + +# 2212| Block 732 +# 2212| r2212_1(glval) = VariableAddress[x731] : +# 2212| mu2212_2(String) = Uninitialized[x731] : &:r2212_1 +# 2212| r2212_3(glval) = FunctionAddress[String] : +# 2212| v2212_4(void) = Call[String] : func:r2212_3, this:r2212_1 +# 2212| mu2212_5(unknown) = ^CallSideEffect : ~m? +# 2212| mu2212_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2212_1 +# 2213| r2213_1(glval) = VariableAddress[x731] : +# 2213| r2213_2(glval) = FunctionAddress[~String] : +# 2213| v2213_3(void) = Call[~String] : func:r2213_2, this:r2213_1 +# 2213| mu2213_4(unknown) = ^CallSideEffect : ~m? +# 2213| v2213_5(void) = ^IndirectReadSideEffect[-1] : &:r2213_1, ~m? +# 2213| mu2213_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2213_1 +# 2213| r2213_7(bool) = Constant[0] : +# 2213| v2213_8(void) = ConditionalBranch : r2213_7 +#-----| False -> Block 733 +#-----| True (back edge) -> Block 732 + +# 2215| Block 733 +# 2215| r2215_1(glval) = VariableAddress[x732] : +# 2215| mu2215_2(String) = Uninitialized[x732] : &:r2215_1 +# 2215| r2215_3(glval) = FunctionAddress[String] : +# 2215| v2215_4(void) = Call[String] : func:r2215_3, this:r2215_1 +# 2215| mu2215_5(unknown) = ^CallSideEffect : ~m? +# 2215| mu2215_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2215_1 +# 2216| r2216_1(glval) = VariableAddress[x732] : +# 2216| r2216_2(glval) = FunctionAddress[~String] : +# 2216| v2216_3(void) = Call[~String] : func:r2216_2, this:r2216_1 +# 2216| mu2216_4(unknown) = ^CallSideEffect : ~m? +# 2216| v2216_5(void) = ^IndirectReadSideEffect[-1] : &:r2216_1, ~m? +# 2216| mu2216_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2216_1 +# 2216| r2216_7(bool) = Constant[0] : +# 2216| v2216_8(void) = ConditionalBranch : r2216_7 +#-----| False -> Block 734 +#-----| True (back edge) -> Block 733 + +# 2218| Block 734 +# 2218| r2218_1(glval) = VariableAddress[x733] : +# 2218| mu2218_2(String) = Uninitialized[x733] : &:r2218_1 +# 2218| r2218_3(glval) = FunctionAddress[String] : +# 2218| v2218_4(void) = Call[String] : func:r2218_3, this:r2218_1 +# 2218| mu2218_5(unknown) = ^CallSideEffect : ~m? +# 2218| mu2218_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2218_1 +# 2219| r2219_1(glval) = VariableAddress[x733] : +# 2219| r2219_2(glval) = FunctionAddress[~String] : +# 2219| v2219_3(void) = Call[~String] : func:r2219_2, this:r2219_1 +# 2219| mu2219_4(unknown) = ^CallSideEffect : ~m? +# 2219| v2219_5(void) = ^IndirectReadSideEffect[-1] : &:r2219_1, ~m? +# 2219| mu2219_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2219_1 +# 2219| r2219_7(bool) = Constant[0] : +# 2219| v2219_8(void) = ConditionalBranch : r2219_7 +#-----| False -> Block 735 +#-----| True (back edge) -> Block 734 + +# 2221| Block 735 +# 2221| r2221_1(glval) = VariableAddress[x734] : +# 2221| mu2221_2(String) = Uninitialized[x734] : &:r2221_1 +# 2221| r2221_3(glval) = FunctionAddress[String] : +# 2221| v2221_4(void) = Call[String] : func:r2221_3, this:r2221_1 +# 2221| mu2221_5(unknown) = ^CallSideEffect : ~m? +# 2221| mu2221_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2221_1 +# 2222| r2222_1(glval) = VariableAddress[x734] : +# 2222| r2222_2(glval) = FunctionAddress[~String] : +# 2222| v2222_3(void) = Call[~String] : func:r2222_2, this:r2222_1 +# 2222| mu2222_4(unknown) = ^CallSideEffect : ~m? +# 2222| v2222_5(void) = ^IndirectReadSideEffect[-1] : &:r2222_1, ~m? +# 2222| mu2222_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2222_1 +# 2222| r2222_7(bool) = Constant[0] : +# 2222| v2222_8(void) = ConditionalBranch : r2222_7 +#-----| False -> Block 736 +#-----| True (back edge) -> Block 735 + +# 2224| Block 736 +# 2224| r2224_1(glval) = VariableAddress[x735] : +# 2224| mu2224_2(String) = Uninitialized[x735] : &:r2224_1 +# 2224| r2224_3(glval) = FunctionAddress[String] : +# 2224| v2224_4(void) = Call[String] : func:r2224_3, this:r2224_1 +# 2224| mu2224_5(unknown) = ^CallSideEffect : ~m? +# 2224| mu2224_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2224_1 +# 2225| r2225_1(glval) = VariableAddress[x735] : +# 2225| r2225_2(glval) = FunctionAddress[~String] : +# 2225| v2225_3(void) = Call[~String] : func:r2225_2, this:r2225_1 +# 2225| mu2225_4(unknown) = ^CallSideEffect : ~m? +# 2225| v2225_5(void) = ^IndirectReadSideEffect[-1] : &:r2225_1, ~m? +# 2225| mu2225_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2225_1 +# 2225| r2225_7(bool) = Constant[0] : +# 2225| v2225_8(void) = ConditionalBranch : r2225_7 +#-----| False -> Block 737 +#-----| True (back edge) -> Block 736 + +# 2227| Block 737 +# 2227| r2227_1(glval) = VariableAddress[x736] : +# 2227| mu2227_2(String) = Uninitialized[x736] : &:r2227_1 +# 2227| r2227_3(glval) = FunctionAddress[String] : +# 2227| v2227_4(void) = Call[String] : func:r2227_3, this:r2227_1 +# 2227| mu2227_5(unknown) = ^CallSideEffect : ~m? +# 2227| mu2227_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2227_1 +# 2228| r2228_1(glval) = VariableAddress[x736] : +# 2228| r2228_2(glval) = FunctionAddress[~String] : +# 2228| v2228_3(void) = Call[~String] : func:r2228_2, this:r2228_1 +# 2228| mu2228_4(unknown) = ^CallSideEffect : ~m? +# 2228| v2228_5(void) = ^IndirectReadSideEffect[-1] : &:r2228_1, ~m? +# 2228| mu2228_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2228_1 +# 2228| r2228_7(bool) = Constant[0] : +# 2228| v2228_8(void) = ConditionalBranch : r2228_7 +#-----| False -> Block 738 +#-----| True (back edge) -> Block 737 + +# 2230| Block 738 +# 2230| r2230_1(glval) = VariableAddress[x737] : +# 2230| mu2230_2(String) = Uninitialized[x737] : &:r2230_1 +# 2230| r2230_3(glval) = FunctionAddress[String] : +# 2230| v2230_4(void) = Call[String] : func:r2230_3, this:r2230_1 +# 2230| mu2230_5(unknown) = ^CallSideEffect : ~m? +# 2230| mu2230_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2230_1 +# 2231| r2231_1(glval) = VariableAddress[x737] : +# 2231| r2231_2(glval) = FunctionAddress[~String] : +# 2231| v2231_3(void) = Call[~String] : func:r2231_2, this:r2231_1 +# 2231| mu2231_4(unknown) = ^CallSideEffect : ~m? +# 2231| v2231_5(void) = ^IndirectReadSideEffect[-1] : &:r2231_1, ~m? +# 2231| mu2231_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2231_1 +# 2231| r2231_7(bool) = Constant[0] : +# 2231| v2231_8(void) = ConditionalBranch : r2231_7 +#-----| False -> Block 739 +#-----| True (back edge) -> Block 738 + +# 2233| Block 739 +# 2233| r2233_1(glval) = VariableAddress[x738] : +# 2233| mu2233_2(String) = Uninitialized[x738] : &:r2233_1 +# 2233| r2233_3(glval) = FunctionAddress[String] : +# 2233| v2233_4(void) = Call[String] : func:r2233_3, this:r2233_1 +# 2233| mu2233_5(unknown) = ^CallSideEffect : ~m? +# 2233| mu2233_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2233_1 +# 2234| r2234_1(glval) = VariableAddress[x738] : +# 2234| r2234_2(glval) = FunctionAddress[~String] : +# 2234| v2234_3(void) = Call[~String] : func:r2234_2, this:r2234_1 +# 2234| mu2234_4(unknown) = ^CallSideEffect : ~m? +# 2234| v2234_5(void) = ^IndirectReadSideEffect[-1] : &:r2234_1, ~m? +# 2234| mu2234_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2234_1 +# 2234| r2234_7(bool) = Constant[0] : +# 2234| v2234_8(void) = ConditionalBranch : r2234_7 +#-----| False -> Block 740 +#-----| True (back edge) -> Block 739 + +# 2236| Block 740 +# 2236| r2236_1(glval) = VariableAddress[x739] : +# 2236| mu2236_2(String) = Uninitialized[x739] : &:r2236_1 +# 2236| r2236_3(glval) = FunctionAddress[String] : +# 2236| v2236_4(void) = Call[String] : func:r2236_3, this:r2236_1 +# 2236| mu2236_5(unknown) = ^CallSideEffect : ~m? +# 2236| mu2236_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2236_1 +# 2237| r2237_1(glval) = VariableAddress[x739] : +# 2237| r2237_2(glval) = FunctionAddress[~String] : +# 2237| v2237_3(void) = Call[~String] : func:r2237_2, this:r2237_1 +# 2237| mu2237_4(unknown) = ^CallSideEffect : ~m? +# 2237| v2237_5(void) = ^IndirectReadSideEffect[-1] : &:r2237_1, ~m? +# 2237| mu2237_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2237_1 +# 2237| r2237_7(bool) = Constant[0] : +# 2237| v2237_8(void) = ConditionalBranch : r2237_7 +#-----| False -> Block 741 +#-----| True (back edge) -> Block 740 + +# 2239| Block 741 +# 2239| r2239_1(glval) = VariableAddress[x740] : +# 2239| mu2239_2(String) = Uninitialized[x740] : &:r2239_1 +# 2239| r2239_3(glval) = FunctionAddress[String] : +# 2239| v2239_4(void) = Call[String] : func:r2239_3, this:r2239_1 +# 2239| mu2239_5(unknown) = ^CallSideEffect : ~m? +# 2239| mu2239_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2239_1 +# 2240| r2240_1(glval) = VariableAddress[x740] : +# 2240| r2240_2(glval) = FunctionAddress[~String] : +# 2240| v2240_3(void) = Call[~String] : func:r2240_2, this:r2240_1 +# 2240| mu2240_4(unknown) = ^CallSideEffect : ~m? +# 2240| v2240_5(void) = ^IndirectReadSideEffect[-1] : &:r2240_1, ~m? +# 2240| mu2240_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2240_1 +# 2240| r2240_7(bool) = Constant[0] : +# 2240| v2240_8(void) = ConditionalBranch : r2240_7 +#-----| False -> Block 742 +#-----| True (back edge) -> Block 741 + +# 2242| Block 742 +# 2242| r2242_1(glval) = VariableAddress[x741] : +# 2242| mu2242_2(String) = Uninitialized[x741] : &:r2242_1 +# 2242| r2242_3(glval) = FunctionAddress[String] : +# 2242| v2242_4(void) = Call[String] : func:r2242_3, this:r2242_1 +# 2242| mu2242_5(unknown) = ^CallSideEffect : ~m? +# 2242| mu2242_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2242_1 +# 2243| r2243_1(glval) = VariableAddress[x741] : +# 2243| r2243_2(glval) = FunctionAddress[~String] : +# 2243| v2243_3(void) = Call[~String] : func:r2243_2, this:r2243_1 +# 2243| mu2243_4(unknown) = ^CallSideEffect : ~m? +# 2243| v2243_5(void) = ^IndirectReadSideEffect[-1] : &:r2243_1, ~m? +# 2243| mu2243_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2243_1 +# 2243| r2243_7(bool) = Constant[0] : +# 2243| v2243_8(void) = ConditionalBranch : r2243_7 +#-----| False -> Block 743 +#-----| True (back edge) -> Block 742 + +# 2245| Block 743 +# 2245| r2245_1(glval) = VariableAddress[x742] : +# 2245| mu2245_2(String) = Uninitialized[x742] : &:r2245_1 +# 2245| r2245_3(glval) = FunctionAddress[String] : +# 2245| v2245_4(void) = Call[String] : func:r2245_3, this:r2245_1 +# 2245| mu2245_5(unknown) = ^CallSideEffect : ~m? +# 2245| mu2245_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2245_1 +# 2246| r2246_1(glval) = VariableAddress[x742] : +# 2246| r2246_2(glval) = FunctionAddress[~String] : +# 2246| v2246_3(void) = Call[~String] : func:r2246_2, this:r2246_1 +# 2246| mu2246_4(unknown) = ^CallSideEffect : ~m? +# 2246| v2246_5(void) = ^IndirectReadSideEffect[-1] : &:r2246_1, ~m? +# 2246| mu2246_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2246_1 +# 2246| r2246_7(bool) = Constant[0] : +# 2246| v2246_8(void) = ConditionalBranch : r2246_7 +#-----| False -> Block 744 +#-----| True (back edge) -> Block 743 + +# 2248| Block 744 +# 2248| r2248_1(glval) = VariableAddress[x743] : +# 2248| mu2248_2(String) = Uninitialized[x743] : &:r2248_1 +# 2248| r2248_3(glval) = FunctionAddress[String] : +# 2248| v2248_4(void) = Call[String] : func:r2248_3, this:r2248_1 +# 2248| mu2248_5(unknown) = ^CallSideEffect : ~m? +# 2248| mu2248_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2248_1 +# 2249| r2249_1(glval) = VariableAddress[x743] : +# 2249| r2249_2(glval) = FunctionAddress[~String] : +# 2249| v2249_3(void) = Call[~String] : func:r2249_2, this:r2249_1 +# 2249| mu2249_4(unknown) = ^CallSideEffect : ~m? +# 2249| v2249_5(void) = ^IndirectReadSideEffect[-1] : &:r2249_1, ~m? +# 2249| mu2249_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2249_1 +# 2249| r2249_7(bool) = Constant[0] : +# 2249| v2249_8(void) = ConditionalBranch : r2249_7 +#-----| False -> Block 745 +#-----| True (back edge) -> Block 744 + +# 2251| Block 745 +# 2251| r2251_1(glval) = VariableAddress[x744] : +# 2251| mu2251_2(String) = Uninitialized[x744] : &:r2251_1 +# 2251| r2251_3(glval) = FunctionAddress[String] : +# 2251| v2251_4(void) = Call[String] : func:r2251_3, this:r2251_1 +# 2251| mu2251_5(unknown) = ^CallSideEffect : ~m? +# 2251| mu2251_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2251_1 +# 2252| r2252_1(glval) = VariableAddress[x744] : +# 2252| r2252_2(glval) = FunctionAddress[~String] : +# 2252| v2252_3(void) = Call[~String] : func:r2252_2, this:r2252_1 +# 2252| mu2252_4(unknown) = ^CallSideEffect : ~m? +# 2252| v2252_5(void) = ^IndirectReadSideEffect[-1] : &:r2252_1, ~m? +# 2252| mu2252_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2252_1 +# 2252| r2252_7(bool) = Constant[0] : +# 2252| v2252_8(void) = ConditionalBranch : r2252_7 +#-----| False -> Block 746 +#-----| True (back edge) -> Block 745 + +# 2254| Block 746 +# 2254| r2254_1(glval) = VariableAddress[x745] : +# 2254| mu2254_2(String) = Uninitialized[x745] : &:r2254_1 +# 2254| r2254_3(glval) = FunctionAddress[String] : +# 2254| v2254_4(void) = Call[String] : func:r2254_3, this:r2254_1 +# 2254| mu2254_5(unknown) = ^CallSideEffect : ~m? +# 2254| mu2254_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2254_1 +# 2255| r2255_1(glval) = VariableAddress[x745] : +# 2255| r2255_2(glval) = FunctionAddress[~String] : +# 2255| v2255_3(void) = Call[~String] : func:r2255_2, this:r2255_1 +# 2255| mu2255_4(unknown) = ^CallSideEffect : ~m? +# 2255| v2255_5(void) = ^IndirectReadSideEffect[-1] : &:r2255_1, ~m? +# 2255| mu2255_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2255_1 +# 2255| r2255_7(bool) = Constant[0] : +# 2255| v2255_8(void) = ConditionalBranch : r2255_7 +#-----| False -> Block 747 +#-----| True (back edge) -> Block 746 + +# 2257| Block 747 +# 2257| r2257_1(glval) = VariableAddress[x746] : +# 2257| mu2257_2(String) = Uninitialized[x746] : &:r2257_1 +# 2257| r2257_3(glval) = FunctionAddress[String] : +# 2257| v2257_4(void) = Call[String] : func:r2257_3, this:r2257_1 +# 2257| mu2257_5(unknown) = ^CallSideEffect : ~m? +# 2257| mu2257_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2257_1 +# 2258| r2258_1(glval) = VariableAddress[x746] : +# 2258| r2258_2(glval) = FunctionAddress[~String] : +# 2258| v2258_3(void) = Call[~String] : func:r2258_2, this:r2258_1 +# 2258| mu2258_4(unknown) = ^CallSideEffect : ~m? +# 2258| v2258_5(void) = ^IndirectReadSideEffect[-1] : &:r2258_1, ~m? +# 2258| mu2258_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2258_1 +# 2258| r2258_7(bool) = Constant[0] : +# 2258| v2258_8(void) = ConditionalBranch : r2258_7 +#-----| False -> Block 748 +#-----| True (back edge) -> Block 747 + +# 2260| Block 748 +# 2260| r2260_1(glval) = VariableAddress[x747] : +# 2260| mu2260_2(String) = Uninitialized[x747] : &:r2260_1 +# 2260| r2260_3(glval) = FunctionAddress[String] : +# 2260| v2260_4(void) = Call[String] : func:r2260_3, this:r2260_1 +# 2260| mu2260_5(unknown) = ^CallSideEffect : ~m? +# 2260| mu2260_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2260_1 +# 2261| r2261_1(glval) = VariableAddress[x747] : +# 2261| r2261_2(glval) = FunctionAddress[~String] : +# 2261| v2261_3(void) = Call[~String] : func:r2261_2, this:r2261_1 +# 2261| mu2261_4(unknown) = ^CallSideEffect : ~m? +# 2261| v2261_5(void) = ^IndirectReadSideEffect[-1] : &:r2261_1, ~m? +# 2261| mu2261_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2261_1 +# 2261| r2261_7(bool) = Constant[0] : +# 2261| v2261_8(void) = ConditionalBranch : r2261_7 +#-----| False -> Block 749 +#-----| True (back edge) -> Block 748 + +# 2263| Block 749 +# 2263| r2263_1(glval) = VariableAddress[x748] : +# 2263| mu2263_2(String) = Uninitialized[x748] : &:r2263_1 +# 2263| r2263_3(glval) = FunctionAddress[String] : +# 2263| v2263_4(void) = Call[String] : func:r2263_3, this:r2263_1 +# 2263| mu2263_5(unknown) = ^CallSideEffect : ~m? +# 2263| mu2263_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2263_1 +# 2264| r2264_1(glval) = VariableAddress[x748] : +# 2264| r2264_2(glval) = FunctionAddress[~String] : +# 2264| v2264_3(void) = Call[~String] : func:r2264_2, this:r2264_1 +# 2264| mu2264_4(unknown) = ^CallSideEffect : ~m? +# 2264| v2264_5(void) = ^IndirectReadSideEffect[-1] : &:r2264_1, ~m? +# 2264| mu2264_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2264_1 +# 2264| r2264_7(bool) = Constant[0] : +# 2264| v2264_8(void) = ConditionalBranch : r2264_7 +#-----| False -> Block 750 +#-----| True (back edge) -> Block 749 + +# 2266| Block 750 +# 2266| r2266_1(glval) = VariableAddress[x749] : +# 2266| mu2266_2(String) = Uninitialized[x749] : &:r2266_1 +# 2266| r2266_3(glval) = FunctionAddress[String] : +# 2266| v2266_4(void) = Call[String] : func:r2266_3, this:r2266_1 +# 2266| mu2266_5(unknown) = ^CallSideEffect : ~m? +# 2266| mu2266_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2266_1 +# 2267| r2267_1(glval) = VariableAddress[x749] : +# 2267| r2267_2(glval) = FunctionAddress[~String] : +# 2267| v2267_3(void) = Call[~String] : func:r2267_2, this:r2267_1 +# 2267| mu2267_4(unknown) = ^CallSideEffect : ~m? +# 2267| v2267_5(void) = ^IndirectReadSideEffect[-1] : &:r2267_1, ~m? +# 2267| mu2267_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2267_1 +# 2267| r2267_7(bool) = Constant[0] : +# 2267| v2267_8(void) = ConditionalBranch : r2267_7 +#-----| False -> Block 751 +#-----| True (back edge) -> Block 750 + +# 2269| Block 751 +# 2269| r2269_1(glval) = VariableAddress[x750] : +# 2269| mu2269_2(String) = Uninitialized[x750] : &:r2269_1 +# 2269| r2269_3(glval) = FunctionAddress[String] : +# 2269| v2269_4(void) = Call[String] : func:r2269_3, this:r2269_1 +# 2269| mu2269_5(unknown) = ^CallSideEffect : ~m? +# 2269| mu2269_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2269_1 +# 2270| r2270_1(glval) = VariableAddress[x750] : +# 2270| r2270_2(glval) = FunctionAddress[~String] : +# 2270| v2270_3(void) = Call[~String] : func:r2270_2, this:r2270_1 +# 2270| mu2270_4(unknown) = ^CallSideEffect : ~m? +# 2270| v2270_5(void) = ^IndirectReadSideEffect[-1] : &:r2270_1, ~m? +# 2270| mu2270_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2270_1 +# 2270| r2270_7(bool) = Constant[0] : +# 2270| v2270_8(void) = ConditionalBranch : r2270_7 +#-----| False -> Block 752 +#-----| True (back edge) -> Block 751 + +# 2272| Block 752 +# 2272| r2272_1(glval) = VariableAddress[x751] : +# 2272| mu2272_2(String) = Uninitialized[x751] : &:r2272_1 +# 2272| r2272_3(glval) = FunctionAddress[String] : +# 2272| v2272_4(void) = Call[String] : func:r2272_3, this:r2272_1 +# 2272| mu2272_5(unknown) = ^CallSideEffect : ~m? +# 2272| mu2272_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2272_1 +# 2273| r2273_1(glval) = VariableAddress[x751] : +# 2273| r2273_2(glval) = FunctionAddress[~String] : +# 2273| v2273_3(void) = Call[~String] : func:r2273_2, this:r2273_1 +# 2273| mu2273_4(unknown) = ^CallSideEffect : ~m? +# 2273| v2273_5(void) = ^IndirectReadSideEffect[-1] : &:r2273_1, ~m? +# 2273| mu2273_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2273_1 +# 2273| r2273_7(bool) = Constant[0] : +# 2273| v2273_8(void) = ConditionalBranch : r2273_7 +#-----| False -> Block 753 +#-----| True (back edge) -> Block 752 + +# 2275| Block 753 +# 2275| r2275_1(glval) = VariableAddress[x752] : +# 2275| mu2275_2(String) = Uninitialized[x752] : &:r2275_1 +# 2275| r2275_3(glval) = FunctionAddress[String] : +# 2275| v2275_4(void) = Call[String] : func:r2275_3, this:r2275_1 +# 2275| mu2275_5(unknown) = ^CallSideEffect : ~m? +# 2275| mu2275_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2275_1 +# 2276| r2276_1(glval) = VariableAddress[x752] : +# 2276| r2276_2(glval) = FunctionAddress[~String] : +# 2276| v2276_3(void) = Call[~String] : func:r2276_2, this:r2276_1 +# 2276| mu2276_4(unknown) = ^CallSideEffect : ~m? +# 2276| v2276_5(void) = ^IndirectReadSideEffect[-1] : &:r2276_1, ~m? +# 2276| mu2276_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2276_1 +# 2276| r2276_7(bool) = Constant[0] : +# 2276| v2276_8(void) = ConditionalBranch : r2276_7 +#-----| False -> Block 754 +#-----| True (back edge) -> Block 753 + +# 2278| Block 754 +# 2278| r2278_1(glval) = VariableAddress[x753] : +# 2278| mu2278_2(String) = Uninitialized[x753] : &:r2278_1 +# 2278| r2278_3(glval) = FunctionAddress[String] : +# 2278| v2278_4(void) = Call[String] : func:r2278_3, this:r2278_1 +# 2278| mu2278_5(unknown) = ^CallSideEffect : ~m? +# 2278| mu2278_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2278_1 +# 2279| r2279_1(glval) = VariableAddress[x753] : +# 2279| r2279_2(glval) = FunctionAddress[~String] : +# 2279| v2279_3(void) = Call[~String] : func:r2279_2, this:r2279_1 +# 2279| mu2279_4(unknown) = ^CallSideEffect : ~m? +# 2279| v2279_5(void) = ^IndirectReadSideEffect[-1] : &:r2279_1, ~m? +# 2279| mu2279_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2279_1 +# 2279| r2279_7(bool) = Constant[0] : +# 2279| v2279_8(void) = ConditionalBranch : r2279_7 +#-----| False -> Block 755 +#-----| True (back edge) -> Block 754 + +# 2281| Block 755 +# 2281| r2281_1(glval) = VariableAddress[x754] : +# 2281| mu2281_2(String) = Uninitialized[x754] : &:r2281_1 +# 2281| r2281_3(glval) = FunctionAddress[String] : +# 2281| v2281_4(void) = Call[String] : func:r2281_3, this:r2281_1 +# 2281| mu2281_5(unknown) = ^CallSideEffect : ~m? +# 2281| mu2281_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2281_1 +# 2282| r2282_1(glval) = VariableAddress[x754] : +# 2282| r2282_2(glval) = FunctionAddress[~String] : +# 2282| v2282_3(void) = Call[~String] : func:r2282_2, this:r2282_1 +# 2282| mu2282_4(unknown) = ^CallSideEffect : ~m? +# 2282| v2282_5(void) = ^IndirectReadSideEffect[-1] : &:r2282_1, ~m? +# 2282| mu2282_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2282_1 +# 2282| r2282_7(bool) = Constant[0] : +# 2282| v2282_8(void) = ConditionalBranch : r2282_7 +#-----| False -> Block 756 +#-----| True (back edge) -> Block 755 + +# 2284| Block 756 +# 2284| r2284_1(glval) = VariableAddress[x755] : +# 2284| mu2284_2(String) = Uninitialized[x755] : &:r2284_1 +# 2284| r2284_3(glval) = FunctionAddress[String] : +# 2284| v2284_4(void) = Call[String] : func:r2284_3, this:r2284_1 +# 2284| mu2284_5(unknown) = ^CallSideEffect : ~m? +# 2284| mu2284_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2284_1 +# 2285| r2285_1(glval) = VariableAddress[x755] : +# 2285| r2285_2(glval) = FunctionAddress[~String] : +# 2285| v2285_3(void) = Call[~String] : func:r2285_2, this:r2285_1 +# 2285| mu2285_4(unknown) = ^CallSideEffect : ~m? +# 2285| v2285_5(void) = ^IndirectReadSideEffect[-1] : &:r2285_1, ~m? +# 2285| mu2285_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2285_1 +# 2285| r2285_7(bool) = Constant[0] : +# 2285| v2285_8(void) = ConditionalBranch : r2285_7 +#-----| False -> Block 757 +#-----| True (back edge) -> Block 756 + +# 2287| Block 757 +# 2287| r2287_1(glval) = VariableAddress[x756] : +# 2287| mu2287_2(String) = Uninitialized[x756] : &:r2287_1 +# 2287| r2287_3(glval) = FunctionAddress[String] : +# 2287| v2287_4(void) = Call[String] : func:r2287_3, this:r2287_1 +# 2287| mu2287_5(unknown) = ^CallSideEffect : ~m? +# 2287| mu2287_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2287_1 +# 2288| r2288_1(glval) = VariableAddress[x756] : +# 2288| r2288_2(glval) = FunctionAddress[~String] : +# 2288| v2288_3(void) = Call[~String] : func:r2288_2, this:r2288_1 +# 2288| mu2288_4(unknown) = ^CallSideEffect : ~m? +# 2288| v2288_5(void) = ^IndirectReadSideEffect[-1] : &:r2288_1, ~m? +# 2288| mu2288_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2288_1 +# 2288| r2288_7(bool) = Constant[0] : +# 2288| v2288_8(void) = ConditionalBranch : r2288_7 +#-----| False -> Block 758 +#-----| True (back edge) -> Block 757 + +# 2290| Block 758 +# 2290| r2290_1(glval) = VariableAddress[x757] : +# 2290| mu2290_2(String) = Uninitialized[x757] : &:r2290_1 +# 2290| r2290_3(glval) = FunctionAddress[String] : +# 2290| v2290_4(void) = Call[String] : func:r2290_3, this:r2290_1 +# 2290| mu2290_5(unknown) = ^CallSideEffect : ~m? +# 2290| mu2290_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2290_1 +# 2291| r2291_1(glval) = VariableAddress[x757] : +# 2291| r2291_2(glval) = FunctionAddress[~String] : +# 2291| v2291_3(void) = Call[~String] : func:r2291_2, this:r2291_1 +# 2291| mu2291_4(unknown) = ^CallSideEffect : ~m? +# 2291| v2291_5(void) = ^IndirectReadSideEffect[-1] : &:r2291_1, ~m? +# 2291| mu2291_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2291_1 +# 2291| r2291_7(bool) = Constant[0] : +# 2291| v2291_8(void) = ConditionalBranch : r2291_7 +#-----| False -> Block 759 +#-----| True (back edge) -> Block 758 + +# 2293| Block 759 +# 2293| r2293_1(glval) = VariableAddress[x758] : +# 2293| mu2293_2(String) = Uninitialized[x758] : &:r2293_1 +# 2293| r2293_3(glval) = FunctionAddress[String] : +# 2293| v2293_4(void) = Call[String] : func:r2293_3, this:r2293_1 +# 2293| mu2293_5(unknown) = ^CallSideEffect : ~m? +# 2293| mu2293_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2293_1 +# 2294| r2294_1(glval) = VariableAddress[x758] : +# 2294| r2294_2(glval) = FunctionAddress[~String] : +# 2294| v2294_3(void) = Call[~String] : func:r2294_2, this:r2294_1 +# 2294| mu2294_4(unknown) = ^CallSideEffect : ~m? +# 2294| v2294_5(void) = ^IndirectReadSideEffect[-1] : &:r2294_1, ~m? +# 2294| mu2294_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2294_1 +# 2294| r2294_7(bool) = Constant[0] : +# 2294| v2294_8(void) = ConditionalBranch : r2294_7 +#-----| False -> Block 760 +#-----| True (back edge) -> Block 759 + +# 2296| Block 760 +# 2296| r2296_1(glval) = VariableAddress[x759] : +# 2296| mu2296_2(String) = Uninitialized[x759] : &:r2296_1 +# 2296| r2296_3(glval) = FunctionAddress[String] : +# 2296| v2296_4(void) = Call[String] : func:r2296_3, this:r2296_1 +# 2296| mu2296_5(unknown) = ^CallSideEffect : ~m? +# 2296| mu2296_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2296_1 +# 2297| r2297_1(glval) = VariableAddress[x759] : +# 2297| r2297_2(glval) = FunctionAddress[~String] : +# 2297| v2297_3(void) = Call[~String] : func:r2297_2, this:r2297_1 +# 2297| mu2297_4(unknown) = ^CallSideEffect : ~m? +# 2297| v2297_5(void) = ^IndirectReadSideEffect[-1] : &:r2297_1, ~m? +# 2297| mu2297_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2297_1 +# 2297| r2297_7(bool) = Constant[0] : +# 2297| v2297_8(void) = ConditionalBranch : r2297_7 +#-----| False -> Block 761 +#-----| True (back edge) -> Block 760 + +# 2299| Block 761 +# 2299| r2299_1(glval) = VariableAddress[x760] : +# 2299| mu2299_2(String) = Uninitialized[x760] : &:r2299_1 +# 2299| r2299_3(glval) = FunctionAddress[String] : +# 2299| v2299_4(void) = Call[String] : func:r2299_3, this:r2299_1 +# 2299| mu2299_5(unknown) = ^CallSideEffect : ~m? +# 2299| mu2299_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2299_1 +# 2300| r2300_1(glval) = VariableAddress[x760] : +# 2300| r2300_2(glval) = FunctionAddress[~String] : +# 2300| v2300_3(void) = Call[~String] : func:r2300_2, this:r2300_1 +# 2300| mu2300_4(unknown) = ^CallSideEffect : ~m? +# 2300| v2300_5(void) = ^IndirectReadSideEffect[-1] : &:r2300_1, ~m? +# 2300| mu2300_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2300_1 +# 2300| r2300_7(bool) = Constant[0] : +# 2300| v2300_8(void) = ConditionalBranch : r2300_7 +#-----| False -> Block 762 +#-----| True (back edge) -> Block 761 + +# 2302| Block 762 +# 2302| r2302_1(glval) = VariableAddress[x761] : +# 2302| mu2302_2(String) = Uninitialized[x761] : &:r2302_1 +# 2302| r2302_3(glval) = FunctionAddress[String] : +# 2302| v2302_4(void) = Call[String] : func:r2302_3, this:r2302_1 +# 2302| mu2302_5(unknown) = ^CallSideEffect : ~m? +# 2302| mu2302_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2302_1 +# 2303| r2303_1(glval) = VariableAddress[x761] : +# 2303| r2303_2(glval) = FunctionAddress[~String] : +# 2303| v2303_3(void) = Call[~String] : func:r2303_2, this:r2303_1 +# 2303| mu2303_4(unknown) = ^CallSideEffect : ~m? +# 2303| v2303_5(void) = ^IndirectReadSideEffect[-1] : &:r2303_1, ~m? +# 2303| mu2303_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2303_1 +# 2303| r2303_7(bool) = Constant[0] : +# 2303| v2303_8(void) = ConditionalBranch : r2303_7 +#-----| False -> Block 763 +#-----| True (back edge) -> Block 762 + +# 2305| Block 763 +# 2305| r2305_1(glval) = VariableAddress[x762] : +# 2305| mu2305_2(String) = Uninitialized[x762] : &:r2305_1 +# 2305| r2305_3(glval) = FunctionAddress[String] : +# 2305| v2305_4(void) = Call[String] : func:r2305_3, this:r2305_1 +# 2305| mu2305_5(unknown) = ^CallSideEffect : ~m? +# 2305| mu2305_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2305_1 +# 2306| r2306_1(glval) = VariableAddress[x762] : +# 2306| r2306_2(glval) = FunctionAddress[~String] : +# 2306| v2306_3(void) = Call[~String] : func:r2306_2, this:r2306_1 +# 2306| mu2306_4(unknown) = ^CallSideEffect : ~m? +# 2306| v2306_5(void) = ^IndirectReadSideEffect[-1] : &:r2306_1, ~m? +# 2306| mu2306_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2306_1 +# 2306| r2306_7(bool) = Constant[0] : +# 2306| v2306_8(void) = ConditionalBranch : r2306_7 +#-----| False -> Block 764 +#-----| True (back edge) -> Block 763 + +# 2308| Block 764 +# 2308| r2308_1(glval) = VariableAddress[x763] : +# 2308| mu2308_2(String) = Uninitialized[x763] : &:r2308_1 +# 2308| r2308_3(glval) = FunctionAddress[String] : +# 2308| v2308_4(void) = Call[String] : func:r2308_3, this:r2308_1 +# 2308| mu2308_5(unknown) = ^CallSideEffect : ~m? +# 2308| mu2308_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2308_1 +# 2309| r2309_1(glval) = VariableAddress[x763] : +# 2309| r2309_2(glval) = FunctionAddress[~String] : +# 2309| v2309_3(void) = Call[~String] : func:r2309_2, this:r2309_1 +# 2309| mu2309_4(unknown) = ^CallSideEffect : ~m? +# 2309| v2309_5(void) = ^IndirectReadSideEffect[-1] : &:r2309_1, ~m? +# 2309| mu2309_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2309_1 +# 2309| r2309_7(bool) = Constant[0] : +# 2309| v2309_8(void) = ConditionalBranch : r2309_7 +#-----| False -> Block 765 +#-----| True (back edge) -> Block 764 + +# 2311| Block 765 +# 2311| r2311_1(glval) = VariableAddress[x764] : +# 2311| mu2311_2(String) = Uninitialized[x764] : &:r2311_1 +# 2311| r2311_3(glval) = FunctionAddress[String] : +# 2311| v2311_4(void) = Call[String] : func:r2311_3, this:r2311_1 +# 2311| mu2311_5(unknown) = ^CallSideEffect : ~m? +# 2311| mu2311_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2311_1 +# 2312| r2312_1(glval) = VariableAddress[x764] : +# 2312| r2312_2(glval) = FunctionAddress[~String] : +# 2312| v2312_3(void) = Call[~String] : func:r2312_2, this:r2312_1 +# 2312| mu2312_4(unknown) = ^CallSideEffect : ~m? +# 2312| v2312_5(void) = ^IndirectReadSideEffect[-1] : &:r2312_1, ~m? +# 2312| mu2312_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2312_1 +# 2312| r2312_7(bool) = Constant[0] : +# 2312| v2312_8(void) = ConditionalBranch : r2312_7 +#-----| False -> Block 766 +#-----| True (back edge) -> Block 765 + +# 2314| Block 766 +# 2314| r2314_1(glval) = VariableAddress[x765] : +# 2314| mu2314_2(String) = Uninitialized[x765] : &:r2314_1 +# 2314| r2314_3(glval) = FunctionAddress[String] : +# 2314| v2314_4(void) = Call[String] : func:r2314_3, this:r2314_1 +# 2314| mu2314_5(unknown) = ^CallSideEffect : ~m? +# 2314| mu2314_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2314_1 +# 2315| r2315_1(glval) = VariableAddress[x765] : +# 2315| r2315_2(glval) = FunctionAddress[~String] : +# 2315| v2315_3(void) = Call[~String] : func:r2315_2, this:r2315_1 +# 2315| mu2315_4(unknown) = ^CallSideEffect : ~m? +# 2315| v2315_5(void) = ^IndirectReadSideEffect[-1] : &:r2315_1, ~m? +# 2315| mu2315_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2315_1 +# 2315| r2315_7(bool) = Constant[0] : +# 2315| v2315_8(void) = ConditionalBranch : r2315_7 +#-----| False -> Block 767 +#-----| True (back edge) -> Block 766 + +# 2317| Block 767 +# 2317| r2317_1(glval) = VariableAddress[x766] : +# 2317| mu2317_2(String) = Uninitialized[x766] : &:r2317_1 +# 2317| r2317_3(glval) = FunctionAddress[String] : +# 2317| v2317_4(void) = Call[String] : func:r2317_3, this:r2317_1 +# 2317| mu2317_5(unknown) = ^CallSideEffect : ~m? +# 2317| mu2317_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2317_1 +# 2318| r2318_1(glval) = VariableAddress[x766] : +# 2318| r2318_2(glval) = FunctionAddress[~String] : +# 2318| v2318_3(void) = Call[~String] : func:r2318_2, this:r2318_1 +# 2318| mu2318_4(unknown) = ^CallSideEffect : ~m? +# 2318| v2318_5(void) = ^IndirectReadSideEffect[-1] : &:r2318_1, ~m? +# 2318| mu2318_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2318_1 +# 2318| r2318_7(bool) = Constant[0] : +# 2318| v2318_8(void) = ConditionalBranch : r2318_7 +#-----| False -> Block 768 +#-----| True (back edge) -> Block 767 + +# 2320| Block 768 +# 2320| r2320_1(glval) = VariableAddress[x767] : +# 2320| mu2320_2(String) = Uninitialized[x767] : &:r2320_1 +# 2320| r2320_3(glval) = FunctionAddress[String] : +# 2320| v2320_4(void) = Call[String] : func:r2320_3, this:r2320_1 +# 2320| mu2320_5(unknown) = ^CallSideEffect : ~m? +# 2320| mu2320_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2320_1 +# 2321| r2321_1(glval) = VariableAddress[x767] : +# 2321| r2321_2(glval) = FunctionAddress[~String] : +# 2321| v2321_3(void) = Call[~String] : func:r2321_2, this:r2321_1 +# 2321| mu2321_4(unknown) = ^CallSideEffect : ~m? +# 2321| v2321_5(void) = ^IndirectReadSideEffect[-1] : &:r2321_1, ~m? +# 2321| mu2321_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2321_1 +# 2321| r2321_7(bool) = Constant[0] : +# 2321| v2321_8(void) = ConditionalBranch : r2321_7 +#-----| False -> Block 769 +#-----| True (back edge) -> Block 768 + +# 2323| Block 769 +# 2323| r2323_1(glval) = VariableAddress[x768] : +# 2323| mu2323_2(String) = Uninitialized[x768] : &:r2323_1 +# 2323| r2323_3(glval) = FunctionAddress[String] : +# 2323| v2323_4(void) = Call[String] : func:r2323_3, this:r2323_1 +# 2323| mu2323_5(unknown) = ^CallSideEffect : ~m? +# 2323| mu2323_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2323_1 +# 2324| r2324_1(glval) = VariableAddress[x768] : +# 2324| r2324_2(glval) = FunctionAddress[~String] : +# 2324| v2324_3(void) = Call[~String] : func:r2324_2, this:r2324_1 +# 2324| mu2324_4(unknown) = ^CallSideEffect : ~m? +# 2324| v2324_5(void) = ^IndirectReadSideEffect[-1] : &:r2324_1, ~m? +# 2324| mu2324_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2324_1 +# 2324| r2324_7(bool) = Constant[0] : +# 2324| v2324_8(void) = ConditionalBranch : r2324_7 +#-----| False -> Block 770 +#-----| True (back edge) -> Block 769 + +# 2326| Block 770 +# 2326| r2326_1(glval) = VariableAddress[x769] : +# 2326| mu2326_2(String) = Uninitialized[x769] : &:r2326_1 +# 2326| r2326_3(glval) = FunctionAddress[String] : +# 2326| v2326_4(void) = Call[String] : func:r2326_3, this:r2326_1 +# 2326| mu2326_5(unknown) = ^CallSideEffect : ~m? +# 2326| mu2326_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2326_1 +# 2327| r2327_1(glval) = VariableAddress[x769] : +# 2327| r2327_2(glval) = FunctionAddress[~String] : +# 2327| v2327_3(void) = Call[~String] : func:r2327_2, this:r2327_1 +# 2327| mu2327_4(unknown) = ^CallSideEffect : ~m? +# 2327| v2327_5(void) = ^IndirectReadSideEffect[-1] : &:r2327_1, ~m? +# 2327| mu2327_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2327_1 +# 2327| r2327_7(bool) = Constant[0] : +# 2327| v2327_8(void) = ConditionalBranch : r2327_7 +#-----| False -> Block 771 +#-----| True (back edge) -> Block 770 + +# 2329| Block 771 +# 2329| r2329_1(glval) = VariableAddress[x770] : +# 2329| mu2329_2(String) = Uninitialized[x770] : &:r2329_1 +# 2329| r2329_3(glval) = FunctionAddress[String] : +# 2329| v2329_4(void) = Call[String] : func:r2329_3, this:r2329_1 +# 2329| mu2329_5(unknown) = ^CallSideEffect : ~m? +# 2329| mu2329_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2329_1 +# 2330| r2330_1(glval) = VariableAddress[x770] : +# 2330| r2330_2(glval) = FunctionAddress[~String] : +# 2330| v2330_3(void) = Call[~String] : func:r2330_2, this:r2330_1 +# 2330| mu2330_4(unknown) = ^CallSideEffect : ~m? +# 2330| v2330_5(void) = ^IndirectReadSideEffect[-1] : &:r2330_1, ~m? +# 2330| mu2330_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2330_1 +# 2330| r2330_7(bool) = Constant[0] : +# 2330| v2330_8(void) = ConditionalBranch : r2330_7 +#-----| False -> Block 772 +#-----| True (back edge) -> Block 771 + +# 2332| Block 772 +# 2332| r2332_1(glval) = VariableAddress[x771] : +# 2332| mu2332_2(String) = Uninitialized[x771] : &:r2332_1 +# 2332| r2332_3(glval) = FunctionAddress[String] : +# 2332| v2332_4(void) = Call[String] : func:r2332_3, this:r2332_1 +# 2332| mu2332_5(unknown) = ^CallSideEffect : ~m? +# 2332| mu2332_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2332_1 +# 2333| r2333_1(glval) = VariableAddress[x771] : +# 2333| r2333_2(glval) = FunctionAddress[~String] : +# 2333| v2333_3(void) = Call[~String] : func:r2333_2, this:r2333_1 +# 2333| mu2333_4(unknown) = ^CallSideEffect : ~m? +# 2333| v2333_5(void) = ^IndirectReadSideEffect[-1] : &:r2333_1, ~m? +# 2333| mu2333_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2333_1 +# 2333| r2333_7(bool) = Constant[0] : +# 2333| v2333_8(void) = ConditionalBranch : r2333_7 +#-----| False -> Block 773 +#-----| True (back edge) -> Block 772 + +# 2335| Block 773 +# 2335| r2335_1(glval) = VariableAddress[x772] : +# 2335| mu2335_2(String) = Uninitialized[x772] : &:r2335_1 +# 2335| r2335_3(glval) = FunctionAddress[String] : +# 2335| v2335_4(void) = Call[String] : func:r2335_3, this:r2335_1 +# 2335| mu2335_5(unknown) = ^CallSideEffect : ~m? +# 2335| mu2335_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2335_1 +# 2336| r2336_1(glval) = VariableAddress[x772] : +# 2336| r2336_2(glval) = FunctionAddress[~String] : +# 2336| v2336_3(void) = Call[~String] : func:r2336_2, this:r2336_1 +# 2336| mu2336_4(unknown) = ^CallSideEffect : ~m? +# 2336| v2336_5(void) = ^IndirectReadSideEffect[-1] : &:r2336_1, ~m? +# 2336| mu2336_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2336_1 +# 2336| r2336_7(bool) = Constant[0] : +# 2336| v2336_8(void) = ConditionalBranch : r2336_7 +#-----| False -> Block 774 +#-----| True (back edge) -> Block 773 + +# 2338| Block 774 +# 2338| r2338_1(glval) = VariableAddress[x773] : +# 2338| mu2338_2(String) = Uninitialized[x773] : &:r2338_1 +# 2338| r2338_3(glval) = FunctionAddress[String] : +# 2338| v2338_4(void) = Call[String] : func:r2338_3, this:r2338_1 +# 2338| mu2338_5(unknown) = ^CallSideEffect : ~m? +# 2338| mu2338_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2338_1 +# 2339| r2339_1(glval) = VariableAddress[x773] : +# 2339| r2339_2(glval) = FunctionAddress[~String] : +# 2339| v2339_3(void) = Call[~String] : func:r2339_2, this:r2339_1 +# 2339| mu2339_4(unknown) = ^CallSideEffect : ~m? +# 2339| v2339_5(void) = ^IndirectReadSideEffect[-1] : &:r2339_1, ~m? +# 2339| mu2339_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2339_1 +# 2339| r2339_7(bool) = Constant[0] : +# 2339| v2339_8(void) = ConditionalBranch : r2339_7 +#-----| False -> Block 775 +#-----| True (back edge) -> Block 774 + +# 2341| Block 775 +# 2341| r2341_1(glval) = VariableAddress[x774] : +# 2341| mu2341_2(String) = Uninitialized[x774] : &:r2341_1 +# 2341| r2341_3(glval) = FunctionAddress[String] : +# 2341| v2341_4(void) = Call[String] : func:r2341_3, this:r2341_1 +# 2341| mu2341_5(unknown) = ^CallSideEffect : ~m? +# 2341| mu2341_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2341_1 +# 2342| r2342_1(glval) = VariableAddress[x774] : +# 2342| r2342_2(glval) = FunctionAddress[~String] : +# 2342| v2342_3(void) = Call[~String] : func:r2342_2, this:r2342_1 +# 2342| mu2342_4(unknown) = ^CallSideEffect : ~m? +# 2342| v2342_5(void) = ^IndirectReadSideEffect[-1] : &:r2342_1, ~m? +# 2342| mu2342_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2342_1 +# 2342| r2342_7(bool) = Constant[0] : +# 2342| v2342_8(void) = ConditionalBranch : r2342_7 +#-----| False -> Block 776 +#-----| True (back edge) -> Block 775 + +# 2344| Block 776 +# 2344| r2344_1(glval) = VariableAddress[x775] : +# 2344| mu2344_2(String) = Uninitialized[x775] : &:r2344_1 +# 2344| r2344_3(glval) = FunctionAddress[String] : +# 2344| v2344_4(void) = Call[String] : func:r2344_3, this:r2344_1 +# 2344| mu2344_5(unknown) = ^CallSideEffect : ~m? +# 2344| mu2344_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2344_1 +# 2345| r2345_1(glval) = VariableAddress[x775] : +# 2345| r2345_2(glval) = FunctionAddress[~String] : +# 2345| v2345_3(void) = Call[~String] : func:r2345_2, this:r2345_1 +# 2345| mu2345_4(unknown) = ^CallSideEffect : ~m? +# 2345| v2345_5(void) = ^IndirectReadSideEffect[-1] : &:r2345_1, ~m? +# 2345| mu2345_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2345_1 +# 2345| r2345_7(bool) = Constant[0] : +# 2345| v2345_8(void) = ConditionalBranch : r2345_7 +#-----| False -> Block 777 +#-----| True (back edge) -> Block 776 + +# 2347| Block 777 +# 2347| r2347_1(glval) = VariableAddress[x776] : +# 2347| mu2347_2(String) = Uninitialized[x776] : &:r2347_1 +# 2347| r2347_3(glval) = FunctionAddress[String] : +# 2347| v2347_4(void) = Call[String] : func:r2347_3, this:r2347_1 +# 2347| mu2347_5(unknown) = ^CallSideEffect : ~m? +# 2347| mu2347_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2347_1 +# 2348| r2348_1(glval) = VariableAddress[x776] : +# 2348| r2348_2(glval) = FunctionAddress[~String] : +# 2348| v2348_3(void) = Call[~String] : func:r2348_2, this:r2348_1 +# 2348| mu2348_4(unknown) = ^CallSideEffect : ~m? +# 2348| v2348_5(void) = ^IndirectReadSideEffect[-1] : &:r2348_1, ~m? +# 2348| mu2348_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2348_1 +# 2348| r2348_7(bool) = Constant[0] : +# 2348| v2348_8(void) = ConditionalBranch : r2348_7 +#-----| False -> Block 778 +#-----| True (back edge) -> Block 777 + +# 2350| Block 778 +# 2350| r2350_1(glval) = VariableAddress[x777] : +# 2350| mu2350_2(String) = Uninitialized[x777] : &:r2350_1 +# 2350| r2350_3(glval) = FunctionAddress[String] : +# 2350| v2350_4(void) = Call[String] : func:r2350_3, this:r2350_1 +# 2350| mu2350_5(unknown) = ^CallSideEffect : ~m? +# 2350| mu2350_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2350_1 +# 2351| r2351_1(glval) = VariableAddress[x777] : +# 2351| r2351_2(glval) = FunctionAddress[~String] : +# 2351| v2351_3(void) = Call[~String] : func:r2351_2, this:r2351_1 +# 2351| mu2351_4(unknown) = ^CallSideEffect : ~m? +# 2351| v2351_5(void) = ^IndirectReadSideEffect[-1] : &:r2351_1, ~m? +# 2351| mu2351_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2351_1 +# 2351| r2351_7(bool) = Constant[0] : +# 2351| v2351_8(void) = ConditionalBranch : r2351_7 +#-----| False -> Block 779 +#-----| True (back edge) -> Block 778 + +# 2353| Block 779 +# 2353| r2353_1(glval) = VariableAddress[x778] : +# 2353| mu2353_2(String) = Uninitialized[x778] : &:r2353_1 +# 2353| r2353_3(glval) = FunctionAddress[String] : +# 2353| v2353_4(void) = Call[String] : func:r2353_3, this:r2353_1 +# 2353| mu2353_5(unknown) = ^CallSideEffect : ~m? +# 2353| mu2353_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2353_1 +# 2354| r2354_1(glval) = VariableAddress[x778] : +# 2354| r2354_2(glval) = FunctionAddress[~String] : +# 2354| v2354_3(void) = Call[~String] : func:r2354_2, this:r2354_1 +# 2354| mu2354_4(unknown) = ^CallSideEffect : ~m? +# 2354| v2354_5(void) = ^IndirectReadSideEffect[-1] : &:r2354_1, ~m? +# 2354| mu2354_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2354_1 +# 2354| r2354_7(bool) = Constant[0] : +# 2354| v2354_8(void) = ConditionalBranch : r2354_7 +#-----| False -> Block 780 +#-----| True (back edge) -> Block 779 + +# 2356| Block 780 +# 2356| r2356_1(glval) = VariableAddress[x779] : +# 2356| mu2356_2(String) = Uninitialized[x779] : &:r2356_1 +# 2356| r2356_3(glval) = FunctionAddress[String] : +# 2356| v2356_4(void) = Call[String] : func:r2356_3, this:r2356_1 +# 2356| mu2356_5(unknown) = ^CallSideEffect : ~m? +# 2356| mu2356_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2356_1 +# 2357| r2357_1(glval) = VariableAddress[x779] : +# 2357| r2357_2(glval) = FunctionAddress[~String] : +# 2357| v2357_3(void) = Call[~String] : func:r2357_2, this:r2357_1 +# 2357| mu2357_4(unknown) = ^CallSideEffect : ~m? +# 2357| v2357_5(void) = ^IndirectReadSideEffect[-1] : &:r2357_1, ~m? +# 2357| mu2357_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2357_1 +# 2357| r2357_7(bool) = Constant[0] : +# 2357| v2357_8(void) = ConditionalBranch : r2357_7 +#-----| False -> Block 781 +#-----| True (back edge) -> Block 780 + +# 2359| Block 781 +# 2359| r2359_1(glval) = VariableAddress[x780] : +# 2359| mu2359_2(String) = Uninitialized[x780] : &:r2359_1 +# 2359| r2359_3(glval) = FunctionAddress[String] : +# 2359| v2359_4(void) = Call[String] : func:r2359_3, this:r2359_1 +# 2359| mu2359_5(unknown) = ^CallSideEffect : ~m? +# 2359| mu2359_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2359_1 +# 2360| r2360_1(glval) = VariableAddress[x780] : +# 2360| r2360_2(glval) = FunctionAddress[~String] : +# 2360| v2360_3(void) = Call[~String] : func:r2360_2, this:r2360_1 +# 2360| mu2360_4(unknown) = ^CallSideEffect : ~m? +# 2360| v2360_5(void) = ^IndirectReadSideEffect[-1] : &:r2360_1, ~m? +# 2360| mu2360_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2360_1 +# 2360| r2360_7(bool) = Constant[0] : +# 2360| v2360_8(void) = ConditionalBranch : r2360_7 +#-----| False -> Block 782 +#-----| True (back edge) -> Block 781 + +# 2362| Block 782 +# 2362| r2362_1(glval) = VariableAddress[x781] : +# 2362| mu2362_2(String) = Uninitialized[x781] : &:r2362_1 +# 2362| r2362_3(glval) = FunctionAddress[String] : +# 2362| v2362_4(void) = Call[String] : func:r2362_3, this:r2362_1 +# 2362| mu2362_5(unknown) = ^CallSideEffect : ~m? +# 2362| mu2362_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2362_1 +# 2363| r2363_1(glval) = VariableAddress[x781] : +# 2363| r2363_2(glval) = FunctionAddress[~String] : +# 2363| v2363_3(void) = Call[~String] : func:r2363_2, this:r2363_1 +# 2363| mu2363_4(unknown) = ^CallSideEffect : ~m? +# 2363| v2363_5(void) = ^IndirectReadSideEffect[-1] : &:r2363_1, ~m? +# 2363| mu2363_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2363_1 +# 2363| r2363_7(bool) = Constant[0] : +# 2363| v2363_8(void) = ConditionalBranch : r2363_7 +#-----| False -> Block 783 +#-----| True (back edge) -> Block 782 + +# 2365| Block 783 +# 2365| r2365_1(glval) = VariableAddress[x782] : +# 2365| mu2365_2(String) = Uninitialized[x782] : &:r2365_1 +# 2365| r2365_3(glval) = FunctionAddress[String] : +# 2365| v2365_4(void) = Call[String] : func:r2365_3, this:r2365_1 +# 2365| mu2365_5(unknown) = ^CallSideEffect : ~m? +# 2365| mu2365_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2365_1 +# 2366| r2366_1(glval) = VariableAddress[x782] : +# 2366| r2366_2(glval) = FunctionAddress[~String] : +# 2366| v2366_3(void) = Call[~String] : func:r2366_2, this:r2366_1 +# 2366| mu2366_4(unknown) = ^CallSideEffect : ~m? +# 2366| v2366_5(void) = ^IndirectReadSideEffect[-1] : &:r2366_1, ~m? +# 2366| mu2366_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2366_1 +# 2366| r2366_7(bool) = Constant[0] : +# 2366| v2366_8(void) = ConditionalBranch : r2366_7 +#-----| False -> Block 784 +#-----| True (back edge) -> Block 783 + +# 2368| Block 784 +# 2368| r2368_1(glval) = VariableAddress[x783] : +# 2368| mu2368_2(String) = Uninitialized[x783] : &:r2368_1 +# 2368| r2368_3(glval) = FunctionAddress[String] : +# 2368| v2368_4(void) = Call[String] : func:r2368_3, this:r2368_1 +# 2368| mu2368_5(unknown) = ^CallSideEffect : ~m? +# 2368| mu2368_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2368_1 +# 2369| r2369_1(glval) = VariableAddress[x783] : +# 2369| r2369_2(glval) = FunctionAddress[~String] : +# 2369| v2369_3(void) = Call[~String] : func:r2369_2, this:r2369_1 +# 2369| mu2369_4(unknown) = ^CallSideEffect : ~m? +# 2369| v2369_5(void) = ^IndirectReadSideEffect[-1] : &:r2369_1, ~m? +# 2369| mu2369_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2369_1 +# 2369| r2369_7(bool) = Constant[0] : +# 2369| v2369_8(void) = ConditionalBranch : r2369_7 +#-----| False -> Block 785 +#-----| True (back edge) -> Block 784 + +# 2371| Block 785 +# 2371| r2371_1(glval) = VariableAddress[x784] : +# 2371| mu2371_2(String) = Uninitialized[x784] : &:r2371_1 +# 2371| r2371_3(glval) = FunctionAddress[String] : +# 2371| v2371_4(void) = Call[String] : func:r2371_3, this:r2371_1 +# 2371| mu2371_5(unknown) = ^CallSideEffect : ~m? +# 2371| mu2371_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2371_1 +# 2372| r2372_1(glval) = VariableAddress[x784] : +# 2372| r2372_2(glval) = FunctionAddress[~String] : +# 2372| v2372_3(void) = Call[~String] : func:r2372_2, this:r2372_1 +# 2372| mu2372_4(unknown) = ^CallSideEffect : ~m? +# 2372| v2372_5(void) = ^IndirectReadSideEffect[-1] : &:r2372_1, ~m? +# 2372| mu2372_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2372_1 +# 2372| r2372_7(bool) = Constant[0] : +# 2372| v2372_8(void) = ConditionalBranch : r2372_7 +#-----| False -> Block 786 +#-----| True (back edge) -> Block 785 + +# 2374| Block 786 +# 2374| r2374_1(glval) = VariableAddress[x785] : +# 2374| mu2374_2(String) = Uninitialized[x785] : &:r2374_1 +# 2374| r2374_3(glval) = FunctionAddress[String] : +# 2374| v2374_4(void) = Call[String] : func:r2374_3, this:r2374_1 +# 2374| mu2374_5(unknown) = ^CallSideEffect : ~m? +# 2374| mu2374_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2374_1 +# 2375| r2375_1(glval) = VariableAddress[x785] : +# 2375| r2375_2(glval) = FunctionAddress[~String] : +# 2375| v2375_3(void) = Call[~String] : func:r2375_2, this:r2375_1 +# 2375| mu2375_4(unknown) = ^CallSideEffect : ~m? +# 2375| v2375_5(void) = ^IndirectReadSideEffect[-1] : &:r2375_1, ~m? +# 2375| mu2375_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2375_1 +# 2375| r2375_7(bool) = Constant[0] : +# 2375| v2375_8(void) = ConditionalBranch : r2375_7 +#-----| False -> Block 787 +#-----| True (back edge) -> Block 786 + +# 2377| Block 787 +# 2377| r2377_1(glval) = VariableAddress[x786] : +# 2377| mu2377_2(String) = Uninitialized[x786] : &:r2377_1 +# 2377| r2377_3(glval) = FunctionAddress[String] : +# 2377| v2377_4(void) = Call[String] : func:r2377_3, this:r2377_1 +# 2377| mu2377_5(unknown) = ^CallSideEffect : ~m? +# 2377| mu2377_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2377_1 +# 2378| r2378_1(glval) = VariableAddress[x786] : +# 2378| r2378_2(glval) = FunctionAddress[~String] : +# 2378| v2378_3(void) = Call[~String] : func:r2378_2, this:r2378_1 +# 2378| mu2378_4(unknown) = ^CallSideEffect : ~m? +# 2378| v2378_5(void) = ^IndirectReadSideEffect[-1] : &:r2378_1, ~m? +# 2378| mu2378_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2378_1 +# 2378| r2378_7(bool) = Constant[0] : +# 2378| v2378_8(void) = ConditionalBranch : r2378_7 +#-----| False -> Block 788 +#-----| True (back edge) -> Block 787 + +# 2380| Block 788 +# 2380| r2380_1(glval) = VariableAddress[x787] : +# 2380| mu2380_2(String) = Uninitialized[x787] : &:r2380_1 +# 2380| r2380_3(glval) = FunctionAddress[String] : +# 2380| v2380_4(void) = Call[String] : func:r2380_3, this:r2380_1 +# 2380| mu2380_5(unknown) = ^CallSideEffect : ~m? +# 2380| mu2380_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2380_1 +# 2381| r2381_1(glval) = VariableAddress[x787] : +# 2381| r2381_2(glval) = FunctionAddress[~String] : +# 2381| v2381_3(void) = Call[~String] : func:r2381_2, this:r2381_1 +# 2381| mu2381_4(unknown) = ^CallSideEffect : ~m? +# 2381| v2381_5(void) = ^IndirectReadSideEffect[-1] : &:r2381_1, ~m? +# 2381| mu2381_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2381_1 +# 2381| r2381_7(bool) = Constant[0] : +# 2381| v2381_8(void) = ConditionalBranch : r2381_7 +#-----| False -> Block 789 +#-----| True (back edge) -> Block 788 + +# 2383| Block 789 +# 2383| r2383_1(glval) = VariableAddress[x788] : +# 2383| mu2383_2(String) = Uninitialized[x788] : &:r2383_1 +# 2383| r2383_3(glval) = FunctionAddress[String] : +# 2383| v2383_4(void) = Call[String] : func:r2383_3, this:r2383_1 +# 2383| mu2383_5(unknown) = ^CallSideEffect : ~m? +# 2383| mu2383_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2383_1 +# 2384| r2384_1(glval) = VariableAddress[x788] : +# 2384| r2384_2(glval) = FunctionAddress[~String] : +# 2384| v2384_3(void) = Call[~String] : func:r2384_2, this:r2384_1 +# 2384| mu2384_4(unknown) = ^CallSideEffect : ~m? +# 2384| v2384_5(void) = ^IndirectReadSideEffect[-1] : &:r2384_1, ~m? +# 2384| mu2384_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2384_1 +# 2384| r2384_7(bool) = Constant[0] : +# 2384| v2384_8(void) = ConditionalBranch : r2384_7 +#-----| False -> Block 790 +#-----| True (back edge) -> Block 789 + +# 2386| Block 790 +# 2386| r2386_1(glval) = VariableAddress[x789] : +# 2386| mu2386_2(String) = Uninitialized[x789] : &:r2386_1 +# 2386| r2386_3(glval) = FunctionAddress[String] : +# 2386| v2386_4(void) = Call[String] : func:r2386_3, this:r2386_1 +# 2386| mu2386_5(unknown) = ^CallSideEffect : ~m? +# 2386| mu2386_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2386_1 +# 2387| r2387_1(glval) = VariableAddress[x789] : +# 2387| r2387_2(glval) = FunctionAddress[~String] : +# 2387| v2387_3(void) = Call[~String] : func:r2387_2, this:r2387_1 +# 2387| mu2387_4(unknown) = ^CallSideEffect : ~m? +# 2387| v2387_5(void) = ^IndirectReadSideEffect[-1] : &:r2387_1, ~m? +# 2387| mu2387_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2387_1 +# 2387| r2387_7(bool) = Constant[0] : +# 2387| v2387_8(void) = ConditionalBranch : r2387_7 +#-----| False -> Block 791 +#-----| True (back edge) -> Block 790 + +# 2389| Block 791 +# 2389| r2389_1(glval) = VariableAddress[x790] : +# 2389| mu2389_2(String) = Uninitialized[x790] : &:r2389_1 +# 2389| r2389_3(glval) = FunctionAddress[String] : +# 2389| v2389_4(void) = Call[String] : func:r2389_3, this:r2389_1 +# 2389| mu2389_5(unknown) = ^CallSideEffect : ~m? +# 2389| mu2389_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2389_1 +# 2390| r2390_1(glval) = VariableAddress[x790] : +# 2390| r2390_2(glval) = FunctionAddress[~String] : +# 2390| v2390_3(void) = Call[~String] : func:r2390_2, this:r2390_1 +# 2390| mu2390_4(unknown) = ^CallSideEffect : ~m? +# 2390| v2390_5(void) = ^IndirectReadSideEffect[-1] : &:r2390_1, ~m? +# 2390| mu2390_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2390_1 +# 2390| r2390_7(bool) = Constant[0] : +# 2390| v2390_8(void) = ConditionalBranch : r2390_7 +#-----| False -> Block 792 +#-----| True (back edge) -> Block 791 + +# 2392| Block 792 +# 2392| r2392_1(glval) = VariableAddress[x791] : +# 2392| mu2392_2(String) = Uninitialized[x791] : &:r2392_1 +# 2392| r2392_3(glval) = FunctionAddress[String] : +# 2392| v2392_4(void) = Call[String] : func:r2392_3, this:r2392_1 +# 2392| mu2392_5(unknown) = ^CallSideEffect : ~m? +# 2392| mu2392_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2392_1 +# 2393| r2393_1(glval) = VariableAddress[x791] : +# 2393| r2393_2(glval) = FunctionAddress[~String] : +# 2393| v2393_3(void) = Call[~String] : func:r2393_2, this:r2393_1 +# 2393| mu2393_4(unknown) = ^CallSideEffect : ~m? +# 2393| v2393_5(void) = ^IndirectReadSideEffect[-1] : &:r2393_1, ~m? +# 2393| mu2393_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2393_1 +# 2393| r2393_7(bool) = Constant[0] : +# 2393| v2393_8(void) = ConditionalBranch : r2393_7 +#-----| False -> Block 793 +#-----| True (back edge) -> Block 792 + +# 2395| Block 793 +# 2395| r2395_1(glval) = VariableAddress[x792] : +# 2395| mu2395_2(String) = Uninitialized[x792] : &:r2395_1 +# 2395| r2395_3(glval) = FunctionAddress[String] : +# 2395| v2395_4(void) = Call[String] : func:r2395_3, this:r2395_1 +# 2395| mu2395_5(unknown) = ^CallSideEffect : ~m? +# 2395| mu2395_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2395_1 +# 2396| r2396_1(glval) = VariableAddress[x792] : +# 2396| r2396_2(glval) = FunctionAddress[~String] : +# 2396| v2396_3(void) = Call[~String] : func:r2396_2, this:r2396_1 +# 2396| mu2396_4(unknown) = ^CallSideEffect : ~m? +# 2396| v2396_5(void) = ^IndirectReadSideEffect[-1] : &:r2396_1, ~m? +# 2396| mu2396_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2396_1 +# 2396| r2396_7(bool) = Constant[0] : +# 2396| v2396_8(void) = ConditionalBranch : r2396_7 +#-----| False -> Block 794 +#-----| True (back edge) -> Block 793 + +# 2398| Block 794 +# 2398| r2398_1(glval) = VariableAddress[x793] : +# 2398| mu2398_2(String) = Uninitialized[x793] : &:r2398_1 +# 2398| r2398_3(glval) = FunctionAddress[String] : +# 2398| v2398_4(void) = Call[String] : func:r2398_3, this:r2398_1 +# 2398| mu2398_5(unknown) = ^CallSideEffect : ~m? +# 2398| mu2398_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2398_1 +# 2399| r2399_1(glval) = VariableAddress[x793] : +# 2399| r2399_2(glval) = FunctionAddress[~String] : +# 2399| v2399_3(void) = Call[~String] : func:r2399_2, this:r2399_1 +# 2399| mu2399_4(unknown) = ^CallSideEffect : ~m? +# 2399| v2399_5(void) = ^IndirectReadSideEffect[-1] : &:r2399_1, ~m? +# 2399| mu2399_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2399_1 +# 2399| r2399_7(bool) = Constant[0] : +# 2399| v2399_8(void) = ConditionalBranch : r2399_7 +#-----| False -> Block 795 +#-----| True (back edge) -> Block 794 + +# 2401| Block 795 +# 2401| r2401_1(glval) = VariableAddress[x794] : +# 2401| mu2401_2(String) = Uninitialized[x794] : &:r2401_1 +# 2401| r2401_3(glval) = FunctionAddress[String] : +# 2401| v2401_4(void) = Call[String] : func:r2401_3, this:r2401_1 +# 2401| mu2401_5(unknown) = ^CallSideEffect : ~m? +# 2401| mu2401_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2401_1 +# 2402| r2402_1(glval) = VariableAddress[x794] : +# 2402| r2402_2(glval) = FunctionAddress[~String] : +# 2402| v2402_3(void) = Call[~String] : func:r2402_2, this:r2402_1 +# 2402| mu2402_4(unknown) = ^CallSideEffect : ~m? +# 2402| v2402_5(void) = ^IndirectReadSideEffect[-1] : &:r2402_1, ~m? +# 2402| mu2402_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2402_1 +# 2402| r2402_7(bool) = Constant[0] : +# 2402| v2402_8(void) = ConditionalBranch : r2402_7 +#-----| False -> Block 796 +#-----| True (back edge) -> Block 795 + +# 2404| Block 796 +# 2404| r2404_1(glval) = VariableAddress[x795] : +# 2404| mu2404_2(String) = Uninitialized[x795] : &:r2404_1 +# 2404| r2404_3(glval) = FunctionAddress[String] : +# 2404| v2404_4(void) = Call[String] : func:r2404_3, this:r2404_1 +# 2404| mu2404_5(unknown) = ^CallSideEffect : ~m? +# 2404| mu2404_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2404_1 +# 2405| r2405_1(glval) = VariableAddress[x795] : +# 2405| r2405_2(glval) = FunctionAddress[~String] : +# 2405| v2405_3(void) = Call[~String] : func:r2405_2, this:r2405_1 +# 2405| mu2405_4(unknown) = ^CallSideEffect : ~m? +# 2405| v2405_5(void) = ^IndirectReadSideEffect[-1] : &:r2405_1, ~m? +# 2405| mu2405_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2405_1 +# 2405| r2405_7(bool) = Constant[0] : +# 2405| v2405_8(void) = ConditionalBranch : r2405_7 +#-----| False -> Block 797 +#-----| True (back edge) -> Block 796 + +# 2407| Block 797 +# 2407| r2407_1(glval) = VariableAddress[x796] : +# 2407| mu2407_2(String) = Uninitialized[x796] : &:r2407_1 +# 2407| r2407_3(glval) = FunctionAddress[String] : +# 2407| v2407_4(void) = Call[String] : func:r2407_3, this:r2407_1 +# 2407| mu2407_5(unknown) = ^CallSideEffect : ~m? +# 2407| mu2407_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2407_1 +# 2408| r2408_1(glval) = VariableAddress[x796] : +# 2408| r2408_2(glval) = FunctionAddress[~String] : +# 2408| v2408_3(void) = Call[~String] : func:r2408_2, this:r2408_1 +# 2408| mu2408_4(unknown) = ^CallSideEffect : ~m? +# 2408| v2408_5(void) = ^IndirectReadSideEffect[-1] : &:r2408_1, ~m? +# 2408| mu2408_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2408_1 +# 2408| r2408_7(bool) = Constant[0] : +# 2408| v2408_8(void) = ConditionalBranch : r2408_7 +#-----| False -> Block 798 +#-----| True (back edge) -> Block 797 + +# 2410| Block 798 +# 2410| r2410_1(glval) = VariableAddress[x797] : +# 2410| mu2410_2(String) = Uninitialized[x797] : &:r2410_1 +# 2410| r2410_3(glval) = FunctionAddress[String] : +# 2410| v2410_4(void) = Call[String] : func:r2410_3, this:r2410_1 +# 2410| mu2410_5(unknown) = ^CallSideEffect : ~m? +# 2410| mu2410_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2410_1 +# 2411| r2411_1(glval) = VariableAddress[x797] : +# 2411| r2411_2(glval) = FunctionAddress[~String] : +# 2411| v2411_3(void) = Call[~String] : func:r2411_2, this:r2411_1 +# 2411| mu2411_4(unknown) = ^CallSideEffect : ~m? +# 2411| v2411_5(void) = ^IndirectReadSideEffect[-1] : &:r2411_1, ~m? +# 2411| mu2411_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2411_1 +# 2411| r2411_7(bool) = Constant[0] : +# 2411| v2411_8(void) = ConditionalBranch : r2411_7 +#-----| False -> Block 799 +#-----| True (back edge) -> Block 798 + +# 2413| Block 799 +# 2413| r2413_1(glval) = VariableAddress[x798] : +# 2413| mu2413_2(String) = Uninitialized[x798] : &:r2413_1 +# 2413| r2413_3(glval) = FunctionAddress[String] : +# 2413| v2413_4(void) = Call[String] : func:r2413_3, this:r2413_1 +# 2413| mu2413_5(unknown) = ^CallSideEffect : ~m? +# 2413| mu2413_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2413_1 +# 2414| r2414_1(glval) = VariableAddress[x798] : +# 2414| r2414_2(glval) = FunctionAddress[~String] : +# 2414| v2414_3(void) = Call[~String] : func:r2414_2, this:r2414_1 +# 2414| mu2414_4(unknown) = ^CallSideEffect : ~m? +# 2414| v2414_5(void) = ^IndirectReadSideEffect[-1] : &:r2414_1, ~m? +# 2414| mu2414_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2414_1 +# 2414| r2414_7(bool) = Constant[0] : +# 2414| v2414_8(void) = ConditionalBranch : r2414_7 +#-----| False -> Block 800 +#-----| True (back edge) -> Block 799 + +# 2416| Block 800 +# 2416| r2416_1(glval) = VariableAddress[x799] : +# 2416| mu2416_2(String) = Uninitialized[x799] : &:r2416_1 +# 2416| r2416_3(glval) = FunctionAddress[String] : +# 2416| v2416_4(void) = Call[String] : func:r2416_3, this:r2416_1 +# 2416| mu2416_5(unknown) = ^CallSideEffect : ~m? +# 2416| mu2416_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2416_1 +# 2417| r2417_1(glval) = VariableAddress[x799] : +# 2417| r2417_2(glval) = FunctionAddress[~String] : +# 2417| v2417_3(void) = Call[~String] : func:r2417_2, this:r2417_1 +# 2417| mu2417_4(unknown) = ^CallSideEffect : ~m? +# 2417| v2417_5(void) = ^IndirectReadSideEffect[-1] : &:r2417_1, ~m? +# 2417| mu2417_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2417_1 +# 2417| r2417_7(bool) = Constant[0] : +# 2417| v2417_8(void) = ConditionalBranch : r2417_7 +#-----| False -> Block 801 +#-----| True (back edge) -> Block 800 + +# 2419| Block 801 +# 2419| r2419_1(glval) = VariableAddress[x800] : +# 2419| mu2419_2(String) = Uninitialized[x800] : &:r2419_1 +# 2419| r2419_3(glval) = FunctionAddress[String] : +# 2419| v2419_4(void) = Call[String] : func:r2419_3, this:r2419_1 +# 2419| mu2419_5(unknown) = ^CallSideEffect : ~m? +# 2419| mu2419_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2419_1 +# 2420| r2420_1(glval) = VariableAddress[x800] : +# 2420| r2420_2(glval) = FunctionAddress[~String] : +# 2420| v2420_3(void) = Call[~String] : func:r2420_2, this:r2420_1 +# 2420| mu2420_4(unknown) = ^CallSideEffect : ~m? +# 2420| v2420_5(void) = ^IndirectReadSideEffect[-1] : &:r2420_1, ~m? +# 2420| mu2420_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2420_1 +# 2420| r2420_7(bool) = Constant[0] : +# 2420| v2420_8(void) = ConditionalBranch : r2420_7 +#-----| False -> Block 802 +#-----| True (back edge) -> Block 801 + +# 2422| Block 802 +# 2422| r2422_1(glval) = VariableAddress[x801] : +# 2422| mu2422_2(String) = Uninitialized[x801] : &:r2422_1 +# 2422| r2422_3(glval) = FunctionAddress[String] : +# 2422| v2422_4(void) = Call[String] : func:r2422_3, this:r2422_1 +# 2422| mu2422_5(unknown) = ^CallSideEffect : ~m? +# 2422| mu2422_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2422_1 +# 2423| r2423_1(glval) = VariableAddress[x801] : +# 2423| r2423_2(glval) = FunctionAddress[~String] : +# 2423| v2423_3(void) = Call[~String] : func:r2423_2, this:r2423_1 +# 2423| mu2423_4(unknown) = ^CallSideEffect : ~m? +# 2423| v2423_5(void) = ^IndirectReadSideEffect[-1] : &:r2423_1, ~m? +# 2423| mu2423_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2423_1 +# 2423| r2423_7(bool) = Constant[0] : +# 2423| v2423_8(void) = ConditionalBranch : r2423_7 +#-----| False -> Block 803 +#-----| True (back edge) -> Block 802 + +# 2425| Block 803 +# 2425| r2425_1(glval) = VariableAddress[x802] : +# 2425| mu2425_2(String) = Uninitialized[x802] : &:r2425_1 +# 2425| r2425_3(glval) = FunctionAddress[String] : +# 2425| v2425_4(void) = Call[String] : func:r2425_3, this:r2425_1 +# 2425| mu2425_5(unknown) = ^CallSideEffect : ~m? +# 2425| mu2425_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2425_1 +# 2426| r2426_1(glval) = VariableAddress[x802] : +# 2426| r2426_2(glval) = FunctionAddress[~String] : +# 2426| v2426_3(void) = Call[~String] : func:r2426_2, this:r2426_1 +# 2426| mu2426_4(unknown) = ^CallSideEffect : ~m? +# 2426| v2426_5(void) = ^IndirectReadSideEffect[-1] : &:r2426_1, ~m? +# 2426| mu2426_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2426_1 +# 2426| r2426_7(bool) = Constant[0] : +# 2426| v2426_8(void) = ConditionalBranch : r2426_7 +#-----| False -> Block 804 +#-----| True (back edge) -> Block 803 + +# 2428| Block 804 +# 2428| r2428_1(glval) = VariableAddress[x803] : +# 2428| mu2428_2(String) = Uninitialized[x803] : &:r2428_1 +# 2428| r2428_3(glval) = FunctionAddress[String] : +# 2428| v2428_4(void) = Call[String] : func:r2428_3, this:r2428_1 +# 2428| mu2428_5(unknown) = ^CallSideEffect : ~m? +# 2428| mu2428_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2428_1 +# 2429| r2429_1(glval) = VariableAddress[x803] : +# 2429| r2429_2(glval) = FunctionAddress[~String] : +# 2429| v2429_3(void) = Call[~String] : func:r2429_2, this:r2429_1 +# 2429| mu2429_4(unknown) = ^CallSideEffect : ~m? +# 2429| v2429_5(void) = ^IndirectReadSideEffect[-1] : &:r2429_1, ~m? +# 2429| mu2429_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2429_1 +# 2429| r2429_7(bool) = Constant[0] : +# 2429| v2429_8(void) = ConditionalBranch : r2429_7 +#-----| False -> Block 805 +#-----| True (back edge) -> Block 804 + +# 2431| Block 805 +# 2431| r2431_1(glval) = VariableAddress[x804] : +# 2431| mu2431_2(String) = Uninitialized[x804] : &:r2431_1 +# 2431| r2431_3(glval) = FunctionAddress[String] : +# 2431| v2431_4(void) = Call[String] : func:r2431_3, this:r2431_1 +# 2431| mu2431_5(unknown) = ^CallSideEffect : ~m? +# 2431| mu2431_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2431_1 +# 2432| r2432_1(glval) = VariableAddress[x804] : +# 2432| r2432_2(glval) = FunctionAddress[~String] : +# 2432| v2432_3(void) = Call[~String] : func:r2432_2, this:r2432_1 +# 2432| mu2432_4(unknown) = ^CallSideEffect : ~m? +# 2432| v2432_5(void) = ^IndirectReadSideEffect[-1] : &:r2432_1, ~m? +# 2432| mu2432_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2432_1 +# 2432| r2432_7(bool) = Constant[0] : +# 2432| v2432_8(void) = ConditionalBranch : r2432_7 +#-----| False -> Block 806 +#-----| True (back edge) -> Block 805 + +# 2434| Block 806 +# 2434| r2434_1(glval) = VariableAddress[x805] : +# 2434| mu2434_2(String) = Uninitialized[x805] : &:r2434_1 +# 2434| r2434_3(glval) = FunctionAddress[String] : +# 2434| v2434_4(void) = Call[String] : func:r2434_3, this:r2434_1 +# 2434| mu2434_5(unknown) = ^CallSideEffect : ~m? +# 2434| mu2434_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2434_1 +# 2435| r2435_1(glval) = VariableAddress[x805] : +# 2435| r2435_2(glval) = FunctionAddress[~String] : +# 2435| v2435_3(void) = Call[~String] : func:r2435_2, this:r2435_1 +# 2435| mu2435_4(unknown) = ^CallSideEffect : ~m? +# 2435| v2435_5(void) = ^IndirectReadSideEffect[-1] : &:r2435_1, ~m? +# 2435| mu2435_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2435_1 +# 2435| r2435_7(bool) = Constant[0] : +# 2435| v2435_8(void) = ConditionalBranch : r2435_7 +#-----| False -> Block 807 +#-----| True (back edge) -> Block 806 + +# 2437| Block 807 +# 2437| r2437_1(glval) = VariableAddress[x806] : +# 2437| mu2437_2(String) = Uninitialized[x806] : &:r2437_1 +# 2437| r2437_3(glval) = FunctionAddress[String] : +# 2437| v2437_4(void) = Call[String] : func:r2437_3, this:r2437_1 +# 2437| mu2437_5(unknown) = ^CallSideEffect : ~m? +# 2437| mu2437_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2437_1 +# 2438| r2438_1(glval) = VariableAddress[x806] : +# 2438| r2438_2(glval) = FunctionAddress[~String] : +# 2438| v2438_3(void) = Call[~String] : func:r2438_2, this:r2438_1 +# 2438| mu2438_4(unknown) = ^CallSideEffect : ~m? +# 2438| v2438_5(void) = ^IndirectReadSideEffect[-1] : &:r2438_1, ~m? +# 2438| mu2438_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2438_1 +# 2438| r2438_7(bool) = Constant[0] : +# 2438| v2438_8(void) = ConditionalBranch : r2438_7 +#-----| False -> Block 808 +#-----| True (back edge) -> Block 807 + +# 2440| Block 808 +# 2440| r2440_1(glval) = VariableAddress[x807] : +# 2440| mu2440_2(String) = Uninitialized[x807] : &:r2440_1 +# 2440| r2440_3(glval) = FunctionAddress[String] : +# 2440| v2440_4(void) = Call[String] : func:r2440_3, this:r2440_1 +# 2440| mu2440_5(unknown) = ^CallSideEffect : ~m? +# 2440| mu2440_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2440_1 +# 2441| r2441_1(glval) = VariableAddress[x807] : +# 2441| r2441_2(glval) = FunctionAddress[~String] : +# 2441| v2441_3(void) = Call[~String] : func:r2441_2, this:r2441_1 +# 2441| mu2441_4(unknown) = ^CallSideEffect : ~m? +# 2441| v2441_5(void) = ^IndirectReadSideEffect[-1] : &:r2441_1, ~m? +# 2441| mu2441_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2441_1 +# 2441| r2441_7(bool) = Constant[0] : +# 2441| v2441_8(void) = ConditionalBranch : r2441_7 +#-----| False -> Block 809 +#-----| True (back edge) -> Block 808 + +# 2443| Block 809 +# 2443| r2443_1(glval) = VariableAddress[x808] : +# 2443| mu2443_2(String) = Uninitialized[x808] : &:r2443_1 +# 2443| r2443_3(glval) = FunctionAddress[String] : +# 2443| v2443_4(void) = Call[String] : func:r2443_3, this:r2443_1 +# 2443| mu2443_5(unknown) = ^CallSideEffect : ~m? +# 2443| mu2443_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2443_1 +# 2444| r2444_1(glval) = VariableAddress[x808] : +# 2444| r2444_2(glval) = FunctionAddress[~String] : +# 2444| v2444_3(void) = Call[~String] : func:r2444_2, this:r2444_1 +# 2444| mu2444_4(unknown) = ^CallSideEffect : ~m? +# 2444| v2444_5(void) = ^IndirectReadSideEffect[-1] : &:r2444_1, ~m? +# 2444| mu2444_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2444_1 +# 2444| r2444_7(bool) = Constant[0] : +# 2444| v2444_8(void) = ConditionalBranch : r2444_7 +#-----| False -> Block 810 +#-----| True (back edge) -> Block 809 + +# 2446| Block 810 +# 2446| r2446_1(glval) = VariableAddress[x809] : +# 2446| mu2446_2(String) = Uninitialized[x809] : &:r2446_1 +# 2446| r2446_3(glval) = FunctionAddress[String] : +# 2446| v2446_4(void) = Call[String] : func:r2446_3, this:r2446_1 +# 2446| mu2446_5(unknown) = ^CallSideEffect : ~m? +# 2446| mu2446_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2446_1 +# 2447| r2447_1(glval) = VariableAddress[x809] : +# 2447| r2447_2(glval) = FunctionAddress[~String] : +# 2447| v2447_3(void) = Call[~String] : func:r2447_2, this:r2447_1 +# 2447| mu2447_4(unknown) = ^CallSideEffect : ~m? +# 2447| v2447_5(void) = ^IndirectReadSideEffect[-1] : &:r2447_1, ~m? +# 2447| mu2447_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2447_1 +# 2447| r2447_7(bool) = Constant[0] : +# 2447| v2447_8(void) = ConditionalBranch : r2447_7 +#-----| False -> Block 811 +#-----| True (back edge) -> Block 810 + +# 2449| Block 811 +# 2449| r2449_1(glval) = VariableAddress[x810] : +# 2449| mu2449_2(String) = Uninitialized[x810] : &:r2449_1 +# 2449| r2449_3(glval) = FunctionAddress[String] : +# 2449| v2449_4(void) = Call[String] : func:r2449_3, this:r2449_1 +# 2449| mu2449_5(unknown) = ^CallSideEffect : ~m? +# 2449| mu2449_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2449_1 +# 2450| r2450_1(glval) = VariableAddress[x810] : +# 2450| r2450_2(glval) = FunctionAddress[~String] : +# 2450| v2450_3(void) = Call[~String] : func:r2450_2, this:r2450_1 +# 2450| mu2450_4(unknown) = ^CallSideEffect : ~m? +# 2450| v2450_5(void) = ^IndirectReadSideEffect[-1] : &:r2450_1, ~m? +# 2450| mu2450_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2450_1 +# 2450| r2450_7(bool) = Constant[0] : +# 2450| v2450_8(void) = ConditionalBranch : r2450_7 +#-----| False -> Block 812 +#-----| True (back edge) -> Block 811 + +# 2452| Block 812 +# 2452| r2452_1(glval) = VariableAddress[x811] : +# 2452| mu2452_2(String) = Uninitialized[x811] : &:r2452_1 +# 2452| r2452_3(glval) = FunctionAddress[String] : +# 2452| v2452_4(void) = Call[String] : func:r2452_3, this:r2452_1 +# 2452| mu2452_5(unknown) = ^CallSideEffect : ~m? +# 2452| mu2452_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2452_1 +# 2453| r2453_1(glval) = VariableAddress[x811] : +# 2453| r2453_2(glval) = FunctionAddress[~String] : +# 2453| v2453_3(void) = Call[~String] : func:r2453_2, this:r2453_1 +# 2453| mu2453_4(unknown) = ^CallSideEffect : ~m? +# 2453| v2453_5(void) = ^IndirectReadSideEffect[-1] : &:r2453_1, ~m? +# 2453| mu2453_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2453_1 +# 2453| r2453_7(bool) = Constant[0] : +# 2453| v2453_8(void) = ConditionalBranch : r2453_7 +#-----| False -> Block 813 +#-----| True (back edge) -> Block 812 + +# 2455| Block 813 +# 2455| r2455_1(glval) = VariableAddress[x812] : +# 2455| mu2455_2(String) = Uninitialized[x812] : &:r2455_1 +# 2455| r2455_3(glval) = FunctionAddress[String] : +# 2455| v2455_4(void) = Call[String] : func:r2455_3, this:r2455_1 +# 2455| mu2455_5(unknown) = ^CallSideEffect : ~m? +# 2455| mu2455_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2455_1 +# 2456| r2456_1(glval) = VariableAddress[x812] : +# 2456| r2456_2(glval) = FunctionAddress[~String] : +# 2456| v2456_3(void) = Call[~String] : func:r2456_2, this:r2456_1 +# 2456| mu2456_4(unknown) = ^CallSideEffect : ~m? +# 2456| v2456_5(void) = ^IndirectReadSideEffect[-1] : &:r2456_1, ~m? +# 2456| mu2456_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2456_1 +# 2456| r2456_7(bool) = Constant[0] : +# 2456| v2456_8(void) = ConditionalBranch : r2456_7 +#-----| False -> Block 814 +#-----| True (back edge) -> Block 813 + +# 2458| Block 814 +# 2458| r2458_1(glval) = VariableAddress[x813] : +# 2458| mu2458_2(String) = Uninitialized[x813] : &:r2458_1 +# 2458| r2458_3(glval) = FunctionAddress[String] : +# 2458| v2458_4(void) = Call[String] : func:r2458_3, this:r2458_1 +# 2458| mu2458_5(unknown) = ^CallSideEffect : ~m? +# 2458| mu2458_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2458_1 +# 2459| r2459_1(glval) = VariableAddress[x813] : +# 2459| r2459_2(glval) = FunctionAddress[~String] : +# 2459| v2459_3(void) = Call[~String] : func:r2459_2, this:r2459_1 +# 2459| mu2459_4(unknown) = ^CallSideEffect : ~m? +# 2459| v2459_5(void) = ^IndirectReadSideEffect[-1] : &:r2459_1, ~m? +# 2459| mu2459_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2459_1 +# 2459| r2459_7(bool) = Constant[0] : +# 2459| v2459_8(void) = ConditionalBranch : r2459_7 +#-----| False -> Block 815 +#-----| True (back edge) -> Block 814 + +# 2461| Block 815 +# 2461| r2461_1(glval) = VariableAddress[x814] : +# 2461| mu2461_2(String) = Uninitialized[x814] : &:r2461_1 +# 2461| r2461_3(glval) = FunctionAddress[String] : +# 2461| v2461_4(void) = Call[String] : func:r2461_3, this:r2461_1 +# 2461| mu2461_5(unknown) = ^CallSideEffect : ~m? +# 2461| mu2461_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2461_1 +# 2462| r2462_1(glval) = VariableAddress[x814] : +# 2462| r2462_2(glval) = FunctionAddress[~String] : +# 2462| v2462_3(void) = Call[~String] : func:r2462_2, this:r2462_1 +# 2462| mu2462_4(unknown) = ^CallSideEffect : ~m? +# 2462| v2462_5(void) = ^IndirectReadSideEffect[-1] : &:r2462_1, ~m? +# 2462| mu2462_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2462_1 +# 2462| r2462_7(bool) = Constant[0] : +# 2462| v2462_8(void) = ConditionalBranch : r2462_7 +#-----| False -> Block 816 +#-----| True (back edge) -> Block 815 + +# 2464| Block 816 +# 2464| r2464_1(glval) = VariableAddress[x815] : +# 2464| mu2464_2(String) = Uninitialized[x815] : &:r2464_1 +# 2464| r2464_3(glval) = FunctionAddress[String] : +# 2464| v2464_4(void) = Call[String] : func:r2464_3, this:r2464_1 +# 2464| mu2464_5(unknown) = ^CallSideEffect : ~m? +# 2464| mu2464_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2464_1 +# 2465| r2465_1(glval) = VariableAddress[x815] : +# 2465| r2465_2(glval) = FunctionAddress[~String] : +# 2465| v2465_3(void) = Call[~String] : func:r2465_2, this:r2465_1 +# 2465| mu2465_4(unknown) = ^CallSideEffect : ~m? +# 2465| v2465_5(void) = ^IndirectReadSideEffect[-1] : &:r2465_1, ~m? +# 2465| mu2465_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2465_1 +# 2465| r2465_7(bool) = Constant[0] : +# 2465| v2465_8(void) = ConditionalBranch : r2465_7 +#-----| False -> Block 817 +#-----| True (back edge) -> Block 816 + +# 2467| Block 817 +# 2467| r2467_1(glval) = VariableAddress[x816] : +# 2467| mu2467_2(String) = Uninitialized[x816] : &:r2467_1 +# 2467| r2467_3(glval) = FunctionAddress[String] : +# 2467| v2467_4(void) = Call[String] : func:r2467_3, this:r2467_1 +# 2467| mu2467_5(unknown) = ^CallSideEffect : ~m? +# 2467| mu2467_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2467_1 +# 2468| r2468_1(glval) = VariableAddress[x816] : +# 2468| r2468_2(glval) = FunctionAddress[~String] : +# 2468| v2468_3(void) = Call[~String] : func:r2468_2, this:r2468_1 +# 2468| mu2468_4(unknown) = ^CallSideEffect : ~m? +# 2468| v2468_5(void) = ^IndirectReadSideEffect[-1] : &:r2468_1, ~m? +# 2468| mu2468_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2468_1 +# 2468| r2468_7(bool) = Constant[0] : +# 2468| v2468_8(void) = ConditionalBranch : r2468_7 +#-----| False -> Block 818 +#-----| True (back edge) -> Block 817 + +# 2470| Block 818 +# 2470| r2470_1(glval) = VariableAddress[x817] : +# 2470| mu2470_2(String) = Uninitialized[x817] : &:r2470_1 +# 2470| r2470_3(glval) = FunctionAddress[String] : +# 2470| v2470_4(void) = Call[String] : func:r2470_3, this:r2470_1 +# 2470| mu2470_5(unknown) = ^CallSideEffect : ~m? +# 2470| mu2470_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2470_1 +# 2471| r2471_1(glval) = VariableAddress[x817] : +# 2471| r2471_2(glval) = FunctionAddress[~String] : +# 2471| v2471_3(void) = Call[~String] : func:r2471_2, this:r2471_1 +# 2471| mu2471_4(unknown) = ^CallSideEffect : ~m? +# 2471| v2471_5(void) = ^IndirectReadSideEffect[-1] : &:r2471_1, ~m? +# 2471| mu2471_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2471_1 +# 2471| r2471_7(bool) = Constant[0] : +# 2471| v2471_8(void) = ConditionalBranch : r2471_7 +#-----| False -> Block 819 +#-----| True (back edge) -> Block 818 + +# 2473| Block 819 +# 2473| r2473_1(glval) = VariableAddress[x818] : +# 2473| mu2473_2(String) = Uninitialized[x818] : &:r2473_1 +# 2473| r2473_3(glval) = FunctionAddress[String] : +# 2473| v2473_4(void) = Call[String] : func:r2473_3, this:r2473_1 +# 2473| mu2473_5(unknown) = ^CallSideEffect : ~m? +# 2473| mu2473_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2473_1 +# 2474| r2474_1(glval) = VariableAddress[x818] : +# 2474| r2474_2(glval) = FunctionAddress[~String] : +# 2474| v2474_3(void) = Call[~String] : func:r2474_2, this:r2474_1 +# 2474| mu2474_4(unknown) = ^CallSideEffect : ~m? +# 2474| v2474_5(void) = ^IndirectReadSideEffect[-1] : &:r2474_1, ~m? +# 2474| mu2474_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2474_1 +# 2474| r2474_7(bool) = Constant[0] : +# 2474| v2474_8(void) = ConditionalBranch : r2474_7 +#-----| False -> Block 820 +#-----| True (back edge) -> Block 819 + +# 2476| Block 820 +# 2476| r2476_1(glval) = VariableAddress[x819] : +# 2476| mu2476_2(String) = Uninitialized[x819] : &:r2476_1 +# 2476| r2476_3(glval) = FunctionAddress[String] : +# 2476| v2476_4(void) = Call[String] : func:r2476_3, this:r2476_1 +# 2476| mu2476_5(unknown) = ^CallSideEffect : ~m? +# 2476| mu2476_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2476_1 +# 2477| r2477_1(glval) = VariableAddress[x819] : +# 2477| r2477_2(glval) = FunctionAddress[~String] : +# 2477| v2477_3(void) = Call[~String] : func:r2477_2, this:r2477_1 +# 2477| mu2477_4(unknown) = ^CallSideEffect : ~m? +# 2477| v2477_5(void) = ^IndirectReadSideEffect[-1] : &:r2477_1, ~m? +# 2477| mu2477_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2477_1 +# 2477| r2477_7(bool) = Constant[0] : +# 2477| v2477_8(void) = ConditionalBranch : r2477_7 +#-----| False -> Block 821 +#-----| True (back edge) -> Block 820 + +# 2479| Block 821 +# 2479| r2479_1(glval) = VariableAddress[x820] : +# 2479| mu2479_2(String) = Uninitialized[x820] : &:r2479_1 +# 2479| r2479_3(glval) = FunctionAddress[String] : +# 2479| v2479_4(void) = Call[String] : func:r2479_3, this:r2479_1 +# 2479| mu2479_5(unknown) = ^CallSideEffect : ~m? +# 2479| mu2479_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2479_1 +# 2480| r2480_1(glval) = VariableAddress[x820] : +# 2480| r2480_2(glval) = FunctionAddress[~String] : +# 2480| v2480_3(void) = Call[~String] : func:r2480_2, this:r2480_1 +# 2480| mu2480_4(unknown) = ^CallSideEffect : ~m? +# 2480| v2480_5(void) = ^IndirectReadSideEffect[-1] : &:r2480_1, ~m? +# 2480| mu2480_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2480_1 +# 2480| r2480_7(bool) = Constant[0] : +# 2480| v2480_8(void) = ConditionalBranch : r2480_7 +#-----| False -> Block 822 +#-----| True (back edge) -> Block 821 + +# 2482| Block 822 +# 2482| r2482_1(glval) = VariableAddress[x821] : +# 2482| mu2482_2(String) = Uninitialized[x821] : &:r2482_1 +# 2482| r2482_3(glval) = FunctionAddress[String] : +# 2482| v2482_4(void) = Call[String] : func:r2482_3, this:r2482_1 +# 2482| mu2482_5(unknown) = ^CallSideEffect : ~m? +# 2482| mu2482_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2482_1 +# 2483| r2483_1(glval) = VariableAddress[x821] : +# 2483| r2483_2(glval) = FunctionAddress[~String] : +# 2483| v2483_3(void) = Call[~String] : func:r2483_2, this:r2483_1 +# 2483| mu2483_4(unknown) = ^CallSideEffect : ~m? +# 2483| v2483_5(void) = ^IndirectReadSideEffect[-1] : &:r2483_1, ~m? +# 2483| mu2483_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2483_1 +# 2483| r2483_7(bool) = Constant[0] : +# 2483| v2483_8(void) = ConditionalBranch : r2483_7 +#-----| False -> Block 823 +#-----| True (back edge) -> Block 822 + +# 2485| Block 823 +# 2485| r2485_1(glval) = VariableAddress[x822] : +# 2485| mu2485_2(String) = Uninitialized[x822] : &:r2485_1 +# 2485| r2485_3(glval) = FunctionAddress[String] : +# 2485| v2485_4(void) = Call[String] : func:r2485_3, this:r2485_1 +# 2485| mu2485_5(unknown) = ^CallSideEffect : ~m? +# 2485| mu2485_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2485_1 +# 2486| r2486_1(glval) = VariableAddress[x822] : +# 2486| r2486_2(glval) = FunctionAddress[~String] : +# 2486| v2486_3(void) = Call[~String] : func:r2486_2, this:r2486_1 +# 2486| mu2486_4(unknown) = ^CallSideEffect : ~m? +# 2486| v2486_5(void) = ^IndirectReadSideEffect[-1] : &:r2486_1, ~m? +# 2486| mu2486_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2486_1 +# 2486| r2486_7(bool) = Constant[0] : +# 2486| v2486_8(void) = ConditionalBranch : r2486_7 +#-----| False -> Block 824 +#-----| True (back edge) -> Block 823 + +# 2488| Block 824 +# 2488| r2488_1(glval) = VariableAddress[x823] : +# 2488| mu2488_2(String) = Uninitialized[x823] : &:r2488_1 +# 2488| r2488_3(glval) = FunctionAddress[String] : +# 2488| v2488_4(void) = Call[String] : func:r2488_3, this:r2488_1 +# 2488| mu2488_5(unknown) = ^CallSideEffect : ~m? +# 2488| mu2488_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2488_1 +# 2489| r2489_1(glval) = VariableAddress[x823] : +# 2489| r2489_2(glval) = FunctionAddress[~String] : +# 2489| v2489_3(void) = Call[~String] : func:r2489_2, this:r2489_1 +# 2489| mu2489_4(unknown) = ^CallSideEffect : ~m? +# 2489| v2489_5(void) = ^IndirectReadSideEffect[-1] : &:r2489_1, ~m? +# 2489| mu2489_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2489_1 +# 2489| r2489_7(bool) = Constant[0] : +# 2489| v2489_8(void) = ConditionalBranch : r2489_7 +#-----| False -> Block 825 +#-----| True (back edge) -> Block 824 + +# 2491| Block 825 +# 2491| r2491_1(glval) = VariableAddress[x824] : +# 2491| mu2491_2(String) = Uninitialized[x824] : &:r2491_1 +# 2491| r2491_3(glval) = FunctionAddress[String] : +# 2491| v2491_4(void) = Call[String] : func:r2491_3, this:r2491_1 +# 2491| mu2491_5(unknown) = ^CallSideEffect : ~m? +# 2491| mu2491_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2491_1 +# 2492| r2492_1(glval) = VariableAddress[x824] : +# 2492| r2492_2(glval) = FunctionAddress[~String] : +# 2492| v2492_3(void) = Call[~String] : func:r2492_2, this:r2492_1 +# 2492| mu2492_4(unknown) = ^CallSideEffect : ~m? +# 2492| v2492_5(void) = ^IndirectReadSideEffect[-1] : &:r2492_1, ~m? +# 2492| mu2492_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2492_1 +# 2492| r2492_7(bool) = Constant[0] : +# 2492| v2492_8(void) = ConditionalBranch : r2492_7 +#-----| False -> Block 826 +#-----| True (back edge) -> Block 825 + +# 2494| Block 826 +# 2494| r2494_1(glval) = VariableAddress[x825] : +# 2494| mu2494_2(String) = Uninitialized[x825] : &:r2494_1 +# 2494| r2494_3(glval) = FunctionAddress[String] : +# 2494| v2494_4(void) = Call[String] : func:r2494_3, this:r2494_1 +# 2494| mu2494_5(unknown) = ^CallSideEffect : ~m? +# 2494| mu2494_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2494_1 +# 2495| r2495_1(glval) = VariableAddress[x825] : +# 2495| r2495_2(glval) = FunctionAddress[~String] : +# 2495| v2495_3(void) = Call[~String] : func:r2495_2, this:r2495_1 +# 2495| mu2495_4(unknown) = ^CallSideEffect : ~m? +# 2495| v2495_5(void) = ^IndirectReadSideEffect[-1] : &:r2495_1, ~m? +# 2495| mu2495_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2495_1 +# 2495| r2495_7(bool) = Constant[0] : +# 2495| v2495_8(void) = ConditionalBranch : r2495_7 +#-----| False -> Block 827 +#-----| True (back edge) -> Block 826 + +# 2497| Block 827 +# 2497| r2497_1(glval) = VariableAddress[x826] : +# 2497| mu2497_2(String) = Uninitialized[x826] : &:r2497_1 +# 2497| r2497_3(glval) = FunctionAddress[String] : +# 2497| v2497_4(void) = Call[String] : func:r2497_3, this:r2497_1 +# 2497| mu2497_5(unknown) = ^CallSideEffect : ~m? +# 2497| mu2497_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2497_1 +# 2498| r2498_1(glval) = VariableAddress[x826] : +# 2498| r2498_2(glval) = FunctionAddress[~String] : +# 2498| v2498_3(void) = Call[~String] : func:r2498_2, this:r2498_1 +# 2498| mu2498_4(unknown) = ^CallSideEffect : ~m? +# 2498| v2498_5(void) = ^IndirectReadSideEffect[-1] : &:r2498_1, ~m? +# 2498| mu2498_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2498_1 +# 2498| r2498_7(bool) = Constant[0] : +# 2498| v2498_8(void) = ConditionalBranch : r2498_7 +#-----| False -> Block 828 +#-----| True (back edge) -> Block 827 + +# 2500| Block 828 +# 2500| r2500_1(glval) = VariableAddress[x827] : +# 2500| mu2500_2(String) = Uninitialized[x827] : &:r2500_1 +# 2500| r2500_3(glval) = FunctionAddress[String] : +# 2500| v2500_4(void) = Call[String] : func:r2500_3, this:r2500_1 +# 2500| mu2500_5(unknown) = ^CallSideEffect : ~m? +# 2500| mu2500_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2500_1 +# 2501| r2501_1(glval) = VariableAddress[x827] : +# 2501| r2501_2(glval) = FunctionAddress[~String] : +# 2501| v2501_3(void) = Call[~String] : func:r2501_2, this:r2501_1 +# 2501| mu2501_4(unknown) = ^CallSideEffect : ~m? +# 2501| v2501_5(void) = ^IndirectReadSideEffect[-1] : &:r2501_1, ~m? +# 2501| mu2501_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2501_1 +# 2501| r2501_7(bool) = Constant[0] : +# 2501| v2501_8(void) = ConditionalBranch : r2501_7 +#-----| False -> Block 829 +#-----| True (back edge) -> Block 828 + +# 2503| Block 829 +# 2503| r2503_1(glval) = VariableAddress[x828] : +# 2503| mu2503_2(String) = Uninitialized[x828] : &:r2503_1 +# 2503| r2503_3(glval) = FunctionAddress[String] : +# 2503| v2503_4(void) = Call[String] : func:r2503_3, this:r2503_1 +# 2503| mu2503_5(unknown) = ^CallSideEffect : ~m? +# 2503| mu2503_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2503_1 +# 2504| r2504_1(glval) = VariableAddress[x828] : +# 2504| r2504_2(glval) = FunctionAddress[~String] : +# 2504| v2504_3(void) = Call[~String] : func:r2504_2, this:r2504_1 +# 2504| mu2504_4(unknown) = ^CallSideEffect : ~m? +# 2504| v2504_5(void) = ^IndirectReadSideEffect[-1] : &:r2504_1, ~m? +# 2504| mu2504_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2504_1 +# 2504| r2504_7(bool) = Constant[0] : +# 2504| v2504_8(void) = ConditionalBranch : r2504_7 +#-----| False -> Block 830 +#-----| True (back edge) -> Block 829 + +# 2506| Block 830 +# 2506| r2506_1(glval) = VariableAddress[x829] : +# 2506| mu2506_2(String) = Uninitialized[x829] : &:r2506_1 +# 2506| r2506_3(glval) = FunctionAddress[String] : +# 2506| v2506_4(void) = Call[String] : func:r2506_3, this:r2506_1 +# 2506| mu2506_5(unknown) = ^CallSideEffect : ~m? +# 2506| mu2506_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2506_1 +# 2507| r2507_1(glval) = VariableAddress[x829] : +# 2507| r2507_2(glval) = FunctionAddress[~String] : +# 2507| v2507_3(void) = Call[~String] : func:r2507_2, this:r2507_1 +# 2507| mu2507_4(unknown) = ^CallSideEffect : ~m? +# 2507| v2507_5(void) = ^IndirectReadSideEffect[-1] : &:r2507_1, ~m? +# 2507| mu2507_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2507_1 +# 2507| r2507_7(bool) = Constant[0] : +# 2507| v2507_8(void) = ConditionalBranch : r2507_7 +#-----| False -> Block 831 +#-----| True (back edge) -> Block 830 + +# 2509| Block 831 +# 2509| r2509_1(glval) = VariableAddress[x830] : +# 2509| mu2509_2(String) = Uninitialized[x830] : &:r2509_1 +# 2509| r2509_3(glval) = FunctionAddress[String] : +# 2509| v2509_4(void) = Call[String] : func:r2509_3, this:r2509_1 +# 2509| mu2509_5(unknown) = ^CallSideEffect : ~m? +# 2509| mu2509_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2509_1 +# 2510| r2510_1(glval) = VariableAddress[x830] : +# 2510| r2510_2(glval) = FunctionAddress[~String] : +# 2510| v2510_3(void) = Call[~String] : func:r2510_2, this:r2510_1 +# 2510| mu2510_4(unknown) = ^CallSideEffect : ~m? +# 2510| v2510_5(void) = ^IndirectReadSideEffect[-1] : &:r2510_1, ~m? +# 2510| mu2510_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2510_1 +# 2510| r2510_7(bool) = Constant[0] : +# 2510| v2510_8(void) = ConditionalBranch : r2510_7 +#-----| False -> Block 832 +#-----| True (back edge) -> Block 831 + +# 2512| Block 832 +# 2512| r2512_1(glval) = VariableAddress[x831] : +# 2512| mu2512_2(String) = Uninitialized[x831] : &:r2512_1 +# 2512| r2512_3(glval) = FunctionAddress[String] : +# 2512| v2512_4(void) = Call[String] : func:r2512_3, this:r2512_1 +# 2512| mu2512_5(unknown) = ^CallSideEffect : ~m? +# 2512| mu2512_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2512_1 +# 2513| r2513_1(glval) = VariableAddress[x831] : +# 2513| r2513_2(glval) = FunctionAddress[~String] : +# 2513| v2513_3(void) = Call[~String] : func:r2513_2, this:r2513_1 +# 2513| mu2513_4(unknown) = ^CallSideEffect : ~m? +# 2513| v2513_5(void) = ^IndirectReadSideEffect[-1] : &:r2513_1, ~m? +# 2513| mu2513_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2513_1 +# 2513| r2513_7(bool) = Constant[0] : +# 2513| v2513_8(void) = ConditionalBranch : r2513_7 +#-----| False -> Block 833 +#-----| True (back edge) -> Block 832 + +# 2515| Block 833 +# 2515| r2515_1(glval) = VariableAddress[x832] : +# 2515| mu2515_2(String) = Uninitialized[x832] : &:r2515_1 +# 2515| r2515_3(glval) = FunctionAddress[String] : +# 2515| v2515_4(void) = Call[String] : func:r2515_3, this:r2515_1 +# 2515| mu2515_5(unknown) = ^CallSideEffect : ~m? +# 2515| mu2515_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2515_1 +# 2516| r2516_1(glval) = VariableAddress[x832] : +# 2516| r2516_2(glval) = FunctionAddress[~String] : +# 2516| v2516_3(void) = Call[~String] : func:r2516_2, this:r2516_1 +# 2516| mu2516_4(unknown) = ^CallSideEffect : ~m? +# 2516| v2516_5(void) = ^IndirectReadSideEffect[-1] : &:r2516_1, ~m? +# 2516| mu2516_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2516_1 +# 2516| r2516_7(bool) = Constant[0] : +# 2516| v2516_8(void) = ConditionalBranch : r2516_7 +#-----| False -> Block 834 +#-----| True (back edge) -> Block 833 + +# 2518| Block 834 +# 2518| r2518_1(glval) = VariableAddress[x833] : +# 2518| mu2518_2(String) = Uninitialized[x833] : &:r2518_1 +# 2518| r2518_3(glval) = FunctionAddress[String] : +# 2518| v2518_4(void) = Call[String] : func:r2518_3, this:r2518_1 +# 2518| mu2518_5(unknown) = ^CallSideEffect : ~m? +# 2518| mu2518_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2518_1 +# 2519| r2519_1(glval) = VariableAddress[x833] : +# 2519| r2519_2(glval) = FunctionAddress[~String] : +# 2519| v2519_3(void) = Call[~String] : func:r2519_2, this:r2519_1 +# 2519| mu2519_4(unknown) = ^CallSideEffect : ~m? +# 2519| v2519_5(void) = ^IndirectReadSideEffect[-1] : &:r2519_1, ~m? +# 2519| mu2519_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2519_1 +# 2519| r2519_7(bool) = Constant[0] : +# 2519| v2519_8(void) = ConditionalBranch : r2519_7 +#-----| False -> Block 835 +#-----| True (back edge) -> Block 834 + +# 2521| Block 835 +# 2521| r2521_1(glval) = VariableAddress[x834] : +# 2521| mu2521_2(String) = Uninitialized[x834] : &:r2521_1 +# 2521| r2521_3(glval) = FunctionAddress[String] : +# 2521| v2521_4(void) = Call[String] : func:r2521_3, this:r2521_1 +# 2521| mu2521_5(unknown) = ^CallSideEffect : ~m? +# 2521| mu2521_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2521_1 +# 2522| r2522_1(glval) = VariableAddress[x834] : +# 2522| r2522_2(glval) = FunctionAddress[~String] : +# 2522| v2522_3(void) = Call[~String] : func:r2522_2, this:r2522_1 +# 2522| mu2522_4(unknown) = ^CallSideEffect : ~m? +# 2522| v2522_5(void) = ^IndirectReadSideEffect[-1] : &:r2522_1, ~m? +# 2522| mu2522_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2522_1 +# 2522| r2522_7(bool) = Constant[0] : +# 2522| v2522_8(void) = ConditionalBranch : r2522_7 +#-----| False -> Block 836 +#-----| True (back edge) -> Block 835 + +# 2524| Block 836 +# 2524| r2524_1(glval) = VariableAddress[x835] : +# 2524| mu2524_2(String) = Uninitialized[x835] : &:r2524_1 +# 2524| r2524_3(glval) = FunctionAddress[String] : +# 2524| v2524_4(void) = Call[String] : func:r2524_3, this:r2524_1 +# 2524| mu2524_5(unknown) = ^CallSideEffect : ~m? +# 2524| mu2524_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2524_1 +# 2525| r2525_1(glval) = VariableAddress[x835] : +# 2525| r2525_2(glval) = FunctionAddress[~String] : +# 2525| v2525_3(void) = Call[~String] : func:r2525_2, this:r2525_1 +# 2525| mu2525_4(unknown) = ^CallSideEffect : ~m? +# 2525| v2525_5(void) = ^IndirectReadSideEffect[-1] : &:r2525_1, ~m? +# 2525| mu2525_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2525_1 +# 2525| r2525_7(bool) = Constant[0] : +# 2525| v2525_8(void) = ConditionalBranch : r2525_7 +#-----| False -> Block 837 +#-----| True (back edge) -> Block 836 + +# 2527| Block 837 +# 2527| r2527_1(glval) = VariableAddress[x836] : +# 2527| mu2527_2(String) = Uninitialized[x836] : &:r2527_1 +# 2527| r2527_3(glval) = FunctionAddress[String] : +# 2527| v2527_4(void) = Call[String] : func:r2527_3, this:r2527_1 +# 2527| mu2527_5(unknown) = ^CallSideEffect : ~m? +# 2527| mu2527_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2527_1 +# 2528| r2528_1(glval) = VariableAddress[x836] : +# 2528| r2528_2(glval) = FunctionAddress[~String] : +# 2528| v2528_3(void) = Call[~String] : func:r2528_2, this:r2528_1 +# 2528| mu2528_4(unknown) = ^CallSideEffect : ~m? +# 2528| v2528_5(void) = ^IndirectReadSideEffect[-1] : &:r2528_1, ~m? +# 2528| mu2528_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2528_1 +# 2528| r2528_7(bool) = Constant[0] : +# 2528| v2528_8(void) = ConditionalBranch : r2528_7 +#-----| False -> Block 838 +#-----| True (back edge) -> Block 837 + +# 2530| Block 838 +# 2530| r2530_1(glval) = VariableAddress[x837] : +# 2530| mu2530_2(String) = Uninitialized[x837] : &:r2530_1 +# 2530| r2530_3(glval) = FunctionAddress[String] : +# 2530| v2530_4(void) = Call[String] : func:r2530_3, this:r2530_1 +# 2530| mu2530_5(unknown) = ^CallSideEffect : ~m? +# 2530| mu2530_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2530_1 +# 2531| r2531_1(glval) = VariableAddress[x837] : +# 2531| r2531_2(glval) = FunctionAddress[~String] : +# 2531| v2531_3(void) = Call[~String] : func:r2531_2, this:r2531_1 +# 2531| mu2531_4(unknown) = ^CallSideEffect : ~m? +# 2531| v2531_5(void) = ^IndirectReadSideEffect[-1] : &:r2531_1, ~m? +# 2531| mu2531_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2531_1 +# 2531| r2531_7(bool) = Constant[0] : +# 2531| v2531_8(void) = ConditionalBranch : r2531_7 +#-----| False -> Block 839 +#-----| True (back edge) -> Block 838 + +# 2533| Block 839 +# 2533| r2533_1(glval) = VariableAddress[x838] : +# 2533| mu2533_2(String) = Uninitialized[x838] : &:r2533_1 +# 2533| r2533_3(glval) = FunctionAddress[String] : +# 2533| v2533_4(void) = Call[String] : func:r2533_3, this:r2533_1 +# 2533| mu2533_5(unknown) = ^CallSideEffect : ~m? +# 2533| mu2533_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2533_1 +# 2534| r2534_1(glval) = VariableAddress[x838] : +# 2534| r2534_2(glval) = FunctionAddress[~String] : +# 2534| v2534_3(void) = Call[~String] : func:r2534_2, this:r2534_1 +# 2534| mu2534_4(unknown) = ^CallSideEffect : ~m? +# 2534| v2534_5(void) = ^IndirectReadSideEffect[-1] : &:r2534_1, ~m? +# 2534| mu2534_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2534_1 +# 2534| r2534_7(bool) = Constant[0] : +# 2534| v2534_8(void) = ConditionalBranch : r2534_7 +#-----| False -> Block 840 +#-----| True (back edge) -> Block 839 + +# 2536| Block 840 +# 2536| r2536_1(glval) = VariableAddress[x839] : +# 2536| mu2536_2(String) = Uninitialized[x839] : &:r2536_1 +# 2536| r2536_3(glval) = FunctionAddress[String] : +# 2536| v2536_4(void) = Call[String] : func:r2536_3, this:r2536_1 +# 2536| mu2536_5(unknown) = ^CallSideEffect : ~m? +# 2536| mu2536_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2536_1 +# 2537| r2537_1(glval) = VariableAddress[x839] : +# 2537| r2537_2(glval) = FunctionAddress[~String] : +# 2537| v2537_3(void) = Call[~String] : func:r2537_2, this:r2537_1 +# 2537| mu2537_4(unknown) = ^CallSideEffect : ~m? +# 2537| v2537_5(void) = ^IndirectReadSideEffect[-1] : &:r2537_1, ~m? +# 2537| mu2537_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2537_1 +# 2537| r2537_7(bool) = Constant[0] : +# 2537| v2537_8(void) = ConditionalBranch : r2537_7 +#-----| False -> Block 841 +#-----| True (back edge) -> Block 840 + +# 2539| Block 841 +# 2539| r2539_1(glval) = VariableAddress[x840] : +# 2539| mu2539_2(String) = Uninitialized[x840] : &:r2539_1 +# 2539| r2539_3(glval) = FunctionAddress[String] : +# 2539| v2539_4(void) = Call[String] : func:r2539_3, this:r2539_1 +# 2539| mu2539_5(unknown) = ^CallSideEffect : ~m? +# 2539| mu2539_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2539_1 +# 2540| r2540_1(glval) = VariableAddress[x840] : +# 2540| r2540_2(glval) = FunctionAddress[~String] : +# 2540| v2540_3(void) = Call[~String] : func:r2540_2, this:r2540_1 +# 2540| mu2540_4(unknown) = ^CallSideEffect : ~m? +# 2540| v2540_5(void) = ^IndirectReadSideEffect[-1] : &:r2540_1, ~m? +# 2540| mu2540_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2540_1 +# 2540| r2540_7(bool) = Constant[0] : +# 2540| v2540_8(void) = ConditionalBranch : r2540_7 +#-----| False -> Block 842 +#-----| True (back edge) -> Block 841 + +# 2542| Block 842 +# 2542| r2542_1(glval) = VariableAddress[x841] : +# 2542| mu2542_2(String) = Uninitialized[x841] : &:r2542_1 +# 2542| r2542_3(glval) = FunctionAddress[String] : +# 2542| v2542_4(void) = Call[String] : func:r2542_3, this:r2542_1 +# 2542| mu2542_5(unknown) = ^CallSideEffect : ~m? +# 2542| mu2542_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2542_1 +# 2543| r2543_1(glval) = VariableAddress[x841] : +# 2543| r2543_2(glval) = FunctionAddress[~String] : +# 2543| v2543_3(void) = Call[~String] : func:r2543_2, this:r2543_1 +# 2543| mu2543_4(unknown) = ^CallSideEffect : ~m? +# 2543| v2543_5(void) = ^IndirectReadSideEffect[-1] : &:r2543_1, ~m? +# 2543| mu2543_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2543_1 +# 2543| r2543_7(bool) = Constant[0] : +# 2543| v2543_8(void) = ConditionalBranch : r2543_7 +#-----| False -> Block 843 +#-----| True (back edge) -> Block 842 + +# 2545| Block 843 +# 2545| r2545_1(glval) = VariableAddress[x842] : +# 2545| mu2545_2(String) = Uninitialized[x842] : &:r2545_1 +# 2545| r2545_3(glval) = FunctionAddress[String] : +# 2545| v2545_4(void) = Call[String] : func:r2545_3, this:r2545_1 +# 2545| mu2545_5(unknown) = ^CallSideEffect : ~m? +# 2545| mu2545_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2545_1 +# 2546| r2546_1(glval) = VariableAddress[x842] : +# 2546| r2546_2(glval) = FunctionAddress[~String] : +# 2546| v2546_3(void) = Call[~String] : func:r2546_2, this:r2546_1 +# 2546| mu2546_4(unknown) = ^CallSideEffect : ~m? +# 2546| v2546_5(void) = ^IndirectReadSideEffect[-1] : &:r2546_1, ~m? +# 2546| mu2546_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2546_1 +# 2546| r2546_7(bool) = Constant[0] : +# 2546| v2546_8(void) = ConditionalBranch : r2546_7 +#-----| False -> Block 844 +#-----| True (back edge) -> Block 843 + +# 2548| Block 844 +# 2548| r2548_1(glval) = VariableAddress[x843] : +# 2548| mu2548_2(String) = Uninitialized[x843] : &:r2548_1 +# 2548| r2548_3(glval) = FunctionAddress[String] : +# 2548| v2548_4(void) = Call[String] : func:r2548_3, this:r2548_1 +# 2548| mu2548_5(unknown) = ^CallSideEffect : ~m? +# 2548| mu2548_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2548_1 +# 2549| r2549_1(glval) = VariableAddress[x843] : +# 2549| r2549_2(glval) = FunctionAddress[~String] : +# 2549| v2549_3(void) = Call[~String] : func:r2549_2, this:r2549_1 +# 2549| mu2549_4(unknown) = ^CallSideEffect : ~m? +# 2549| v2549_5(void) = ^IndirectReadSideEffect[-1] : &:r2549_1, ~m? +# 2549| mu2549_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2549_1 +# 2549| r2549_7(bool) = Constant[0] : +# 2549| v2549_8(void) = ConditionalBranch : r2549_7 +#-----| False -> Block 845 +#-----| True (back edge) -> Block 844 + +# 2551| Block 845 +# 2551| r2551_1(glval) = VariableAddress[x844] : +# 2551| mu2551_2(String) = Uninitialized[x844] : &:r2551_1 +# 2551| r2551_3(glval) = FunctionAddress[String] : +# 2551| v2551_4(void) = Call[String] : func:r2551_3, this:r2551_1 +# 2551| mu2551_5(unknown) = ^CallSideEffect : ~m? +# 2551| mu2551_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2551_1 +# 2552| r2552_1(glval) = VariableAddress[x844] : +# 2552| r2552_2(glval) = FunctionAddress[~String] : +# 2552| v2552_3(void) = Call[~String] : func:r2552_2, this:r2552_1 +# 2552| mu2552_4(unknown) = ^CallSideEffect : ~m? +# 2552| v2552_5(void) = ^IndirectReadSideEffect[-1] : &:r2552_1, ~m? +# 2552| mu2552_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2552_1 +# 2552| r2552_7(bool) = Constant[0] : +# 2552| v2552_8(void) = ConditionalBranch : r2552_7 +#-----| False -> Block 846 +#-----| True (back edge) -> Block 845 + +# 2554| Block 846 +# 2554| r2554_1(glval) = VariableAddress[x845] : +# 2554| mu2554_2(String) = Uninitialized[x845] : &:r2554_1 +# 2554| r2554_3(glval) = FunctionAddress[String] : +# 2554| v2554_4(void) = Call[String] : func:r2554_3, this:r2554_1 +# 2554| mu2554_5(unknown) = ^CallSideEffect : ~m? +# 2554| mu2554_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2554_1 +# 2555| r2555_1(glval) = VariableAddress[x845] : +# 2555| r2555_2(glval) = FunctionAddress[~String] : +# 2555| v2555_3(void) = Call[~String] : func:r2555_2, this:r2555_1 +# 2555| mu2555_4(unknown) = ^CallSideEffect : ~m? +# 2555| v2555_5(void) = ^IndirectReadSideEffect[-1] : &:r2555_1, ~m? +# 2555| mu2555_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2555_1 +# 2555| r2555_7(bool) = Constant[0] : +# 2555| v2555_8(void) = ConditionalBranch : r2555_7 +#-----| False -> Block 847 +#-----| True (back edge) -> Block 846 + +# 2557| Block 847 +# 2557| r2557_1(glval) = VariableAddress[x846] : +# 2557| mu2557_2(String) = Uninitialized[x846] : &:r2557_1 +# 2557| r2557_3(glval) = FunctionAddress[String] : +# 2557| v2557_4(void) = Call[String] : func:r2557_3, this:r2557_1 +# 2557| mu2557_5(unknown) = ^CallSideEffect : ~m? +# 2557| mu2557_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2557_1 +# 2558| r2558_1(glval) = VariableAddress[x846] : +# 2558| r2558_2(glval) = FunctionAddress[~String] : +# 2558| v2558_3(void) = Call[~String] : func:r2558_2, this:r2558_1 +# 2558| mu2558_4(unknown) = ^CallSideEffect : ~m? +# 2558| v2558_5(void) = ^IndirectReadSideEffect[-1] : &:r2558_1, ~m? +# 2558| mu2558_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2558_1 +# 2558| r2558_7(bool) = Constant[0] : +# 2558| v2558_8(void) = ConditionalBranch : r2558_7 +#-----| False -> Block 848 +#-----| True (back edge) -> Block 847 + +# 2560| Block 848 +# 2560| r2560_1(glval) = VariableAddress[x847] : +# 2560| mu2560_2(String) = Uninitialized[x847] : &:r2560_1 +# 2560| r2560_3(glval) = FunctionAddress[String] : +# 2560| v2560_4(void) = Call[String] : func:r2560_3, this:r2560_1 +# 2560| mu2560_5(unknown) = ^CallSideEffect : ~m? +# 2560| mu2560_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2560_1 +# 2561| r2561_1(glval) = VariableAddress[x847] : +# 2561| r2561_2(glval) = FunctionAddress[~String] : +# 2561| v2561_3(void) = Call[~String] : func:r2561_2, this:r2561_1 +# 2561| mu2561_4(unknown) = ^CallSideEffect : ~m? +# 2561| v2561_5(void) = ^IndirectReadSideEffect[-1] : &:r2561_1, ~m? +# 2561| mu2561_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2561_1 +# 2561| r2561_7(bool) = Constant[0] : +# 2561| v2561_8(void) = ConditionalBranch : r2561_7 +#-----| False -> Block 849 +#-----| True (back edge) -> Block 848 + +# 2563| Block 849 +# 2563| r2563_1(glval) = VariableAddress[x848] : +# 2563| mu2563_2(String) = Uninitialized[x848] : &:r2563_1 +# 2563| r2563_3(glval) = FunctionAddress[String] : +# 2563| v2563_4(void) = Call[String] : func:r2563_3, this:r2563_1 +# 2563| mu2563_5(unknown) = ^CallSideEffect : ~m? +# 2563| mu2563_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2563_1 +# 2564| r2564_1(glval) = VariableAddress[x848] : +# 2564| r2564_2(glval) = FunctionAddress[~String] : +# 2564| v2564_3(void) = Call[~String] : func:r2564_2, this:r2564_1 +# 2564| mu2564_4(unknown) = ^CallSideEffect : ~m? +# 2564| v2564_5(void) = ^IndirectReadSideEffect[-1] : &:r2564_1, ~m? +# 2564| mu2564_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2564_1 +# 2564| r2564_7(bool) = Constant[0] : +# 2564| v2564_8(void) = ConditionalBranch : r2564_7 +#-----| False -> Block 850 +#-----| True (back edge) -> Block 849 + +# 2566| Block 850 +# 2566| r2566_1(glval) = VariableAddress[x849] : +# 2566| mu2566_2(String) = Uninitialized[x849] : &:r2566_1 +# 2566| r2566_3(glval) = FunctionAddress[String] : +# 2566| v2566_4(void) = Call[String] : func:r2566_3, this:r2566_1 +# 2566| mu2566_5(unknown) = ^CallSideEffect : ~m? +# 2566| mu2566_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2566_1 +# 2567| r2567_1(glval) = VariableAddress[x849] : +# 2567| r2567_2(glval) = FunctionAddress[~String] : +# 2567| v2567_3(void) = Call[~String] : func:r2567_2, this:r2567_1 +# 2567| mu2567_4(unknown) = ^CallSideEffect : ~m? +# 2567| v2567_5(void) = ^IndirectReadSideEffect[-1] : &:r2567_1, ~m? +# 2567| mu2567_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2567_1 +# 2567| r2567_7(bool) = Constant[0] : +# 2567| v2567_8(void) = ConditionalBranch : r2567_7 +#-----| False -> Block 851 +#-----| True (back edge) -> Block 850 + +# 2569| Block 851 +# 2569| r2569_1(glval) = VariableAddress[x850] : +# 2569| mu2569_2(String) = Uninitialized[x850] : &:r2569_1 +# 2569| r2569_3(glval) = FunctionAddress[String] : +# 2569| v2569_4(void) = Call[String] : func:r2569_3, this:r2569_1 +# 2569| mu2569_5(unknown) = ^CallSideEffect : ~m? +# 2569| mu2569_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2569_1 +# 2570| r2570_1(glval) = VariableAddress[x850] : +# 2570| r2570_2(glval) = FunctionAddress[~String] : +# 2570| v2570_3(void) = Call[~String] : func:r2570_2, this:r2570_1 +# 2570| mu2570_4(unknown) = ^CallSideEffect : ~m? +# 2570| v2570_5(void) = ^IndirectReadSideEffect[-1] : &:r2570_1, ~m? +# 2570| mu2570_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2570_1 +# 2570| r2570_7(bool) = Constant[0] : +# 2570| v2570_8(void) = ConditionalBranch : r2570_7 +#-----| False -> Block 852 +#-----| True (back edge) -> Block 851 + +# 2572| Block 852 +# 2572| r2572_1(glval) = VariableAddress[x851] : +# 2572| mu2572_2(String) = Uninitialized[x851] : &:r2572_1 +# 2572| r2572_3(glval) = FunctionAddress[String] : +# 2572| v2572_4(void) = Call[String] : func:r2572_3, this:r2572_1 +# 2572| mu2572_5(unknown) = ^CallSideEffect : ~m? +# 2572| mu2572_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2572_1 +# 2573| r2573_1(glval) = VariableAddress[x851] : +# 2573| r2573_2(glval) = FunctionAddress[~String] : +# 2573| v2573_3(void) = Call[~String] : func:r2573_2, this:r2573_1 +# 2573| mu2573_4(unknown) = ^CallSideEffect : ~m? +# 2573| v2573_5(void) = ^IndirectReadSideEffect[-1] : &:r2573_1, ~m? +# 2573| mu2573_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2573_1 +# 2573| r2573_7(bool) = Constant[0] : +# 2573| v2573_8(void) = ConditionalBranch : r2573_7 +#-----| False -> Block 853 +#-----| True (back edge) -> Block 852 + +# 2575| Block 853 +# 2575| r2575_1(glval) = VariableAddress[x852] : +# 2575| mu2575_2(String) = Uninitialized[x852] : &:r2575_1 +# 2575| r2575_3(glval) = FunctionAddress[String] : +# 2575| v2575_4(void) = Call[String] : func:r2575_3, this:r2575_1 +# 2575| mu2575_5(unknown) = ^CallSideEffect : ~m? +# 2575| mu2575_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2575_1 +# 2576| r2576_1(glval) = VariableAddress[x852] : +# 2576| r2576_2(glval) = FunctionAddress[~String] : +# 2576| v2576_3(void) = Call[~String] : func:r2576_2, this:r2576_1 +# 2576| mu2576_4(unknown) = ^CallSideEffect : ~m? +# 2576| v2576_5(void) = ^IndirectReadSideEffect[-1] : &:r2576_1, ~m? +# 2576| mu2576_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2576_1 +# 2576| r2576_7(bool) = Constant[0] : +# 2576| v2576_8(void) = ConditionalBranch : r2576_7 +#-----| False -> Block 854 +#-----| True (back edge) -> Block 853 + +# 2578| Block 854 +# 2578| r2578_1(glval) = VariableAddress[x853] : +# 2578| mu2578_2(String) = Uninitialized[x853] : &:r2578_1 +# 2578| r2578_3(glval) = FunctionAddress[String] : +# 2578| v2578_4(void) = Call[String] : func:r2578_3, this:r2578_1 +# 2578| mu2578_5(unknown) = ^CallSideEffect : ~m? +# 2578| mu2578_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2578_1 +# 2579| r2579_1(glval) = VariableAddress[x853] : +# 2579| r2579_2(glval) = FunctionAddress[~String] : +# 2579| v2579_3(void) = Call[~String] : func:r2579_2, this:r2579_1 +# 2579| mu2579_4(unknown) = ^CallSideEffect : ~m? +# 2579| v2579_5(void) = ^IndirectReadSideEffect[-1] : &:r2579_1, ~m? +# 2579| mu2579_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2579_1 +# 2579| r2579_7(bool) = Constant[0] : +# 2579| v2579_8(void) = ConditionalBranch : r2579_7 +#-----| False -> Block 855 +#-----| True (back edge) -> Block 854 + +# 2581| Block 855 +# 2581| r2581_1(glval) = VariableAddress[x854] : +# 2581| mu2581_2(String) = Uninitialized[x854] : &:r2581_1 +# 2581| r2581_3(glval) = FunctionAddress[String] : +# 2581| v2581_4(void) = Call[String] : func:r2581_3, this:r2581_1 +# 2581| mu2581_5(unknown) = ^CallSideEffect : ~m? +# 2581| mu2581_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2581_1 +# 2582| r2582_1(glval) = VariableAddress[x854] : +# 2582| r2582_2(glval) = FunctionAddress[~String] : +# 2582| v2582_3(void) = Call[~String] : func:r2582_2, this:r2582_1 +# 2582| mu2582_4(unknown) = ^CallSideEffect : ~m? +# 2582| v2582_5(void) = ^IndirectReadSideEffect[-1] : &:r2582_1, ~m? +# 2582| mu2582_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2582_1 +# 2582| r2582_7(bool) = Constant[0] : +# 2582| v2582_8(void) = ConditionalBranch : r2582_7 +#-----| False -> Block 856 +#-----| True (back edge) -> Block 855 + +# 2584| Block 856 +# 2584| r2584_1(glval) = VariableAddress[x855] : +# 2584| mu2584_2(String) = Uninitialized[x855] : &:r2584_1 +# 2584| r2584_3(glval) = FunctionAddress[String] : +# 2584| v2584_4(void) = Call[String] : func:r2584_3, this:r2584_1 +# 2584| mu2584_5(unknown) = ^CallSideEffect : ~m? +# 2584| mu2584_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2584_1 +# 2585| r2585_1(glval) = VariableAddress[x855] : +# 2585| r2585_2(glval) = FunctionAddress[~String] : +# 2585| v2585_3(void) = Call[~String] : func:r2585_2, this:r2585_1 +# 2585| mu2585_4(unknown) = ^CallSideEffect : ~m? +# 2585| v2585_5(void) = ^IndirectReadSideEffect[-1] : &:r2585_1, ~m? +# 2585| mu2585_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2585_1 +# 2585| r2585_7(bool) = Constant[0] : +# 2585| v2585_8(void) = ConditionalBranch : r2585_7 +#-----| False -> Block 857 +#-----| True (back edge) -> Block 856 + +# 2587| Block 857 +# 2587| r2587_1(glval) = VariableAddress[x856] : +# 2587| mu2587_2(String) = Uninitialized[x856] : &:r2587_1 +# 2587| r2587_3(glval) = FunctionAddress[String] : +# 2587| v2587_4(void) = Call[String] : func:r2587_3, this:r2587_1 +# 2587| mu2587_5(unknown) = ^CallSideEffect : ~m? +# 2587| mu2587_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2587_1 +# 2588| r2588_1(glval) = VariableAddress[x856] : +# 2588| r2588_2(glval) = FunctionAddress[~String] : +# 2588| v2588_3(void) = Call[~String] : func:r2588_2, this:r2588_1 +# 2588| mu2588_4(unknown) = ^CallSideEffect : ~m? +# 2588| v2588_5(void) = ^IndirectReadSideEffect[-1] : &:r2588_1, ~m? +# 2588| mu2588_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2588_1 +# 2588| r2588_7(bool) = Constant[0] : +# 2588| v2588_8(void) = ConditionalBranch : r2588_7 +#-----| False -> Block 858 +#-----| True (back edge) -> Block 857 + +# 2590| Block 858 +# 2590| r2590_1(glval) = VariableAddress[x857] : +# 2590| mu2590_2(String) = Uninitialized[x857] : &:r2590_1 +# 2590| r2590_3(glval) = FunctionAddress[String] : +# 2590| v2590_4(void) = Call[String] : func:r2590_3, this:r2590_1 +# 2590| mu2590_5(unknown) = ^CallSideEffect : ~m? +# 2590| mu2590_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2590_1 +# 2591| r2591_1(glval) = VariableAddress[x857] : +# 2591| r2591_2(glval) = FunctionAddress[~String] : +# 2591| v2591_3(void) = Call[~String] : func:r2591_2, this:r2591_1 +# 2591| mu2591_4(unknown) = ^CallSideEffect : ~m? +# 2591| v2591_5(void) = ^IndirectReadSideEffect[-1] : &:r2591_1, ~m? +# 2591| mu2591_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2591_1 +# 2591| r2591_7(bool) = Constant[0] : +# 2591| v2591_8(void) = ConditionalBranch : r2591_7 +#-----| False -> Block 859 +#-----| True (back edge) -> Block 858 + +# 2593| Block 859 +# 2593| r2593_1(glval) = VariableAddress[x858] : +# 2593| mu2593_2(String) = Uninitialized[x858] : &:r2593_1 +# 2593| r2593_3(glval) = FunctionAddress[String] : +# 2593| v2593_4(void) = Call[String] : func:r2593_3, this:r2593_1 +# 2593| mu2593_5(unknown) = ^CallSideEffect : ~m? +# 2593| mu2593_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2593_1 +# 2594| r2594_1(glval) = VariableAddress[x858] : +# 2594| r2594_2(glval) = FunctionAddress[~String] : +# 2594| v2594_3(void) = Call[~String] : func:r2594_2, this:r2594_1 +# 2594| mu2594_4(unknown) = ^CallSideEffect : ~m? +# 2594| v2594_5(void) = ^IndirectReadSideEffect[-1] : &:r2594_1, ~m? +# 2594| mu2594_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2594_1 +# 2594| r2594_7(bool) = Constant[0] : +# 2594| v2594_8(void) = ConditionalBranch : r2594_7 +#-----| False -> Block 860 +#-----| True (back edge) -> Block 859 + +# 2596| Block 860 +# 2596| r2596_1(glval) = VariableAddress[x859] : +# 2596| mu2596_2(String) = Uninitialized[x859] : &:r2596_1 +# 2596| r2596_3(glval) = FunctionAddress[String] : +# 2596| v2596_4(void) = Call[String] : func:r2596_3, this:r2596_1 +# 2596| mu2596_5(unknown) = ^CallSideEffect : ~m? +# 2596| mu2596_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2596_1 +# 2597| r2597_1(glval) = VariableAddress[x859] : +# 2597| r2597_2(glval) = FunctionAddress[~String] : +# 2597| v2597_3(void) = Call[~String] : func:r2597_2, this:r2597_1 +# 2597| mu2597_4(unknown) = ^CallSideEffect : ~m? +# 2597| v2597_5(void) = ^IndirectReadSideEffect[-1] : &:r2597_1, ~m? +# 2597| mu2597_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2597_1 +# 2597| r2597_7(bool) = Constant[0] : +# 2597| v2597_8(void) = ConditionalBranch : r2597_7 +#-----| False -> Block 861 +#-----| True (back edge) -> Block 860 + +# 2599| Block 861 +# 2599| r2599_1(glval) = VariableAddress[x860] : +# 2599| mu2599_2(String) = Uninitialized[x860] : &:r2599_1 +# 2599| r2599_3(glval) = FunctionAddress[String] : +# 2599| v2599_4(void) = Call[String] : func:r2599_3, this:r2599_1 +# 2599| mu2599_5(unknown) = ^CallSideEffect : ~m? +# 2599| mu2599_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2599_1 +# 2600| r2600_1(glval) = VariableAddress[x860] : +# 2600| r2600_2(glval) = FunctionAddress[~String] : +# 2600| v2600_3(void) = Call[~String] : func:r2600_2, this:r2600_1 +# 2600| mu2600_4(unknown) = ^CallSideEffect : ~m? +# 2600| v2600_5(void) = ^IndirectReadSideEffect[-1] : &:r2600_1, ~m? +# 2600| mu2600_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2600_1 +# 2600| r2600_7(bool) = Constant[0] : +# 2600| v2600_8(void) = ConditionalBranch : r2600_7 +#-----| False -> Block 862 +#-----| True (back edge) -> Block 861 + +# 2602| Block 862 +# 2602| r2602_1(glval) = VariableAddress[x861] : +# 2602| mu2602_2(String) = Uninitialized[x861] : &:r2602_1 +# 2602| r2602_3(glval) = FunctionAddress[String] : +# 2602| v2602_4(void) = Call[String] : func:r2602_3, this:r2602_1 +# 2602| mu2602_5(unknown) = ^CallSideEffect : ~m? +# 2602| mu2602_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2602_1 +# 2603| r2603_1(glval) = VariableAddress[x861] : +# 2603| r2603_2(glval) = FunctionAddress[~String] : +# 2603| v2603_3(void) = Call[~String] : func:r2603_2, this:r2603_1 +# 2603| mu2603_4(unknown) = ^CallSideEffect : ~m? +# 2603| v2603_5(void) = ^IndirectReadSideEffect[-1] : &:r2603_1, ~m? +# 2603| mu2603_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2603_1 +# 2603| r2603_7(bool) = Constant[0] : +# 2603| v2603_8(void) = ConditionalBranch : r2603_7 +#-----| False -> Block 863 +#-----| True (back edge) -> Block 862 + +# 2605| Block 863 +# 2605| r2605_1(glval) = VariableAddress[x862] : +# 2605| mu2605_2(String) = Uninitialized[x862] : &:r2605_1 +# 2605| r2605_3(glval) = FunctionAddress[String] : +# 2605| v2605_4(void) = Call[String] : func:r2605_3, this:r2605_1 +# 2605| mu2605_5(unknown) = ^CallSideEffect : ~m? +# 2605| mu2605_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2605_1 +# 2606| r2606_1(glval) = VariableAddress[x862] : +# 2606| r2606_2(glval) = FunctionAddress[~String] : +# 2606| v2606_3(void) = Call[~String] : func:r2606_2, this:r2606_1 +# 2606| mu2606_4(unknown) = ^CallSideEffect : ~m? +# 2606| v2606_5(void) = ^IndirectReadSideEffect[-1] : &:r2606_1, ~m? +# 2606| mu2606_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2606_1 +# 2606| r2606_7(bool) = Constant[0] : +# 2606| v2606_8(void) = ConditionalBranch : r2606_7 +#-----| False -> Block 864 +#-----| True (back edge) -> Block 863 + +# 2608| Block 864 +# 2608| r2608_1(glval) = VariableAddress[x863] : +# 2608| mu2608_2(String) = Uninitialized[x863] : &:r2608_1 +# 2608| r2608_3(glval) = FunctionAddress[String] : +# 2608| v2608_4(void) = Call[String] : func:r2608_3, this:r2608_1 +# 2608| mu2608_5(unknown) = ^CallSideEffect : ~m? +# 2608| mu2608_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2608_1 +# 2609| r2609_1(glval) = VariableAddress[x863] : +# 2609| r2609_2(glval) = FunctionAddress[~String] : +# 2609| v2609_3(void) = Call[~String] : func:r2609_2, this:r2609_1 +# 2609| mu2609_4(unknown) = ^CallSideEffect : ~m? +# 2609| v2609_5(void) = ^IndirectReadSideEffect[-1] : &:r2609_1, ~m? +# 2609| mu2609_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2609_1 +# 2609| r2609_7(bool) = Constant[0] : +# 2609| v2609_8(void) = ConditionalBranch : r2609_7 +#-----| False -> Block 865 +#-----| True (back edge) -> Block 864 + +# 2611| Block 865 +# 2611| r2611_1(glval) = VariableAddress[x864] : +# 2611| mu2611_2(String) = Uninitialized[x864] : &:r2611_1 +# 2611| r2611_3(glval) = FunctionAddress[String] : +# 2611| v2611_4(void) = Call[String] : func:r2611_3, this:r2611_1 +# 2611| mu2611_5(unknown) = ^CallSideEffect : ~m? +# 2611| mu2611_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2611_1 +# 2612| r2612_1(glval) = VariableAddress[x864] : +# 2612| r2612_2(glval) = FunctionAddress[~String] : +# 2612| v2612_3(void) = Call[~String] : func:r2612_2, this:r2612_1 +# 2612| mu2612_4(unknown) = ^CallSideEffect : ~m? +# 2612| v2612_5(void) = ^IndirectReadSideEffect[-1] : &:r2612_1, ~m? +# 2612| mu2612_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2612_1 +# 2612| r2612_7(bool) = Constant[0] : +# 2612| v2612_8(void) = ConditionalBranch : r2612_7 +#-----| False -> Block 866 +#-----| True (back edge) -> Block 865 + +# 2614| Block 866 +# 2614| r2614_1(glval) = VariableAddress[x865] : +# 2614| mu2614_2(String) = Uninitialized[x865] : &:r2614_1 +# 2614| r2614_3(glval) = FunctionAddress[String] : +# 2614| v2614_4(void) = Call[String] : func:r2614_3, this:r2614_1 +# 2614| mu2614_5(unknown) = ^CallSideEffect : ~m? +# 2614| mu2614_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2614_1 +# 2615| r2615_1(glval) = VariableAddress[x865] : +# 2615| r2615_2(glval) = FunctionAddress[~String] : +# 2615| v2615_3(void) = Call[~String] : func:r2615_2, this:r2615_1 +# 2615| mu2615_4(unknown) = ^CallSideEffect : ~m? +# 2615| v2615_5(void) = ^IndirectReadSideEffect[-1] : &:r2615_1, ~m? +# 2615| mu2615_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2615_1 +# 2615| r2615_7(bool) = Constant[0] : +# 2615| v2615_8(void) = ConditionalBranch : r2615_7 +#-----| False -> Block 867 +#-----| True (back edge) -> Block 866 + +# 2617| Block 867 +# 2617| r2617_1(glval) = VariableAddress[x866] : +# 2617| mu2617_2(String) = Uninitialized[x866] : &:r2617_1 +# 2617| r2617_3(glval) = FunctionAddress[String] : +# 2617| v2617_4(void) = Call[String] : func:r2617_3, this:r2617_1 +# 2617| mu2617_5(unknown) = ^CallSideEffect : ~m? +# 2617| mu2617_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2617_1 +# 2618| r2618_1(glval) = VariableAddress[x866] : +# 2618| r2618_2(glval) = FunctionAddress[~String] : +# 2618| v2618_3(void) = Call[~String] : func:r2618_2, this:r2618_1 +# 2618| mu2618_4(unknown) = ^CallSideEffect : ~m? +# 2618| v2618_5(void) = ^IndirectReadSideEffect[-1] : &:r2618_1, ~m? +# 2618| mu2618_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2618_1 +# 2618| r2618_7(bool) = Constant[0] : +# 2618| v2618_8(void) = ConditionalBranch : r2618_7 +#-----| False -> Block 868 +#-----| True (back edge) -> Block 867 + +# 2620| Block 868 +# 2620| r2620_1(glval) = VariableAddress[x867] : +# 2620| mu2620_2(String) = Uninitialized[x867] : &:r2620_1 +# 2620| r2620_3(glval) = FunctionAddress[String] : +# 2620| v2620_4(void) = Call[String] : func:r2620_3, this:r2620_1 +# 2620| mu2620_5(unknown) = ^CallSideEffect : ~m? +# 2620| mu2620_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2620_1 +# 2621| r2621_1(glval) = VariableAddress[x867] : +# 2621| r2621_2(glval) = FunctionAddress[~String] : +# 2621| v2621_3(void) = Call[~String] : func:r2621_2, this:r2621_1 +# 2621| mu2621_4(unknown) = ^CallSideEffect : ~m? +# 2621| v2621_5(void) = ^IndirectReadSideEffect[-1] : &:r2621_1, ~m? +# 2621| mu2621_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2621_1 +# 2621| r2621_7(bool) = Constant[0] : +# 2621| v2621_8(void) = ConditionalBranch : r2621_7 +#-----| False -> Block 869 +#-----| True (back edge) -> Block 868 + +# 2623| Block 869 +# 2623| r2623_1(glval) = VariableAddress[x868] : +# 2623| mu2623_2(String) = Uninitialized[x868] : &:r2623_1 +# 2623| r2623_3(glval) = FunctionAddress[String] : +# 2623| v2623_4(void) = Call[String] : func:r2623_3, this:r2623_1 +# 2623| mu2623_5(unknown) = ^CallSideEffect : ~m? +# 2623| mu2623_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2623_1 +# 2624| r2624_1(glval) = VariableAddress[x868] : +# 2624| r2624_2(glval) = FunctionAddress[~String] : +# 2624| v2624_3(void) = Call[~String] : func:r2624_2, this:r2624_1 +# 2624| mu2624_4(unknown) = ^CallSideEffect : ~m? +# 2624| v2624_5(void) = ^IndirectReadSideEffect[-1] : &:r2624_1, ~m? +# 2624| mu2624_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2624_1 +# 2624| r2624_7(bool) = Constant[0] : +# 2624| v2624_8(void) = ConditionalBranch : r2624_7 +#-----| False -> Block 870 +#-----| True (back edge) -> Block 869 + +# 2626| Block 870 +# 2626| r2626_1(glval) = VariableAddress[x869] : +# 2626| mu2626_2(String) = Uninitialized[x869] : &:r2626_1 +# 2626| r2626_3(glval) = FunctionAddress[String] : +# 2626| v2626_4(void) = Call[String] : func:r2626_3, this:r2626_1 +# 2626| mu2626_5(unknown) = ^CallSideEffect : ~m? +# 2626| mu2626_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2626_1 +# 2627| r2627_1(glval) = VariableAddress[x869] : +# 2627| r2627_2(glval) = FunctionAddress[~String] : +# 2627| v2627_3(void) = Call[~String] : func:r2627_2, this:r2627_1 +# 2627| mu2627_4(unknown) = ^CallSideEffect : ~m? +# 2627| v2627_5(void) = ^IndirectReadSideEffect[-1] : &:r2627_1, ~m? +# 2627| mu2627_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2627_1 +# 2627| r2627_7(bool) = Constant[0] : +# 2627| v2627_8(void) = ConditionalBranch : r2627_7 +#-----| False -> Block 871 +#-----| True (back edge) -> Block 870 + +# 2629| Block 871 +# 2629| r2629_1(glval) = VariableAddress[x870] : +# 2629| mu2629_2(String) = Uninitialized[x870] : &:r2629_1 +# 2629| r2629_3(glval) = FunctionAddress[String] : +# 2629| v2629_4(void) = Call[String] : func:r2629_3, this:r2629_1 +# 2629| mu2629_5(unknown) = ^CallSideEffect : ~m? +# 2629| mu2629_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2629_1 +# 2630| r2630_1(glval) = VariableAddress[x870] : +# 2630| r2630_2(glval) = FunctionAddress[~String] : +# 2630| v2630_3(void) = Call[~String] : func:r2630_2, this:r2630_1 +# 2630| mu2630_4(unknown) = ^CallSideEffect : ~m? +# 2630| v2630_5(void) = ^IndirectReadSideEffect[-1] : &:r2630_1, ~m? +# 2630| mu2630_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2630_1 +# 2630| r2630_7(bool) = Constant[0] : +# 2630| v2630_8(void) = ConditionalBranch : r2630_7 +#-----| False -> Block 872 +#-----| True (back edge) -> Block 871 + +# 2632| Block 872 +# 2632| r2632_1(glval) = VariableAddress[x871] : +# 2632| mu2632_2(String) = Uninitialized[x871] : &:r2632_1 +# 2632| r2632_3(glval) = FunctionAddress[String] : +# 2632| v2632_4(void) = Call[String] : func:r2632_3, this:r2632_1 +# 2632| mu2632_5(unknown) = ^CallSideEffect : ~m? +# 2632| mu2632_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2632_1 +# 2633| r2633_1(glval) = VariableAddress[x871] : +# 2633| r2633_2(glval) = FunctionAddress[~String] : +# 2633| v2633_3(void) = Call[~String] : func:r2633_2, this:r2633_1 +# 2633| mu2633_4(unknown) = ^CallSideEffect : ~m? +# 2633| v2633_5(void) = ^IndirectReadSideEffect[-1] : &:r2633_1, ~m? +# 2633| mu2633_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2633_1 +# 2633| r2633_7(bool) = Constant[0] : +# 2633| v2633_8(void) = ConditionalBranch : r2633_7 +#-----| False -> Block 873 +#-----| True (back edge) -> Block 872 + +# 2635| Block 873 +# 2635| r2635_1(glval) = VariableAddress[x872] : +# 2635| mu2635_2(String) = Uninitialized[x872] : &:r2635_1 +# 2635| r2635_3(glval) = FunctionAddress[String] : +# 2635| v2635_4(void) = Call[String] : func:r2635_3, this:r2635_1 +# 2635| mu2635_5(unknown) = ^CallSideEffect : ~m? +# 2635| mu2635_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2635_1 +# 2636| r2636_1(glval) = VariableAddress[x872] : +# 2636| r2636_2(glval) = FunctionAddress[~String] : +# 2636| v2636_3(void) = Call[~String] : func:r2636_2, this:r2636_1 +# 2636| mu2636_4(unknown) = ^CallSideEffect : ~m? +# 2636| v2636_5(void) = ^IndirectReadSideEffect[-1] : &:r2636_1, ~m? +# 2636| mu2636_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2636_1 +# 2636| r2636_7(bool) = Constant[0] : +# 2636| v2636_8(void) = ConditionalBranch : r2636_7 +#-----| False -> Block 874 +#-----| True (back edge) -> Block 873 + +# 2638| Block 874 +# 2638| r2638_1(glval) = VariableAddress[x873] : +# 2638| mu2638_2(String) = Uninitialized[x873] : &:r2638_1 +# 2638| r2638_3(glval) = FunctionAddress[String] : +# 2638| v2638_4(void) = Call[String] : func:r2638_3, this:r2638_1 +# 2638| mu2638_5(unknown) = ^CallSideEffect : ~m? +# 2638| mu2638_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2638_1 +# 2639| r2639_1(glval) = VariableAddress[x873] : +# 2639| r2639_2(glval) = FunctionAddress[~String] : +# 2639| v2639_3(void) = Call[~String] : func:r2639_2, this:r2639_1 +# 2639| mu2639_4(unknown) = ^CallSideEffect : ~m? +# 2639| v2639_5(void) = ^IndirectReadSideEffect[-1] : &:r2639_1, ~m? +# 2639| mu2639_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2639_1 +# 2639| r2639_7(bool) = Constant[0] : +# 2639| v2639_8(void) = ConditionalBranch : r2639_7 +#-----| False -> Block 875 +#-----| True (back edge) -> Block 874 + +# 2641| Block 875 +# 2641| r2641_1(glval) = VariableAddress[x874] : +# 2641| mu2641_2(String) = Uninitialized[x874] : &:r2641_1 +# 2641| r2641_3(glval) = FunctionAddress[String] : +# 2641| v2641_4(void) = Call[String] : func:r2641_3, this:r2641_1 +# 2641| mu2641_5(unknown) = ^CallSideEffect : ~m? +# 2641| mu2641_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2641_1 +# 2642| r2642_1(glval) = VariableAddress[x874] : +# 2642| r2642_2(glval) = FunctionAddress[~String] : +# 2642| v2642_3(void) = Call[~String] : func:r2642_2, this:r2642_1 +# 2642| mu2642_4(unknown) = ^CallSideEffect : ~m? +# 2642| v2642_5(void) = ^IndirectReadSideEffect[-1] : &:r2642_1, ~m? +# 2642| mu2642_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2642_1 +# 2642| r2642_7(bool) = Constant[0] : +# 2642| v2642_8(void) = ConditionalBranch : r2642_7 +#-----| False -> Block 876 +#-----| True (back edge) -> Block 875 + +# 2644| Block 876 +# 2644| r2644_1(glval) = VariableAddress[x875] : +# 2644| mu2644_2(String) = Uninitialized[x875] : &:r2644_1 +# 2644| r2644_3(glval) = FunctionAddress[String] : +# 2644| v2644_4(void) = Call[String] : func:r2644_3, this:r2644_1 +# 2644| mu2644_5(unknown) = ^CallSideEffect : ~m? +# 2644| mu2644_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2644_1 +# 2645| r2645_1(glval) = VariableAddress[x875] : +# 2645| r2645_2(glval) = FunctionAddress[~String] : +# 2645| v2645_3(void) = Call[~String] : func:r2645_2, this:r2645_1 +# 2645| mu2645_4(unknown) = ^CallSideEffect : ~m? +# 2645| v2645_5(void) = ^IndirectReadSideEffect[-1] : &:r2645_1, ~m? +# 2645| mu2645_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2645_1 +# 2645| r2645_7(bool) = Constant[0] : +# 2645| v2645_8(void) = ConditionalBranch : r2645_7 +#-----| False -> Block 877 +#-----| True (back edge) -> Block 876 + +# 2647| Block 877 +# 2647| r2647_1(glval) = VariableAddress[x876] : +# 2647| mu2647_2(String) = Uninitialized[x876] : &:r2647_1 +# 2647| r2647_3(glval) = FunctionAddress[String] : +# 2647| v2647_4(void) = Call[String] : func:r2647_3, this:r2647_1 +# 2647| mu2647_5(unknown) = ^CallSideEffect : ~m? +# 2647| mu2647_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2647_1 +# 2648| r2648_1(glval) = VariableAddress[x876] : +# 2648| r2648_2(glval) = FunctionAddress[~String] : +# 2648| v2648_3(void) = Call[~String] : func:r2648_2, this:r2648_1 +# 2648| mu2648_4(unknown) = ^CallSideEffect : ~m? +# 2648| v2648_5(void) = ^IndirectReadSideEffect[-1] : &:r2648_1, ~m? +# 2648| mu2648_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2648_1 +# 2648| r2648_7(bool) = Constant[0] : +# 2648| v2648_8(void) = ConditionalBranch : r2648_7 +#-----| False -> Block 878 +#-----| True (back edge) -> Block 877 + +# 2650| Block 878 +# 2650| r2650_1(glval) = VariableAddress[x877] : +# 2650| mu2650_2(String) = Uninitialized[x877] : &:r2650_1 +# 2650| r2650_3(glval) = FunctionAddress[String] : +# 2650| v2650_4(void) = Call[String] : func:r2650_3, this:r2650_1 +# 2650| mu2650_5(unknown) = ^CallSideEffect : ~m? +# 2650| mu2650_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2650_1 +# 2651| r2651_1(glval) = VariableAddress[x877] : +# 2651| r2651_2(glval) = FunctionAddress[~String] : +# 2651| v2651_3(void) = Call[~String] : func:r2651_2, this:r2651_1 +# 2651| mu2651_4(unknown) = ^CallSideEffect : ~m? +# 2651| v2651_5(void) = ^IndirectReadSideEffect[-1] : &:r2651_1, ~m? +# 2651| mu2651_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2651_1 +# 2651| r2651_7(bool) = Constant[0] : +# 2651| v2651_8(void) = ConditionalBranch : r2651_7 +#-----| False -> Block 879 +#-----| True (back edge) -> Block 878 + +# 2653| Block 879 +# 2653| r2653_1(glval) = VariableAddress[x878] : +# 2653| mu2653_2(String) = Uninitialized[x878] : &:r2653_1 +# 2653| r2653_3(glval) = FunctionAddress[String] : +# 2653| v2653_4(void) = Call[String] : func:r2653_3, this:r2653_1 +# 2653| mu2653_5(unknown) = ^CallSideEffect : ~m? +# 2653| mu2653_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2653_1 +# 2654| r2654_1(glval) = VariableAddress[x878] : +# 2654| r2654_2(glval) = FunctionAddress[~String] : +# 2654| v2654_3(void) = Call[~String] : func:r2654_2, this:r2654_1 +# 2654| mu2654_4(unknown) = ^CallSideEffect : ~m? +# 2654| v2654_5(void) = ^IndirectReadSideEffect[-1] : &:r2654_1, ~m? +# 2654| mu2654_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2654_1 +# 2654| r2654_7(bool) = Constant[0] : +# 2654| v2654_8(void) = ConditionalBranch : r2654_7 +#-----| False -> Block 880 +#-----| True (back edge) -> Block 879 + +# 2656| Block 880 +# 2656| r2656_1(glval) = VariableAddress[x879] : +# 2656| mu2656_2(String) = Uninitialized[x879] : &:r2656_1 +# 2656| r2656_3(glval) = FunctionAddress[String] : +# 2656| v2656_4(void) = Call[String] : func:r2656_3, this:r2656_1 +# 2656| mu2656_5(unknown) = ^CallSideEffect : ~m? +# 2656| mu2656_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2656_1 +# 2657| r2657_1(glval) = VariableAddress[x879] : +# 2657| r2657_2(glval) = FunctionAddress[~String] : +# 2657| v2657_3(void) = Call[~String] : func:r2657_2, this:r2657_1 +# 2657| mu2657_4(unknown) = ^CallSideEffect : ~m? +# 2657| v2657_5(void) = ^IndirectReadSideEffect[-1] : &:r2657_1, ~m? +# 2657| mu2657_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2657_1 +# 2657| r2657_7(bool) = Constant[0] : +# 2657| v2657_8(void) = ConditionalBranch : r2657_7 +#-----| False -> Block 881 +#-----| True (back edge) -> Block 880 + +# 2659| Block 881 +# 2659| r2659_1(glval) = VariableAddress[x880] : +# 2659| mu2659_2(String) = Uninitialized[x880] : &:r2659_1 +# 2659| r2659_3(glval) = FunctionAddress[String] : +# 2659| v2659_4(void) = Call[String] : func:r2659_3, this:r2659_1 +# 2659| mu2659_5(unknown) = ^CallSideEffect : ~m? +# 2659| mu2659_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2659_1 +# 2660| r2660_1(glval) = VariableAddress[x880] : +# 2660| r2660_2(glval) = FunctionAddress[~String] : +# 2660| v2660_3(void) = Call[~String] : func:r2660_2, this:r2660_1 +# 2660| mu2660_4(unknown) = ^CallSideEffect : ~m? +# 2660| v2660_5(void) = ^IndirectReadSideEffect[-1] : &:r2660_1, ~m? +# 2660| mu2660_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2660_1 +# 2660| r2660_7(bool) = Constant[0] : +# 2660| v2660_8(void) = ConditionalBranch : r2660_7 +#-----| False -> Block 882 +#-----| True (back edge) -> Block 881 + +# 2662| Block 882 +# 2662| r2662_1(glval) = VariableAddress[x881] : +# 2662| mu2662_2(String) = Uninitialized[x881] : &:r2662_1 +# 2662| r2662_3(glval) = FunctionAddress[String] : +# 2662| v2662_4(void) = Call[String] : func:r2662_3, this:r2662_1 +# 2662| mu2662_5(unknown) = ^CallSideEffect : ~m? +# 2662| mu2662_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2662_1 +# 2663| r2663_1(glval) = VariableAddress[x881] : +# 2663| r2663_2(glval) = FunctionAddress[~String] : +# 2663| v2663_3(void) = Call[~String] : func:r2663_2, this:r2663_1 +# 2663| mu2663_4(unknown) = ^CallSideEffect : ~m? +# 2663| v2663_5(void) = ^IndirectReadSideEffect[-1] : &:r2663_1, ~m? +# 2663| mu2663_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2663_1 +# 2663| r2663_7(bool) = Constant[0] : +# 2663| v2663_8(void) = ConditionalBranch : r2663_7 +#-----| False -> Block 883 +#-----| True (back edge) -> Block 882 + +# 2665| Block 883 +# 2665| r2665_1(glval) = VariableAddress[x882] : +# 2665| mu2665_2(String) = Uninitialized[x882] : &:r2665_1 +# 2665| r2665_3(glval) = FunctionAddress[String] : +# 2665| v2665_4(void) = Call[String] : func:r2665_3, this:r2665_1 +# 2665| mu2665_5(unknown) = ^CallSideEffect : ~m? +# 2665| mu2665_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2665_1 +# 2666| r2666_1(glval) = VariableAddress[x882] : +# 2666| r2666_2(glval) = FunctionAddress[~String] : +# 2666| v2666_3(void) = Call[~String] : func:r2666_2, this:r2666_1 +# 2666| mu2666_4(unknown) = ^CallSideEffect : ~m? +# 2666| v2666_5(void) = ^IndirectReadSideEffect[-1] : &:r2666_1, ~m? +# 2666| mu2666_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2666_1 +# 2666| r2666_7(bool) = Constant[0] : +# 2666| v2666_8(void) = ConditionalBranch : r2666_7 +#-----| False -> Block 884 +#-----| True (back edge) -> Block 883 + +# 2668| Block 884 +# 2668| r2668_1(glval) = VariableAddress[x883] : +# 2668| mu2668_2(String) = Uninitialized[x883] : &:r2668_1 +# 2668| r2668_3(glval) = FunctionAddress[String] : +# 2668| v2668_4(void) = Call[String] : func:r2668_3, this:r2668_1 +# 2668| mu2668_5(unknown) = ^CallSideEffect : ~m? +# 2668| mu2668_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2668_1 +# 2669| r2669_1(glval) = VariableAddress[x883] : +# 2669| r2669_2(glval) = FunctionAddress[~String] : +# 2669| v2669_3(void) = Call[~String] : func:r2669_2, this:r2669_1 +# 2669| mu2669_4(unknown) = ^CallSideEffect : ~m? +# 2669| v2669_5(void) = ^IndirectReadSideEffect[-1] : &:r2669_1, ~m? +# 2669| mu2669_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2669_1 +# 2669| r2669_7(bool) = Constant[0] : +# 2669| v2669_8(void) = ConditionalBranch : r2669_7 +#-----| False -> Block 885 +#-----| True (back edge) -> Block 884 + +# 2671| Block 885 +# 2671| r2671_1(glval) = VariableAddress[x884] : +# 2671| mu2671_2(String) = Uninitialized[x884] : &:r2671_1 +# 2671| r2671_3(glval) = FunctionAddress[String] : +# 2671| v2671_4(void) = Call[String] : func:r2671_3, this:r2671_1 +# 2671| mu2671_5(unknown) = ^CallSideEffect : ~m? +# 2671| mu2671_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2671_1 +# 2672| r2672_1(glval) = VariableAddress[x884] : +# 2672| r2672_2(glval) = FunctionAddress[~String] : +# 2672| v2672_3(void) = Call[~String] : func:r2672_2, this:r2672_1 +# 2672| mu2672_4(unknown) = ^CallSideEffect : ~m? +# 2672| v2672_5(void) = ^IndirectReadSideEffect[-1] : &:r2672_1, ~m? +# 2672| mu2672_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2672_1 +# 2672| r2672_7(bool) = Constant[0] : +# 2672| v2672_8(void) = ConditionalBranch : r2672_7 +#-----| False -> Block 886 +#-----| True (back edge) -> Block 885 + +# 2674| Block 886 +# 2674| r2674_1(glval) = VariableAddress[x885] : +# 2674| mu2674_2(String) = Uninitialized[x885] : &:r2674_1 +# 2674| r2674_3(glval) = FunctionAddress[String] : +# 2674| v2674_4(void) = Call[String] : func:r2674_3, this:r2674_1 +# 2674| mu2674_5(unknown) = ^CallSideEffect : ~m? +# 2674| mu2674_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2674_1 +# 2675| r2675_1(glval) = VariableAddress[x885] : +# 2675| r2675_2(glval) = FunctionAddress[~String] : +# 2675| v2675_3(void) = Call[~String] : func:r2675_2, this:r2675_1 +# 2675| mu2675_4(unknown) = ^CallSideEffect : ~m? +# 2675| v2675_5(void) = ^IndirectReadSideEffect[-1] : &:r2675_1, ~m? +# 2675| mu2675_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2675_1 +# 2675| r2675_7(bool) = Constant[0] : +# 2675| v2675_8(void) = ConditionalBranch : r2675_7 +#-----| False -> Block 887 +#-----| True (back edge) -> Block 886 + +# 2677| Block 887 +# 2677| r2677_1(glval) = VariableAddress[x886] : +# 2677| mu2677_2(String) = Uninitialized[x886] : &:r2677_1 +# 2677| r2677_3(glval) = FunctionAddress[String] : +# 2677| v2677_4(void) = Call[String] : func:r2677_3, this:r2677_1 +# 2677| mu2677_5(unknown) = ^CallSideEffect : ~m? +# 2677| mu2677_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2677_1 +# 2678| r2678_1(glval) = VariableAddress[x886] : +# 2678| r2678_2(glval) = FunctionAddress[~String] : +# 2678| v2678_3(void) = Call[~String] : func:r2678_2, this:r2678_1 +# 2678| mu2678_4(unknown) = ^CallSideEffect : ~m? +# 2678| v2678_5(void) = ^IndirectReadSideEffect[-1] : &:r2678_1, ~m? +# 2678| mu2678_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2678_1 +# 2678| r2678_7(bool) = Constant[0] : +# 2678| v2678_8(void) = ConditionalBranch : r2678_7 +#-----| False -> Block 888 +#-----| True (back edge) -> Block 887 + +# 2680| Block 888 +# 2680| r2680_1(glval) = VariableAddress[x887] : +# 2680| mu2680_2(String) = Uninitialized[x887] : &:r2680_1 +# 2680| r2680_3(glval) = FunctionAddress[String] : +# 2680| v2680_4(void) = Call[String] : func:r2680_3, this:r2680_1 +# 2680| mu2680_5(unknown) = ^CallSideEffect : ~m? +# 2680| mu2680_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2680_1 +# 2681| r2681_1(glval) = VariableAddress[x887] : +# 2681| r2681_2(glval) = FunctionAddress[~String] : +# 2681| v2681_3(void) = Call[~String] : func:r2681_2, this:r2681_1 +# 2681| mu2681_4(unknown) = ^CallSideEffect : ~m? +# 2681| v2681_5(void) = ^IndirectReadSideEffect[-1] : &:r2681_1, ~m? +# 2681| mu2681_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2681_1 +# 2681| r2681_7(bool) = Constant[0] : +# 2681| v2681_8(void) = ConditionalBranch : r2681_7 +#-----| False -> Block 889 +#-----| True (back edge) -> Block 888 + +# 2683| Block 889 +# 2683| r2683_1(glval) = VariableAddress[x888] : +# 2683| mu2683_2(String) = Uninitialized[x888] : &:r2683_1 +# 2683| r2683_3(glval) = FunctionAddress[String] : +# 2683| v2683_4(void) = Call[String] : func:r2683_3, this:r2683_1 +# 2683| mu2683_5(unknown) = ^CallSideEffect : ~m? +# 2683| mu2683_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2683_1 +# 2684| r2684_1(glval) = VariableAddress[x888] : +# 2684| r2684_2(glval) = FunctionAddress[~String] : +# 2684| v2684_3(void) = Call[~String] : func:r2684_2, this:r2684_1 +# 2684| mu2684_4(unknown) = ^CallSideEffect : ~m? +# 2684| v2684_5(void) = ^IndirectReadSideEffect[-1] : &:r2684_1, ~m? +# 2684| mu2684_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2684_1 +# 2684| r2684_7(bool) = Constant[0] : +# 2684| v2684_8(void) = ConditionalBranch : r2684_7 +#-----| False -> Block 890 +#-----| True (back edge) -> Block 889 + +# 2686| Block 890 +# 2686| r2686_1(glval) = VariableAddress[x889] : +# 2686| mu2686_2(String) = Uninitialized[x889] : &:r2686_1 +# 2686| r2686_3(glval) = FunctionAddress[String] : +# 2686| v2686_4(void) = Call[String] : func:r2686_3, this:r2686_1 +# 2686| mu2686_5(unknown) = ^CallSideEffect : ~m? +# 2686| mu2686_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2686_1 +# 2687| r2687_1(glval) = VariableAddress[x889] : +# 2687| r2687_2(glval) = FunctionAddress[~String] : +# 2687| v2687_3(void) = Call[~String] : func:r2687_2, this:r2687_1 +# 2687| mu2687_4(unknown) = ^CallSideEffect : ~m? +# 2687| v2687_5(void) = ^IndirectReadSideEffect[-1] : &:r2687_1, ~m? +# 2687| mu2687_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2687_1 +# 2687| r2687_7(bool) = Constant[0] : +# 2687| v2687_8(void) = ConditionalBranch : r2687_7 +#-----| False -> Block 891 +#-----| True (back edge) -> Block 890 + +# 2689| Block 891 +# 2689| r2689_1(glval) = VariableAddress[x890] : +# 2689| mu2689_2(String) = Uninitialized[x890] : &:r2689_1 +# 2689| r2689_3(glval) = FunctionAddress[String] : +# 2689| v2689_4(void) = Call[String] : func:r2689_3, this:r2689_1 +# 2689| mu2689_5(unknown) = ^CallSideEffect : ~m? +# 2689| mu2689_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2689_1 +# 2690| r2690_1(glval) = VariableAddress[x890] : +# 2690| r2690_2(glval) = FunctionAddress[~String] : +# 2690| v2690_3(void) = Call[~String] : func:r2690_2, this:r2690_1 +# 2690| mu2690_4(unknown) = ^CallSideEffect : ~m? +# 2690| v2690_5(void) = ^IndirectReadSideEffect[-1] : &:r2690_1, ~m? +# 2690| mu2690_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2690_1 +# 2690| r2690_7(bool) = Constant[0] : +# 2690| v2690_8(void) = ConditionalBranch : r2690_7 +#-----| False -> Block 892 +#-----| True (back edge) -> Block 891 + +# 2692| Block 892 +# 2692| r2692_1(glval) = VariableAddress[x891] : +# 2692| mu2692_2(String) = Uninitialized[x891] : &:r2692_1 +# 2692| r2692_3(glval) = FunctionAddress[String] : +# 2692| v2692_4(void) = Call[String] : func:r2692_3, this:r2692_1 +# 2692| mu2692_5(unknown) = ^CallSideEffect : ~m? +# 2692| mu2692_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2692_1 +# 2693| r2693_1(glval) = VariableAddress[x891] : +# 2693| r2693_2(glval) = FunctionAddress[~String] : +# 2693| v2693_3(void) = Call[~String] : func:r2693_2, this:r2693_1 +# 2693| mu2693_4(unknown) = ^CallSideEffect : ~m? +# 2693| v2693_5(void) = ^IndirectReadSideEffect[-1] : &:r2693_1, ~m? +# 2693| mu2693_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2693_1 +# 2693| r2693_7(bool) = Constant[0] : +# 2693| v2693_8(void) = ConditionalBranch : r2693_7 +#-----| False -> Block 893 +#-----| True (back edge) -> Block 892 + +# 2695| Block 893 +# 2695| r2695_1(glval) = VariableAddress[x892] : +# 2695| mu2695_2(String) = Uninitialized[x892] : &:r2695_1 +# 2695| r2695_3(glval) = FunctionAddress[String] : +# 2695| v2695_4(void) = Call[String] : func:r2695_3, this:r2695_1 +# 2695| mu2695_5(unknown) = ^CallSideEffect : ~m? +# 2695| mu2695_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2695_1 +# 2696| r2696_1(glval) = VariableAddress[x892] : +# 2696| r2696_2(glval) = FunctionAddress[~String] : +# 2696| v2696_3(void) = Call[~String] : func:r2696_2, this:r2696_1 +# 2696| mu2696_4(unknown) = ^CallSideEffect : ~m? +# 2696| v2696_5(void) = ^IndirectReadSideEffect[-1] : &:r2696_1, ~m? +# 2696| mu2696_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2696_1 +# 2696| r2696_7(bool) = Constant[0] : +# 2696| v2696_8(void) = ConditionalBranch : r2696_7 +#-----| False -> Block 894 +#-----| True (back edge) -> Block 893 + +# 2698| Block 894 +# 2698| r2698_1(glval) = VariableAddress[x893] : +# 2698| mu2698_2(String) = Uninitialized[x893] : &:r2698_1 +# 2698| r2698_3(glval) = FunctionAddress[String] : +# 2698| v2698_4(void) = Call[String] : func:r2698_3, this:r2698_1 +# 2698| mu2698_5(unknown) = ^CallSideEffect : ~m? +# 2698| mu2698_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2698_1 +# 2699| r2699_1(glval) = VariableAddress[x893] : +# 2699| r2699_2(glval) = FunctionAddress[~String] : +# 2699| v2699_3(void) = Call[~String] : func:r2699_2, this:r2699_1 +# 2699| mu2699_4(unknown) = ^CallSideEffect : ~m? +# 2699| v2699_5(void) = ^IndirectReadSideEffect[-1] : &:r2699_1, ~m? +# 2699| mu2699_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2699_1 +# 2699| r2699_7(bool) = Constant[0] : +# 2699| v2699_8(void) = ConditionalBranch : r2699_7 +#-----| False -> Block 895 +#-----| True (back edge) -> Block 894 + +# 2701| Block 895 +# 2701| r2701_1(glval) = VariableAddress[x894] : +# 2701| mu2701_2(String) = Uninitialized[x894] : &:r2701_1 +# 2701| r2701_3(glval) = FunctionAddress[String] : +# 2701| v2701_4(void) = Call[String] : func:r2701_3, this:r2701_1 +# 2701| mu2701_5(unknown) = ^CallSideEffect : ~m? +# 2701| mu2701_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2701_1 +# 2702| r2702_1(glval) = VariableAddress[x894] : +# 2702| r2702_2(glval) = FunctionAddress[~String] : +# 2702| v2702_3(void) = Call[~String] : func:r2702_2, this:r2702_1 +# 2702| mu2702_4(unknown) = ^CallSideEffect : ~m? +# 2702| v2702_5(void) = ^IndirectReadSideEffect[-1] : &:r2702_1, ~m? +# 2702| mu2702_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2702_1 +# 2702| r2702_7(bool) = Constant[0] : +# 2702| v2702_8(void) = ConditionalBranch : r2702_7 +#-----| False -> Block 896 +#-----| True (back edge) -> Block 895 + +# 2704| Block 896 +# 2704| r2704_1(glval) = VariableAddress[x895] : +# 2704| mu2704_2(String) = Uninitialized[x895] : &:r2704_1 +# 2704| r2704_3(glval) = FunctionAddress[String] : +# 2704| v2704_4(void) = Call[String] : func:r2704_3, this:r2704_1 +# 2704| mu2704_5(unknown) = ^CallSideEffect : ~m? +# 2704| mu2704_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2704_1 +# 2705| r2705_1(glval) = VariableAddress[x895] : +# 2705| r2705_2(glval) = FunctionAddress[~String] : +# 2705| v2705_3(void) = Call[~String] : func:r2705_2, this:r2705_1 +# 2705| mu2705_4(unknown) = ^CallSideEffect : ~m? +# 2705| v2705_5(void) = ^IndirectReadSideEffect[-1] : &:r2705_1, ~m? +# 2705| mu2705_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2705_1 +# 2705| r2705_7(bool) = Constant[0] : +# 2705| v2705_8(void) = ConditionalBranch : r2705_7 +#-----| False -> Block 897 +#-----| True (back edge) -> Block 896 + +# 2707| Block 897 +# 2707| r2707_1(glval) = VariableAddress[x896] : +# 2707| mu2707_2(String) = Uninitialized[x896] : &:r2707_1 +# 2707| r2707_3(glval) = FunctionAddress[String] : +# 2707| v2707_4(void) = Call[String] : func:r2707_3, this:r2707_1 +# 2707| mu2707_5(unknown) = ^CallSideEffect : ~m? +# 2707| mu2707_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2707_1 +# 2708| r2708_1(glval) = VariableAddress[x896] : +# 2708| r2708_2(glval) = FunctionAddress[~String] : +# 2708| v2708_3(void) = Call[~String] : func:r2708_2, this:r2708_1 +# 2708| mu2708_4(unknown) = ^CallSideEffect : ~m? +# 2708| v2708_5(void) = ^IndirectReadSideEffect[-1] : &:r2708_1, ~m? +# 2708| mu2708_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2708_1 +# 2708| r2708_7(bool) = Constant[0] : +# 2708| v2708_8(void) = ConditionalBranch : r2708_7 +#-----| False -> Block 898 +#-----| True (back edge) -> Block 897 + +# 2710| Block 898 +# 2710| r2710_1(glval) = VariableAddress[x897] : +# 2710| mu2710_2(String) = Uninitialized[x897] : &:r2710_1 +# 2710| r2710_3(glval) = FunctionAddress[String] : +# 2710| v2710_4(void) = Call[String] : func:r2710_3, this:r2710_1 +# 2710| mu2710_5(unknown) = ^CallSideEffect : ~m? +# 2710| mu2710_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2710_1 +# 2711| r2711_1(glval) = VariableAddress[x897] : +# 2711| r2711_2(glval) = FunctionAddress[~String] : +# 2711| v2711_3(void) = Call[~String] : func:r2711_2, this:r2711_1 +# 2711| mu2711_4(unknown) = ^CallSideEffect : ~m? +# 2711| v2711_5(void) = ^IndirectReadSideEffect[-1] : &:r2711_1, ~m? +# 2711| mu2711_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2711_1 +# 2711| r2711_7(bool) = Constant[0] : +# 2711| v2711_8(void) = ConditionalBranch : r2711_7 +#-----| False -> Block 899 +#-----| True (back edge) -> Block 898 + +# 2713| Block 899 +# 2713| r2713_1(glval) = VariableAddress[x898] : +# 2713| mu2713_2(String) = Uninitialized[x898] : &:r2713_1 +# 2713| r2713_3(glval) = FunctionAddress[String] : +# 2713| v2713_4(void) = Call[String] : func:r2713_3, this:r2713_1 +# 2713| mu2713_5(unknown) = ^CallSideEffect : ~m? +# 2713| mu2713_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2713_1 +# 2714| r2714_1(glval) = VariableAddress[x898] : +# 2714| r2714_2(glval) = FunctionAddress[~String] : +# 2714| v2714_3(void) = Call[~String] : func:r2714_2, this:r2714_1 +# 2714| mu2714_4(unknown) = ^CallSideEffect : ~m? +# 2714| v2714_5(void) = ^IndirectReadSideEffect[-1] : &:r2714_1, ~m? +# 2714| mu2714_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2714_1 +# 2714| r2714_7(bool) = Constant[0] : +# 2714| v2714_8(void) = ConditionalBranch : r2714_7 +#-----| False -> Block 900 +#-----| True (back edge) -> Block 899 + +# 2716| Block 900 +# 2716| r2716_1(glval) = VariableAddress[x899] : +# 2716| mu2716_2(String) = Uninitialized[x899] : &:r2716_1 +# 2716| r2716_3(glval) = FunctionAddress[String] : +# 2716| v2716_4(void) = Call[String] : func:r2716_3, this:r2716_1 +# 2716| mu2716_5(unknown) = ^CallSideEffect : ~m? +# 2716| mu2716_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2716_1 +# 2717| r2717_1(glval) = VariableAddress[x899] : +# 2717| r2717_2(glval) = FunctionAddress[~String] : +# 2717| v2717_3(void) = Call[~String] : func:r2717_2, this:r2717_1 +# 2717| mu2717_4(unknown) = ^CallSideEffect : ~m? +# 2717| v2717_5(void) = ^IndirectReadSideEffect[-1] : &:r2717_1, ~m? +# 2717| mu2717_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2717_1 +# 2717| r2717_7(bool) = Constant[0] : +# 2717| v2717_8(void) = ConditionalBranch : r2717_7 +#-----| False -> Block 901 +#-----| True (back edge) -> Block 900 + +# 2719| Block 901 +# 2719| r2719_1(glval) = VariableAddress[x900] : +# 2719| mu2719_2(String) = Uninitialized[x900] : &:r2719_1 +# 2719| r2719_3(glval) = FunctionAddress[String] : +# 2719| v2719_4(void) = Call[String] : func:r2719_3, this:r2719_1 +# 2719| mu2719_5(unknown) = ^CallSideEffect : ~m? +# 2719| mu2719_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2719_1 +# 2720| r2720_1(glval) = VariableAddress[x900] : +# 2720| r2720_2(glval) = FunctionAddress[~String] : +# 2720| v2720_3(void) = Call[~String] : func:r2720_2, this:r2720_1 +# 2720| mu2720_4(unknown) = ^CallSideEffect : ~m? +# 2720| v2720_5(void) = ^IndirectReadSideEffect[-1] : &:r2720_1, ~m? +# 2720| mu2720_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2720_1 +# 2720| r2720_7(bool) = Constant[0] : +# 2720| v2720_8(void) = ConditionalBranch : r2720_7 +#-----| False -> Block 902 +#-----| True (back edge) -> Block 901 + +# 2722| Block 902 +# 2722| r2722_1(glval) = VariableAddress[x901] : +# 2722| mu2722_2(String) = Uninitialized[x901] : &:r2722_1 +# 2722| r2722_3(glval) = FunctionAddress[String] : +# 2722| v2722_4(void) = Call[String] : func:r2722_3, this:r2722_1 +# 2722| mu2722_5(unknown) = ^CallSideEffect : ~m? +# 2722| mu2722_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2722_1 +# 2723| r2723_1(glval) = VariableAddress[x901] : +# 2723| r2723_2(glval) = FunctionAddress[~String] : +# 2723| v2723_3(void) = Call[~String] : func:r2723_2, this:r2723_1 +# 2723| mu2723_4(unknown) = ^CallSideEffect : ~m? +# 2723| v2723_5(void) = ^IndirectReadSideEffect[-1] : &:r2723_1, ~m? +# 2723| mu2723_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2723_1 +# 2723| r2723_7(bool) = Constant[0] : +# 2723| v2723_8(void) = ConditionalBranch : r2723_7 +#-----| False -> Block 903 +#-----| True (back edge) -> Block 902 + +# 2725| Block 903 +# 2725| r2725_1(glval) = VariableAddress[x902] : +# 2725| mu2725_2(String) = Uninitialized[x902] : &:r2725_1 +# 2725| r2725_3(glval) = FunctionAddress[String] : +# 2725| v2725_4(void) = Call[String] : func:r2725_3, this:r2725_1 +# 2725| mu2725_5(unknown) = ^CallSideEffect : ~m? +# 2725| mu2725_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2725_1 +# 2726| r2726_1(glval) = VariableAddress[x902] : +# 2726| r2726_2(glval) = FunctionAddress[~String] : +# 2726| v2726_3(void) = Call[~String] : func:r2726_2, this:r2726_1 +# 2726| mu2726_4(unknown) = ^CallSideEffect : ~m? +# 2726| v2726_5(void) = ^IndirectReadSideEffect[-1] : &:r2726_1, ~m? +# 2726| mu2726_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2726_1 +# 2726| r2726_7(bool) = Constant[0] : +# 2726| v2726_8(void) = ConditionalBranch : r2726_7 +#-----| False -> Block 904 +#-----| True (back edge) -> Block 903 + +# 2728| Block 904 +# 2728| r2728_1(glval) = VariableAddress[x903] : +# 2728| mu2728_2(String) = Uninitialized[x903] : &:r2728_1 +# 2728| r2728_3(glval) = FunctionAddress[String] : +# 2728| v2728_4(void) = Call[String] : func:r2728_3, this:r2728_1 +# 2728| mu2728_5(unknown) = ^CallSideEffect : ~m? +# 2728| mu2728_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2728_1 +# 2729| r2729_1(glval) = VariableAddress[x903] : +# 2729| r2729_2(glval) = FunctionAddress[~String] : +# 2729| v2729_3(void) = Call[~String] : func:r2729_2, this:r2729_1 +# 2729| mu2729_4(unknown) = ^CallSideEffect : ~m? +# 2729| v2729_5(void) = ^IndirectReadSideEffect[-1] : &:r2729_1, ~m? +# 2729| mu2729_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2729_1 +# 2729| r2729_7(bool) = Constant[0] : +# 2729| v2729_8(void) = ConditionalBranch : r2729_7 +#-----| False -> Block 905 +#-----| True (back edge) -> Block 904 + +# 2731| Block 905 +# 2731| r2731_1(glval) = VariableAddress[x904] : +# 2731| mu2731_2(String) = Uninitialized[x904] : &:r2731_1 +# 2731| r2731_3(glval) = FunctionAddress[String] : +# 2731| v2731_4(void) = Call[String] : func:r2731_3, this:r2731_1 +# 2731| mu2731_5(unknown) = ^CallSideEffect : ~m? +# 2731| mu2731_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2731_1 +# 2732| r2732_1(glval) = VariableAddress[x904] : +# 2732| r2732_2(glval) = FunctionAddress[~String] : +# 2732| v2732_3(void) = Call[~String] : func:r2732_2, this:r2732_1 +# 2732| mu2732_4(unknown) = ^CallSideEffect : ~m? +# 2732| v2732_5(void) = ^IndirectReadSideEffect[-1] : &:r2732_1, ~m? +# 2732| mu2732_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2732_1 +# 2732| r2732_7(bool) = Constant[0] : +# 2732| v2732_8(void) = ConditionalBranch : r2732_7 +#-----| False -> Block 906 +#-----| True (back edge) -> Block 905 + +# 2734| Block 906 +# 2734| r2734_1(glval) = VariableAddress[x905] : +# 2734| mu2734_2(String) = Uninitialized[x905] : &:r2734_1 +# 2734| r2734_3(glval) = FunctionAddress[String] : +# 2734| v2734_4(void) = Call[String] : func:r2734_3, this:r2734_1 +# 2734| mu2734_5(unknown) = ^CallSideEffect : ~m? +# 2734| mu2734_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2734_1 +# 2735| r2735_1(glval) = VariableAddress[x905] : +# 2735| r2735_2(glval) = FunctionAddress[~String] : +# 2735| v2735_3(void) = Call[~String] : func:r2735_2, this:r2735_1 +# 2735| mu2735_4(unknown) = ^CallSideEffect : ~m? +# 2735| v2735_5(void) = ^IndirectReadSideEffect[-1] : &:r2735_1, ~m? +# 2735| mu2735_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2735_1 +# 2735| r2735_7(bool) = Constant[0] : +# 2735| v2735_8(void) = ConditionalBranch : r2735_7 +#-----| False -> Block 907 +#-----| True (back edge) -> Block 906 + +# 2737| Block 907 +# 2737| r2737_1(glval) = VariableAddress[x906] : +# 2737| mu2737_2(String) = Uninitialized[x906] : &:r2737_1 +# 2737| r2737_3(glval) = FunctionAddress[String] : +# 2737| v2737_4(void) = Call[String] : func:r2737_3, this:r2737_1 +# 2737| mu2737_5(unknown) = ^CallSideEffect : ~m? +# 2737| mu2737_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2737_1 +# 2738| r2738_1(glval) = VariableAddress[x906] : +# 2738| r2738_2(glval) = FunctionAddress[~String] : +# 2738| v2738_3(void) = Call[~String] : func:r2738_2, this:r2738_1 +# 2738| mu2738_4(unknown) = ^CallSideEffect : ~m? +# 2738| v2738_5(void) = ^IndirectReadSideEffect[-1] : &:r2738_1, ~m? +# 2738| mu2738_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2738_1 +# 2738| r2738_7(bool) = Constant[0] : +# 2738| v2738_8(void) = ConditionalBranch : r2738_7 +#-----| False -> Block 908 +#-----| True (back edge) -> Block 907 + +# 2740| Block 908 +# 2740| r2740_1(glval) = VariableAddress[x907] : +# 2740| mu2740_2(String) = Uninitialized[x907] : &:r2740_1 +# 2740| r2740_3(glval) = FunctionAddress[String] : +# 2740| v2740_4(void) = Call[String] : func:r2740_3, this:r2740_1 +# 2740| mu2740_5(unknown) = ^CallSideEffect : ~m? +# 2740| mu2740_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2740_1 +# 2741| r2741_1(glval) = VariableAddress[x907] : +# 2741| r2741_2(glval) = FunctionAddress[~String] : +# 2741| v2741_3(void) = Call[~String] : func:r2741_2, this:r2741_1 +# 2741| mu2741_4(unknown) = ^CallSideEffect : ~m? +# 2741| v2741_5(void) = ^IndirectReadSideEffect[-1] : &:r2741_1, ~m? +# 2741| mu2741_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2741_1 +# 2741| r2741_7(bool) = Constant[0] : +# 2741| v2741_8(void) = ConditionalBranch : r2741_7 +#-----| False -> Block 909 +#-----| True (back edge) -> Block 908 + +# 2743| Block 909 +# 2743| r2743_1(glval) = VariableAddress[x908] : +# 2743| mu2743_2(String) = Uninitialized[x908] : &:r2743_1 +# 2743| r2743_3(glval) = FunctionAddress[String] : +# 2743| v2743_4(void) = Call[String] : func:r2743_3, this:r2743_1 +# 2743| mu2743_5(unknown) = ^CallSideEffect : ~m? +# 2743| mu2743_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2743_1 +# 2744| r2744_1(glval) = VariableAddress[x908] : +# 2744| r2744_2(glval) = FunctionAddress[~String] : +# 2744| v2744_3(void) = Call[~String] : func:r2744_2, this:r2744_1 +# 2744| mu2744_4(unknown) = ^CallSideEffect : ~m? +# 2744| v2744_5(void) = ^IndirectReadSideEffect[-1] : &:r2744_1, ~m? +# 2744| mu2744_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2744_1 +# 2744| r2744_7(bool) = Constant[0] : +# 2744| v2744_8(void) = ConditionalBranch : r2744_7 +#-----| False -> Block 910 +#-----| True (back edge) -> Block 909 + +# 2746| Block 910 +# 2746| r2746_1(glval) = VariableAddress[x909] : +# 2746| mu2746_2(String) = Uninitialized[x909] : &:r2746_1 +# 2746| r2746_3(glval) = FunctionAddress[String] : +# 2746| v2746_4(void) = Call[String] : func:r2746_3, this:r2746_1 +# 2746| mu2746_5(unknown) = ^CallSideEffect : ~m? +# 2746| mu2746_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2746_1 +# 2747| r2747_1(glval) = VariableAddress[x909] : +# 2747| r2747_2(glval) = FunctionAddress[~String] : +# 2747| v2747_3(void) = Call[~String] : func:r2747_2, this:r2747_1 +# 2747| mu2747_4(unknown) = ^CallSideEffect : ~m? +# 2747| v2747_5(void) = ^IndirectReadSideEffect[-1] : &:r2747_1, ~m? +# 2747| mu2747_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2747_1 +# 2747| r2747_7(bool) = Constant[0] : +# 2747| v2747_8(void) = ConditionalBranch : r2747_7 +#-----| False -> Block 911 +#-----| True (back edge) -> Block 910 + +# 2749| Block 911 +# 2749| r2749_1(glval) = VariableAddress[x910] : +# 2749| mu2749_2(String) = Uninitialized[x910] : &:r2749_1 +# 2749| r2749_3(glval) = FunctionAddress[String] : +# 2749| v2749_4(void) = Call[String] : func:r2749_3, this:r2749_1 +# 2749| mu2749_5(unknown) = ^CallSideEffect : ~m? +# 2749| mu2749_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2749_1 +# 2750| r2750_1(glval) = VariableAddress[x910] : +# 2750| r2750_2(glval) = FunctionAddress[~String] : +# 2750| v2750_3(void) = Call[~String] : func:r2750_2, this:r2750_1 +# 2750| mu2750_4(unknown) = ^CallSideEffect : ~m? +# 2750| v2750_5(void) = ^IndirectReadSideEffect[-1] : &:r2750_1, ~m? +# 2750| mu2750_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2750_1 +# 2750| r2750_7(bool) = Constant[0] : +# 2750| v2750_8(void) = ConditionalBranch : r2750_7 +#-----| False -> Block 912 +#-----| True (back edge) -> Block 911 + +# 2752| Block 912 +# 2752| r2752_1(glval) = VariableAddress[x911] : +# 2752| mu2752_2(String) = Uninitialized[x911] : &:r2752_1 +# 2752| r2752_3(glval) = FunctionAddress[String] : +# 2752| v2752_4(void) = Call[String] : func:r2752_3, this:r2752_1 +# 2752| mu2752_5(unknown) = ^CallSideEffect : ~m? +# 2752| mu2752_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2752_1 +# 2753| r2753_1(glval) = VariableAddress[x911] : +# 2753| r2753_2(glval) = FunctionAddress[~String] : +# 2753| v2753_3(void) = Call[~String] : func:r2753_2, this:r2753_1 +# 2753| mu2753_4(unknown) = ^CallSideEffect : ~m? +# 2753| v2753_5(void) = ^IndirectReadSideEffect[-1] : &:r2753_1, ~m? +# 2753| mu2753_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2753_1 +# 2753| r2753_7(bool) = Constant[0] : +# 2753| v2753_8(void) = ConditionalBranch : r2753_7 +#-----| False -> Block 913 +#-----| True (back edge) -> Block 912 + +# 2755| Block 913 +# 2755| r2755_1(glval) = VariableAddress[x912] : +# 2755| mu2755_2(String) = Uninitialized[x912] : &:r2755_1 +# 2755| r2755_3(glval) = FunctionAddress[String] : +# 2755| v2755_4(void) = Call[String] : func:r2755_3, this:r2755_1 +# 2755| mu2755_5(unknown) = ^CallSideEffect : ~m? +# 2755| mu2755_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2755_1 +# 2756| r2756_1(glval) = VariableAddress[x912] : +# 2756| r2756_2(glval) = FunctionAddress[~String] : +# 2756| v2756_3(void) = Call[~String] : func:r2756_2, this:r2756_1 +# 2756| mu2756_4(unknown) = ^CallSideEffect : ~m? +# 2756| v2756_5(void) = ^IndirectReadSideEffect[-1] : &:r2756_1, ~m? +# 2756| mu2756_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2756_1 +# 2756| r2756_7(bool) = Constant[0] : +# 2756| v2756_8(void) = ConditionalBranch : r2756_7 +#-----| False -> Block 914 +#-----| True (back edge) -> Block 913 + +# 2758| Block 914 +# 2758| r2758_1(glval) = VariableAddress[x913] : +# 2758| mu2758_2(String) = Uninitialized[x913] : &:r2758_1 +# 2758| r2758_3(glval) = FunctionAddress[String] : +# 2758| v2758_4(void) = Call[String] : func:r2758_3, this:r2758_1 +# 2758| mu2758_5(unknown) = ^CallSideEffect : ~m? +# 2758| mu2758_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2758_1 +# 2759| r2759_1(glval) = VariableAddress[x913] : +# 2759| r2759_2(glval) = FunctionAddress[~String] : +# 2759| v2759_3(void) = Call[~String] : func:r2759_2, this:r2759_1 +# 2759| mu2759_4(unknown) = ^CallSideEffect : ~m? +# 2759| v2759_5(void) = ^IndirectReadSideEffect[-1] : &:r2759_1, ~m? +# 2759| mu2759_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2759_1 +# 2759| r2759_7(bool) = Constant[0] : +# 2759| v2759_8(void) = ConditionalBranch : r2759_7 +#-----| False -> Block 915 +#-----| True (back edge) -> Block 914 + +# 2761| Block 915 +# 2761| r2761_1(glval) = VariableAddress[x914] : +# 2761| mu2761_2(String) = Uninitialized[x914] : &:r2761_1 +# 2761| r2761_3(glval) = FunctionAddress[String] : +# 2761| v2761_4(void) = Call[String] : func:r2761_3, this:r2761_1 +# 2761| mu2761_5(unknown) = ^CallSideEffect : ~m? +# 2761| mu2761_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2761_1 +# 2762| r2762_1(glval) = VariableAddress[x914] : +# 2762| r2762_2(glval) = FunctionAddress[~String] : +# 2762| v2762_3(void) = Call[~String] : func:r2762_2, this:r2762_1 +# 2762| mu2762_4(unknown) = ^CallSideEffect : ~m? +# 2762| v2762_5(void) = ^IndirectReadSideEffect[-1] : &:r2762_1, ~m? +# 2762| mu2762_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2762_1 +# 2762| r2762_7(bool) = Constant[0] : +# 2762| v2762_8(void) = ConditionalBranch : r2762_7 +#-----| False -> Block 916 +#-----| True (back edge) -> Block 915 + +# 2764| Block 916 +# 2764| r2764_1(glval) = VariableAddress[x915] : +# 2764| mu2764_2(String) = Uninitialized[x915] : &:r2764_1 +# 2764| r2764_3(glval) = FunctionAddress[String] : +# 2764| v2764_4(void) = Call[String] : func:r2764_3, this:r2764_1 +# 2764| mu2764_5(unknown) = ^CallSideEffect : ~m? +# 2764| mu2764_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2764_1 +# 2765| r2765_1(glval) = VariableAddress[x915] : +# 2765| r2765_2(glval) = FunctionAddress[~String] : +# 2765| v2765_3(void) = Call[~String] : func:r2765_2, this:r2765_1 +# 2765| mu2765_4(unknown) = ^CallSideEffect : ~m? +# 2765| v2765_5(void) = ^IndirectReadSideEffect[-1] : &:r2765_1, ~m? +# 2765| mu2765_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2765_1 +# 2765| r2765_7(bool) = Constant[0] : +# 2765| v2765_8(void) = ConditionalBranch : r2765_7 +#-----| False -> Block 917 +#-----| True (back edge) -> Block 916 + +# 2767| Block 917 +# 2767| r2767_1(glval) = VariableAddress[x916] : +# 2767| mu2767_2(String) = Uninitialized[x916] : &:r2767_1 +# 2767| r2767_3(glval) = FunctionAddress[String] : +# 2767| v2767_4(void) = Call[String] : func:r2767_3, this:r2767_1 +# 2767| mu2767_5(unknown) = ^CallSideEffect : ~m? +# 2767| mu2767_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2767_1 +# 2768| r2768_1(glval) = VariableAddress[x916] : +# 2768| r2768_2(glval) = FunctionAddress[~String] : +# 2768| v2768_3(void) = Call[~String] : func:r2768_2, this:r2768_1 +# 2768| mu2768_4(unknown) = ^CallSideEffect : ~m? +# 2768| v2768_5(void) = ^IndirectReadSideEffect[-1] : &:r2768_1, ~m? +# 2768| mu2768_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2768_1 +# 2768| r2768_7(bool) = Constant[0] : +# 2768| v2768_8(void) = ConditionalBranch : r2768_7 +#-----| False -> Block 918 +#-----| True (back edge) -> Block 917 + +# 2770| Block 918 +# 2770| r2770_1(glval) = VariableAddress[x917] : +# 2770| mu2770_2(String) = Uninitialized[x917] : &:r2770_1 +# 2770| r2770_3(glval) = FunctionAddress[String] : +# 2770| v2770_4(void) = Call[String] : func:r2770_3, this:r2770_1 +# 2770| mu2770_5(unknown) = ^CallSideEffect : ~m? +# 2770| mu2770_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2770_1 +# 2771| r2771_1(glval) = VariableAddress[x917] : +# 2771| r2771_2(glval) = FunctionAddress[~String] : +# 2771| v2771_3(void) = Call[~String] : func:r2771_2, this:r2771_1 +# 2771| mu2771_4(unknown) = ^CallSideEffect : ~m? +# 2771| v2771_5(void) = ^IndirectReadSideEffect[-1] : &:r2771_1, ~m? +# 2771| mu2771_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2771_1 +# 2771| r2771_7(bool) = Constant[0] : +# 2771| v2771_8(void) = ConditionalBranch : r2771_7 +#-----| False -> Block 919 +#-----| True (back edge) -> Block 918 + +# 2773| Block 919 +# 2773| r2773_1(glval) = VariableAddress[x918] : +# 2773| mu2773_2(String) = Uninitialized[x918] : &:r2773_1 +# 2773| r2773_3(glval) = FunctionAddress[String] : +# 2773| v2773_4(void) = Call[String] : func:r2773_3, this:r2773_1 +# 2773| mu2773_5(unknown) = ^CallSideEffect : ~m? +# 2773| mu2773_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2773_1 +# 2774| r2774_1(glval) = VariableAddress[x918] : +# 2774| r2774_2(glval) = FunctionAddress[~String] : +# 2774| v2774_3(void) = Call[~String] : func:r2774_2, this:r2774_1 +# 2774| mu2774_4(unknown) = ^CallSideEffect : ~m? +# 2774| v2774_5(void) = ^IndirectReadSideEffect[-1] : &:r2774_1, ~m? +# 2774| mu2774_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2774_1 +# 2774| r2774_7(bool) = Constant[0] : +# 2774| v2774_8(void) = ConditionalBranch : r2774_7 +#-----| False -> Block 920 +#-----| True (back edge) -> Block 919 + +# 2776| Block 920 +# 2776| r2776_1(glval) = VariableAddress[x919] : +# 2776| mu2776_2(String) = Uninitialized[x919] : &:r2776_1 +# 2776| r2776_3(glval) = FunctionAddress[String] : +# 2776| v2776_4(void) = Call[String] : func:r2776_3, this:r2776_1 +# 2776| mu2776_5(unknown) = ^CallSideEffect : ~m? +# 2776| mu2776_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2776_1 +# 2777| r2777_1(glval) = VariableAddress[x919] : +# 2777| r2777_2(glval) = FunctionAddress[~String] : +# 2777| v2777_3(void) = Call[~String] : func:r2777_2, this:r2777_1 +# 2777| mu2777_4(unknown) = ^CallSideEffect : ~m? +# 2777| v2777_5(void) = ^IndirectReadSideEffect[-1] : &:r2777_1, ~m? +# 2777| mu2777_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2777_1 +# 2777| r2777_7(bool) = Constant[0] : +# 2777| v2777_8(void) = ConditionalBranch : r2777_7 +#-----| False -> Block 921 +#-----| True (back edge) -> Block 920 + +# 2779| Block 921 +# 2779| r2779_1(glval) = VariableAddress[x920] : +# 2779| mu2779_2(String) = Uninitialized[x920] : &:r2779_1 +# 2779| r2779_3(glval) = FunctionAddress[String] : +# 2779| v2779_4(void) = Call[String] : func:r2779_3, this:r2779_1 +# 2779| mu2779_5(unknown) = ^CallSideEffect : ~m? +# 2779| mu2779_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2779_1 +# 2780| r2780_1(glval) = VariableAddress[x920] : +# 2780| r2780_2(glval) = FunctionAddress[~String] : +# 2780| v2780_3(void) = Call[~String] : func:r2780_2, this:r2780_1 +# 2780| mu2780_4(unknown) = ^CallSideEffect : ~m? +# 2780| v2780_5(void) = ^IndirectReadSideEffect[-1] : &:r2780_1, ~m? +# 2780| mu2780_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2780_1 +# 2780| r2780_7(bool) = Constant[0] : +# 2780| v2780_8(void) = ConditionalBranch : r2780_7 +#-----| False -> Block 922 +#-----| True (back edge) -> Block 921 + +# 2782| Block 922 +# 2782| r2782_1(glval) = VariableAddress[x921] : +# 2782| mu2782_2(String) = Uninitialized[x921] : &:r2782_1 +# 2782| r2782_3(glval) = FunctionAddress[String] : +# 2782| v2782_4(void) = Call[String] : func:r2782_3, this:r2782_1 +# 2782| mu2782_5(unknown) = ^CallSideEffect : ~m? +# 2782| mu2782_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2782_1 +# 2783| r2783_1(glval) = VariableAddress[x921] : +# 2783| r2783_2(glval) = FunctionAddress[~String] : +# 2783| v2783_3(void) = Call[~String] : func:r2783_2, this:r2783_1 +# 2783| mu2783_4(unknown) = ^CallSideEffect : ~m? +# 2783| v2783_5(void) = ^IndirectReadSideEffect[-1] : &:r2783_1, ~m? +# 2783| mu2783_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2783_1 +# 2783| r2783_7(bool) = Constant[0] : +# 2783| v2783_8(void) = ConditionalBranch : r2783_7 +#-----| False -> Block 923 +#-----| True (back edge) -> Block 922 + +# 2785| Block 923 +# 2785| r2785_1(glval) = VariableAddress[x922] : +# 2785| mu2785_2(String) = Uninitialized[x922] : &:r2785_1 +# 2785| r2785_3(glval) = FunctionAddress[String] : +# 2785| v2785_4(void) = Call[String] : func:r2785_3, this:r2785_1 +# 2785| mu2785_5(unknown) = ^CallSideEffect : ~m? +# 2785| mu2785_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2785_1 +# 2786| r2786_1(glval) = VariableAddress[x922] : +# 2786| r2786_2(glval) = FunctionAddress[~String] : +# 2786| v2786_3(void) = Call[~String] : func:r2786_2, this:r2786_1 +# 2786| mu2786_4(unknown) = ^CallSideEffect : ~m? +# 2786| v2786_5(void) = ^IndirectReadSideEffect[-1] : &:r2786_1, ~m? +# 2786| mu2786_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2786_1 +# 2786| r2786_7(bool) = Constant[0] : +# 2786| v2786_8(void) = ConditionalBranch : r2786_7 +#-----| False -> Block 924 +#-----| True (back edge) -> Block 923 + +# 2788| Block 924 +# 2788| r2788_1(glval) = VariableAddress[x923] : +# 2788| mu2788_2(String) = Uninitialized[x923] : &:r2788_1 +# 2788| r2788_3(glval) = FunctionAddress[String] : +# 2788| v2788_4(void) = Call[String] : func:r2788_3, this:r2788_1 +# 2788| mu2788_5(unknown) = ^CallSideEffect : ~m? +# 2788| mu2788_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2788_1 +# 2789| r2789_1(glval) = VariableAddress[x923] : +# 2789| r2789_2(glval) = FunctionAddress[~String] : +# 2789| v2789_3(void) = Call[~String] : func:r2789_2, this:r2789_1 +# 2789| mu2789_4(unknown) = ^CallSideEffect : ~m? +# 2789| v2789_5(void) = ^IndirectReadSideEffect[-1] : &:r2789_1, ~m? +# 2789| mu2789_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2789_1 +# 2789| r2789_7(bool) = Constant[0] : +# 2789| v2789_8(void) = ConditionalBranch : r2789_7 +#-----| False -> Block 925 +#-----| True (back edge) -> Block 924 + +# 2791| Block 925 +# 2791| r2791_1(glval) = VariableAddress[x924] : +# 2791| mu2791_2(String) = Uninitialized[x924] : &:r2791_1 +# 2791| r2791_3(glval) = FunctionAddress[String] : +# 2791| v2791_4(void) = Call[String] : func:r2791_3, this:r2791_1 +# 2791| mu2791_5(unknown) = ^CallSideEffect : ~m? +# 2791| mu2791_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2791_1 +# 2792| r2792_1(glval) = VariableAddress[x924] : +# 2792| r2792_2(glval) = FunctionAddress[~String] : +# 2792| v2792_3(void) = Call[~String] : func:r2792_2, this:r2792_1 +# 2792| mu2792_4(unknown) = ^CallSideEffect : ~m? +# 2792| v2792_5(void) = ^IndirectReadSideEffect[-1] : &:r2792_1, ~m? +# 2792| mu2792_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2792_1 +# 2792| r2792_7(bool) = Constant[0] : +# 2792| v2792_8(void) = ConditionalBranch : r2792_7 +#-----| False -> Block 926 +#-----| True (back edge) -> Block 925 + +# 2794| Block 926 +# 2794| r2794_1(glval) = VariableAddress[x925] : +# 2794| mu2794_2(String) = Uninitialized[x925] : &:r2794_1 +# 2794| r2794_3(glval) = FunctionAddress[String] : +# 2794| v2794_4(void) = Call[String] : func:r2794_3, this:r2794_1 +# 2794| mu2794_5(unknown) = ^CallSideEffect : ~m? +# 2794| mu2794_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2794_1 +# 2795| r2795_1(glval) = VariableAddress[x925] : +# 2795| r2795_2(glval) = FunctionAddress[~String] : +# 2795| v2795_3(void) = Call[~String] : func:r2795_2, this:r2795_1 +# 2795| mu2795_4(unknown) = ^CallSideEffect : ~m? +# 2795| v2795_5(void) = ^IndirectReadSideEffect[-1] : &:r2795_1, ~m? +# 2795| mu2795_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2795_1 +# 2795| r2795_7(bool) = Constant[0] : +# 2795| v2795_8(void) = ConditionalBranch : r2795_7 +#-----| False -> Block 927 +#-----| True (back edge) -> Block 926 + +# 2797| Block 927 +# 2797| r2797_1(glval) = VariableAddress[x926] : +# 2797| mu2797_2(String) = Uninitialized[x926] : &:r2797_1 +# 2797| r2797_3(glval) = FunctionAddress[String] : +# 2797| v2797_4(void) = Call[String] : func:r2797_3, this:r2797_1 +# 2797| mu2797_5(unknown) = ^CallSideEffect : ~m? +# 2797| mu2797_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2797_1 +# 2798| r2798_1(glval) = VariableAddress[x926] : +# 2798| r2798_2(glval) = FunctionAddress[~String] : +# 2798| v2798_3(void) = Call[~String] : func:r2798_2, this:r2798_1 +# 2798| mu2798_4(unknown) = ^CallSideEffect : ~m? +# 2798| v2798_5(void) = ^IndirectReadSideEffect[-1] : &:r2798_1, ~m? +# 2798| mu2798_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2798_1 +# 2798| r2798_7(bool) = Constant[0] : +# 2798| v2798_8(void) = ConditionalBranch : r2798_7 +#-----| False -> Block 928 +#-----| True (back edge) -> Block 927 + +# 2800| Block 928 +# 2800| r2800_1(glval) = VariableAddress[x927] : +# 2800| mu2800_2(String) = Uninitialized[x927] : &:r2800_1 +# 2800| r2800_3(glval) = FunctionAddress[String] : +# 2800| v2800_4(void) = Call[String] : func:r2800_3, this:r2800_1 +# 2800| mu2800_5(unknown) = ^CallSideEffect : ~m? +# 2800| mu2800_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2800_1 +# 2801| r2801_1(glval) = VariableAddress[x927] : +# 2801| r2801_2(glval) = FunctionAddress[~String] : +# 2801| v2801_3(void) = Call[~String] : func:r2801_2, this:r2801_1 +# 2801| mu2801_4(unknown) = ^CallSideEffect : ~m? +# 2801| v2801_5(void) = ^IndirectReadSideEffect[-1] : &:r2801_1, ~m? +# 2801| mu2801_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2801_1 +# 2801| r2801_7(bool) = Constant[0] : +# 2801| v2801_8(void) = ConditionalBranch : r2801_7 +#-----| False -> Block 929 +#-----| True (back edge) -> Block 928 + +# 2803| Block 929 +# 2803| r2803_1(glval) = VariableAddress[x928] : +# 2803| mu2803_2(String) = Uninitialized[x928] : &:r2803_1 +# 2803| r2803_3(glval) = FunctionAddress[String] : +# 2803| v2803_4(void) = Call[String] : func:r2803_3, this:r2803_1 +# 2803| mu2803_5(unknown) = ^CallSideEffect : ~m? +# 2803| mu2803_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2803_1 +# 2804| r2804_1(glval) = VariableAddress[x928] : +# 2804| r2804_2(glval) = FunctionAddress[~String] : +# 2804| v2804_3(void) = Call[~String] : func:r2804_2, this:r2804_1 +# 2804| mu2804_4(unknown) = ^CallSideEffect : ~m? +# 2804| v2804_5(void) = ^IndirectReadSideEffect[-1] : &:r2804_1, ~m? +# 2804| mu2804_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2804_1 +# 2804| r2804_7(bool) = Constant[0] : +# 2804| v2804_8(void) = ConditionalBranch : r2804_7 +#-----| False -> Block 930 +#-----| True (back edge) -> Block 929 + +# 2806| Block 930 +# 2806| r2806_1(glval) = VariableAddress[x929] : +# 2806| mu2806_2(String) = Uninitialized[x929] : &:r2806_1 +# 2806| r2806_3(glval) = FunctionAddress[String] : +# 2806| v2806_4(void) = Call[String] : func:r2806_3, this:r2806_1 +# 2806| mu2806_5(unknown) = ^CallSideEffect : ~m? +# 2806| mu2806_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2806_1 +# 2807| r2807_1(glval) = VariableAddress[x929] : +# 2807| r2807_2(glval) = FunctionAddress[~String] : +# 2807| v2807_3(void) = Call[~String] : func:r2807_2, this:r2807_1 +# 2807| mu2807_4(unknown) = ^CallSideEffect : ~m? +# 2807| v2807_5(void) = ^IndirectReadSideEffect[-1] : &:r2807_1, ~m? +# 2807| mu2807_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2807_1 +# 2807| r2807_7(bool) = Constant[0] : +# 2807| v2807_8(void) = ConditionalBranch : r2807_7 +#-----| False -> Block 931 +#-----| True (back edge) -> Block 930 + +# 2809| Block 931 +# 2809| r2809_1(glval) = VariableAddress[x930] : +# 2809| mu2809_2(String) = Uninitialized[x930] : &:r2809_1 +# 2809| r2809_3(glval) = FunctionAddress[String] : +# 2809| v2809_4(void) = Call[String] : func:r2809_3, this:r2809_1 +# 2809| mu2809_5(unknown) = ^CallSideEffect : ~m? +# 2809| mu2809_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2809_1 +# 2810| r2810_1(glval) = VariableAddress[x930] : +# 2810| r2810_2(glval) = FunctionAddress[~String] : +# 2810| v2810_3(void) = Call[~String] : func:r2810_2, this:r2810_1 +# 2810| mu2810_4(unknown) = ^CallSideEffect : ~m? +# 2810| v2810_5(void) = ^IndirectReadSideEffect[-1] : &:r2810_1, ~m? +# 2810| mu2810_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2810_1 +# 2810| r2810_7(bool) = Constant[0] : +# 2810| v2810_8(void) = ConditionalBranch : r2810_7 +#-----| False -> Block 932 +#-----| True (back edge) -> Block 931 + +# 2812| Block 932 +# 2812| r2812_1(glval) = VariableAddress[x931] : +# 2812| mu2812_2(String) = Uninitialized[x931] : &:r2812_1 +# 2812| r2812_3(glval) = FunctionAddress[String] : +# 2812| v2812_4(void) = Call[String] : func:r2812_3, this:r2812_1 +# 2812| mu2812_5(unknown) = ^CallSideEffect : ~m? +# 2812| mu2812_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2812_1 +# 2813| r2813_1(glval) = VariableAddress[x931] : +# 2813| r2813_2(glval) = FunctionAddress[~String] : +# 2813| v2813_3(void) = Call[~String] : func:r2813_2, this:r2813_1 +# 2813| mu2813_4(unknown) = ^CallSideEffect : ~m? +# 2813| v2813_5(void) = ^IndirectReadSideEffect[-1] : &:r2813_1, ~m? +# 2813| mu2813_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2813_1 +# 2813| r2813_7(bool) = Constant[0] : +# 2813| v2813_8(void) = ConditionalBranch : r2813_7 +#-----| False -> Block 933 +#-----| True (back edge) -> Block 932 + +# 2815| Block 933 +# 2815| r2815_1(glval) = VariableAddress[x932] : +# 2815| mu2815_2(String) = Uninitialized[x932] : &:r2815_1 +# 2815| r2815_3(glval) = FunctionAddress[String] : +# 2815| v2815_4(void) = Call[String] : func:r2815_3, this:r2815_1 +# 2815| mu2815_5(unknown) = ^CallSideEffect : ~m? +# 2815| mu2815_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2815_1 +# 2816| r2816_1(glval) = VariableAddress[x932] : +# 2816| r2816_2(glval) = FunctionAddress[~String] : +# 2816| v2816_3(void) = Call[~String] : func:r2816_2, this:r2816_1 +# 2816| mu2816_4(unknown) = ^CallSideEffect : ~m? +# 2816| v2816_5(void) = ^IndirectReadSideEffect[-1] : &:r2816_1, ~m? +# 2816| mu2816_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2816_1 +# 2816| r2816_7(bool) = Constant[0] : +# 2816| v2816_8(void) = ConditionalBranch : r2816_7 +#-----| False -> Block 934 +#-----| True (back edge) -> Block 933 + +# 2818| Block 934 +# 2818| r2818_1(glval) = VariableAddress[x933] : +# 2818| mu2818_2(String) = Uninitialized[x933] : &:r2818_1 +# 2818| r2818_3(glval) = FunctionAddress[String] : +# 2818| v2818_4(void) = Call[String] : func:r2818_3, this:r2818_1 +# 2818| mu2818_5(unknown) = ^CallSideEffect : ~m? +# 2818| mu2818_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2818_1 +# 2819| r2819_1(glval) = VariableAddress[x933] : +# 2819| r2819_2(glval) = FunctionAddress[~String] : +# 2819| v2819_3(void) = Call[~String] : func:r2819_2, this:r2819_1 +# 2819| mu2819_4(unknown) = ^CallSideEffect : ~m? +# 2819| v2819_5(void) = ^IndirectReadSideEffect[-1] : &:r2819_1, ~m? +# 2819| mu2819_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2819_1 +# 2819| r2819_7(bool) = Constant[0] : +# 2819| v2819_8(void) = ConditionalBranch : r2819_7 +#-----| False -> Block 935 +#-----| True (back edge) -> Block 934 + +# 2821| Block 935 +# 2821| r2821_1(glval) = VariableAddress[x934] : +# 2821| mu2821_2(String) = Uninitialized[x934] : &:r2821_1 +# 2821| r2821_3(glval) = FunctionAddress[String] : +# 2821| v2821_4(void) = Call[String] : func:r2821_3, this:r2821_1 +# 2821| mu2821_5(unknown) = ^CallSideEffect : ~m? +# 2821| mu2821_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2821_1 +# 2822| r2822_1(glval) = VariableAddress[x934] : +# 2822| r2822_2(glval) = FunctionAddress[~String] : +# 2822| v2822_3(void) = Call[~String] : func:r2822_2, this:r2822_1 +# 2822| mu2822_4(unknown) = ^CallSideEffect : ~m? +# 2822| v2822_5(void) = ^IndirectReadSideEffect[-1] : &:r2822_1, ~m? +# 2822| mu2822_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2822_1 +# 2822| r2822_7(bool) = Constant[0] : +# 2822| v2822_8(void) = ConditionalBranch : r2822_7 +#-----| False -> Block 936 +#-----| True (back edge) -> Block 935 + +# 2824| Block 936 +# 2824| r2824_1(glval) = VariableAddress[x935] : +# 2824| mu2824_2(String) = Uninitialized[x935] : &:r2824_1 +# 2824| r2824_3(glval) = FunctionAddress[String] : +# 2824| v2824_4(void) = Call[String] : func:r2824_3, this:r2824_1 +# 2824| mu2824_5(unknown) = ^CallSideEffect : ~m? +# 2824| mu2824_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2824_1 +# 2825| r2825_1(glval) = VariableAddress[x935] : +# 2825| r2825_2(glval) = FunctionAddress[~String] : +# 2825| v2825_3(void) = Call[~String] : func:r2825_2, this:r2825_1 +# 2825| mu2825_4(unknown) = ^CallSideEffect : ~m? +# 2825| v2825_5(void) = ^IndirectReadSideEffect[-1] : &:r2825_1, ~m? +# 2825| mu2825_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2825_1 +# 2825| r2825_7(bool) = Constant[0] : +# 2825| v2825_8(void) = ConditionalBranch : r2825_7 +#-----| False -> Block 937 +#-----| True (back edge) -> Block 936 + +# 2827| Block 937 +# 2827| r2827_1(glval) = VariableAddress[x936] : +# 2827| mu2827_2(String) = Uninitialized[x936] : &:r2827_1 +# 2827| r2827_3(glval) = FunctionAddress[String] : +# 2827| v2827_4(void) = Call[String] : func:r2827_3, this:r2827_1 +# 2827| mu2827_5(unknown) = ^CallSideEffect : ~m? +# 2827| mu2827_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2827_1 +# 2828| r2828_1(glval) = VariableAddress[x936] : +# 2828| r2828_2(glval) = FunctionAddress[~String] : +# 2828| v2828_3(void) = Call[~String] : func:r2828_2, this:r2828_1 +# 2828| mu2828_4(unknown) = ^CallSideEffect : ~m? +# 2828| v2828_5(void) = ^IndirectReadSideEffect[-1] : &:r2828_1, ~m? +# 2828| mu2828_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2828_1 +# 2828| r2828_7(bool) = Constant[0] : +# 2828| v2828_8(void) = ConditionalBranch : r2828_7 +#-----| False -> Block 938 +#-----| True (back edge) -> Block 937 + +# 2830| Block 938 +# 2830| r2830_1(glval) = VariableAddress[x937] : +# 2830| mu2830_2(String) = Uninitialized[x937] : &:r2830_1 +# 2830| r2830_3(glval) = FunctionAddress[String] : +# 2830| v2830_4(void) = Call[String] : func:r2830_3, this:r2830_1 +# 2830| mu2830_5(unknown) = ^CallSideEffect : ~m? +# 2830| mu2830_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2830_1 +# 2831| r2831_1(glval) = VariableAddress[x937] : +# 2831| r2831_2(glval) = FunctionAddress[~String] : +# 2831| v2831_3(void) = Call[~String] : func:r2831_2, this:r2831_1 +# 2831| mu2831_4(unknown) = ^CallSideEffect : ~m? +# 2831| v2831_5(void) = ^IndirectReadSideEffect[-1] : &:r2831_1, ~m? +# 2831| mu2831_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2831_1 +# 2831| r2831_7(bool) = Constant[0] : +# 2831| v2831_8(void) = ConditionalBranch : r2831_7 +#-----| False -> Block 939 +#-----| True (back edge) -> Block 938 + +# 2833| Block 939 +# 2833| r2833_1(glval) = VariableAddress[x938] : +# 2833| mu2833_2(String) = Uninitialized[x938] : &:r2833_1 +# 2833| r2833_3(glval) = FunctionAddress[String] : +# 2833| v2833_4(void) = Call[String] : func:r2833_3, this:r2833_1 +# 2833| mu2833_5(unknown) = ^CallSideEffect : ~m? +# 2833| mu2833_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2833_1 +# 2834| r2834_1(glval) = VariableAddress[x938] : +# 2834| r2834_2(glval) = FunctionAddress[~String] : +# 2834| v2834_3(void) = Call[~String] : func:r2834_2, this:r2834_1 +# 2834| mu2834_4(unknown) = ^CallSideEffect : ~m? +# 2834| v2834_5(void) = ^IndirectReadSideEffect[-1] : &:r2834_1, ~m? +# 2834| mu2834_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2834_1 +# 2834| r2834_7(bool) = Constant[0] : +# 2834| v2834_8(void) = ConditionalBranch : r2834_7 +#-----| False -> Block 940 +#-----| True (back edge) -> Block 939 + +# 2836| Block 940 +# 2836| r2836_1(glval) = VariableAddress[x939] : +# 2836| mu2836_2(String) = Uninitialized[x939] : &:r2836_1 +# 2836| r2836_3(glval) = FunctionAddress[String] : +# 2836| v2836_4(void) = Call[String] : func:r2836_3, this:r2836_1 +# 2836| mu2836_5(unknown) = ^CallSideEffect : ~m? +# 2836| mu2836_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2836_1 +# 2837| r2837_1(glval) = VariableAddress[x939] : +# 2837| r2837_2(glval) = FunctionAddress[~String] : +# 2837| v2837_3(void) = Call[~String] : func:r2837_2, this:r2837_1 +# 2837| mu2837_4(unknown) = ^CallSideEffect : ~m? +# 2837| v2837_5(void) = ^IndirectReadSideEffect[-1] : &:r2837_1, ~m? +# 2837| mu2837_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2837_1 +# 2837| r2837_7(bool) = Constant[0] : +# 2837| v2837_8(void) = ConditionalBranch : r2837_7 +#-----| False -> Block 941 +#-----| True (back edge) -> Block 940 + +# 2839| Block 941 +# 2839| r2839_1(glval) = VariableAddress[x940] : +# 2839| mu2839_2(String) = Uninitialized[x940] : &:r2839_1 +# 2839| r2839_3(glval) = FunctionAddress[String] : +# 2839| v2839_4(void) = Call[String] : func:r2839_3, this:r2839_1 +# 2839| mu2839_5(unknown) = ^CallSideEffect : ~m? +# 2839| mu2839_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2839_1 +# 2840| r2840_1(glval) = VariableAddress[x940] : +# 2840| r2840_2(glval) = FunctionAddress[~String] : +# 2840| v2840_3(void) = Call[~String] : func:r2840_2, this:r2840_1 +# 2840| mu2840_4(unknown) = ^CallSideEffect : ~m? +# 2840| v2840_5(void) = ^IndirectReadSideEffect[-1] : &:r2840_1, ~m? +# 2840| mu2840_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2840_1 +# 2840| r2840_7(bool) = Constant[0] : +# 2840| v2840_8(void) = ConditionalBranch : r2840_7 +#-----| False -> Block 942 +#-----| True (back edge) -> Block 941 + +# 2842| Block 942 +# 2842| r2842_1(glval) = VariableAddress[x941] : +# 2842| mu2842_2(String) = Uninitialized[x941] : &:r2842_1 +# 2842| r2842_3(glval) = FunctionAddress[String] : +# 2842| v2842_4(void) = Call[String] : func:r2842_3, this:r2842_1 +# 2842| mu2842_5(unknown) = ^CallSideEffect : ~m? +# 2842| mu2842_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2842_1 +# 2843| r2843_1(glval) = VariableAddress[x941] : +# 2843| r2843_2(glval) = FunctionAddress[~String] : +# 2843| v2843_3(void) = Call[~String] : func:r2843_2, this:r2843_1 +# 2843| mu2843_4(unknown) = ^CallSideEffect : ~m? +# 2843| v2843_5(void) = ^IndirectReadSideEffect[-1] : &:r2843_1, ~m? +# 2843| mu2843_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2843_1 +# 2843| r2843_7(bool) = Constant[0] : +# 2843| v2843_8(void) = ConditionalBranch : r2843_7 +#-----| False -> Block 943 +#-----| True (back edge) -> Block 942 + +# 2845| Block 943 +# 2845| r2845_1(glval) = VariableAddress[x942] : +# 2845| mu2845_2(String) = Uninitialized[x942] : &:r2845_1 +# 2845| r2845_3(glval) = FunctionAddress[String] : +# 2845| v2845_4(void) = Call[String] : func:r2845_3, this:r2845_1 +# 2845| mu2845_5(unknown) = ^CallSideEffect : ~m? +# 2845| mu2845_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2845_1 +# 2846| r2846_1(glval) = VariableAddress[x942] : +# 2846| r2846_2(glval) = FunctionAddress[~String] : +# 2846| v2846_3(void) = Call[~String] : func:r2846_2, this:r2846_1 +# 2846| mu2846_4(unknown) = ^CallSideEffect : ~m? +# 2846| v2846_5(void) = ^IndirectReadSideEffect[-1] : &:r2846_1, ~m? +# 2846| mu2846_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2846_1 +# 2846| r2846_7(bool) = Constant[0] : +# 2846| v2846_8(void) = ConditionalBranch : r2846_7 +#-----| False -> Block 944 +#-----| True (back edge) -> Block 943 + +# 2848| Block 944 +# 2848| r2848_1(glval) = VariableAddress[x943] : +# 2848| mu2848_2(String) = Uninitialized[x943] : &:r2848_1 +# 2848| r2848_3(glval) = FunctionAddress[String] : +# 2848| v2848_4(void) = Call[String] : func:r2848_3, this:r2848_1 +# 2848| mu2848_5(unknown) = ^CallSideEffect : ~m? +# 2848| mu2848_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2848_1 +# 2849| r2849_1(glval) = VariableAddress[x943] : +# 2849| r2849_2(glval) = FunctionAddress[~String] : +# 2849| v2849_3(void) = Call[~String] : func:r2849_2, this:r2849_1 +# 2849| mu2849_4(unknown) = ^CallSideEffect : ~m? +# 2849| v2849_5(void) = ^IndirectReadSideEffect[-1] : &:r2849_1, ~m? +# 2849| mu2849_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2849_1 +# 2849| r2849_7(bool) = Constant[0] : +# 2849| v2849_8(void) = ConditionalBranch : r2849_7 +#-----| False -> Block 945 +#-----| True (back edge) -> Block 944 + +# 2851| Block 945 +# 2851| r2851_1(glval) = VariableAddress[x944] : +# 2851| mu2851_2(String) = Uninitialized[x944] : &:r2851_1 +# 2851| r2851_3(glval) = FunctionAddress[String] : +# 2851| v2851_4(void) = Call[String] : func:r2851_3, this:r2851_1 +# 2851| mu2851_5(unknown) = ^CallSideEffect : ~m? +# 2851| mu2851_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2851_1 +# 2852| r2852_1(glval) = VariableAddress[x944] : +# 2852| r2852_2(glval) = FunctionAddress[~String] : +# 2852| v2852_3(void) = Call[~String] : func:r2852_2, this:r2852_1 +# 2852| mu2852_4(unknown) = ^CallSideEffect : ~m? +# 2852| v2852_5(void) = ^IndirectReadSideEffect[-1] : &:r2852_1, ~m? +# 2852| mu2852_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2852_1 +# 2852| r2852_7(bool) = Constant[0] : +# 2852| v2852_8(void) = ConditionalBranch : r2852_7 +#-----| False -> Block 946 +#-----| True (back edge) -> Block 945 + +# 2854| Block 946 +# 2854| r2854_1(glval) = VariableAddress[x945] : +# 2854| mu2854_2(String) = Uninitialized[x945] : &:r2854_1 +# 2854| r2854_3(glval) = FunctionAddress[String] : +# 2854| v2854_4(void) = Call[String] : func:r2854_3, this:r2854_1 +# 2854| mu2854_5(unknown) = ^CallSideEffect : ~m? +# 2854| mu2854_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2854_1 +# 2855| r2855_1(glval) = VariableAddress[x945] : +# 2855| r2855_2(glval) = FunctionAddress[~String] : +# 2855| v2855_3(void) = Call[~String] : func:r2855_2, this:r2855_1 +# 2855| mu2855_4(unknown) = ^CallSideEffect : ~m? +# 2855| v2855_5(void) = ^IndirectReadSideEffect[-1] : &:r2855_1, ~m? +# 2855| mu2855_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2855_1 +# 2855| r2855_7(bool) = Constant[0] : +# 2855| v2855_8(void) = ConditionalBranch : r2855_7 +#-----| False -> Block 947 +#-----| True (back edge) -> Block 946 + +# 2857| Block 947 +# 2857| r2857_1(glval) = VariableAddress[x946] : +# 2857| mu2857_2(String) = Uninitialized[x946] : &:r2857_1 +# 2857| r2857_3(glval) = FunctionAddress[String] : +# 2857| v2857_4(void) = Call[String] : func:r2857_3, this:r2857_1 +# 2857| mu2857_5(unknown) = ^CallSideEffect : ~m? +# 2857| mu2857_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2857_1 +# 2858| r2858_1(glval) = VariableAddress[x946] : +# 2858| r2858_2(glval) = FunctionAddress[~String] : +# 2858| v2858_3(void) = Call[~String] : func:r2858_2, this:r2858_1 +# 2858| mu2858_4(unknown) = ^CallSideEffect : ~m? +# 2858| v2858_5(void) = ^IndirectReadSideEffect[-1] : &:r2858_1, ~m? +# 2858| mu2858_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2858_1 +# 2858| r2858_7(bool) = Constant[0] : +# 2858| v2858_8(void) = ConditionalBranch : r2858_7 +#-----| False -> Block 948 +#-----| True (back edge) -> Block 947 + +# 2860| Block 948 +# 2860| r2860_1(glval) = VariableAddress[x947] : +# 2860| mu2860_2(String) = Uninitialized[x947] : &:r2860_1 +# 2860| r2860_3(glval) = FunctionAddress[String] : +# 2860| v2860_4(void) = Call[String] : func:r2860_3, this:r2860_1 +# 2860| mu2860_5(unknown) = ^CallSideEffect : ~m? +# 2860| mu2860_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2860_1 +# 2861| r2861_1(glval) = VariableAddress[x947] : +# 2861| r2861_2(glval) = FunctionAddress[~String] : +# 2861| v2861_3(void) = Call[~String] : func:r2861_2, this:r2861_1 +# 2861| mu2861_4(unknown) = ^CallSideEffect : ~m? +# 2861| v2861_5(void) = ^IndirectReadSideEffect[-1] : &:r2861_1, ~m? +# 2861| mu2861_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2861_1 +# 2861| r2861_7(bool) = Constant[0] : +# 2861| v2861_8(void) = ConditionalBranch : r2861_7 +#-----| False -> Block 949 +#-----| True (back edge) -> Block 948 + +# 2863| Block 949 +# 2863| r2863_1(glval) = VariableAddress[x948] : +# 2863| mu2863_2(String) = Uninitialized[x948] : &:r2863_1 +# 2863| r2863_3(glval) = FunctionAddress[String] : +# 2863| v2863_4(void) = Call[String] : func:r2863_3, this:r2863_1 +# 2863| mu2863_5(unknown) = ^CallSideEffect : ~m? +# 2863| mu2863_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2863_1 +# 2864| r2864_1(glval) = VariableAddress[x948] : +# 2864| r2864_2(glval) = FunctionAddress[~String] : +# 2864| v2864_3(void) = Call[~String] : func:r2864_2, this:r2864_1 +# 2864| mu2864_4(unknown) = ^CallSideEffect : ~m? +# 2864| v2864_5(void) = ^IndirectReadSideEffect[-1] : &:r2864_1, ~m? +# 2864| mu2864_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2864_1 +# 2864| r2864_7(bool) = Constant[0] : +# 2864| v2864_8(void) = ConditionalBranch : r2864_7 +#-----| False -> Block 950 +#-----| True (back edge) -> Block 949 + +# 2866| Block 950 +# 2866| r2866_1(glval) = VariableAddress[x949] : +# 2866| mu2866_2(String) = Uninitialized[x949] : &:r2866_1 +# 2866| r2866_3(glval) = FunctionAddress[String] : +# 2866| v2866_4(void) = Call[String] : func:r2866_3, this:r2866_1 +# 2866| mu2866_5(unknown) = ^CallSideEffect : ~m? +# 2866| mu2866_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2866_1 +# 2867| r2867_1(glval) = VariableAddress[x949] : +# 2867| r2867_2(glval) = FunctionAddress[~String] : +# 2867| v2867_3(void) = Call[~String] : func:r2867_2, this:r2867_1 +# 2867| mu2867_4(unknown) = ^CallSideEffect : ~m? +# 2867| v2867_5(void) = ^IndirectReadSideEffect[-1] : &:r2867_1, ~m? +# 2867| mu2867_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2867_1 +# 2867| r2867_7(bool) = Constant[0] : +# 2867| v2867_8(void) = ConditionalBranch : r2867_7 +#-----| False -> Block 951 +#-----| True (back edge) -> Block 950 + +# 2869| Block 951 +# 2869| r2869_1(glval) = VariableAddress[x950] : +# 2869| mu2869_2(String) = Uninitialized[x950] : &:r2869_1 +# 2869| r2869_3(glval) = FunctionAddress[String] : +# 2869| v2869_4(void) = Call[String] : func:r2869_3, this:r2869_1 +# 2869| mu2869_5(unknown) = ^CallSideEffect : ~m? +# 2869| mu2869_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2869_1 +# 2870| r2870_1(glval) = VariableAddress[x950] : +# 2870| r2870_2(glval) = FunctionAddress[~String] : +# 2870| v2870_3(void) = Call[~String] : func:r2870_2, this:r2870_1 +# 2870| mu2870_4(unknown) = ^CallSideEffect : ~m? +# 2870| v2870_5(void) = ^IndirectReadSideEffect[-1] : &:r2870_1, ~m? +# 2870| mu2870_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2870_1 +# 2870| r2870_7(bool) = Constant[0] : +# 2870| v2870_8(void) = ConditionalBranch : r2870_7 +#-----| False -> Block 952 +#-----| True (back edge) -> Block 951 + +# 2872| Block 952 +# 2872| r2872_1(glval) = VariableAddress[x951] : +# 2872| mu2872_2(String) = Uninitialized[x951] : &:r2872_1 +# 2872| r2872_3(glval) = FunctionAddress[String] : +# 2872| v2872_4(void) = Call[String] : func:r2872_3, this:r2872_1 +# 2872| mu2872_5(unknown) = ^CallSideEffect : ~m? +# 2872| mu2872_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2872_1 +# 2873| r2873_1(glval) = VariableAddress[x951] : +# 2873| r2873_2(glval) = FunctionAddress[~String] : +# 2873| v2873_3(void) = Call[~String] : func:r2873_2, this:r2873_1 +# 2873| mu2873_4(unknown) = ^CallSideEffect : ~m? +# 2873| v2873_5(void) = ^IndirectReadSideEffect[-1] : &:r2873_1, ~m? +# 2873| mu2873_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2873_1 +# 2873| r2873_7(bool) = Constant[0] : +# 2873| v2873_8(void) = ConditionalBranch : r2873_7 +#-----| False -> Block 953 +#-----| True (back edge) -> Block 952 + +# 2875| Block 953 +# 2875| r2875_1(glval) = VariableAddress[x952] : +# 2875| mu2875_2(String) = Uninitialized[x952] : &:r2875_1 +# 2875| r2875_3(glval) = FunctionAddress[String] : +# 2875| v2875_4(void) = Call[String] : func:r2875_3, this:r2875_1 +# 2875| mu2875_5(unknown) = ^CallSideEffect : ~m? +# 2875| mu2875_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2875_1 +# 2876| r2876_1(glval) = VariableAddress[x952] : +# 2876| r2876_2(glval) = FunctionAddress[~String] : +# 2876| v2876_3(void) = Call[~String] : func:r2876_2, this:r2876_1 +# 2876| mu2876_4(unknown) = ^CallSideEffect : ~m? +# 2876| v2876_5(void) = ^IndirectReadSideEffect[-1] : &:r2876_1, ~m? +# 2876| mu2876_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2876_1 +# 2876| r2876_7(bool) = Constant[0] : +# 2876| v2876_8(void) = ConditionalBranch : r2876_7 +#-----| False -> Block 954 +#-----| True (back edge) -> Block 953 + +# 2878| Block 954 +# 2878| r2878_1(glval) = VariableAddress[x953] : +# 2878| mu2878_2(String) = Uninitialized[x953] : &:r2878_1 +# 2878| r2878_3(glval) = FunctionAddress[String] : +# 2878| v2878_4(void) = Call[String] : func:r2878_3, this:r2878_1 +# 2878| mu2878_5(unknown) = ^CallSideEffect : ~m? +# 2878| mu2878_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2878_1 +# 2879| r2879_1(glval) = VariableAddress[x953] : +# 2879| r2879_2(glval) = FunctionAddress[~String] : +# 2879| v2879_3(void) = Call[~String] : func:r2879_2, this:r2879_1 +# 2879| mu2879_4(unknown) = ^CallSideEffect : ~m? +# 2879| v2879_5(void) = ^IndirectReadSideEffect[-1] : &:r2879_1, ~m? +# 2879| mu2879_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2879_1 +# 2879| r2879_7(bool) = Constant[0] : +# 2879| v2879_8(void) = ConditionalBranch : r2879_7 +#-----| False -> Block 955 +#-----| True (back edge) -> Block 954 + +# 2881| Block 955 +# 2881| r2881_1(glval) = VariableAddress[x954] : +# 2881| mu2881_2(String) = Uninitialized[x954] : &:r2881_1 +# 2881| r2881_3(glval) = FunctionAddress[String] : +# 2881| v2881_4(void) = Call[String] : func:r2881_3, this:r2881_1 +# 2881| mu2881_5(unknown) = ^CallSideEffect : ~m? +# 2881| mu2881_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2881_1 +# 2882| r2882_1(glval) = VariableAddress[x954] : +# 2882| r2882_2(glval) = FunctionAddress[~String] : +# 2882| v2882_3(void) = Call[~String] : func:r2882_2, this:r2882_1 +# 2882| mu2882_4(unknown) = ^CallSideEffect : ~m? +# 2882| v2882_5(void) = ^IndirectReadSideEffect[-1] : &:r2882_1, ~m? +# 2882| mu2882_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2882_1 +# 2882| r2882_7(bool) = Constant[0] : +# 2882| v2882_8(void) = ConditionalBranch : r2882_7 +#-----| False -> Block 956 +#-----| True (back edge) -> Block 955 + +# 2884| Block 956 +# 2884| r2884_1(glval) = VariableAddress[x955] : +# 2884| mu2884_2(String) = Uninitialized[x955] : &:r2884_1 +# 2884| r2884_3(glval) = FunctionAddress[String] : +# 2884| v2884_4(void) = Call[String] : func:r2884_3, this:r2884_1 +# 2884| mu2884_5(unknown) = ^CallSideEffect : ~m? +# 2884| mu2884_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2884_1 +# 2885| r2885_1(glval) = VariableAddress[x955] : +# 2885| r2885_2(glval) = FunctionAddress[~String] : +# 2885| v2885_3(void) = Call[~String] : func:r2885_2, this:r2885_1 +# 2885| mu2885_4(unknown) = ^CallSideEffect : ~m? +# 2885| v2885_5(void) = ^IndirectReadSideEffect[-1] : &:r2885_1, ~m? +# 2885| mu2885_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2885_1 +# 2885| r2885_7(bool) = Constant[0] : +# 2885| v2885_8(void) = ConditionalBranch : r2885_7 +#-----| False -> Block 957 +#-----| True (back edge) -> Block 956 + +# 2887| Block 957 +# 2887| r2887_1(glval) = VariableAddress[x956] : +# 2887| mu2887_2(String) = Uninitialized[x956] : &:r2887_1 +# 2887| r2887_3(glval) = FunctionAddress[String] : +# 2887| v2887_4(void) = Call[String] : func:r2887_3, this:r2887_1 +# 2887| mu2887_5(unknown) = ^CallSideEffect : ~m? +# 2887| mu2887_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2887_1 +# 2888| r2888_1(glval) = VariableAddress[x956] : +# 2888| r2888_2(glval) = FunctionAddress[~String] : +# 2888| v2888_3(void) = Call[~String] : func:r2888_2, this:r2888_1 +# 2888| mu2888_4(unknown) = ^CallSideEffect : ~m? +# 2888| v2888_5(void) = ^IndirectReadSideEffect[-1] : &:r2888_1, ~m? +# 2888| mu2888_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2888_1 +# 2888| r2888_7(bool) = Constant[0] : +# 2888| v2888_8(void) = ConditionalBranch : r2888_7 +#-----| False -> Block 958 +#-----| True (back edge) -> Block 957 + +# 2890| Block 958 +# 2890| r2890_1(glval) = VariableAddress[x957] : +# 2890| mu2890_2(String) = Uninitialized[x957] : &:r2890_1 +# 2890| r2890_3(glval) = FunctionAddress[String] : +# 2890| v2890_4(void) = Call[String] : func:r2890_3, this:r2890_1 +# 2890| mu2890_5(unknown) = ^CallSideEffect : ~m? +# 2890| mu2890_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2890_1 +# 2891| r2891_1(glval) = VariableAddress[x957] : +# 2891| r2891_2(glval) = FunctionAddress[~String] : +# 2891| v2891_3(void) = Call[~String] : func:r2891_2, this:r2891_1 +# 2891| mu2891_4(unknown) = ^CallSideEffect : ~m? +# 2891| v2891_5(void) = ^IndirectReadSideEffect[-1] : &:r2891_1, ~m? +# 2891| mu2891_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2891_1 +# 2891| r2891_7(bool) = Constant[0] : +# 2891| v2891_8(void) = ConditionalBranch : r2891_7 +#-----| False -> Block 959 +#-----| True (back edge) -> Block 958 + +# 2893| Block 959 +# 2893| r2893_1(glval) = VariableAddress[x958] : +# 2893| mu2893_2(String) = Uninitialized[x958] : &:r2893_1 +# 2893| r2893_3(glval) = FunctionAddress[String] : +# 2893| v2893_4(void) = Call[String] : func:r2893_3, this:r2893_1 +# 2893| mu2893_5(unknown) = ^CallSideEffect : ~m? +# 2893| mu2893_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2893_1 +# 2894| r2894_1(glval) = VariableAddress[x958] : +# 2894| r2894_2(glval) = FunctionAddress[~String] : +# 2894| v2894_3(void) = Call[~String] : func:r2894_2, this:r2894_1 +# 2894| mu2894_4(unknown) = ^CallSideEffect : ~m? +# 2894| v2894_5(void) = ^IndirectReadSideEffect[-1] : &:r2894_1, ~m? +# 2894| mu2894_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2894_1 +# 2894| r2894_7(bool) = Constant[0] : +# 2894| v2894_8(void) = ConditionalBranch : r2894_7 +#-----| False -> Block 960 +#-----| True (back edge) -> Block 959 + +# 2896| Block 960 +# 2896| r2896_1(glval) = VariableAddress[x959] : +# 2896| mu2896_2(String) = Uninitialized[x959] : &:r2896_1 +# 2896| r2896_3(glval) = FunctionAddress[String] : +# 2896| v2896_4(void) = Call[String] : func:r2896_3, this:r2896_1 +# 2896| mu2896_5(unknown) = ^CallSideEffect : ~m? +# 2896| mu2896_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2896_1 +# 2897| r2897_1(glval) = VariableAddress[x959] : +# 2897| r2897_2(glval) = FunctionAddress[~String] : +# 2897| v2897_3(void) = Call[~String] : func:r2897_2, this:r2897_1 +# 2897| mu2897_4(unknown) = ^CallSideEffect : ~m? +# 2897| v2897_5(void) = ^IndirectReadSideEffect[-1] : &:r2897_1, ~m? +# 2897| mu2897_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2897_1 +# 2897| r2897_7(bool) = Constant[0] : +# 2897| v2897_8(void) = ConditionalBranch : r2897_7 +#-----| False -> Block 961 +#-----| True (back edge) -> Block 960 + +# 2899| Block 961 +# 2899| r2899_1(glval) = VariableAddress[x960] : +# 2899| mu2899_2(String) = Uninitialized[x960] : &:r2899_1 +# 2899| r2899_3(glval) = FunctionAddress[String] : +# 2899| v2899_4(void) = Call[String] : func:r2899_3, this:r2899_1 +# 2899| mu2899_5(unknown) = ^CallSideEffect : ~m? +# 2899| mu2899_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2899_1 +# 2900| r2900_1(glval) = VariableAddress[x960] : +# 2900| r2900_2(glval) = FunctionAddress[~String] : +# 2900| v2900_3(void) = Call[~String] : func:r2900_2, this:r2900_1 +# 2900| mu2900_4(unknown) = ^CallSideEffect : ~m? +# 2900| v2900_5(void) = ^IndirectReadSideEffect[-1] : &:r2900_1, ~m? +# 2900| mu2900_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2900_1 +# 2900| r2900_7(bool) = Constant[0] : +# 2900| v2900_8(void) = ConditionalBranch : r2900_7 +#-----| False -> Block 962 +#-----| True (back edge) -> Block 961 + +# 2902| Block 962 +# 2902| r2902_1(glval) = VariableAddress[x961] : +# 2902| mu2902_2(String) = Uninitialized[x961] : &:r2902_1 +# 2902| r2902_3(glval) = FunctionAddress[String] : +# 2902| v2902_4(void) = Call[String] : func:r2902_3, this:r2902_1 +# 2902| mu2902_5(unknown) = ^CallSideEffect : ~m? +# 2902| mu2902_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2902_1 +# 2903| r2903_1(glval) = VariableAddress[x961] : +# 2903| r2903_2(glval) = FunctionAddress[~String] : +# 2903| v2903_3(void) = Call[~String] : func:r2903_2, this:r2903_1 +# 2903| mu2903_4(unknown) = ^CallSideEffect : ~m? +# 2903| v2903_5(void) = ^IndirectReadSideEffect[-1] : &:r2903_1, ~m? +# 2903| mu2903_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2903_1 +# 2903| r2903_7(bool) = Constant[0] : +# 2903| v2903_8(void) = ConditionalBranch : r2903_7 +#-----| False -> Block 963 +#-----| True (back edge) -> Block 962 + +# 2905| Block 963 +# 2905| r2905_1(glval) = VariableAddress[x962] : +# 2905| mu2905_2(String) = Uninitialized[x962] : &:r2905_1 +# 2905| r2905_3(glval) = FunctionAddress[String] : +# 2905| v2905_4(void) = Call[String] : func:r2905_3, this:r2905_1 +# 2905| mu2905_5(unknown) = ^CallSideEffect : ~m? +# 2905| mu2905_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2905_1 +# 2906| r2906_1(glval) = VariableAddress[x962] : +# 2906| r2906_2(glval) = FunctionAddress[~String] : +# 2906| v2906_3(void) = Call[~String] : func:r2906_2, this:r2906_1 +# 2906| mu2906_4(unknown) = ^CallSideEffect : ~m? +# 2906| v2906_5(void) = ^IndirectReadSideEffect[-1] : &:r2906_1, ~m? +# 2906| mu2906_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2906_1 +# 2906| r2906_7(bool) = Constant[0] : +# 2906| v2906_8(void) = ConditionalBranch : r2906_7 +#-----| False -> Block 964 +#-----| True (back edge) -> Block 963 + +# 2908| Block 964 +# 2908| r2908_1(glval) = VariableAddress[x963] : +# 2908| mu2908_2(String) = Uninitialized[x963] : &:r2908_1 +# 2908| r2908_3(glval) = FunctionAddress[String] : +# 2908| v2908_4(void) = Call[String] : func:r2908_3, this:r2908_1 +# 2908| mu2908_5(unknown) = ^CallSideEffect : ~m? +# 2908| mu2908_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2908_1 +# 2909| r2909_1(glval) = VariableAddress[x963] : +# 2909| r2909_2(glval) = FunctionAddress[~String] : +# 2909| v2909_3(void) = Call[~String] : func:r2909_2, this:r2909_1 +# 2909| mu2909_4(unknown) = ^CallSideEffect : ~m? +# 2909| v2909_5(void) = ^IndirectReadSideEffect[-1] : &:r2909_1, ~m? +# 2909| mu2909_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2909_1 +# 2909| r2909_7(bool) = Constant[0] : +# 2909| v2909_8(void) = ConditionalBranch : r2909_7 +#-----| False -> Block 965 +#-----| True (back edge) -> Block 964 + +# 2911| Block 965 +# 2911| r2911_1(glval) = VariableAddress[x964] : +# 2911| mu2911_2(String) = Uninitialized[x964] : &:r2911_1 +# 2911| r2911_3(glval) = FunctionAddress[String] : +# 2911| v2911_4(void) = Call[String] : func:r2911_3, this:r2911_1 +# 2911| mu2911_5(unknown) = ^CallSideEffect : ~m? +# 2911| mu2911_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2911_1 +# 2912| r2912_1(glval) = VariableAddress[x964] : +# 2912| r2912_2(glval) = FunctionAddress[~String] : +# 2912| v2912_3(void) = Call[~String] : func:r2912_2, this:r2912_1 +# 2912| mu2912_4(unknown) = ^CallSideEffect : ~m? +# 2912| v2912_5(void) = ^IndirectReadSideEffect[-1] : &:r2912_1, ~m? +# 2912| mu2912_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2912_1 +# 2912| r2912_7(bool) = Constant[0] : +# 2912| v2912_8(void) = ConditionalBranch : r2912_7 +#-----| False -> Block 966 +#-----| True (back edge) -> Block 965 + +# 2914| Block 966 +# 2914| r2914_1(glval) = VariableAddress[x965] : +# 2914| mu2914_2(String) = Uninitialized[x965] : &:r2914_1 +# 2914| r2914_3(glval) = FunctionAddress[String] : +# 2914| v2914_4(void) = Call[String] : func:r2914_3, this:r2914_1 +# 2914| mu2914_5(unknown) = ^CallSideEffect : ~m? +# 2914| mu2914_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2914_1 +# 2915| r2915_1(glval) = VariableAddress[x965] : +# 2915| r2915_2(glval) = FunctionAddress[~String] : +# 2915| v2915_3(void) = Call[~String] : func:r2915_2, this:r2915_1 +# 2915| mu2915_4(unknown) = ^CallSideEffect : ~m? +# 2915| v2915_5(void) = ^IndirectReadSideEffect[-1] : &:r2915_1, ~m? +# 2915| mu2915_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2915_1 +# 2915| r2915_7(bool) = Constant[0] : +# 2915| v2915_8(void) = ConditionalBranch : r2915_7 +#-----| False -> Block 967 +#-----| True (back edge) -> Block 966 + +# 2917| Block 967 +# 2917| r2917_1(glval) = VariableAddress[x966] : +# 2917| mu2917_2(String) = Uninitialized[x966] : &:r2917_1 +# 2917| r2917_3(glval) = FunctionAddress[String] : +# 2917| v2917_4(void) = Call[String] : func:r2917_3, this:r2917_1 +# 2917| mu2917_5(unknown) = ^CallSideEffect : ~m? +# 2917| mu2917_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2917_1 +# 2918| r2918_1(glval) = VariableAddress[x966] : +# 2918| r2918_2(glval) = FunctionAddress[~String] : +# 2918| v2918_3(void) = Call[~String] : func:r2918_2, this:r2918_1 +# 2918| mu2918_4(unknown) = ^CallSideEffect : ~m? +# 2918| v2918_5(void) = ^IndirectReadSideEffect[-1] : &:r2918_1, ~m? +# 2918| mu2918_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2918_1 +# 2918| r2918_7(bool) = Constant[0] : +# 2918| v2918_8(void) = ConditionalBranch : r2918_7 +#-----| False -> Block 968 +#-----| True (back edge) -> Block 967 + +# 2920| Block 968 +# 2920| r2920_1(glval) = VariableAddress[x967] : +# 2920| mu2920_2(String) = Uninitialized[x967] : &:r2920_1 +# 2920| r2920_3(glval) = FunctionAddress[String] : +# 2920| v2920_4(void) = Call[String] : func:r2920_3, this:r2920_1 +# 2920| mu2920_5(unknown) = ^CallSideEffect : ~m? +# 2920| mu2920_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2920_1 +# 2921| r2921_1(glval) = VariableAddress[x967] : +# 2921| r2921_2(glval) = FunctionAddress[~String] : +# 2921| v2921_3(void) = Call[~String] : func:r2921_2, this:r2921_1 +# 2921| mu2921_4(unknown) = ^CallSideEffect : ~m? +# 2921| v2921_5(void) = ^IndirectReadSideEffect[-1] : &:r2921_1, ~m? +# 2921| mu2921_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2921_1 +# 2921| r2921_7(bool) = Constant[0] : +# 2921| v2921_8(void) = ConditionalBranch : r2921_7 +#-----| False -> Block 969 +#-----| True (back edge) -> Block 968 + +# 2923| Block 969 +# 2923| r2923_1(glval) = VariableAddress[x968] : +# 2923| mu2923_2(String) = Uninitialized[x968] : &:r2923_1 +# 2923| r2923_3(glval) = FunctionAddress[String] : +# 2923| v2923_4(void) = Call[String] : func:r2923_3, this:r2923_1 +# 2923| mu2923_5(unknown) = ^CallSideEffect : ~m? +# 2923| mu2923_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2923_1 +# 2924| r2924_1(glval) = VariableAddress[x968] : +# 2924| r2924_2(glval) = FunctionAddress[~String] : +# 2924| v2924_3(void) = Call[~String] : func:r2924_2, this:r2924_1 +# 2924| mu2924_4(unknown) = ^CallSideEffect : ~m? +# 2924| v2924_5(void) = ^IndirectReadSideEffect[-1] : &:r2924_1, ~m? +# 2924| mu2924_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2924_1 +# 2924| r2924_7(bool) = Constant[0] : +# 2924| v2924_8(void) = ConditionalBranch : r2924_7 +#-----| False -> Block 970 +#-----| True (back edge) -> Block 969 + +# 2926| Block 970 +# 2926| r2926_1(glval) = VariableAddress[x969] : +# 2926| mu2926_2(String) = Uninitialized[x969] : &:r2926_1 +# 2926| r2926_3(glval) = FunctionAddress[String] : +# 2926| v2926_4(void) = Call[String] : func:r2926_3, this:r2926_1 +# 2926| mu2926_5(unknown) = ^CallSideEffect : ~m? +# 2926| mu2926_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2926_1 +# 2927| r2927_1(glval) = VariableAddress[x969] : +# 2927| r2927_2(glval) = FunctionAddress[~String] : +# 2927| v2927_3(void) = Call[~String] : func:r2927_2, this:r2927_1 +# 2927| mu2927_4(unknown) = ^CallSideEffect : ~m? +# 2927| v2927_5(void) = ^IndirectReadSideEffect[-1] : &:r2927_1, ~m? +# 2927| mu2927_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2927_1 +# 2927| r2927_7(bool) = Constant[0] : +# 2927| v2927_8(void) = ConditionalBranch : r2927_7 +#-----| False -> Block 971 +#-----| True (back edge) -> Block 970 + +# 2929| Block 971 +# 2929| r2929_1(glval) = VariableAddress[x970] : +# 2929| mu2929_2(String) = Uninitialized[x970] : &:r2929_1 +# 2929| r2929_3(glval) = FunctionAddress[String] : +# 2929| v2929_4(void) = Call[String] : func:r2929_3, this:r2929_1 +# 2929| mu2929_5(unknown) = ^CallSideEffect : ~m? +# 2929| mu2929_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2929_1 +# 2930| r2930_1(glval) = VariableAddress[x970] : +# 2930| r2930_2(glval) = FunctionAddress[~String] : +# 2930| v2930_3(void) = Call[~String] : func:r2930_2, this:r2930_1 +# 2930| mu2930_4(unknown) = ^CallSideEffect : ~m? +# 2930| v2930_5(void) = ^IndirectReadSideEffect[-1] : &:r2930_1, ~m? +# 2930| mu2930_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2930_1 +# 2930| r2930_7(bool) = Constant[0] : +# 2930| v2930_8(void) = ConditionalBranch : r2930_7 +#-----| False -> Block 972 +#-----| True (back edge) -> Block 971 + +# 2932| Block 972 +# 2932| r2932_1(glval) = VariableAddress[x971] : +# 2932| mu2932_2(String) = Uninitialized[x971] : &:r2932_1 +# 2932| r2932_3(glval) = FunctionAddress[String] : +# 2932| v2932_4(void) = Call[String] : func:r2932_3, this:r2932_1 +# 2932| mu2932_5(unknown) = ^CallSideEffect : ~m? +# 2932| mu2932_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2932_1 +# 2933| r2933_1(glval) = VariableAddress[x971] : +# 2933| r2933_2(glval) = FunctionAddress[~String] : +# 2933| v2933_3(void) = Call[~String] : func:r2933_2, this:r2933_1 +# 2933| mu2933_4(unknown) = ^CallSideEffect : ~m? +# 2933| v2933_5(void) = ^IndirectReadSideEffect[-1] : &:r2933_1, ~m? +# 2933| mu2933_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2933_1 +# 2933| r2933_7(bool) = Constant[0] : +# 2933| v2933_8(void) = ConditionalBranch : r2933_7 +#-----| False -> Block 973 +#-----| True (back edge) -> Block 972 + +# 2935| Block 973 +# 2935| r2935_1(glval) = VariableAddress[x972] : +# 2935| mu2935_2(String) = Uninitialized[x972] : &:r2935_1 +# 2935| r2935_3(glval) = FunctionAddress[String] : +# 2935| v2935_4(void) = Call[String] : func:r2935_3, this:r2935_1 +# 2935| mu2935_5(unknown) = ^CallSideEffect : ~m? +# 2935| mu2935_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2935_1 +# 2936| r2936_1(glval) = VariableAddress[x972] : +# 2936| r2936_2(glval) = FunctionAddress[~String] : +# 2936| v2936_3(void) = Call[~String] : func:r2936_2, this:r2936_1 +# 2936| mu2936_4(unknown) = ^CallSideEffect : ~m? +# 2936| v2936_5(void) = ^IndirectReadSideEffect[-1] : &:r2936_1, ~m? +# 2936| mu2936_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2936_1 +# 2936| r2936_7(bool) = Constant[0] : +# 2936| v2936_8(void) = ConditionalBranch : r2936_7 +#-----| False -> Block 974 +#-----| True (back edge) -> Block 973 + +# 2938| Block 974 +# 2938| r2938_1(glval) = VariableAddress[x973] : +# 2938| mu2938_2(String) = Uninitialized[x973] : &:r2938_1 +# 2938| r2938_3(glval) = FunctionAddress[String] : +# 2938| v2938_4(void) = Call[String] : func:r2938_3, this:r2938_1 +# 2938| mu2938_5(unknown) = ^CallSideEffect : ~m? +# 2938| mu2938_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2938_1 +# 2939| r2939_1(glval) = VariableAddress[x973] : +# 2939| r2939_2(glval) = FunctionAddress[~String] : +# 2939| v2939_3(void) = Call[~String] : func:r2939_2, this:r2939_1 +# 2939| mu2939_4(unknown) = ^CallSideEffect : ~m? +# 2939| v2939_5(void) = ^IndirectReadSideEffect[-1] : &:r2939_1, ~m? +# 2939| mu2939_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2939_1 +# 2939| r2939_7(bool) = Constant[0] : +# 2939| v2939_8(void) = ConditionalBranch : r2939_7 +#-----| False -> Block 975 +#-----| True (back edge) -> Block 974 + +# 2941| Block 975 +# 2941| r2941_1(glval) = VariableAddress[x974] : +# 2941| mu2941_2(String) = Uninitialized[x974] : &:r2941_1 +# 2941| r2941_3(glval) = FunctionAddress[String] : +# 2941| v2941_4(void) = Call[String] : func:r2941_3, this:r2941_1 +# 2941| mu2941_5(unknown) = ^CallSideEffect : ~m? +# 2941| mu2941_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2941_1 +# 2942| r2942_1(glval) = VariableAddress[x974] : +# 2942| r2942_2(glval) = FunctionAddress[~String] : +# 2942| v2942_3(void) = Call[~String] : func:r2942_2, this:r2942_1 +# 2942| mu2942_4(unknown) = ^CallSideEffect : ~m? +# 2942| v2942_5(void) = ^IndirectReadSideEffect[-1] : &:r2942_1, ~m? +# 2942| mu2942_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2942_1 +# 2942| r2942_7(bool) = Constant[0] : +# 2942| v2942_8(void) = ConditionalBranch : r2942_7 +#-----| False -> Block 976 +#-----| True (back edge) -> Block 975 + +# 2944| Block 976 +# 2944| r2944_1(glval) = VariableAddress[x975] : +# 2944| mu2944_2(String) = Uninitialized[x975] : &:r2944_1 +# 2944| r2944_3(glval) = FunctionAddress[String] : +# 2944| v2944_4(void) = Call[String] : func:r2944_3, this:r2944_1 +# 2944| mu2944_5(unknown) = ^CallSideEffect : ~m? +# 2944| mu2944_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2944_1 +# 2945| r2945_1(glval) = VariableAddress[x975] : +# 2945| r2945_2(glval) = FunctionAddress[~String] : +# 2945| v2945_3(void) = Call[~String] : func:r2945_2, this:r2945_1 +# 2945| mu2945_4(unknown) = ^CallSideEffect : ~m? +# 2945| v2945_5(void) = ^IndirectReadSideEffect[-1] : &:r2945_1, ~m? +# 2945| mu2945_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2945_1 +# 2945| r2945_7(bool) = Constant[0] : +# 2945| v2945_8(void) = ConditionalBranch : r2945_7 +#-----| False -> Block 977 +#-----| True (back edge) -> Block 976 + +# 2947| Block 977 +# 2947| r2947_1(glval) = VariableAddress[x976] : +# 2947| mu2947_2(String) = Uninitialized[x976] : &:r2947_1 +# 2947| r2947_3(glval) = FunctionAddress[String] : +# 2947| v2947_4(void) = Call[String] : func:r2947_3, this:r2947_1 +# 2947| mu2947_5(unknown) = ^CallSideEffect : ~m? +# 2947| mu2947_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2947_1 +# 2948| r2948_1(glval) = VariableAddress[x976] : +# 2948| r2948_2(glval) = FunctionAddress[~String] : +# 2948| v2948_3(void) = Call[~String] : func:r2948_2, this:r2948_1 +# 2948| mu2948_4(unknown) = ^CallSideEffect : ~m? +# 2948| v2948_5(void) = ^IndirectReadSideEffect[-1] : &:r2948_1, ~m? +# 2948| mu2948_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2948_1 +# 2948| r2948_7(bool) = Constant[0] : +# 2948| v2948_8(void) = ConditionalBranch : r2948_7 +#-----| False -> Block 978 +#-----| True (back edge) -> Block 977 + +# 2950| Block 978 +# 2950| r2950_1(glval) = VariableAddress[x977] : +# 2950| mu2950_2(String) = Uninitialized[x977] : &:r2950_1 +# 2950| r2950_3(glval) = FunctionAddress[String] : +# 2950| v2950_4(void) = Call[String] : func:r2950_3, this:r2950_1 +# 2950| mu2950_5(unknown) = ^CallSideEffect : ~m? +# 2950| mu2950_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2950_1 +# 2951| r2951_1(glval) = VariableAddress[x977] : +# 2951| r2951_2(glval) = FunctionAddress[~String] : +# 2951| v2951_3(void) = Call[~String] : func:r2951_2, this:r2951_1 +# 2951| mu2951_4(unknown) = ^CallSideEffect : ~m? +# 2951| v2951_5(void) = ^IndirectReadSideEffect[-1] : &:r2951_1, ~m? +# 2951| mu2951_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2951_1 +# 2951| r2951_7(bool) = Constant[0] : +# 2951| v2951_8(void) = ConditionalBranch : r2951_7 +#-----| False -> Block 979 +#-----| True (back edge) -> Block 978 + +# 2953| Block 979 +# 2953| r2953_1(glval) = VariableAddress[x978] : +# 2953| mu2953_2(String) = Uninitialized[x978] : &:r2953_1 +# 2953| r2953_3(glval) = FunctionAddress[String] : +# 2953| v2953_4(void) = Call[String] : func:r2953_3, this:r2953_1 +# 2953| mu2953_5(unknown) = ^CallSideEffect : ~m? +# 2953| mu2953_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2953_1 +# 2954| r2954_1(glval) = VariableAddress[x978] : +# 2954| r2954_2(glval) = FunctionAddress[~String] : +# 2954| v2954_3(void) = Call[~String] : func:r2954_2, this:r2954_1 +# 2954| mu2954_4(unknown) = ^CallSideEffect : ~m? +# 2954| v2954_5(void) = ^IndirectReadSideEffect[-1] : &:r2954_1, ~m? +# 2954| mu2954_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2954_1 +# 2954| r2954_7(bool) = Constant[0] : +# 2954| v2954_8(void) = ConditionalBranch : r2954_7 +#-----| False -> Block 980 +#-----| True (back edge) -> Block 979 + +# 2956| Block 980 +# 2956| r2956_1(glval) = VariableAddress[x979] : +# 2956| mu2956_2(String) = Uninitialized[x979] : &:r2956_1 +# 2956| r2956_3(glval) = FunctionAddress[String] : +# 2956| v2956_4(void) = Call[String] : func:r2956_3, this:r2956_1 +# 2956| mu2956_5(unknown) = ^CallSideEffect : ~m? +# 2956| mu2956_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2956_1 +# 2957| r2957_1(glval) = VariableAddress[x979] : +# 2957| r2957_2(glval) = FunctionAddress[~String] : +# 2957| v2957_3(void) = Call[~String] : func:r2957_2, this:r2957_1 +# 2957| mu2957_4(unknown) = ^CallSideEffect : ~m? +# 2957| v2957_5(void) = ^IndirectReadSideEffect[-1] : &:r2957_1, ~m? +# 2957| mu2957_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2957_1 +# 2957| r2957_7(bool) = Constant[0] : +# 2957| v2957_8(void) = ConditionalBranch : r2957_7 +#-----| False -> Block 981 +#-----| True (back edge) -> Block 980 + +# 2959| Block 981 +# 2959| r2959_1(glval) = VariableAddress[x980] : +# 2959| mu2959_2(String) = Uninitialized[x980] : &:r2959_1 +# 2959| r2959_3(glval) = FunctionAddress[String] : +# 2959| v2959_4(void) = Call[String] : func:r2959_3, this:r2959_1 +# 2959| mu2959_5(unknown) = ^CallSideEffect : ~m? +# 2959| mu2959_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2959_1 +# 2960| r2960_1(glval) = VariableAddress[x980] : +# 2960| r2960_2(glval) = FunctionAddress[~String] : +# 2960| v2960_3(void) = Call[~String] : func:r2960_2, this:r2960_1 +# 2960| mu2960_4(unknown) = ^CallSideEffect : ~m? +# 2960| v2960_5(void) = ^IndirectReadSideEffect[-1] : &:r2960_1, ~m? +# 2960| mu2960_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2960_1 +# 2960| r2960_7(bool) = Constant[0] : +# 2960| v2960_8(void) = ConditionalBranch : r2960_7 +#-----| False -> Block 982 +#-----| True (back edge) -> Block 981 + +# 2962| Block 982 +# 2962| r2962_1(glval) = VariableAddress[x981] : +# 2962| mu2962_2(String) = Uninitialized[x981] : &:r2962_1 +# 2962| r2962_3(glval) = FunctionAddress[String] : +# 2962| v2962_4(void) = Call[String] : func:r2962_3, this:r2962_1 +# 2962| mu2962_5(unknown) = ^CallSideEffect : ~m? +# 2962| mu2962_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2962_1 +# 2963| r2963_1(glval) = VariableAddress[x981] : +# 2963| r2963_2(glval) = FunctionAddress[~String] : +# 2963| v2963_3(void) = Call[~String] : func:r2963_2, this:r2963_1 +# 2963| mu2963_4(unknown) = ^CallSideEffect : ~m? +# 2963| v2963_5(void) = ^IndirectReadSideEffect[-1] : &:r2963_1, ~m? +# 2963| mu2963_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2963_1 +# 2963| r2963_7(bool) = Constant[0] : +# 2963| v2963_8(void) = ConditionalBranch : r2963_7 +#-----| False -> Block 983 +#-----| True (back edge) -> Block 982 + +# 2965| Block 983 +# 2965| r2965_1(glval) = VariableAddress[x982] : +# 2965| mu2965_2(String) = Uninitialized[x982] : &:r2965_1 +# 2965| r2965_3(glval) = FunctionAddress[String] : +# 2965| v2965_4(void) = Call[String] : func:r2965_3, this:r2965_1 +# 2965| mu2965_5(unknown) = ^CallSideEffect : ~m? +# 2965| mu2965_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2965_1 +# 2966| r2966_1(glval) = VariableAddress[x982] : +# 2966| r2966_2(glval) = FunctionAddress[~String] : +# 2966| v2966_3(void) = Call[~String] : func:r2966_2, this:r2966_1 +# 2966| mu2966_4(unknown) = ^CallSideEffect : ~m? +# 2966| v2966_5(void) = ^IndirectReadSideEffect[-1] : &:r2966_1, ~m? +# 2966| mu2966_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2966_1 +# 2966| r2966_7(bool) = Constant[0] : +# 2966| v2966_8(void) = ConditionalBranch : r2966_7 +#-----| False -> Block 984 +#-----| True (back edge) -> Block 983 + +# 2968| Block 984 +# 2968| r2968_1(glval) = VariableAddress[x983] : +# 2968| mu2968_2(String) = Uninitialized[x983] : &:r2968_1 +# 2968| r2968_3(glval) = FunctionAddress[String] : +# 2968| v2968_4(void) = Call[String] : func:r2968_3, this:r2968_1 +# 2968| mu2968_5(unknown) = ^CallSideEffect : ~m? +# 2968| mu2968_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2968_1 +# 2969| r2969_1(glval) = VariableAddress[x983] : +# 2969| r2969_2(glval) = FunctionAddress[~String] : +# 2969| v2969_3(void) = Call[~String] : func:r2969_2, this:r2969_1 +# 2969| mu2969_4(unknown) = ^CallSideEffect : ~m? +# 2969| v2969_5(void) = ^IndirectReadSideEffect[-1] : &:r2969_1, ~m? +# 2969| mu2969_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2969_1 +# 2969| r2969_7(bool) = Constant[0] : +# 2969| v2969_8(void) = ConditionalBranch : r2969_7 +#-----| False -> Block 985 +#-----| True (back edge) -> Block 984 + +# 2971| Block 985 +# 2971| r2971_1(glval) = VariableAddress[x984] : +# 2971| mu2971_2(String) = Uninitialized[x984] : &:r2971_1 +# 2971| r2971_3(glval) = FunctionAddress[String] : +# 2971| v2971_4(void) = Call[String] : func:r2971_3, this:r2971_1 +# 2971| mu2971_5(unknown) = ^CallSideEffect : ~m? +# 2971| mu2971_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2971_1 +# 2972| r2972_1(glval) = VariableAddress[x984] : +# 2972| r2972_2(glval) = FunctionAddress[~String] : +# 2972| v2972_3(void) = Call[~String] : func:r2972_2, this:r2972_1 +# 2972| mu2972_4(unknown) = ^CallSideEffect : ~m? +# 2972| v2972_5(void) = ^IndirectReadSideEffect[-1] : &:r2972_1, ~m? +# 2972| mu2972_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2972_1 +# 2972| r2972_7(bool) = Constant[0] : +# 2972| v2972_8(void) = ConditionalBranch : r2972_7 +#-----| False -> Block 986 +#-----| True (back edge) -> Block 985 + +# 2974| Block 986 +# 2974| r2974_1(glval) = VariableAddress[x985] : +# 2974| mu2974_2(String) = Uninitialized[x985] : &:r2974_1 +# 2974| r2974_3(glval) = FunctionAddress[String] : +# 2974| v2974_4(void) = Call[String] : func:r2974_3, this:r2974_1 +# 2974| mu2974_5(unknown) = ^CallSideEffect : ~m? +# 2974| mu2974_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2974_1 +# 2975| r2975_1(glval) = VariableAddress[x985] : +# 2975| r2975_2(glval) = FunctionAddress[~String] : +# 2975| v2975_3(void) = Call[~String] : func:r2975_2, this:r2975_1 +# 2975| mu2975_4(unknown) = ^CallSideEffect : ~m? +# 2975| v2975_5(void) = ^IndirectReadSideEffect[-1] : &:r2975_1, ~m? +# 2975| mu2975_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2975_1 +# 2975| r2975_7(bool) = Constant[0] : +# 2975| v2975_8(void) = ConditionalBranch : r2975_7 +#-----| False -> Block 987 +#-----| True (back edge) -> Block 986 + +# 2977| Block 987 +# 2977| r2977_1(glval) = VariableAddress[x986] : +# 2977| mu2977_2(String) = Uninitialized[x986] : &:r2977_1 +# 2977| r2977_3(glval) = FunctionAddress[String] : +# 2977| v2977_4(void) = Call[String] : func:r2977_3, this:r2977_1 +# 2977| mu2977_5(unknown) = ^CallSideEffect : ~m? +# 2977| mu2977_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2977_1 +# 2978| r2978_1(glval) = VariableAddress[x986] : +# 2978| r2978_2(glval) = FunctionAddress[~String] : +# 2978| v2978_3(void) = Call[~String] : func:r2978_2, this:r2978_1 +# 2978| mu2978_4(unknown) = ^CallSideEffect : ~m? +# 2978| v2978_5(void) = ^IndirectReadSideEffect[-1] : &:r2978_1, ~m? +# 2978| mu2978_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2978_1 +# 2978| r2978_7(bool) = Constant[0] : +# 2978| v2978_8(void) = ConditionalBranch : r2978_7 +#-----| False -> Block 988 +#-----| True (back edge) -> Block 987 + +# 2980| Block 988 +# 2980| r2980_1(glval) = VariableAddress[x987] : +# 2980| mu2980_2(String) = Uninitialized[x987] : &:r2980_1 +# 2980| r2980_3(glval) = FunctionAddress[String] : +# 2980| v2980_4(void) = Call[String] : func:r2980_3, this:r2980_1 +# 2980| mu2980_5(unknown) = ^CallSideEffect : ~m? +# 2980| mu2980_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2980_1 +# 2981| r2981_1(glval) = VariableAddress[x987] : +# 2981| r2981_2(glval) = FunctionAddress[~String] : +# 2981| v2981_3(void) = Call[~String] : func:r2981_2, this:r2981_1 +# 2981| mu2981_4(unknown) = ^CallSideEffect : ~m? +# 2981| v2981_5(void) = ^IndirectReadSideEffect[-1] : &:r2981_1, ~m? +# 2981| mu2981_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2981_1 +# 2981| r2981_7(bool) = Constant[0] : +# 2981| v2981_8(void) = ConditionalBranch : r2981_7 +#-----| False -> Block 989 +#-----| True (back edge) -> Block 988 + +# 2983| Block 989 +# 2983| r2983_1(glval) = VariableAddress[x988] : +# 2983| mu2983_2(String) = Uninitialized[x988] : &:r2983_1 +# 2983| r2983_3(glval) = FunctionAddress[String] : +# 2983| v2983_4(void) = Call[String] : func:r2983_3, this:r2983_1 +# 2983| mu2983_5(unknown) = ^CallSideEffect : ~m? +# 2983| mu2983_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2983_1 +# 2984| r2984_1(glval) = VariableAddress[x988] : +# 2984| r2984_2(glval) = FunctionAddress[~String] : +# 2984| v2984_3(void) = Call[~String] : func:r2984_2, this:r2984_1 +# 2984| mu2984_4(unknown) = ^CallSideEffect : ~m? +# 2984| v2984_5(void) = ^IndirectReadSideEffect[-1] : &:r2984_1, ~m? +# 2984| mu2984_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2984_1 +# 2984| r2984_7(bool) = Constant[0] : +# 2984| v2984_8(void) = ConditionalBranch : r2984_7 +#-----| False -> Block 990 +#-----| True (back edge) -> Block 989 + +# 2986| Block 990 +# 2986| r2986_1(glval) = VariableAddress[x989] : +# 2986| mu2986_2(String) = Uninitialized[x989] : &:r2986_1 +# 2986| r2986_3(glval) = FunctionAddress[String] : +# 2986| v2986_4(void) = Call[String] : func:r2986_3, this:r2986_1 +# 2986| mu2986_5(unknown) = ^CallSideEffect : ~m? +# 2986| mu2986_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2986_1 +# 2987| r2987_1(glval) = VariableAddress[x989] : +# 2987| r2987_2(glval) = FunctionAddress[~String] : +# 2987| v2987_3(void) = Call[~String] : func:r2987_2, this:r2987_1 +# 2987| mu2987_4(unknown) = ^CallSideEffect : ~m? +# 2987| v2987_5(void) = ^IndirectReadSideEffect[-1] : &:r2987_1, ~m? +# 2987| mu2987_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2987_1 +# 2987| r2987_7(bool) = Constant[0] : +# 2987| v2987_8(void) = ConditionalBranch : r2987_7 +#-----| False -> Block 991 +#-----| True (back edge) -> Block 990 + +# 2989| Block 991 +# 2989| r2989_1(glval) = VariableAddress[x990] : +# 2989| mu2989_2(String) = Uninitialized[x990] : &:r2989_1 +# 2989| r2989_3(glval) = FunctionAddress[String] : +# 2989| v2989_4(void) = Call[String] : func:r2989_3, this:r2989_1 +# 2989| mu2989_5(unknown) = ^CallSideEffect : ~m? +# 2989| mu2989_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2989_1 +# 2990| r2990_1(glval) = VariableAddress[x990] : +# 2990| r2990_2(glval) = FunctionAddress[~String] : +# 2990| v2990_3(void) = Call[~String] : func:r2990_2, this:r2990_1 +# 2990| mu2990_4(unknown) = ^CallSideEffect : ~m? +# 2990| v2990_5(void) = ^IndirectReadSideEffect[-1] : &:r2990_1, ~m? +# 2990| mu2990_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2990_1 +# 2990| r2990_7(bool) = Constant[0] : +# 2990| v2990_8(void) = ConditionalBranch : r2990_7 +#-----| False -> Block 992 +#-----| True (back edge) -> Block 991 + +# 2992| Block 992 +# 2992| r2992_1(glval) = VariableAddress[x991] : +# 2992| mu2992_2(String) = Uninitialized[x991] : &:r2992_1 +# 2992| r2992_3(glval) = FunctionAddress[String] : +# 2992| v2992_4(void) = Call[String] : func:r2992_3, this:r2992_1 +# 2992| mu2992_5(unknown) = ^CallSideEffect : ~m? +# 2992| mu2992_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2992_1 +# 2993| r2993_1(glval) = VariableAddress[x991] : +# 2993| r2993_2(glval) = FunctionAddress[~String] : +# 2993| v2993_3(void) = Call[~String] : func:r2993_2, this:r2993_1 +# 2993| mu2993_4(unknown) = ^CallSideEffect : ~m? +# 2993| v2993_5(void) = ^IndirectReadSideEffect[-1] : &:r2993_1, ~m? +# 2993| mu2993_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2993_1 +# 2993| r2993_7(bool) = Constant[0] : +# 2993| v2993_8(void) = ConditionalBranch : r2993_7 +#-----| False -> Block 993 +#-----| True (back edge) -> Block 992 + +# 2995| Block 993 +# 2995| r2995_1(glval) = VariableAddress[x992] : +# 2995| mu2995_2(String) = Uninitialized[x992] : &:r2995_1 +# 2995| r2995_3(glval) = FunctionAddress[String] : +# 2995| v2995_4(void) = Call[String] : func:r2995_3, this:r2995_1 +# 2995| mu2995_5(unknown) = ^CallSideEffect : ~m? +# 2995| mu2995_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2995_1 +# 2996| r2996_1(glval) = VariableAddress[x992] : +# 2996| r2996_2(glval) = FunctionAddress[~String] : +# 2996| v2996_3(void) = Call[~String] : func:r2996_2, this:r2996_1 +# 2996| mu2996_4(unknown) = ^CallSideEffect : ~m? +# 2996| v2996_5(void) = ^IndirectReadSideEffect[-1] : &:r2996_1, ~m? +# 2996| mu2996_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2996_1 +# 2996| r2996_7(bool) = Constant[0] : +# 2996| v2996_8(void) = ConditionalBranch : r2996_7 +#-----| False -> Block 994 +#-----| True (back edge) -> Block 993 + +# 2998| Block 994 +# 2998| r2998_1(glval) = VariableAddress[x993] : +# 2998| mu2998_2(String) = Uninitialized[x993] : &:r2998_1 +# 2998| r2998_3(glval) = FunctionAddress[String] : +# 2998| v2998_4(void) = Call[String] : func:r2998_3, this:r2998_1 +# 2998| mu2998_5(unknown) = ^CallSideEffect : ~m? +# 2998| mu2998_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2998_1 +# 2999| r2999_1(glval) = VariableAddress[x993] : +# 2999| r2999_2(glval) = FunctionAddress[~String] : +# 2999| v2999_3(void) = Call[~String] : func:r2999_2, this:r2999_1 +# 2999| mu2999_4(unknown) = ^CallSideEffect : ~m? +# 2999| v2999_5(void) = ^IndirectReadSideEffect[-1] : &:r2999_1, ~m? +# 2999| mu2999_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r2999_1 +# 2999| r2999_7(bool) = Constant[0] : +# 2999| v2999_8(void) = ConditionalBranch : r2999_7 +#-----| False -> Block 995 +#-----| True (back edge) -> Block 994 + +# 3001| Block 995 +# 3001| r3001_1(glval) = VariableAddress[x994] : +# 3001| mu3001_2(String) = Uninitialized[x994] : &:r3001_1 +# 3001| r3001_3(glval) = FunctionAddress[String] : +# 3001| v3001_4(void) = Call[String] : func:r3001_3, this:r3001_1 +# 3001| mu3001_5(unknown) = ^CallSideEffect : ~m? +# 3001| mu3001_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3001_1 +# 3002| r3002_1(glval) = VariableAddress[x994] : +# 3002| r3002_2(glval) = FunctionAddress[~String] : +# 3002| v3002_3(void) = Call[~String] : func:r3002_2, this:r3002_1 +# 3002| mu3002_4(unknown) = ^CallSideEffect : ~m? +# 3002| v3002_5(void) = ^IndirectReadSideEffect[-1] : &:r3002_1, ~m? +# 3002| mu3002_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3002_1 +# 3002| r3002_7(bool) = Constant[0] : +# 3002| v3002_8(void) = ConditionalBranch : r3002_7 +#-----| False -> Block 996 +#-----| True (back edge) -> Block 995 + +# 3004| Block 996 +# 3004| r3004_1(glval) = VariableAddress[x995] : +# 3004| mu3004_2(String) = Uninitialized[x995] : &:r3004_1 +# 3004| r3004_3(glval) = FunctionAddress[String] : +# 3004| v3004_4(void) = Call[String] : func:r3004_3, this:r3004_1 +# 3004| mu3004_5(unknown) = ^CallSideEffect : ~m? +# 3004| mu3004_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3004_1 +# 3005| r3005_1(glval) = VariableAddress[x995] : +# 3005| r3005_2(glval) = FunctionAddress[~String] : +# 3005| v3005_3(void) = Call[~String] : func:r3005_2, this:r3005_1 +# 3005| mu3005_4(unknown) = ^CallSideEffect : ~m? +# 3005| v3005_5(void) = ^IndirectReadSideEffect[-1] : &:r3005_1, ~m? +# 3005| mu3005_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3005_1 +# 3005| r3005_7(bool) = Constant[0] : +# 3005| v3005_8(void) = ConditionalBranch : r3005_7 +#-----| False -> Block 997 +#-----| True (back edge) -> Block 996 + +# 3007| Block 997 +# 3007| r3007_1(glval) = VariableAddress[x996] : +# 3007| mu3007_2(String) = Uninitialized[x996] : &:r3007_1 +# 3007| r3007_3(glval) = FunctionAddress[String] : +# 3007| v3007_4(void) = Call[String] : func:r3007_3, this:r3007_1 +# 3007| mu3007_5(unknown) = ^CallSideEffect : ~m? +# 3007| mu3007_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3007_1 +# 3008| r3008_1(glval) = VariableAddress[x996] : +# 3008| r3008_2(glval) = FunctionAddress[~String] : +# 3008| v3008_3(void) = Call[~String] : func:r3008_2, this:r3008_1 +# 3008| mu3008_4(unknown) = ^CallSideEffect : ~m? +# 3008| v3008_5(void) = ^IndirectReadSideEffect[-1] : &:r3008_1, ~m? +# 3008| mu3008_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3008_1 +# 3008| r3008_7(bool) = Constant[0] : +# 3008| v3008_8(void) = ConditionalBranch : r3008_7 +#-----| False -> Block 998 +#-----| True (back edge) -> Block 997 + +# 3010| Block 998 +# 3010| r3010_1(glval) = VariableAddress[x997] : +# 3010| mu3010_2(String) = Uninitialized[x997] : &:r3010_1 +# 3010| r3010_3(glval) = FunctionAddress[String] : +# 3010| v3010_4(void) = Call[String] : func:r3010_3, this:r3010_1 +# 3010| mu3010_5(unknown) = ^CallSideEffect : ~m? +# 3010| mu3010_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3010_1 +# 3011| r3011_1(glval) = VariableAddress[x997] : +# 3011| r3011_2(glval) = FunctionAddress[~String] : +# 3011| v3011_3(void) = Call[~String] : func:r3011_2, this:r3011_1 +# 3011| mu3011_4(unknown) = ^CallSideEffect : ~m? +# 3011| v3011_5(void) = ^IndirectReadSideEffect[-1] : &:r3011_1, ~m? +# 3011| mu3011_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3011_1 +# 3011| r3011_7(bool) = Constant[0] : +# 3011| v3011_8(void) = ConditionalBranch : r3011_7 +#-----| False -> Block 999 +#-----| True (back edge) -> Block 998 + +# 3013| Block 999 +# 3013| r3013_1(glval) = VariableAddress[x998] : +# 3013| mu3013_2(String) = Uninitialized[x998] : &:r3013_1 +# 3013| r3013_3(glval) = FunctionAddress[String] : +# 3013| v3013_4(void) = Call[String] : func:r3013_3, this:r3013_1 +# 3013| mu3013_5(unknown) = ^CallSideEffect : ~m? +# 3013| mu3013_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3013_1 +# 3014| r3014_1(glval) = VariableAddress[x998] : +# 3014| r3014_2(glval) = FunctionAddress[~String] : +# 3014| v3014_3(void) = Call[~String] : func:r3014_2, this:r3014_1 +# 3014| mu3014_4(unknown) = ^CallSideEffect : ~m? +# 3014| v3014_5(void) = ^IndirectReadSideEffect[-1] : &:r3014_1, ~m? +# 3014| mu3014_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3014_1 +# 3014| r3014_7(bool) = Constant[0] : +# 3014| v3014_8(void) = ConditionalBranch : r3014_7 +#-----| False -> Block 1000 +#-----| True (back edge) -> Block 999 + +# 3016| Block 1000 +# 3016| r3016_1(glval) = VariableAddress[x999] : +# 3016| mu3016_2(String) = Uninitialized[x999] : &:r3016_1 +# 3016| r3016_3(glval) = FunctionAddress[String] : +# 3016| v3016_4(void) = Call[String] : func:r3016_3, this:r3016_1 +# 3016| mu3016_5(unknown) = ^CallSideEffect : ~m? +# 3016| mu3016_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3016_1 +# 3017| r3017_1(glval) = VariableAddress[x999] : +# 3017| r3017_2(glval) = FunctionAddress[~String] : +# 3017| v3017_3(void) = Call[~String] : func:r3017_2, this:r3017_1 +# 3017| mu3017_4(unknown) = ^CallSideEffect : ~m? +# 3017| v3017_5(void) = ^IndirectReadSideEffect[-1] : &:r3017_1, ~m? +# 3017| mu3017_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3017_1 +# 3017| r3017_7(bool) = Constant[0] : +# 3017| v3017_8(void) = ConditionalBranch : r3017_7 +#-----| False -> Block 1001 +#-----| True (back edge) -> Block 1000 + +# 3019| Block 1001 +# 3019| r3019_1(glval) = VariableAddress[x1000] : +# 3019| mu3019_2(String) = Uninitialized[x1000] : &:r3019_1 +# 3019| r3019_3(glval) = FunctionAddress[String] : +# 3019| v3019_4(void) = Call[String] : func:r3019_3, this:r3019_1 +# 3019| mu3019_5(unknown) = ^CallSideEffect : ~m? +# 3019| mu3019_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3019_1 +# 3020| r3020_1(glval) = VariableAddress[x1000] : +# 3020| r3020_2(glval) = FunctionAddress[~String] : +# 3020| v3020_3(void) = Call[~String] : func:r3020_2, this:r3020_1 +# 3020| mu3020_4(unknown) = ^CallSideEffect : ~m? +# 3020| v3020_5(void) = ^IndirectReadSideEffect[-1] : &:r3020_1, ~m? +# 3020| mu3020_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3020_1 +# 3020| r3020_7(bool) = Constant[0] : +# 3020| v3020_8(void) = ConditionalBranch : r3020_7 +#-----| False -> Block 1002 +#-----| True (back edge) -> Block 1001 + +# 3022| Block 1002 +# 3022| r3022_1(glval) = VariableAddress[x1001] : +# 3022| mu3022_2(String) = Uninitialized[x1001] : &:r3022_1 +# 3022| r3022_3(glval) = FunctionAddress[String] : +# 3022| v3022_4(void) = Call[String] : func:r3022_3, this:r3022_1 +# 3022| mu3022_5(unknown) = ^CallSideEffect : ~m? +# 3022| mu3022_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3022_1 +# 3023| r3023_1(glval) = VariableAddress[x1001] : +# 3023| r3023_2(glval) = FunctionAddress[~String] : +# 3023| v3023_3(void) = Call[~String] : func:r3023_2, this:r3023_1 +# 3023| mu3023_4(unknown) = ^CallSideEffect : ~m? +# 3023| v3023_5(void) = ^IndirectReadSideEffect[-1] : &:r3023_1, ~m? +# 3023| mu3023_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3023_1 +# 3023| r3023_7(bool) = Constant[0] : +# 3023| v3023_8(void) = ConditionalBranch : r3023_7 +#-----| False -> Block 1003 +#-----| True (back edge) -> Block 1002 + +# 3025| Block 1003 +# 3025| r3025_1(glval) = VariableAddress[x1002] : +# 3025| mu3025_2(String) = Uninitialized[x1002] : &:r3025_1 +# 3025| r3025_3(glval) = FunctionAddress[String] : +# 3025| v3025_4(void) = Call[String] : func:r3025_3, this:r3025_1 +# 3025| mu3025_5(unknown) = ^CallSideEffect : ~m? +# 3025| mu3025_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3025_1 +# 3026| r3026_1(glval) = VariableAddress[x1002] : +# 3026| r3026_2(glval) = FunctionAddress[~String] : +# 3026| v3026_3(void) = Call[~String] : func:r3026_2, this:r3026_1 +# 3026| mu3026_4(unknown) = ^CallSideEffect : ~m? +# 3026| v3026_5(void) = ^IndirectReadSideEffect[-1] : &:r3026_1, ~m? +# 3026| mu3026_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3026_1 +# 3026| r3026_7(bool) = Constant[0] : +# 3026| v3026_8(void) = ConditionalBranch : r3026_7 +#-----| False -> Block 1004 +#-----| True (back edge) -> Block 1003 + +# 3028| Block 1004 +# 3028| r3028_1(glval) = VariableAddress[x1003] : +# 3028| mu3028_2(String) = Uninitialized[x1003] : &:r3028_1 +# 3028| r3028_3(glval) = FunctionAddress[String] : +# 3028| v3028_4(void) = Call[String] : func:r3028_3, this:r3028_1 +# 3028| mu3028_5(unknown) = ^CallSideEffect : ~m? +# 3028| mu3028_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3028_1 +# 3029| r3029_1(glval) = VariableAddress[x1003] : +# 3029| r3029_2(glval) = FunctionAddress[~String] : +# 3029| v3029_3(void) = Call[~String] : func:r3029_2, this:r3029_1 +# 3029| mu3029_4(unknown) = ^CallSideEffect : ~m? +# 3029| v3029_5(void) = ^IndirectReadSideEffect[-1] : &:r3029_1, ~m? +# 3029| mu3029_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3029_1 +# 3029| r3029_7(bool) = Constant[0] : +# 3029| v3029_8(void) = ConditionalBranch : r3029_7 +#-----| False -> Block 1005 +#-----| True (back edge) -> Block 1004 + +# 3031| Block 1005 +# 3031| r3031_1(glval) = VariableAddress[x1004] : +# 3031| mu3031_2(String) = Uninitialized[x1004] : &:r3031_1 +# 3031| r3031_3(glval) = FunctionAddress[String] : +# 3031| v3031_4(void) = Call[String] : func:r3031_3, this:r3031_1 +# 3031| mu3031_5(unknown) = ^CallSideEffect : ~m? +# 3031| mu3031_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3031_1 +# 3032| r3032_1(glval) = VariableAddress[x1004] : +# 3032| r3032_2(glval) = FunctionAddress[~String] : +# 3032| v3032_3(void) = Call[~String] : func:r3032_2, this:r3032_1 +# 3032| mu3032_4(unknown) = ^CallSideEffect : ~m? +# 3032| v3032_5(void) = ^IndirectReadSideEffect[-1] : &:r3032_1, ~m? +# 3032| mu3032_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3032_1 +# 3032| r3032_7(bool) = Constant[0] : +# 3032| v3032_8(void) = ConditionalBranch : r3032_7 +#-----| False -> Block 1006 +#-----| True (back edge) -> Block 1005 + +# 3034| Block 1006 +# 3034| r3034_1(glval) = VariableAddress[x1005] : +# 3034| mu3034_2(String) = Uninitialized[x1005] : &:r3034_1 +# 3034| r3034_3(glval) = FunctionAddress[String] : +# 3034| v3034_4(void) = Call[String] : func:r3034_3, this:r3034_1 +# 3034| mu3034_5(unknown) = ^CallSideEffect : ~m? +# 3034| mu3034_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3034_1 +# 3035| r3035_1(glval) = VariableAddress[x1005] : +# 3035| r3035_2(glval) = FunctionAddress[~String] : +# 3035| v3035_3(void) = Call[~String] : func:r3035_2, this:r3035_1 +# 3035| mu3035_4(unknown) = ^CallSideEffect : ~m? +# 3035| v3035_5(void) = ^IndirectReadSideEffect[-1] : &:r3035_1, ~m? +# 3035| mu3035_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3035_1 +# 3035| r3035_7(bool) = Constant[0] : +# 3035| v3035_8(void) = ConditionalBranch : r3035_7 +#-----| False -> Block 1007 +#-----| True (back edge) -> Block 1006 + +# 3037| Block 1007 +# 3037| r3037_1(glval) = VariableAddress[x1006] : +# 3037| mu3037_2(String) = Uninitialized[x1006] : &:r3037_1 +# 3037| r3037_3(glval) = FunctionAddress[String] : +# 3037| v3037_4(void) = Call[String] : func:r3037_3, this:r3037_1 +# 3037| mu3037_5(unknown) = ^CallSideEffect : ~m? +# 3037| mu3037_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3037_1 +# 3038| r3038_1(glval) = VariableAddress[x1006] : +# 3038| r3038_2(glval) = FunctionAddress[~String] : +# 3038| v3038_3(void) = Call[~String] : func:r3038_2, this:r3038_1 +# 3038| mu3038_4(unknown) = ^CallSideEffect : ~m? +# 3038| v3038_5(void) = ^IndirectReadSideEffect[-1] : &:r3038_1, ~m? +# 3038| mu3038_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3038_1 +# 3038| r3038_7(bool) = Constant[0] : +# 3038| v3038_8(void) = ConditionalBranch : r3038_7 +#-----| False -> Block 1008 +#-----| True (back edge) -> Block 1007 + +# 3040| Block 1008 +# 3040| r3040_1(glval) = VariableAddress[x1007] : +# 3040| mu3040_2(String) = Uninitialized[x1007] : &:r3040_1 +# 3040| r3040_3(glval) = FunctionAddress[String] : +# 3040| v3040_4(void) = Call[String] : func:r3040_3, this:r3040_1 +# 3040| mu3040_5(unknown) = ^CallSideEffect : ~m? +# 3040| mu3040_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3040_1 +# 3041| r3041_1(glval) = VariableAddress[x1007] : +# 3041| r3041_2(glval) = FunctionAddress[~String] : +# 3041| v3041_3(void) = Call[~String] : func:r3041_2, this:r3041_1 +# 3041| mu3041_4(unknown) = ^CallSideEffect : ~m? +# 3041| v3041_5(void) = ^IndirectReadSideEffect[-1] : &:r3041_1, ~m? +# 3041| mu3041_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3041_1 +# 3041| r3041_7(bool) = Constant[0] : +# 3041| v3041_8(void) = ConditionalBranch : r3041_7 +#-----| False -> Block 1009 +#-----| True (back edge) -> Block 1008 + +# 3043| Block 1009 +# 3043| r3043_1(glval) = VariableAddress[x1008] : +# 3043| mu3043_2(String) = Uninitialized[x1008] : &:r3043_1 +# 3043| r3043_3(glval) = FunctionAddress[String] : +# 3043| v3043_4(void) = Call[String] : func:r3043_3, this:r3043_1 +# 3043| mu3043_5(unknown) = ^CallSideEffect : ~m? +# 3043| mu3043_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3043_1 +# 3044| r3044_1(glval) = VariableAddress[x1008] : +# 3044| r3044_2(glval) = FunctionAddress[~String] : +# 3044| v3044_3(void) = Call[~String] : func:r3044_2, this:r3044_1 +# 3044| mu3044_4(unknown) = ^CallSideEffect : ~m? +# 3044| v3044_5(void) = ^IndirectReadSideEffect[-1] : &:r3044_1, ~m? +# 3044| mu3044_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3044_1 +# 3044| r3044_7(bool) = Constant[0] : +# 3044| v3044_8(void) = ConditionalBranch : r3044_7 +#-----| False -> Block 1010 +#-----| True (back edge) -> Block 1009 + +# 3046| Block 1010 +# 3046| r3046_1(glval) = VariableAddress[x1009] : +# 3046| mu3046_2(String) = Uninitialized[x1009] : &:r3046_1 +# 3046| r3046_3(glval) = FunctionAddress[String] : +# 3046| v3046_4(void) = Call[String] : func:r3046_3, this:r3046_1 +# 3046| mu3046_5(unknown) = ^CallSideEffect : ~m? +# 3046| mu3046_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3046_1 +# 3047| r3047_1(glval) = VariableAddress[x1009] : +# 3047| r3047_2(glval) = FunctionAddress[~String] : +# 3047| v3047_3(void) = Call[~String] : func:r3047_2, this:r3047_1 +# 3047| mu3047_4(unknown) = ^CallSideEffect : ~m? +# 3047| v3047_5(void) = ^IndirectReadSideEffect[-1] : &:r3047_1, ~m? +# 3047| mu3047_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3047_1 +# 3047| r3047_7(bool) = Constant[0] : +# 3047| v3047_8(void) = ConditionalBranch : r3047_7 +#-----| False -> Block 1011 +#-----| True (back edge) -> Block 1010 + +# 3049| Block 1011 +# 3049| r3049_1(glval) = VariableAddress[x1010] : +# 3049| mu3049_2(String) = Uninitialized[x1010] : &:r3049_1 +# 3049| r3049_3(glval) = FunctionAddress[String] : +# 3049| v3049_4(void) = Call[String] : func:r3049_3, this:r3049_1 +# 3049| mu3049_5(unknown) = ^CallSideEffect : ~m? +# 3049| mu3049_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3049_1 +# 3050| r3050_1(glval) = VariableAddress[x1010] : +# 3050| r3050_2(glval) = FunctionAddress[~String] : +# 3050| v3050_3(void) = Call[~String] : func:r3050_2, this:r3050_1 +# 3050| mu3050_4(unknown) = ^CallSideEffect : ~m? +# 3050| v3050_5(void) = ^IndirectReadSideEffect[-1] : &:r3050_1, ~m? +# 3050| mu3050_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3050_1 +# 3050| r3050_7(bool) = Constant[0] : +# 3050| v3050_8(void) = ConditionalBranch : r3050_7 +#-----| False -> Block 1012 +#-----| True (back edge) -> Block 1011 + +# 3052| Block 1012 +# 3052| r3052_1(glval) = VariableAddress[x1011] : +# 3052| mu3052_2(String) = Uninitialized[x1011] : &:r3052_1 +# 3052| r3052_3(glval) = FunctionAddress[String] : +# 3052| v3052_4(void) = Call[String] : func:r3052_3, this:r3052_1 +# 3052| mu3052_5(unknown) = ^CallSideEffect : ~m? +# 3052| mu3052_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3052_1 +# 3053| r3053_1(glval) = VariableAddress[x1011] : +# 3053| r3053_2(glval) = FunctionAddress[~String] : +# 3053| v3053_3(void) = Call[~String] : func:r3053_2, this:r3053_1 +# 3053| mu3053_4(unknown) = ^CallSideEffect : ~m? +# 3053| v3053_5(void) = ^IndirectReadSideEffect[-1] : &:r3053_1, ~m? +# 3053| mu3053_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3053_1 +# 3053| r3053_7(bool) = Constant[0] : +# 3053| v3053_8(void) = ConditionalBranch : r3053_7 +#-----| False -> Block 1013 +#-----| True (back edge) -> Block 1012 + +# 3055| Block 1013 +# 3055| r3055_1(glval) = VariableAddress[x1012] : +# 3055| mu3055_2(String) = Uninitialized[x1012] : &:r3055_1 +# 3055| r3055_3(glval) = FunctionAddress[String] : +# 3055| v3055_4(void) = Call[String] : func:r3055_3, this:r3055_1 +# 3055| mu3055_5(unknown) = ^CallSideEffect : ~m? +# 3055| mu3055_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3055_1 +# 3056| r3056_1(glval) = VariableAddress[x1012] : +# 3056| r3056_2(glval) = FunctionAddress[~String] : +# 3056| v3056_3(void) = Call[~String] : func:r3056_2, this:r3056_1 +# 3056| mu3056_4(unknown) = ^CallSideEffect : ~m? +# 3056| v3056_5(void) = ^IndirectReadSideEffect[-1] : &:r3056_1, ~m? +# 3056| mu3056_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3056_1 +# 3056| r3056_7(bool) = Constant[0] : +# 3056| v3056_8(void) = ConditionalBranch : r3056_7 +#-----| False -> Block 1014 +#-----| True (back edge) -> Block 1013 + +# 3058| Block 1014 +# 3058| r3058_1(glval) = VariableAddress[x1013] : +# 3058| mu3058_2(String) = Uninitialized[x1013] : &:r3058_1 +# 3058| r3058_3(glval) = FunctionAddress[String] : +# 3058| v3058_4(void) = Call[String] : func:r3058_3, this:r3058_1 +# 3058| mu3058_5(unknown) = ^CallSideEffect : ~m? +# 3058| mu3058_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3058_1 +# 3059| r3059_1(glval) = VariableAddress[x1013] : +# 3059| r3059_2(glval) = FunctionAddress[~String] : +# 3059| v3059_3(void) = Call[~String] : func:r3059_2, this:r3059_1 +# 3059| mu3059_4(unknown) = ^CallSideEffect : ~m? +# 3059| v3059_5(void) = ^IndirectReadSideEffect[-1] : &:r3059_1, ~m? +# 3059| mu3059_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3059_1 +# 3059| r3059_7(bool) = Constant[0] : +# 3059| v3059_8(void) = ConditionalBranch : r3059_7 +#-----| False -> Block 1015 +#-----| True (back edge) -> Block 1014 + +# 3061| Block 1015 +# 3061| r3061_1(glval) = VariableAddress[x1014] : +# 3061| mu3061_2(String) = Uninitialized[x1014] : &:r3061_1 +# 3061| r3061_3(glval) = FunctionAddress[String] : +# 3061| v3061_4(void) = Call[String] : func:r3061_3, this:r3061_1 +# 3061| mu3061_5(unknown) = ^CallSideEffect : ~m? +# 3061| mu3061_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3061_1 +# 3062| r3062_1(glval) = VariableAddress[x1014] : +# 3062| r3062_2(glval) = FunctionAddress[~String] : +# 3062| v3062_3(void) = Call[~String] : func:r3062_2, this:r3062_1 +# 3062| mu3062_4(unknown) = ^CallSideEffect : ~m? +# 3062| v3062_5(void) = ^IndirectReadSideEffect[-1] : &:r3062_1, ~m? +# 3062| mu3062_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3062_1 +# 3062| r3062_7(bool) = Constant[0] : +# 3062| v3062_8(void) = ConditionalBranch : r3062_7 +#-----| False -> Block 1016 +#-----| True (back edge) -> Block 1015 + +# 3064| Block 1016 +# 3064| r3064_1(glval) = VariableAddress[x1015] : +# 3064| mu3064_2(String) = Uninitialized[x1015] : &:r3064_1 +# 3064| r3064_3(glval) = FunctionAddress[String] : +# 3064| v3064_4(void) = Call[String] : func:r3064_3, this:r3064_1 +# 3064| mu3064_5(unknown) = ^CallSideEffect : ~m? +# 3064| mu3064_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3064_1 +# 3065| r3065_1(glval) = VariableAddress[x1015] : +# 3065| r3065_2(glval) = FunctionAddress[~String] : +# 3065| v3065_3(void) = Call[~String] : func:r3065_2, this:r3065_1 +# 3065| mu3065_4(unknown) = ^CallSideEffect : ~m? +# 3065| v3065_5(void) = ^IndirectReadSideEffect[-1] : &:r3065_1, ~m? +# 3065| mu3065_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3065_1 +# 3065| r3065_7(bool) = Constant[0] : +# 3065| v3065_8(void) = ConditionalBranch : r3065_7 +#-----| False -> Block 1017 +#-----| True (back edge) -> Block 1016 + +# 3067| Block 1017 +# 3067| r3067_1(glval) = VariableAddress[x1016] : +# 3067| mu3067_2(String) = Uninitialized[x1016] : &:r3067_1 +# 3067| r3067_3(glval) = FunctionAddress[String] : +# 3067| v3067_4(void) = Call[String] : func:r3067_3, this:r3067_1 +# 3067| mu3067_5(unknown) = ^CallSideEffect : ~m? +# 3067| mu3067_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3067_1 +# 3068| r3068_1(glval) = VariableAddress[x1016] : +# 3068| r3068_2(glval) = FunctionAddress[~String] : +# 3068| v3068_3(void) = Call[~String] : func:r3068_2, this:r3068_1 +# 3068| mu3068_4(unknown) = ^CallSideEffect : ~m? +# 3068| v3068_5(void) = ^IndirectReadSideEffect[-1] : &:r3068_1, ~m? +# 3068| mu3068_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3068_1 +# 3068| r3068_7(bool) = Constant[0] : +# 3068| v3068_8(void) = ConditionalBranch : r3068_7 +#-----| False -> Block 1018 +#-----| True (back edge) -> Block 1017 + +# 3070| Block 1018 +# 3070| r3070_1(glval) = VariableAddress[x1017] : +# 3070| mu3070_2(String) = Uninitialized[x1017] : &:r3070_1 +# 3070| r3070_3(glval) = FunctionAddress[String] : +# 3070| v3070_4(void) = Call[String] : func:r3070_3, this:r3070_1 +# 3070| mu3070_5(unknown) = ^CallSideEffect : ~m? +# 3070| mu3070_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3070_1 +# 3071| r3071_1(glval) = VariableAddress[x1017] : +# 3071| r3071_2(glval) = FunctionAddress[~String] : +# 3071| v3071_3(void) = Call[~String] : func:r3071_2, this:r3071_1 +# 3071| mu3071_4(unknown) = ^CallSideEffect : ~m? +# 3071| v3071_5(void) = ^IndirectReadSideEffect[-1] : &:r3071_1, ~m? +# 3071| mu3071_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3071_1 +# 3071| r3071_7(bool) = Constant[0] : +# 3071| v3071_8(void) = ConditionalBranch : r3071_7 +#-----| False -> Block 1019 +#-----| True (back edge) -> Block 1018 + +# 3073| Block 1019 +# 3073| r3073_1(glval) = VariableAddress[x1018] : +# 3073| mu3073_2(String) = Uninitialized[x1018] : &:r3073_1 +# 3073| r3073_3(glval) = FunctionAddress[String] : +# 3073| v3073_4(void) = Call[String] : func:r3073_3, this:r3073_1 +# 3073| mu3073_5(unknown) = ^CallSideEffect : ~m? +# 3073| mu3073_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3073_1 +# 3074| r3074_1(glval) = VariableAddress[x1018] : +# 3074| r3074_2(glval) = FunctionAddress[~String] : +# 3074| v3074_3(void) = Call[~String] : func:r3074_2, this:r3074_1 +# 3074| mu3074_4(unknown) = ^CallSideEffect : ~m? +# 3074| v3074_5(void) = ^IndirectReadSideEffect[-1] : &:r3074_1, ~m? +# 3074| mu3074_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3074_1 +# 3074| r3074_7(bool) = Constant[0] : +# 3074| v3074_8(void) = ConditionalBranch : r3074_7 +#-----| False -> Block 1020 +#-----| True (back edge) -> Block 1019 + +# 3076| Block 1020 +# 3076| r3076_1(glval) = VariableAddress[x1019] : +# 3076| mu3076_2(String) = Uninitialized[x1019] : &:r3076_1 +# 3076| r3076_3(glval) = FunctionAddress[String] : +# 3076| v3076_4(void) = Call[String] : func:r3076_3, this:r3076_1 +# 3076| mu3076_5(unknown) = ^CallSideEffect : ~m? +# 3076| mu3076_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3076_1 +# 3077| r3077_1(glval) = VariableAddress[x1019] : +# 3077| r3077_2(glval) = FunctionAddress[~String] : +# 3077| v3077_3(void) = Call[~String] : func:r3077_2, this:r3077_1 +# 3077| mu3077_4(unknown) = ^CallSideEffect : ~m? +# 3077| v3077_5(void) = ^IndirectReadSideEffect[-1] : &:r3077_1, ~m? +# 3077| mu3077_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3077_1 +# 3077| r3077_7(bool) = Constant[0] : +# 3077| v3077_8(void) = ConditionalBranch : r3077_7 +#-----| False -> Block 1021 +#-----| True (back edge) -> Block 1020 + +# 3079| Block 1021 +# 3079| r3079_1(glval) = VariableAddress[x1020] : +# 3079| mu3079_2(String) = Uninitialized[x1020] : &:r3079_1 +# 3079| r3079_3(glval) = FunctionAddress[String] : +# 3079| v3079_4(void) = Call[String] : func:r3079_3, this:r3079_1 +# 3079| mu3079_5(unknown) = ^CallSideEffect : ~m? +# 3079| mu3079_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3079_1 +# 3080| r3080_1(glval) = VariableAddress[x1020] : +# 3080| r3080_2(glval) = FunctionAddress[~String] : +# 3080| v3080_3(void) = Call[~String] : func:r3080_2, this:r3080_1 +# 3080| mu3080_4(unknown) = ^CallSideEffect : ~m? +# 3080| v3080_5(void) = ^IndirectReadSideEffect[-1] : &:r3080_1, ~m? +# 3080| mu3080_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3080_1 +# 3080| r3080_7(bool) = Constant[0] : +# 3080| v3080_8(void) = ConditionalBranch : r3080_7 +#-----| False -> Block 1022 +#-----| True (back edge) -> Block 1021 + +# 3082| Block 1022 +# 3082| r3082_1(glval) = VariableAddress[x1021] : +# 3082| mu3082_2(String) = Uninitialized[x1021] : &:r3082_1 +# 3082| r3082_3(glval) = FunctionAddress[String] : +# 3082| v3082_4(void) = Call[String] : func:r3082_3, this:r3082_1 +# 3082| mu3082_5(unknown) = ^CallSideEffect : ~m? +# 3082| mu3082_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3082_1 +# 3083| r3083_1(glval) = VariableAddress[x1021] : +# 3083| r3083_2(glval) = FunctionAddress[~String] : +# 3083| v3083_3(void) = Call[~String] : func:r3083_2, this:r3083_1 +# 3083| mu3083_4(unknown) = ^CallSideEffect : ~m? +# 3083| v3083_5(void) = ^IndirectReadSideEffect[-1] : &:r3083_1, ~m? +# 3083| mu3083_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3083_1 +# 3083| r3083_7(bool) = Constant[0] : +# 3083| v3083_8(void) = ConditionalBranch : r3083_7 +#-----| False -> Block 1023 +#-----| True (back edge) -> Block 1022 + +# 3085| Block 1023 +# 3085| r3085_1(glval) = VariableAddress[x1022] : +# 3085| mu3085_2(String) = Uninitialized[x1022] : &:r3085_1 +# 3085| r3085_3(glval) = FunctionAddress[String] : +# 3085| v3085_4(void) = Call[String] : func:r3085_3, this:r3085_1 +# 3085| mu3085_5(unknown) = ^CallSideEffect : ~m? +# 3085| mu3085_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3085_1 +# 3086| r3086_1(glval) = VariableAddress[x1022] : +# 3086| r3086_2(glval) = FunctionAddress[~String] : +# 3086| v3086_3(void) = Call[~String] : func:r3086_2, this:r3086_1 +# 3086| mu3086_4(unknown) = ^CallSideEffect : ~m? +# 3086| v3086_5(void) = ^IndirectReadSideEffect[-1] : &:r3086_1, ~m? +# 3086| mu3086_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3086_1 +# 3086| r3086_7(bool) = Constant[0] : +# 3086| v3086_8(void) = ConditionalBranch : r3086_7 +#-----| False -> Block 1024 +#-----| True (back edge) -> Block 1023 + +# 3088| Block 1024 +# 3088| r3088_1(glval) = VariableAddress[x1023] : +# 3088| mu3088_2(String) = Uninitialized[x1023] : &:r3088_1 +# 3088| r3088_3(glval) = FunctionAddress[String] : +# 3088| v3088_4(void) = Call[String] : func:r3088_3, this:r3088_1 +# 3088| mu3088_5(unknown) = ^CallSideEffect : ~m? +# 3088| mu3088_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3088_1 +# 3089| r3089_1(glval) = VariableAddress[x1023] : +# 3089| r3089_2(glval) = FunctionAddress[~String] : +# 3089| v3089_3(void) = Call[~String] : func:r3089_2, this:r3089_1 +# 3089| mu3089_4(unknown) = ^CallSideEffect : ~m? +# 3089| v3089_5(void) = ^IndirectReadSideEffect[-1] : &:r3089_1, ~m? +# 3089| mu3089_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3089_1 +# 3089| r3089_7(bool) = Constant[0] : +# 3089| v3089_8(void) = ConditionalBranch : r3089_7 +#-----| False -> Block 1025 +#-----| True (back edge) -> Block 1024 + +# 3091| Block 1025 +# 3091| r3091_1(glval) = VariableAddress[x1024] : +# 3091| mu3091_2(String) = Uninitialized[x1024] : &:r3091_1 +# 3091| r3091_3(glval) = FunctionAddress[String] : +# 3091| v3091_4(void) = Call[String] : func:r3091_3, this:r3091_1 +# 3091| mu3091_5(unknown) = ^CallSideEffect : ~m? +# 3091| mu3091_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3091_1 +# 3092| r3092_1(glval) = VariableAddress[x1024] : +# 3092| r3092_2(glval) = FunctionAddress[~String] : +# 3092| v3092_3(void) = Call[~String] : func:r3092_2, this:r3092_1 +# 3092| mu3092_4(unknown) = ^CallSideEffect : ~m? +# 3092| v3092_5(void) = ^IndirectReadSideEffect[-1] : &:r3092_1, ~m? +# 3092| mu3092_6(String) = ^IndirectMayWriteSideEffect[-1] : &:r3092_1 +# 3092| r3092_7(bool) = Constant[0] : +# 3092| v3092_8(void) = ConditionalBranch : r3092_7 +#-----| False -> Block 1026 +#-----| True (back edge) -> Block 1025 + +# 3093| Block 1026 +# 3093| v3093_1(void) = NoOp : +# 17| v17_4(void) = ReturnVoid : +# 17| v17_5(void) = AliasedUse : ~m? +# 17| v17_6(void) = ExitFunction : + perf-regression.cpp: # 6| void Big::Big() # 6| Block 0 diff --git a/cpp/ql/test/library-tests/specifiers2/cpp20.cpp b/cpp/ql/test/library-tests/specifiers2/cpp20.cpp index 484c32a235854..b27d5037a63a6 100644 --- a/cpp/ql/test/library-tests/specifiers2/cpp20.cpp +++ b/cpp/ql/test/library-tests/specifiers2/cpp20.cpp @@ -7,4 +7,61 @@ class TestConstexpr { constexpr int member_const_constexpr() const { return 0; } }; +struct TestExplict { + explicit TestExplict(); +}; + +template +struct TestExplicitBool { + explicit(sizeof(T) == 1) + TestExplicitBool(const T); +}; + +explicit TestExplicitBool(const double) -> TestExplicitBool; + +template +explicit(sizeof(T) == 4) +TestExplicitBool(const T) -> TestExplicitBool; + +void TestExplicitBoolFun() { + new TestExplicitBool(0); + new TestExplicitBool(0); + new TestExplicitBool(0.0f); + new TestExplicitBool(0.0); +} + +template +struct TestExplicitBool2 { + explicit(sizeof(T) == 1) + TestExplicitBool2(const T); +}; + +template +TestExplicitBool2::TestExplicitBool2(const T) { } + +void TestExplicitBoolFun2() { + new TestExplicitBool2(0); + new TestExplicitBool2(0); +} + +template +struct TestExplicitBool3 { + template + explicit(sizeof(T) == 1) + TestExplicitBool3(const T, const U); +}; + +template template +TestExplicitBool3::TestExplicitBool3(const T, const U) { } + +void TestExplicitBoolFun3() { + new TestExplicitBool3(0, 0); + new TestExplicitBool3(0, 0); +} + +struct TestExplicitBool4 { + explicit(sizeof(char) == 1) + TestExplicitBool4(const char); +}; + } // namespace cpp20 diff --git a/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.expected b/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.expected new file mode 100644 index 0000000000000..49fb96f945f74 --- /dev/null +++ b/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.expected @@ -0,0 +1,8 @@ +| cpp20.cpp:15:8:15:23 | TestExplicitBool | file://:0:0:0:0 | char | cpp20.cpp:17:5:17:20 | TestExplicitBool | explicit, extern, public | +| cpp20.cpp:15:8:15:23 | TestExplicitBool | file://:0:0:0:0 | int | cpp20.cpp:17:5:17:20 | TestExplicitBool | extern, public | +| cpp20.cpp:34:8:34:24 | TestExplicitBool2 | file://:0:0:0:0 | char | cpp20.cpp:40:23:40:23 | TestExplicitBool2 | explicit, public | +| cpp20.cpp:34:8:34:24 | TestExplicitBool2 | file://:0:0:0:0 | int | cpp20.cpp:40:23:40:23 | TestExplicitBool2 | public | +| cpp20.cpp:48:8:48:24 | TestExplicitBool3 | file://:0:0:0:0 | char | cpp20.cpp:51:5:51:5 | TestExplicitBool3 | explicit, public | +| cpp20.cpp:48:8:48:24 | TestExplicitBool3 | file://:0:0:0:0 | char | cpp20.cpp:51:5:51:21 | TestExplicitBool3 | explicit, extern, public | +| cpp20.cpp:48:8:48:24 | TestExplicitBool3 | file://:0:0:0:0 | int | cpp20.cpp:51:5:51:5 | TestExplicitBool3 | public | +| cpp20.cpp:48:8:48:24 | TestExplicitBool3 | file://:0:0:0:0 | int | cpp20.cpp:51:5:51:21 | TestExplicitBool3 | extern, public | diff --git a/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.ql b/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.ql new file mode 100644 index 0000000000000..0146cca12d966 --- /dev/null +++ b/cpp/ql/test/library-tests/specifiers2/inst_func_specifiers.ql @@ -0,0 +1,7 @@ +import cpp + +from MemberFunction m, ClassTemplateInstantiation c, string specifiers +where + c.getAMember() = m and + specifiers = concat(string s | s = m.getASpecifier().getName() | s, ", ") +select c, c.getATemplateArgument(), m, specifiers diff --git a/cpp/ql/test/library-tests/specifiers2/specifiers2.expected b/cpp/ql/test/library-tests/specifiers2/specifiers2.expected index b4dd73b148f3a..ab380e88e5bf2 100644 --- a/cpp/ql/test/library-tests/specifiers2/specifiers2.expected +++ b/cpp/ql/test/library-tests/specifiers2/specifiers2.expected @@ -1,146 +1,80 @@ | Class | specifiers2pp.cpp:8:7:8:13 | MyClass | MyClass | abstract | | Class | specifiers2pp.cpp:24:7:24:14 | MyClass2 | MyClass2 | abstract | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | extern | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | extern | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | inline | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | inline | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | is_constexpr | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | is_constexpr | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | public | -| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | public | -| Function | cpp20.cpp:6:19:6:34 | member_constexpr | member_constexpr | declared_constexpr | -| Function | cpp20.cpp:6:19:6:34 | member_constexpr | member_constexpr | inline | -| Function | cpp20.cpp:6:19:6:34 | member_constexpr | member_constexpr | is_constexpr | -| Function | cpp20.cpp:6:19:6:34 | member_constexpr | member_constexpr | private | -| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | const | -| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | declared_constexpr | -| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | inline | -| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | is_constexpr | -| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | private | -| Function | specifiers2.c:11:6:11:6 | f | f | c_linkage | -| Function | specifiers2.c:11:6:11:6 | f | f | extern | -| Function | specifiers2.c:12:13:12:13 | f | f | c_linkage | -| Function | specifiers2.c:12:13:12:13 | f | f | extern | -| Function | specifiers2.c:13:13:13:13 | f | f | c_linkage | -| Function | specifiers2.c:13:13:13:13 | f | f | extern | -| Function | specifiers2.c:15:13:15:13 | g | g | c_linkage | -| Function | specifiers2.c:15:13:15:13 | g | g | extern | -| Function | specifiers2.c:16:13:16:13 | g | g | c_linkage | -| Function | specifiers2.c:16:13:16:13 | g | g | extern | -| Function | specifiers2.c:21:6:21:12 | somefun | somefun | c_linkage | -| Function | specifiers2.c:21:6:21:12 | somefun | somefun | extern | -| Function | specifiers2.c:25:12:25:14 | add | add | c_linkage | -| Function | specifiers2.c:25:12:25:14 | add | add | inline | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | extern | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | extern | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | inline | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | inline | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | is_constexpr | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | is_constexpr | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | public | -| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | public | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:10:18:10:24 | MyClass | MyClass | explicit | -| Function | specifiers2pp.cpp:10:18:10:24 | MyClass | MyClass | extern | -| Function | specifiers2pp.cpp:10:18:10:24 | MyClass | MyClass | public | -| Function | specifiers2pp.cpp:12:14:12:22 | publicFun | publicFun | inline | -| Function | specifiers2pp.cpp:12:14:12:22 | publicFun | publicFun | public | -| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | declared_virtual | -| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | extern | -| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | public | -| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | pure | -| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | virtual | -| Function | specifiers2pp.cpp:14:21:14:21 | f | f | declared_virtual | -| Function | specifiers2pp.cpp:14:21:14:21 | f | f | extern | -| Function | specifiers2pp.cpp:14:21:14:21 | f | f | public | -| Function | specifiers2pp.cpp:14:21:14:21 | f | f | virtual | -| Function | specifiers2pp.cpp:18:14:18:23 | privateFun | privateFun | inline | -| Function | specifiers2pp.cpp:18:14:18:23 | privateFun | privateFun | private | -| Function | specifiers2pp.cpp:21:14:21:25 | protectedFun | protectedFun | inline | -| Function | specifiers2pp.cpp:21:14:21:25 | protectedFun | protectedFun | protected | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | inline | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | inline | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | inline | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | is_constexpr | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | is_constexpr | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | public | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | public | -| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | public | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:26:21:26:21 | f | f | declared_virtual | -| Function | specifiers2pp.cpp:26:21:26:21 | f | f | extern | -| Function | specifiers2pp.cpp:26:21:26:21 | f | f | override | -| Function | specifiers2pp.cpp:26:21:26:21 | f | f | public | -| Function | specifiers2pp.cpp:26:21:26:21 | f | f | virtual | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | public | +| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:5:7:5:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:6:19:6:34 | member_constexpr | member_constexpr | declared_constexpr, inline, is_constexpr, private | +| Function | cpp20.cpp:7:19:7:40 | member_const_constexpr | member_const_constexpr | const, declared_constexpr, inline, is_constexpr, private | +| Function | cpp20.cpp:10:8:10:8 | TestExplict | TestExplict | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:10:8:10:8 | TestExplict | TestExplict | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:10:8:10:8 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:10:8:10:8 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:11:14:11:24 | TestExplict | TestExplict | explicit, extern, public | +| Function | cpp20.cpp:17:5:17:20 | TestExplicitBool | TestExplicitBool | explicit, extern, public | +| Function | cpp20.cpp:17:5:17:20 | TestExplicitBool | TestExplicitBool | extern, public | +| Function | cpp20.cpp:17:5:17:20 | TestExplicitBool | TestExplicitBool | extern, public | +| Function | cpp20.cpp:24:1:24:16 | TestExplicitBool | TestExplicitBool | has_trailing_return_type | +| Function | cpp20.cpp:40:1:40:39 | TestExplicitBool2 | TestExplicitBool2 | public | +| Function | cpp20.cpp:40:23:40:23 | TestExplicitBool2 | TestExplicitBool2 | explicit, public | +| Function | cpp20.cpp:40:23:40:23 | TestExplicitBool2 | TestExplicitBool2 | public | +| Function | cpp20.cpp:40:23:40:23 | TestExplicitBool2 | TestExplicitBool2 | public | +| Function | cpp20.cpp:51:5:51:5 | TestExplicitBool3 | TestExplicitBool3 | explicit, public | +| Function | cpp20.cpp:51:5:51:5 | TestExplicitBool3 | TestExplicitBool3 | public | +| Function | cpp20.cpp:51:5:51:21 | TestExplicitBool3 | TestExplicitBool3 | explicit, extern, public | +| Function | cpp20.cpp:51:5:51:21 | TestExplicitBool3 | TestExplicitBool3 | extern, public | +| Function | cpp20.cpp:55:1:55:39 | TestExplicitBool3 | TestExplicitBool3 | public | +| Function | cpp20.cpp:62:8:62:8 | TestExplicitBool4 | TestExplicitBool4 | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:62:8:62:8 | TestExplicitBool4 | TestExplicitBool4 | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:62:8:62:8 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:62:8:62:8 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | cpp20.cpp:64:5:64:21 | TestExplicitBool4 | TestExplicitBool4 | explicit, extern, public | +| Function | file://:0:0:0:0 | operator delete | operator delete | extern | +| Function | file://:0:0:0:0 | operator new | operator new | extern | +| Function | specifiers2.c:11:6:11:6 | f | f | c_linkage, extern | +| Function | specifiers2.c:12:13:12:13 | f | f | c_linkage, extern | +| Function | specifiers2.c:13:13:13:13 | f | f | c_linkage, extern | +| Function | specifiers2.c:15:13:15:13 | g | g | c_linkage, extern | +| Function | specifiers2.c:16:13:16:13 | g | g | c_linkage, extern | +| Function | specifiers2.c:21:6:21:12 | somefun | somefun | c_linkage, extern | +| Function | specifiers2.c:25:12:25:14 | add | add | c_linkage, inline | +| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:8:7:8:7 | MyClass | MyClass | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | extern, inline, public | +| Function | specifiers2pp.cpp:8:7:8:7 | operator= | operator= | extern, inline, public | +| Function | specifiers2pp.cpp:10:18:10:24 | MyClass | MyClass | explicit, extern, public | +| Function | specifiers2pp.cpp:12:14:12:22 | publicFun | publicFun | inline, public | +| Function | specifiers2pp.cpp:13:21:13:26 | getInt | getInt | declared_virtual, extern, public, pure, virtual | +| Function | specifiers2pp.cpp:14:21:14:21 | f | f | declared_virtual, extern, public, virtual | +| Function | specifiers2pp.cpp:18:14:18:23 | privateFun | privateFun | inline, private | +| Function | specifiers2pp.cpp:21:14:21:25 | protectedFun | protectedFun | inline, protected | +| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:24:7:24:7 | MyClass2 | MyClass2 | extern, inline, public | +| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | extern, inline, public | +| Function | specifiers2pp.cpp:24:7:24:7 | operator= | operator= | extern, inline, public | +| Function | specifiers2pp.cpp:26:21:26:21 | f | f | declared_virtual, extern, override, public, virtual | +| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:29:7:29:7 | operator= | operator= | extern, inline, is_constexpr, public | | Function | specifiers2pp.cpp:33:5:33:18 | fun | fun | public | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | public | +| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:35:7:35:7 | operator= | operator= | extern, inline, is_constexpr, public | | Function | specifiers2pp.cpp:40:12:40:18 | someFun | someFun | extern | -| Function | specifiers2pp.cpp:41:16:41:23 | someFun2 | someFun2 | c_linkage | -| Function | specifiers2pp.cpp:41:16:41:23 | someFun2 | someFun2 | extern | -| Function | specifiers2pp.cpp:43:9:43:16 | someFun3 | someFun3 | c_linkage | -| Function | specifiers2pp.cpp:43:9:43:16 | someFun3 | someFun3 | extern | -| Function | specifiers2pp.cpp:44:16:44:23 | someFun4 | someFun4 | c_linkage | -| Function | specifiers2pp.cpp:44:16:44:23 | someFun4 | someFun4 | static | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | extern | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | inline | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | is_constexpr | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | public | -| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | const | -| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | declared_constexpr | -| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | inline | -| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | is_constexpr | -| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | private | -| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | const | -| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | declared_constexpr | -| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | inline | -| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | is_constexpr | -| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | private | -| FunctionDeclarationEntry | specifiers2.c:11:6:11:6 | declaration of f | f | c_linkage | -| FunctionDeclarationEntry | specifiers2.c:11:6:11:6 | declaration of f | f | void_param_list | -| FunctionDeclarationEntry | specifiers2.c:12:13:12:13 | declaration of f | f | c_linkage | -| FunctionDeclarationEntry | specifiers2.c:12:13:12:13 | declaration of f | f | extern | -| FunctionDeclarationEntry | specifiers2.c:12:13:12:13 | declaration of f | f | void_param_list | -| FunctionDeclarationEntry | specifiers2.c:13:13:13:13 | declaration of f | f | c_linkage | -| FunctionDeclarationEntry | specifiers2.c:13:13:13:13 | declaration of f | f | extern | -| FunctionDeclarationEntry | specifiers2.c:13:13:13:13 | declaration of f | f | void_param_list | -| FunctionDeclarationEntry | specifiers2.c:15:13:15:13 | declaration of g | g | c_linkage | -| FunctionDeclarationEntry | specifiers2.c:15:13:15:13 | declaration of g | g | extern | -| FunctionDeclarationEntry | specifiers2.c:15:13:15:13 | declaration of g | g | void_param_list | -| FunctionDeclarationEntry | specifiers2.c:16:13:16:13 | declaration of g | g | c_linkage | -| FunctionDeclarationEntry | specifiers2.c:16:13:16:13 | declaration of g | g | extern | -| FunctionDeclarationEntry | specifiers2.c:16:13:16:13 | declaration of g | g | void_param_list | +| Function | specifiers2pp.cpp:41:16:41:23 | someFun2 | someFun2 | c_linkage, extern | +| Function | specifiers2pp.cpp:43:9:43:16 | someFun3 | someFun3 | c_linkage, extern | +| Function | specifiers2pp.cpp:44:16:44:23 | someFun4 | someFun4 | c_linkage, static | +| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:62:7:62:7 | operator= | operator= | extern, inline, is_constexpr, public | +| Function | specifiers2pp.cpp:63:19:63:34 | member_constexpr | member_constexpr | const, declared_constexpr, inline, is_constexpr, private | +| Function | specifiers2pp.cpp:64:19:64:40 | member_const_constexpr | member_const_constexpr | const, declared_constexpr, inline, is_constexpr, private | +| FunctionDeclarationEntry | cpp20.cpp:11:14:11:24 | declaration of TestExplict | TestExplict | explicit | +| FunctionDeclarationEntry | cpp20.cpp:40:23:40:23 | definition of TestExplicitBool2 | TestExplicitBool2 | explicit | +| FunctionDeclarationEntry | cpp20.cpp:51:5:51:5 | definition of TestExplicitBool3 | TestExplicitBool3 | explicit | +| FunctionDeclarationEntry | cpp20.cpp:51:5:51:21 | declaration of TestExplicitBool3 | TestExplicitBool3 | explicit | +| FunctionDeclarationEntry | cpp20.cpp:64:5:64:21 | declaration of TestExplicitBool4 | TestExplicitBool4 | explicit | +| FunctionDeclarationEntry | specifiers2.c:11:6:11:6 | declaration of f | f | c_linkage, void_param_list | +| FunctionDeclarationEntry | specifiers2.c:12:13:12:13 | declaration of f | f | c_linkage, extern, void_param_list | +| FunctionDeclarationEntry | specifiers2.c:13:13:13:13 | declaration of f | f | c_linkage, extern, void_param_list | +| FunctionDeclarationEntry | specifiers2.c:15:13:15:13 | declaration of g | g | c_linkage, extern, void_param_list | +| FunctionDeclarationEntry | specifiers2.c:16:13:16:13 | declaration of g | g | c_linkage, extern, void_param_list | | FunctionDeclarationEntry | specifiers2.c:21:6:21:12 | declaration of somefun | somefun | c_linkage | | FunctionDeclarationEntry | specifiers2.c:25:12:25:14 | definition of add | add | c_linkage | | FunctionDeclarationEntry | specifiers2pp.cpp:2:6:2:9 | definition of afun | afun | void_param_list | @@ -154,28 +88,19 @@ | FunctionDeclarationEntry | specifiers2pp.cpp:31:13:31:15 | declaration of fun | fun | void_param_list | | FunctionDeclarationEntry | specifiers2pp.cpp:33:5:33:18 | definition of fun | fun | void_param_list | | FunctionDeclarationEntry | specifiers2pp.cpp:40:12:40:18 | declaration of someFun | someFun | extern | -| FunctionDeclarationEntry | specifiers2pp.cpp:41:16:41:23 | declaration of someFun2 | someFun2 | c_linkage | -| FunctionDeclarationEntry | specifiers2pp.cpp:41:16:41:23 | declaration of someFun2 | someFun2 | extern | -| FunctionDeclarationEntry | specifiers2pp.cpp:43:9:43:16 | declaration of someFun3 | someFun3 | c_linkage | -| FunctionDeclarationEntry | specifiers2pp.cpp:43:9:43:16 | declaration of someFun3 | someFun3 | extern | -| FunctionDeclarationEntry | specifiers2pp.cpp:44:16:44:23 | declaration of someFun4 | someFun4 | c_linkage | -| FunctionDeclarationEntry | specifiers2pp.cpp:44:16:44:23 | declaration of someFun4 | someFun4 | static | +| FunctionDeclarationEntry | specifiers2pp.cpp:41:16:41:23 | declaration of someFun2 | someFun2 | c_linkage, extern | +| FunctionDeclarationEntry | specifiers2pp.cpp:43:9:43:16 | declaration of someFun3 | someFun3 | c_linkage, extern | +| FunctionDeclarationEntry | specifiers2pp.cpp:44:16:44:23 | declaration of someFun4 | someFun4 | c_linkage, static | | TypedefType | file://:0:0:0:0 | Const | Const | const | | TypedefType | specifiers2.c:27:19:27:26 | constInt | constInt | const | | TypedefType | specifiers2pp.cpp:47:20:47:32 | const_pointer | const_pointer | const | -| TypedefType | specifiers2pp.cpp:49:32:49:53 | volatile_const_pointer | volatile_const_pointer | const | -| TypedefType | specifiers2pp.cpp:49:32:49:53 | volatile_const_pointer | volatile_const_pointer | volatile | -| TypedefType | specifiers2pp.cpp:50:32:50:54 | volatile_const_pointer2 | volatile_const_pointer2 | const | -| TypedefType | specifiers2pp.cpp:50:32:50:54 | volatile_const_pointer2 | volatile_const_pointer2 | volatile | -| TypedefType | specifiers2pp.cpp:53:23:53:45 | volatile_const_pointer3 | volatile_const_pointer3 | const | -| TypedefType | specifiers2pp.cpp:53:23:53:45 | volatile_const_pointer3 | volatile_const_pointer3 | volatile | -| TypedefType | specifiers2pp.cpp:54:44:54:74 | volatile_const_restrict_pointer | volatile_const_restrict_pointer | const | -| TypedefType | specifiers2pp.cpp:54:44:54:74 | volatile_const_restrict_pointer | volatile_const_restrict_pointer | restrict | -| TypedefType | specifiers2pp.cpp:54:44:54:74 | volatile_const_restrict_pointer | volatile_const_restrict_pointer | volatile | +| TypedefType | specifiers2pp.cpp:49:32:49:53 | volatile_const_pointer | volatile_const_pointer | const, volatile | +| TypedefType | specifiers2pp.cpp:50:32:50:54 | volatile_const_pointer2 | volatile_const_pointer2 | const, volatile | +| TypedefType | specifiers2pp.cpp:53:23:53:45 | volatile_const_pointer3 | volatile_const_pointer3 | const, volatile | +| TypedefType | specifiers2pp.cpp:54:44:54:74 | volatile_const_restrict_pointer | volatile_const_restrict_pointer | const, restrict, volatile | | TypedefType | specifiers2pp.cpp:56:28:56:32 | Const | Const | const | | TypedefType | specifiers2pp.cpp:58:7:58:15 | Const_int | Const_int | const | -| TypedefType | specifiers2pp.cpp:60:28:60:45 | volatile_Const_int | volatile_Const_int | const | -| TypedefType | specifiers2pp.cpp:60:28:60:45 | volatile_Const_int | volatile_Const_int | volatile | +| TypedefType | specifiers2pp.cpp:60:28:60:45 | volatile_Const_int | volatile_Const_int | const, volatile | | Variable | specifiers2.c:8:12:8:12 | j | j | extern | | Variable | specifiers2.c:9:12:9:12 | j | j | extern | | Variable | specifiers2.c:18:21:18:23 | svi | svi | static | diff --git a/cpp/ql/test/library-tests/specifiers2/specifiers2.ql b/cpp/ql/test/library-tests/specifiers2/specifiers2.ql index 39663d98219f8..d4c831b95307c 100644 --- a/cpp/ql/test/library-tests/specifiers2/specifiers2.ql +++ b/cpp/ql/test/library-tests/specifiers2/specifiers2.ql @@ -14,16 +14,20 @@ string interesting(Element e) { e instanceof VariableDeclarationEntry and result = "VariableDeclarationEntry" } -from Element e, string name, string specifier +from Element e, string name, string specifiers where ( name = e.(Declaration).getName() or name = e.(DeclarationEntry).getName() or name = e.(Type).toString() ) and - ( - specifier = e.(Declaration).getASpecifier().toString() or - specifier = e.(DeclarationEntry).getASpecifier() or - specifier = e.(TypedefType).getBaseType().getASpecifier().toString() - ) -select interesting(e), e, name, specifier + specifiers = + concat(string s | + s = e.(Declaration).getASpecifier().toString() or + s = e.(DeclarationEntry).getASpecifier() or + s = e.(TypedefType).getBaseType().getASpecifier().toString() + | + s, ", " + ) and + specifiers != "" +select interesting(e), e, name, specifiers diff --git a/cpp/ql/test/library-tests/specifiers2/specifiers2d.expected b/cpp/ql/test/library-tests/specifiers2/specifiers2d.expected index 27a1059c32520..29007bf739636 100644 --- a/cpp/ql/test/library-tests/specifiers2/specifiers2d.expected +++ b/cpp/ql/test/library-tests/specifiers2/specifiers2d.expected @@ -1,3 +1,22 @@ +| cpp20.cpp:17:28:17:28 | (unnamed parameter 0) | file://:0:0:0:0 | const T | file://:0:0:0:0 | const | +| cpp20.cpp:17:28:17:28 | (unnamed parameter 0) | file://:0:0:0:0 | const char | file://:0:0:0:0 | const | +| cpp20.cpp:17:28:17:28 | (unnamed parameter 0) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:24:24:24:24 | (unnamed parameter 0) | file://:0:0:0:0 | const T | file://:0:0:0:0 | const | +| cpp20.cpp:40:47:40:47 | (unnamed parameter 0) | file://:0:0:0:0 | const T | file://:0:0:0:0 | const | +| cpp20.cpp:40:47:40:47 | (unnamed parameter 0) | file://:0:0:0:0 | const char | file://:0:0:0:0 | const | +| cpp20.cpp:40:47:40:47 | (unnamed parameter 0) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:51:29:51:29 | (unnamed parameter 0) | file://:0:0:0:0 | const char | file://:0:0:0:0 | const | +| cpp20.cpp:51:29:51:29 | (unnamed parameter 0) | file://:0:0:0:0 | const char | file://:0:0:0:0 | const | +| cpp20.cpp:51:29:51:29 | (unnamed parameter 0) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:51:29:51:29 | (unnamed parameter 0) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:51:38:51:38 | (unnamed parameter 1) | file://:0:0:0:0 | const U | file://:0:0:0:0 | const | +| cpp20.cpp:51:38:51:38 | (unnamed parameter 1) | file://:0:0:0:0 | const U | file://:0:0:0:0 | const | +| cpp20.cpp:51:38:51:38 | (unnamed parameter 1) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:51:38:51:38 | (unnamed parameter 1) | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | +| cpp20.cpp:55:47:55:47 | (unnamed parameter 0) | file://:0:0:0:0 | const T | file://:0:0:0:0 | const | +| cpp20.cpp:55:56:55:56 | (unnamed parameter 1) | file://:0:0:0:0 | const U | file://:0:0:0:0 | const | +| cpp20.cpp:64:23:64:32 | (unnamed parameter 0) | file://:0:0:0:0 | const char | file://:0:0:0:0 | const | +| file://:0:0:0:0 | (unnamed parameter 0) | file://:0:0:0:0 | const double | file://:0:0:0:0 | const | | specifiers2.c:18:21:18:23 | svi | file://:0:0:0:0 | volatile int | file://:0:0:0:0 | volatile | | specifiers2.c:19:11:19:12 | ci | file://:0:0:0:0 | const int | file://:0:0:0:0 | const | | specifiers2.c:21:34:21:34 | p | file://:0:0:0:0 | char *__restrict__ | file://:0:0:0:0 | restrict | diff --git a/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.expected b/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.expected new file mode 100644 index 0000000000000..0b2bf3f6e0aec --- /dev/null +++ b/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.expected @@ -0,0 +1,4 @@ +| cpp20.cpp:17:5:17:20 | TestExplicitBool | extern, public | +| cpp20.cpp:40:1:40:39 | TestExplicitBool2 | public | +| cpp20.cpp:40:23:40:23 | TestExplicitBool2 | public | +| cpp20.cpp:55:1:55:39 | TestExplicitBool3 | public | diff --git a/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.ql b/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.ql new file mode 100644 index 0000000000000..c0ad4feebae31 --- /dev/null +++ b/cpp/ql/test/library-tests/specifiers2/templ_func_specifiers.ql @@ -0,0 +1,7 @@ +import cpp + +from MemberFunction m, TemplateClass c, string specifiers +where + c.getAMember() = m and + specifiers = concat(string s | s = m.getASpecifier().getName() | s, ", ") +select m, specifiers diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected index ebd0edf9360be..80bc8184adbac 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/MemoryFreed.expected @@ -26,8 +26,11 @@ | test.cpp:128:15:128:16 | v4 | | test.cpp:185:10:185:12 | cpy | | test.cpp:199:10:199:12 | cpy | -| test.cpp:208:7:208:7 | a | -| test.cpp:214:7:214:7 | a | +| test.cpp:213:7:213:7 | a | +| test.cpp:219:7:219:7 | a | +| test.cpp:228:14:228:18 | data1 | +| test.cpp:236:14:236:18 | data1 | +| test.cpp:237:14:237:18 | data2 | | test_free.cpp:11:10:11:10 | a | | test_free.cpp:14:10:14:10 | a | | test_free.cpp:16:10:16:10 | a | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected index 9df8e932bfc23..05fdfd7f035e8 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/UseAfterFree.expected @@ -1,6 +1,9 @@ edges -| test.cpp:208:7:208:7 | pointer to free output argument | test.cpp:209:2:209:2 | a | provenance | | -| test.cpp:214:7:214:7 | pointer to free output argument | test.cpp:215:2:215:2 | a | provenance | | +| test.cpp:213:7:213:7 | pointer to free output argument | test.cpp:214:2:214:2 | a | provenance | | +| test.cpp:219:7:219:7 | pointer to free output argument | test.cpp:220:2:220:2 | a | provenance | | +| test.cpp:228:12:228:12 | *p [post update] [data1] | test.cpp:229:2:229:2 | *p [data1] | provenance | | +| test.cpp:228:14:228:18 | pointer to operator delete[] output argument | test.cpp:228:12:228:12 | *p [post update] [data1] | provenance | | +| test.cpp:229:2:229:2 | *p [data1] | test.cpp:229:4:229:8 | data1 | provenance | | | test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:12:5:12:5 | a | provenance | | | test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:13:5:13:6 | * ... | provenance | | | test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | provenance | | @@ -33,10 +36,14 @@ edges | test_free.cpp:322:12:322:12 | pointer to operator delete output argument | test_free.cpp:324:5:324:6 | * ... | provenance | | | test_free.cpp:331:12:331:12 | pointer to operator delete output argument | test_free.cpp:332:5:332:6 | * ... | provenance | | nodes -| test.cpp:208:7:208:7 | pointer to free output argument | semmle.label | pointer to free output argument | -| test.cpp:209:2:209:2 | a | semmle.label | a | -| test.cpp:214:7:214:7 | pointer to free output argument | semmle.label | pointer to free output argument | -| test.cpp:215:2:215:2 | a | semmle.label | a | +| test.cpp:213:7:213:7 | pointer to free output argument | semmle.label | pointer to free output argument | +| test.cpp:214:2:214:2 | a | semmle.label | a | +| test.cpp:219:7:219:7 | pointer to free output argument | semmle.label | pointer to free output argument | +| test.cpp:220:2:220:2 | a | semmle.label | a | +| test.cpp:228:12:228:12 | *p [post update] [data1] | semmle.label | *p [post update] [data1] | +| test.cpp:228:14:228:18 | pointer to operator delete[] output argument | semmle.label | pointer to operator delete[] output argument | +| test.cpp:229:2:229:2 | *p [data1] | semmle.label | *p [data1] | +| test.cpp:229:4:229:8 | data1 | semmle.label | data1 | | test_free.cpp:11:10:11:10 | pointer to free output argument | semmle.label | pointer to free output argument | | test_free.cpp:12:5:12:5 | a | semmle.label | a | | test_free.cpp:13:5:13:6 | * ... | semmle.label | * ... | @@ -88,8 +95,9 @@ nodes | test_free.cpp:332:5:332:6 | * ... | semmle.label | * ... | subpaths #select -| test.cpp:209:2:209:2 | a | test.cpp:208:7:208:7 | pointer to free output argument | test.cpp:209:2:209:2 | a | Memory may have been previously freed by $@. | test.cpp:208:2:208:5 | call to free | call to free | -| test.cpp:215:2:215:2 | a | test.cpp:214:7:214:7 | pointer to free output argument | test.cpp:215:2:215:2 | a | Memory may have been previously freed by $@. | test.cpp:214:2:214:5 | call to free | call to free | +| test.cpp:214:2:214:2 | a | test.cpp:213:7:213:7 | pointer to free output argument | test.cpp:214:2:214:2 | a | Memory may have been previously freed by $@. | test.cpp:213:2:213:5 | call to free | call to free | +| test.cpp:220:2:220:2 | a | test.cpp:219:7:219:7 | pointer to free output argument | test.cpp:220:2:220:2 | a | Memory may have been previously freed by $@. | test.cpp:219:2:219:5 | call to free | call to free | +| test.cpp:229:4:229:8 | data1 | test.cpp:228:14:228:18 | pointer to operator delete[] output argument | test.cpp:229:4:229:8 | data1 | Memory may have been previously freed by $@. | test.cpp:228:2:228:18 | delete[] | delete[] | | test_free.cpp:12:5:12:5 | a | test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:12:5:12:5 | a | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:13:5:13:6 | * ... | test_free.cpp:11:10:11:10 | pointer to free output argument | test_free.cpp:13:5:13:6 | * ... | Memory may have been previously freed by $@. | test_free.cpp:11:5:11:8 | call to free | call to free | | test_free.cpp:45:5:45:5 | a | test_free.cpp:42:27:42:27 | pointer to free output argument | test_free.cpp:45:5:45:5 | a | Memory may have been previously freed by $@. | test_free.cpp:42:22:42:25 | call to free | call to free | diff --git a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp index c8d21115f3fe2..7f3afc95550cc 100644 --- a/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp +++ b/cpp/ql/test/query-tests/Critical/MemoryFreed/test.cpp @@ -201,6 +201,11 @@ void test_strndupa_dealloc() { // --- +struct DataPair { + char *data1; + char *data2; +}; + void test_reassignment() { char *a = (char *)malloc(128); char *b = (char *)malloc(128); @@ -213,4 +218,21 @@ void test_reassignment() { free(a); a[0] = 0; // BAD + + DataPair p; + p.data1 = new char[128]; + p.data2 = new char[128]; + p.data1[0] = 0; // GOOD + p.data2[0] = 0; // GOOD + + delete [] p.data1; + p.data1[0] = 0; // BAD + p.data2[0] = 0; // GOOD + + p.data1 = new char[128]; + p.data1[0] = 0; // GOOD + p.data2[0] = 0; // GOOD + + delete [] p.data1; + delete [] p.data2; } diff --git a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected index 8bb2c9643a9f3..dac8afd3fd31f 100644 --- a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected +++ b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/MissingCheckScanf.expected @@ -37,6 +37,21 @@ edges | test.cpp:420:19:420:20 | scanf output argument | test.cpp:423:7:423:7 | i | provenance | | | test.cpp:455:41:455:46 | sscanf output argument | test.cpp:460:6:460:10 | value | provenance | | | test.cpp:467:20:467:25 | scanf output argument | test.cpp:474:6:474:10 | value | provenance | | +| test.cpp:480:25:480:26 | scanf output argument | test.cpp:484:9:484:9 | i | provenance | | +| test.cpp:491:25:491:26 | scanf output argument | test.cpp:495:8:495:8 | i | provenance | | +| test.cpp:501:25:501:26 | scanf output argument | test.cpp:505:9:505:9 | i | provenance | | +| test.cpp:512:25:512:26 | scanf output argument | test.cpp:516:9:516:9 | i | provenance | | +| test.cpp:525:35:525:36 | sscanf output argument | test.cpp:527:8:527:8 | a | provenance | | +| test.cpp:525:35:525:36 | sscanf output argument | test.cpp:531:8:531:8 | a | provenance | | +| test.cpp:525:39:525:40 | sscanf output argument | test.cpp:528:8:528:8 | b | provenance | | +| test.cpp:525:39:525:40 | sscanf output argument | test.cpp:532:8:532:8 | b | provenance | | +| test.cpp:525:43:525:44 | sscanf output argument | test.cpp:533:8:533:8 | c | provenance | | +| test.cpp:541:35:541:36 | sscanf output argument | test.cpp:543:8:543:8 | d | provenance | | +| test.cpp:541:35:541:36 | sscanf output argument | test.cpp:548:8:548:8 | d | provenance | | +| test.cpp:541:39:541:40 | sscanf output argument | test.cpp:544:8:544:8 | e | provenance | | +| test.cpp:541:39:541:40 | sscanf output argument | test.cpp:549:8:549:8 | e | provenance | | +| test.cpp:541:43:541:44 | sscanf output argument | test.cpp:545:8:545:8 | f | provenance | | +| test.cpp:541:43:541:44 | sscanf output argument | test.cpp:550:8:550:8 | f | provenance | | nodes | test.cpp:34:15:34:16 | scanf output argument | semmle.label | scanf output argument | | test.cpp:35:7:35:7 | i | semmle.label | i | @@ -114,6 +129,31 @@ nodes | test.cpp:460:6:460:10 | value | semmle.label | value | | test.cpp:467:20:467:25 | scanf output argument | semmle.label | scanf output argument | | test.cpp:474:6:474:10 | value | semmle.label | value | +| test.cpp:480:25:480:26 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:484:9:484:9 | i | semmle.label | i | +| test.cpp:491:25:491:26 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:495:8:495:8 | i | semmle.label | i | +| test.cpp:501:25:501:26 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:505:9:505:9 | i | semmle.label | i | +| test.cpp:512:25:512:26 | scanf output argument | semmle.label | scanf output argument | +| test.cpp:516:9:516:9 | i | semmle.label | i | +| test.cpp:525:35:525:36 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:525:39:525:40 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:525:43:525:44 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:527:8:527:8 | a | semmle.label | a | +| test.cpp:528:8:528:8 | b | semmle.label | b | +| test.cpp:531:8:531:8 | a | semmle.label | a | +| test.cpp:532:8:532:8 | b | semmle.label | b | +| test.cpp:533:8:533:8 | c | semmle.label | c | +| test.cpp:541:35:541:36 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:541:39:541:40 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:541:43:541:44 | sscanf output argument | semmle.label | sscanf output argument | +| test.cpp:543:8:543:8 | d | semmle.label | d | +| test.cpp:544:8:544:8 | e | semmle.label | e | +| test.cpp:545:8:545:8 | f | semmle.label | f | +| test.cpp:548:8:548:8 | d | semmle.label | d | +| test.cpp:549:8:549:8 | e | semmle.label | e | +| test.cpp:550:8:550:8 | f | semmle.label | f | subpaths #select | test.cpp:35:7:35:7 | i | test.cpp:34:15:34:16 | scanf output argument | test.cpp:35:7:35:7 | i | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:34:3:34:7 | call to scanf | call to scanf | @@ -134,3 +174,6 @@ subpaths | test.cpp:423:7:423:7 | i | test.cpp:420:19:420:20 | scanf output argument | test.cpp:423:7:423:7 | i | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:420:7:420:11 | call to scanf | call to scanf | | test.cpp:460:6:460:10 | value | test.cpp:455:41:455:46 | sscanf output argument | test.cpp:460:6:460:10 | value | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:455:12:455:17 | call to sscanf | call to sscanf | | test.cpp:474:6:474:10 | value | test.cpp:467:20:467:25 | scanf output argument | test.cpp:474:6:474:10 | value | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:467:8:467:12 | call to scanf | call to scanf | +| test.cpp:484:9:484:9 | i | test.cpp:480:25:480:26 | scanf output argument | test.cpp:484:9:484:9 | i | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:480:13:480:17 | call to scanf | call to scanf | +| test.cpp:495:8:495:8 | i | test.cpp:491:25:491:26 | scanf output argument | test.cpp:495:8:495:8 | i | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 1. | test.cpp:491:13:491:17 | call to scanf | call to scanf | +| test.cpp:545:8:545:8 | f | test.cpp:541:43:541:44 | sscanf output argument | test.cpp:545:8:545:8 | f | This variable is read, but may not have been written. It should be guarded by a check that the $@ returns at least 3. | test.cpp:541:10:541:15 | call to sscanf | call to sscanf | diff --git a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/test.cpp b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/test.cpp index d451d72fef07e..efc37060a554b 100644 --- a/cpp/ql/test/query-tests/Critical/MissingCheckScanf/test.cpp +++ b/cpp/ql/test/query-tests/Critical/MissingCheckScanf/test.cpp @@ -472,4 +472,84 @@ void check_for_negative_test() { return; } use(value); -} \ No newline at end of file +} + +void multiple_checks() { + { + int i; + int res = scanf("%d", &i); + + if (res >= 0) { + if (res != 0) { + use(i); // GOOD: checks return value [FALSE POSITIVE] + } + } + } + + { + int i; + int res = scanf("%d", &i); + + if (res < 0) return; + if (res != 0) { + use(i); // GOOD: checks return value [FALSE POSITIVE] + } + } + + { + int i; + int res = scanf("%d", &i); + + if (res >= 1) { + if (res != 0) { + use(i); // GOOD: checks return value + } + } + } + + { + int i; + int res = scanf("%d", &i); + + if (res == 1) { + if (res != 0) { + use(i); // GOOD: checks return value + } + } + } +} + +void switch_cases(const char *data) { + float a, b, c; + + switch (sscanf(data, "%f %f %f", &a, &b, &c)) { + case 2: + use(a); // GOOD + use(b); // GOOD + break; + case 3: + use(a); // GOOD + use(b); // GOOD + use(c); // GOOD + break; + default: + break; + } + + float d, e, f; + + switch (sscanf(data, "%f %f %f", &d, &e, &f)) { + case 2: + use(d); // GOOD + use(e); // GOOD + use(f); // BAD + break; + case 3: + use(d); // GOOD + use(e); // GOOD + use(f); // GOOD + break; + default: + break; + } +} diff --git a/cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck2.expected b/cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck2.expected index 065eec919ee1a..caf7dcb99cddd 100644 --- a/cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck2.expected +++ b/cpp/ql/test/query-tests/Critical/SizeCheck/SizeCheck2.expected @@ -2,3 +2,4 @@ | test2.c:17:20:17:25 | call to malloc | Allocated memory (33 bytes) is not a multiple of the size of 'double' (8 bytes). | | test2.c:32:23:32:28 | call to malloc | Allocated memory (28 bytes) is not a multiple of the size of 'long long' (8 bytes). | | test2.c:33:20:33:25 | call to malloc | Allocated memory (20 bytes) is not a multiple of the size of 'double' (8 bytes). | +| test2.c:85:24:85:29 | call to malloc | Allocated memory (1159 bytes) is not a multiple of the size of 'MyFixedStruct' (1032 bytes). | diff --git a/cpp/ql/test/query-tests/Critical/SizeCheck/test.c b/cpp/ql/test/query-tests/Critical/SizeCheck/test.c index c46819f4a934b..0015a2514c080 100644 --- a/cpp/ql/test/query-tests/Critical/SizeCheck/test.c +++ b/cpp/ql/test/query-tests/Critical/SizeCheck/test.c @@ -60,7 +60,7 @@ void test_union() { } // --- custom allocators --- - + void *MyMalloc1(size_t size) { return malloc(size); } void *MyMalloc2(size_t size); diff --git a/cpp/ql/test/query-tests/Critical/SizeCheck/test2.c b/cpp/ql/test/query-tests/Critical/SizeCheck/test2.c index 6622c2294b919..714ca5de9c88f 100644 --- a/cpp/ql/test/query-tests/Critical/SizeCheck/test2.c +++ b/cpp/ql/test/query-tests/Critical/SizeCheck/test2.c @@ -44,7 +44,7 @@ void good1(void) { } // --- custom allocators --- - + void *MyMalloc1(size_t size) { return malloc(size); } void *MyMalloc2(size_t size); @@ -53,3 +53,34 @@ void customAllocatorTests() double *dptr1 = MyMalloc1(33); // BAD -- Not a multiple of sizeof(double) [NOT DETECTED] double *dptr2 = MyMalloc2(33); // BAD -- Not a multiple of sizeof(double) [NOT DETECTED] } + +// --- variable length data structures --- + +typedef unsigned char uint8_t; + +typedef struct _MyVarStruct1 { + size_t dataLen; + uint8_t data[0]; +} MyVarStruct1; + +typedef struct _MyVarStruct2 { + size_t dataLen; + uint8_t data[1]; +} MyVarStruct2; + +typedef struct _MyVarStruct3 { + size_t dataLen; + uint8_t data[]; +} MyVarStruct3; + +typedef struct _MyFixedStruct { + size_t dataLen; + uint8_t data[1024]; +} MyFixedStruct; + +void varStructTests() { + MyVarStruct1 *a = malloc(sizeof(MyVarStruct1) + 127); // GOOD + MyVarStruct2 *b = malloc(sizeof(MyVarStruct2) + 127); // GOOD + MyVarStruct3 *c = malloc(sizeof(MyVarStruct3) + 127); // GOOD + MyFixedStruct *d = malloc(sizeof(MyFixedStruct) + 127); // BAD --- Not a multiple of sizeof(MyFixedStruct) +} diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/LoopConditionsConst.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/LoopConditionsConst.expected index 07ca32b1718c5..f0ada1ce16a4f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/LoopConditionsConst.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/LoopConditionsConst.expected @@ -23,3 +23,4 @@ | test.cpp:424:2:425:2 | for(...;...;...) ... | test.cpp:424:18:424:23 | ... < ... | 1 | i | { ... } | i | return ... | | test.cpp:433:2:434:2 | for(...;...;...) ... | test.cpp:433:18:433:22 | 0 | 0 | | { ... } | 0 | return ... | | test.cpp:559:3:564:3 | while (...) ... | test.cpp:559:9:559:15 | call to getBool | | call to getBool | { ... } | call to getBool | ExprStmt | +| test.cpp:574:3:579:3 | while (...) ... | test.cpp:574:10:574:16 | call to getBool | | call to getBool | { ... } | call to getBool | ExprStmt | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/test.cpp index 11330ac53b6c6..eab71b1aec561 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-457/semmle/tests/test.cpp @@ -565,4 +565,31 @@ void test45() { *rP = NULL; use(r); // GOOD +} + +void test46() +{ + LinkedList *r, **rP = &r; + + while (getBool()) + { + LinkedList *s = nullptr; + *rP = s; + rP = &s->next; + } + + *rP = nullptr; + use(r); +} + +namespace std { + float remquo(float, float, int*); +} + +void test47() { + float x = 1.0f; + float y = 2.0f; + int quo; + std::remquo(x, y, &quo); + use(quo); // GOOD } \ No newline at end of file diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.expected index 1d48edd7cea13..991ff2de8a459 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-570/IncorrectAllocationErrorHandling.expected @@ -13,7 +13,7 @@ | test.cpp:92:5:92:31 | new[] | This allocation cannot throw. $@ is unnecessary. | test.cpp:97:36:98:3 | { ... } | This catch block | | test.cpp:93:15:93:41 | new[] | This allocation cannot throw. $@ is unnecessary. | test.cpp:97:36:98:3 | { ... } | This catch block | | test.cpp:96:10:96:36 | new[] | This allocation cannot throw. $@ is unnecessary. | test.cpp:97:36:98:3 | { ... } | This catch block | -| test.cpp:151:9:151:24 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:152:15:152:18 | { ... } | This catch block | -| test.cpp:199:15:199:35 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:201:16:201:19 | { ... } | This catch block | -| test.cpp:212:14:212:34 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:213:34:213:36 | { ... } | This catch block | -| test.cpp:246:17:246:31 | new[] | This allocation cannot return null. $@ is unnecessary. | test.cpp:247:8:247:12 | ! ... | This check | +| test.cpp:160:9:160:24 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:161:15:161:18 | { ... } | This catch block | +| test.cpp:229:15:229:35 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:231:16:231:19 | { ... } | This catch block | +| test.cpp:242:14:242:34 | new | This allocation cannot throw. $@ is unnecessary. | test.cpp:243:34:243:36 | { ... } | This catch block | +| test.cpp:276:17:276:31 | new[] | This allocation cannot return null. $@ is unnecessary. | test.cpp:277:8:277:12 | ! ... | This check | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-570/test.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-570/test.cpp index cedef98a5d8fa..977b6e878a2bb 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-570/test.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-570/test.cpp @@ -136,6 +136,8 @@ void good_new_handles_nullptr() { return; // GOOD } +// --- + void* operator new(std::size_t count, void*) noexcept; void* operator new[](std::size_t count, void*) noexcept; @@ -146,18 +148,46 @@ struct Foo { operator bool(); }; +struct Bar { + Bar(); + + operator bool(); +}; + void bad_placement_new_with_exception_handling() { char buffer[1024]; - try { new (buffer) Foo; } // BAD + + try { new (buffer) Foo; } // BAD (placement new should not fail) catch (...) { } } void good_placement_new_with_exception_handling() { char buffer[1024]; + try { new (buffer) Foo(42); } // GOOD: Foo constructor might throw catch (...) { } + + try { new (buffer) Bar; } // GOOD: Bar constructor might throw + catch (...) { } } +template F *test_template_platement_new() { + char buffer[1024]; + + try { + return new (buffer) F; // GOOD: `F` constructor might throw (when `F` is `Bar`) + } catch (...) { + return 0; + } +} + +void test_template_platement_new_caller() { + test_template_platement_new(); + test_template_platement_new(); +} + +// --- + int unknown_value_without_exceptions() noexcept; void may_throw() { diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 4f04af923035b..503822fbd6847 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.21 + +No user-facing changes. + ## 1.7.20 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.21.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.21.md new file mode 100644 index 0000000000000..bdd54f47083c9 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.21.md @@ -0,0 +1,3 @@ +## 1.7.21 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 747131a0b2b8e..87eff681b88a7 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.20 +lastReleaseVersion: 1.7.21 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 30856be18e231..f8c5a6f14a29e 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.21-dev +version: 1.7.22-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 4f04af923035b..503822fbd6847 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.21 + +No user-facing changes. + ## 1.7.20 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.21.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.21.md new file mode 100644 index 0000000000000..bdd54f47083c9 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.21.md @@ -0,0 +1,3 @@ +## 1.7.21 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 747131a0b2b8e..87eff681b88a7 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.20 +lastReleaseVersion: 1.7.21 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 434601dad84d6..f8e6ff0dc93a9 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.21-dev +version: 1.7.22-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 6abef1b2c046c..e8db033195148 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/1.0.4.md b/csharp/ql/lib/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 28319e6dc9961..7c679023e56f2 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 1.0.4-dev +version: 1.0.5-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 4ad804e504921..d2307d62fe928 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -2444,9 +2444,6 @@ DataFlowType getNodeType(Node n) { ] = result.getADelegateCreation() } -/** Gets a string representation of a `DataFlowType`. */ -string ppReprType(DataFlowType t) { result = t.toString() } - private class DataFlowNullType extends Gvn::GvnType { DataFlowNullType() { this = Gvn::getGlobalValueNumber(any(NullType nt)) } diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 5edbf9229620e..0b2583745f1e9 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/csharp/ql/src/change-notes/released/1.0.4.md b/csharp/ql/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 1805c054d6b8d..d1efd4cbf183d 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - csharp - queries diff --git a/docs/change-notes.md b/docs/change-notes.md index b48f56863c4c4..7bf33447f6ed6 100644 --- a/docs/change-notes.md +++ b/docs/change-notes.md @@ -44,6 +44,8 @@ The valid YAML properties in the metadata are: ### Description After the `---` line following the metadata, the rest of the markdown file is the user-visible content of the change note. This should usually be a single markdown bullet list entry (starting with `*`), although it is acceptable to have multiple bullet entries in the same change note if there are multiple changes that are closely related and have the same category metadata. +For consistency, change notes should use American English. + ## Change categories Each change note must specify a `category` property in its metadata. This category servers two purposes: It determines how the change affects the version number of the next release of the pack, and it is used to group related changes in the final changelog. There is one set of available categories for query packs, and another set of available categories for library packs. diff --git a/docs/codeql/codeql-language-guides/annotations-in-java.rst b/docs/codeql/codeql-language-guides/annotations-in-java.rst index 09e3290b5fdd6..f817bef7b623c 100644 --- a/docs/codeql/codeql-language-guides/annotations-in-java.rst +++ b/docs/codeql/codeql-language-guides/annotations-in-java.rst @@ -103,7 +103,7 @@ As a first step, let's write a query that finds all ``@Override`` annotations. A As always, it is a good idea to try this query on a CodeQL database for a Java/Kotlin project to make sure it actually produces some results. On the earlier example, it should find the annotation on ``Sub1.m``. Next, we encapsulate the concept of an ``@Override`` annotation as a CodeQL class: -:: +.. code-block:: ql class OverrideAnnotation extends Annotation { OverrideAnnotation() { @@ -213,11 +213,11 @@ To do so, we first introduce a class for representing all ``@SuppressWarnings`` class SuppressDeprecationWarningAnnotation extends Annotation { SuppressDeprecationWarningAnnotation() { this.getType().hasQualifiedName("java.lang", "SuppressWarnings") and - this.getAValue().(Literal).getLiteral().regexpMatch(".*deprecation.*") + this.getAStringArrayValue("value").regexpMatch(".*deprecation.*") } } -Here, we use ``getAValue()`` to retrieve any annotation value: in fact, annotation type ``SuppressWarnings`` only has a single annotation element, so every ``@SuppressWarnings`` annotation only has a single annotation value. Then, we ensure that it is a literal, obtain its string value using ``getLiteral``, and check whether it contains the string ``deprecation`` using a regular expression match. +Here, we use ``getAStringArrayValue("value")`` to retrieve any of the suppressed warnings: ``@SuppressWarnings`` defines the warnings to suppress using the annotation element named ``value`` of type ``String[]``, and ``getAStringArrayValue`` retrieves all of the array values; the CodeQL class ``Annotation`` also has similar convenience predicates for the other possible annotation element types. Afterwards we check whether one of the values is the string ``deprecation`` using a regular expression match. For real-world use, this check would have to be generalized a bit: for example, the OpenJDK Java compiler allows ``@SuppressWarnings("all")`` annotations to suppress all warnings. We may also want to make sure that ``deprecation`` is matched as an entire word, and not as part of another word, by changing the regular expression to ``".*\\bdeprecation\\b.*"``. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst new file mode 100644 index 0000000000000..584d45889d536 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.17.6.rst @@ -0,0 +1,30 @@ +.. _codeql-cli-2.17.6: + +========================== +CodeQL 2.17.6 (2024-06-27) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.17.6 runs a total of 414 security queries when configured with the Default suite (covering 161 CWE). The Extended suite enables an additional 131 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +New Features +~~~~~~~~~~~~ + +* Beta support is now available for analyzing C# codebases without needing a working build. To use this, pass the :code:`--build-mode none` option to :code:`codeql database create`. + +Improvements +~~~~~~~~~~~~ + +* The :code:`--model-packs` option is now publicly available. This option allows commands like :code:`codeql database analyze` to accept a list of model packs that are used to augment the analysis of all queries involved in the analysis. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst new file mode 100644 index 0000000000000..278a5092a0abf --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.0.rst @@ -0,0 +1,178 @@ +.. _codeql-cli-2.18.0: + +========================== +CodeQL 2.18.0 (2024-07-11) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.18.0 runs a total of 415 security queries when configured with the Default suite (covering 161 CWE). The Extended suite enables an additional 131 queries (covering 35 more CWE). 1 security query has been added with this release. + +CodeQL CLI +---------- + +Breaking Changes +~~~~~~~~~~~~~~~~ + +* A number of breaking changes have been made to the C and C++ CodeQL environment: + + * The environment no longer defines any GNU-specific builtin macros. + If these macros are still needed, please define them via + :code:`semmle-extractor-options`. + + * The :code:`--force-recompute` option is no longer directly supported by + :code:`semmle-extractor-options`. Instead, :code:`--edg --force-recompute` should be specified. + + * The :code:`--gnu_version` and :code:`--microsoft_version` options that can be specified via :code:`semmle-extractor-options` are now synonyms, and only one should be specified as part of :code:`semmle-extractor-options`. + Furthermore, is also no longer possible to specify these options via the following syntax. + + * :code:`--edg --gnu_version --edg `, and + * :code:`--edg --microsoft_version --edg ` + + The shorter :code:`--gnu_version ` and + :code:`--microsoft_version ` should be used. + +* The :code:`--build_error_dir` and :code:`--predefined_macros` command line options have been removed from the C/C++ extractor. It has never been possible to pass these options through the CLI, but some customers with advanced setups may have been passing them through internal undocumented interfaces. + Passing the option :code:`--build_error_dir` did not have any effect, and it is safe to remove the option. The :code:`--predefined_macros` option should have been unnecessary, as long as the extractor was invoked with the + :code:`--mimic` option. + +Bug Fixes +~~~~~~~~~ + +* Where a MacOS unsigned binary cannot be signed, CodeQL will now continue trying to trace compiler invocations created by that process and its children. In particular this means that Bazel builds on MacOS are now traceable. +* Fixed a bug where test discovery would fail if there is a syntax error in a qlpack file. Now, a warning message will be printed and discovery will continue. + +Improvements +~~~~~~~~~~~~ + +* Introduced the :code:`--include-logs` option to the :code:`codeql database bundle` command. This new feature allows users to include logs in the generated database bundle, allowing for a more complete treatment of the bundle, and bringing the tool capabilities up-to-speed with the documentation. +* :code:`codeql database init` and :code:`codeql database create` now support the + :code:`--force-overwrite` option. When this option is specified, the command will delete the specified database directory even if it does not look like a database directory. This option is only recommended for automation. For directcommand line commands, it is recommended to use the :code:`--overwrite` option, which includes extra protection and will refuse to delete a directory that does not look like a database directory. +* Extract :code:`.xsaccess`, :code:`*.xsjs` and :code:`*.xsjslib` files for SAP HANA XS as Javascript. +* We have updated many compiler error messages and warnings to improve their readability and standardize their grammar. + Where necessary, please use the :code:`--learn` option for the :code:`codeql test run` command. + +Known Issues +~~~~~~~~~~~~ + +* Compilation of QL queries is about 30% slower than in previous releases. This only affects users who write custom queries, and only at compilation time, not at run time. This regression will be fixed in the upcoming 2.18.1 release. + +Query Packs +----------- + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Java +"""" + +* The query :code:`java/weak-cryptographic-algorithm` no longer alerts about :code:`RSA/ECB` algorithm strings. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Java +"""" + +* The query :code:`java/tainted-permissions-check` now uses threat models. This means that :code:`local` sources are no longer included by default for this query, but can be added by enabling the :code:`local` threat model. +* Added more :code:`org.apache.commons.io.FileUtils`\ -related sinks to the path injection query. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added a new experimental query, :code:`js/cors-misconfiguration`, which detects misconfigured CORS HTTP headers in the :code:`cors` and :code:`apollo` libraries. + +Python +"""""" + +* Adding Python support for Hardcoded Credentials as Models as Data +* Additional sanitizers have been added to the :code:`py/full-ssrf` and :code:`py/partial-ssrf` queries for methods that verify a string contains only a certain set of characters, such as :code:`.isalnum()` as well as regular expression tests. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Golang +"""""" + +* Fixed dataflow via global variables other than via a direct write: for example, via a side-effect on a global, such as :code:`io.copy(SomeGlobal, ...)` or via assignment to a field or array or slice cell of a global. This means that any data-flow query may return more results where global variables are involved. + +Java +"""" + +* Support for :code:`codeql test run` for Kotlin sources has been fixed. + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added support for TypeScript 5.5. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The queries "Potential double free" (:code:`cpp/double-free`) and "Potential use after free" (:code:`cpp/use-after-free`) now produce fewer false positives. +* The "Guards" library (:code:`semmle.code.cpp.controlflow.Guards`) now also infers guards from calls to the builtin operation :code:`__builtin_expect`. As a result, some queries may produce fewer false positives. + +Golang +"""""" + +* DataFlow queries which previously used :code:`RemoteFlowSource` to define their sources have been modified to instead use :code:`ThreatModelFlowSource`. This means these queries will now respect threat model configurations. The default threat model configuration is equivalent to :code:`RemoteFlowSource`, so there should be no change in results for users using the default. +* Added the :code:`ThreatModelFlowSource` class to :code:`FlowSources.qll`. The :code:`ThreatModelFlowSource` class can be used to include sources which match the current *threat model* configuration. This is the first step in supporting threat modeling for Go. + +Java +"""" + +* Added models for the following packages: + + * io.undertow.server.handlers.resource + * jakarta.faces.context + * javax.faces.context + * javax.servlet + * org.jboss.vfs + * org.springframework.core.io + +* A bug has been fixed in the heuristic identification of uncertain control flow, which is used to filter data flow in order to improve performance and reduce false positives. This fix means that slightly more code is identified and hence pruned from data flow. + +* Excluded reverse DNS from the loopback address as a source of untrusted data. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Enabled type-tracking to follow content through array methods +* Improved modeling of :code:`Array.prototype.splice` for when it is called with more than two arguments + +Python +"""""" + +* A number of Python queries now support sinks defined using data extensions. The format of data extensions for Python has been documented. + +Ruby +"""" + +* Element references with blocks, such as :code:`foo[:bar] { |x| puts x}`, are now parsed correctly. +* The :code:`CleartextSources.qll` library, used by :code:`rb/clear-text-logging-sensitive-data` and :code:`rb/clear-text-logging-sensitive-data`, has been updated to consider heuristics for additional categories of sensitive data. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* The syntax for models-as-data rows has been extended to make it easier to select sources, sinks, and summaries that involve templated functions and classes. Additionally, the syntax has also been extended to make it easier to specify models with arbitrary levels of indirection. See :code:`dataflow/ExternalFlow.qll` for the updated documentation and specification for the model format. +* It is now possible to extend the classes :code:`AllocationFunction` and :code:`DeallocationFunction` via data extensions. Extensions of these classes should be added to the :code:`lib/ext/allocation` and :code:`lib/ext/deallocation` directories respectively. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst new file mode 100644 index 0000000000000..4febc45289826 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.18.1.rst @@ -0,0 +1,173 @@ +.. _codeql-cli-2.18.1: + +========================== +CodeQL 2.18.1 (2024-07-25) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.18.1 runs a total of 419 security queries when configured with the Default suite (covering 164 CWE). The Extended suite enables an additional 129 queries (covering 34 more CWE). 2 security queries have been added with this release. + +CodeQL CLI +---------- + +New Features +~~~~~~~~~~~~ + +* The *experimental* type :code:`QlBuiltins::BigInt` of arbitrary-precision integers has been introduced. To opt in to this API, compile your queries with + :code:`--allow-experimental=bigint`. Big integers can be constructed using the + :code:`.toBigInt()` methods of :code:`int` and :code:`string`. The built-in operations are: + + * comparisons: :code:`=`, :code:`!=`, :code:`<`, :code:`<=`, :code:`>`, :code:`>=`, + * conversions: :code:`.toString()`, :code:`.toInt()`, + * arithmetic: binary :code:`+`, :code:`-`, :code:`*`, :code:`/`, :code:`%`, unary :code:`-`, + * bitwise operations: :code:`.bitAnd(BigInt)`, :code:`.bitOr(BigInt)`, + :code:`.bitXor(BigInt)`, :code:`.bitShiftLeft(int)`, :code:`.bitShiftRightSigned(int)`, + :code:`.bitNot()`, + * aggregates: :code:`min`, :code:`max`, (:code:`strict`):code:`sum`, (:code:`strict`):code:`count`, :code:`avg`, + :code:`rank`, :code:`unique`, :code:`any`. + * other: :code:`.pow(int)`, :code:`.abs()`, :code:`.gcd(BigInt)`, :code:`.minimum(BigInt)`, + :code:`.maximum(BigInt)`. + +* :code:`codeql test run` now supports postprocessing of test results. When .qlref files specify a path to a :code:`postprocess` query, then this is evaluated after the test query to transform the test outputs prior to concatenating them into the :code:`actual` results. + +Improvements +~~~~~~~~~~~~ + +* The 30% QL query compilation slowdown noted in 2.18.0 has been fixed. + +Security Updates +~~~~~~~~~~~~~~~~ + +* Resolves CVE-2023-4759, an arbitrary file overwrite in Eclipse JGit that can be triggered when using untrusted third-party queries from a git repository. See the + \ `security advisory `__ for more information. +* The following dependencies have been updated. These updates include security fixes in the respective libraries that prevent out-of-bounds accesses or denial-of-service in scenarios where untrusted files are processed. These scenarios are not likely to be encountered in most uses of CodeQL and code scanning, and only apply to advanced use cases where precompiled query packs, + database ZIP files, or database TRAP files are obtained from untrusted sources and then processed on a trusted machine. + + * airlift/aircompressor is updated to version 0.27. + * Apache Ant is updated to version 1.10.11. + * Apache Commons Compress is updated to version 1.26.0. + * Apache Commons IO is updated to version 2.15.1. + * Apache Commons Lang3 is updated to version 3.14.0. + * jsoup is updated to version 1.15.3. + * Logback is updated to version 1.2.13. + * Snappy is updated to version 0.5. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`cpp/unsigned-difference-expression-compared-zero` ("Unsigned difference expression compared to zero") query now produces fewer false positives. + +Java +"""" + +* The heuristic to enable certain Android queries has been improved. Now it ignores Android Manifests which don't define an activity, content provider or service. We also only consider files which are under a folder containing such an Android Manifest for these queries. This should remove some false positive alerts. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added a new query, :code:`js/functionality-from-untrusted-domain`, which detects uses in HTML and JavaScript scripts from untrusted domains, including the :code:`polyfill.io` content delivery network + + * it can be extended to detect other compromised scripts using user-provided data extensions of the :code:`untrustedDomain` predicate, which takes one string argument with the domain to warn on (and will warn on any subdomains too). + +* Modified existing query, :code:`js/functionality-from-untrusted-source`, to allow adding this new query, but reusing the same logic + + * Added the ability to use data extensions to require SRI on CDN hostnames using the :code:`isCdnDomainWithCheckingRequired` predicate, which takes one string argument of the full hostname to require SRI for. + +* Created a new library, :code:`semmle.javascript.security.FunctionalityFromUntrustedSource`, to support both queries. + +New Queries +~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added a new query, :code:`js/insecure-helmet-configuration`, to detect instances where Helmet middleware is configured with important security features disabled. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The precision of :code:`cpp/iterator-to-expired-container` ("Iterator to expired container") has been increased to :code:`high`. As a result, it will be run by default as part of the Code Scanning suite. +* The precision of :code:`cpp/unsafe-strncat` ("Potentially unsafe call to strncat") has been increased to :code:`high`. As a result, it will be run by default as part of the Code Scanning suite. + +Language Libraries +------------------ + +Breaking Changes +~~~~~~~~~~~~~~~~ + +Java +"""" + +* The Java extractor no longer supports the :code:`SEMMLE_DIST` legacy environment variable. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Golang +"""""" + +* There was a bug which meant that the built-in function :code:`clear` was considered as a sanitizer in some cases when it shouldn't have been. This has now been fixed, which may lead to more alerts. + +Java +"""" + +* Added a path-injection sink for :code:`hudson.FilePath.exists()`. +* Added summary models for :code:`org.apache.commons.io.IOUtils.toByteArray`. +* Java build-mode :code:`none` analyses now only report a warning on the CodeQL status page when there are significant analysis problems-- defined as 5% of expressions lacking a type, or 5% of call targets being unknown. Other messages reported on the status page are downgraded from warnings to notes and so are less prominent, but are still available for review. + +Python +"""""" + +* Additional modelling to detect direct writes to the :code:`Set-Cookie` header has been added for several web frameworks. + +Swift +""""" + +* Additional heuristics for sensitive private information have been added to the :code:`SensitiveExprs.qll` library, improving coverage for credit card and social security numbers. This may result in additional results for queries that use sensitive data such as :code:`swift/cleartext-transmission`. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +Java +"""" + +* The predicate :code:`isAndroid` from the module :code:`semmle.code.java.security.AndroidCertificatePinningQuery` has been deprecated. Use :code:`semmle.code.java.frameworks.android.Android::inAndroidApplication(File)` instead. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Models-as-data alert provenance information has been extended to the C/C++ language. Any qltests that include the edges relation in their output (for example, :code:`.qlref`\ s that reference path-problem queries) will need to be have their expected output updated accordingly. +* Added subclasses of :code:`BuiltInOperations` for :code:`__builtin_has_attribute`, :code:`__builtin_is_corresponding_member`, :code:`__builtin_is_pointer_interconvertible_with_class`, :code:`__is_assignable_no_precondition_check`, :code:`__is_bounded_array`, :code:`__is_convertible`, :code:`__is_corresponding_member`, :code:`__is_nothrow_convertible`, :code:`__is_pointer_interconvertible_with_class`, :code:`__is_referenceable`, :code:`__is_same_as`, :code:`__is_trivially_copy_assignable`, :code:`__is_unbounded_array`, :code:`__is_valid_winrt_type`, :code:`_is_win_class`, :code:`__is_win_interface`, :code:`__reference_binds_to_temporary`, :code:`__reference_constructs_from_temporary`, and :code:`__reference_converts_from_temporary`. +* The class :code:`NewArrayExpr` adds a predicate :code:`getArraySize()` to allow a more convenient way to access the static size of the array when the extent is missing. + +Java and Kotlin +""""""""""""""" + +* Kotlin support is now out of beta, and generally available +* Kotlin versions up to 2.0.2*x* are now supported. + +Swift +""""" + +* Swift support is now out of beta, and generally available. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index efed5f453b779..35f75408e51b1 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,9 @@ A list of queries for each suite and language `is available here `__ and `Customizing your advanced setup for code scanning `__. diff --git a/docs/ql-libraries/dataflow/dataflow.md b/docs/ql-libraries/dataflow/dataflow.md index 106c055eae0c9..ff7c71abfaec3 100644 --- a/docs/ql-libraries/dataflow/dataflow.md +++ b/docs/ql-libraries/dataflow/dataflow.md @@ -548,12 +548,9 @@ DataFlowType getNodeType(Node n) ``` and every `Node` should have a type. -One also needs to define the string representation of a `DataFlowType`: -```ql -string ppReprType(DataFlowType t) -``` -The `ppReprType` predicate is used for printing a type in the labels of -`PathNode`s, this can be defined as `none()` if type pruning is not used. +One also needs to define the string representation of a `DataFlowType`. +The `DataFlowType.toString` predicate is used for printing a type in the labels of +`PathNode`s, this should be defined as `result = ""` if type pruning is not used. Finally, one must define `CastNode` as a subclass of `Node` as those nodes where types should be checked. Usually this will be things like explicit casts. diff --git a/go/documentation/library-coverage/coverage.csv b/go/documentation/library-coverage/coverage.csv index 02773954f5ee3..7d9294b424af8 100644 --- a/go/documentation/library-coverage/coverage.csv +++ b/go/documentation/library-coverage/coverage.csv @@ -58,9 +58,11 @@ github.com/go-chi/jwtauth,1,,,1,,,, github.com/go-jose/go-jose/jwt,1,,4,,1,,4, github.com/go-kit/kit/auth/jwt,1,,,1,,,, github.com/go-pg/pg/orm,,,6,,,,6, +github.com/gobwas/ws,,2,,,,2,, github.com/golang-jwt/jwt,3,,11,2,1,,11, github.com/golang/protobuf/proto,,,4,,,,4, github.com/gorilla/mux,,1,,,,1,, +github.com/gorilla/websocket,,3,,,,3,, github.com/json-iterator/go,,,4,,,,4, github.com/kataras/iris/middleware/jwt,1,,,1,,,, github.com/kataras/jwt,5,,,5,,,, @@ -69,14 +71,15 @@ github.com/lestrrat-go/jwx,1,,,1,,,, github.com/lestrrat-go/jwx/jwk,1,,,1,,,, github.com/lestrrat/go-jwx/jwk,1,,,1,,,, github.com/ory/fosite/token/jwt,2,,,2,,,, -github.com/revel/revel,,21,10,,,21,10, -github.com/robfig/revel,,21,10,,,21,10, +github.com/revel/revel,,23,10,,,23,10, +github.com/robfig/revel,,23,10,,,23,10, github.com/sendgrid/sendgrid-go/helpers/mail,,,1,,,,1, github.com/square/go-jose/jwt,1,,4,,1,,4, github.com/valyala/fasthttp,,50,5,,,50,5, go.uber.org/zap,,,11,,,,11, golang.org/x/net/context,,,5,,,,5, golang.org/x/net/html,,,16,,,,16, +golang.org/x/net/websocket,,2,,,,2,, google.golang.org/protobuf/internal/encoding/text,,,1,,,,1, google.golang.org/protobuf/internal/impl,,,2,,,,2, google.golang.org/protobuf/proto,,,8,,,,8, @@ -103,6 +106,7 @@ net/http/httputil,,,10,,,,10, net/mail,,,6,,,,6, net/textproto,,,19,,,,19, net/url,,,23,,,,23, +nhooyr.io/websocket,,2,,,,2,, os,,,4,,,,4, path,,,5,,,,5, path/filepath,,,13,,,,13, diff --git a/go/documentation/library-coverage/coverage.rst b/go/documentation/library-coverage/coverage.rst index daeca0c836e0b..51158f84cb025 100644 --- a/go/documentation/library-coverage/coverage.rst +++ b/go/documentation/library-coverage/coverage.rst @@ -17,7 +17,7 @@ Go framework & library support `Iris `_,``github.com/kataras/iris*``,,,1 `Kubernetes `_,"``k8s.io/api*``, ``k8s.io/apimachinery*``",,57, `Macaron `_,``gopkg.in/macaron*``,12,1, - `Revel `_,"``github.com/revel/revel*``, ``github.com/robfig/revel*``",42,20, + `Revel `_,"``github.com/revel/revel*``, ``github.com/robfig/revel*``",46,20, `SendGrid `_,``github.com/sendgrid/sendgrid-go*``,,1, `Standard library `_,"````, ``archive/*``, ``bufio``, ``bytes``, ``cmp``, ``compress/*``, ``container/*``, ``context``, ``crypto``, ``crypto/*``, ``database/*``, ``debug/*``, ``embed``, ``encoding``, ``encoding/*``, ``errors``, ``expvar``, ``flag``, ``fmt``, ``go/*``, ``hash``, ``hash/*``, ``html``, ``html/*``, ``image``, ``image/*``, ``index/*``, ``io``, ``io/*``, ``log``, ``log/*``, ``maps``, ``math``, ``math/*``, ``mime``, ``mime/*``, ``net``, ``net/*``, ``os``, ``os/*``, ``path``, ``path/*``, ``plugin``, ``reflect``, ``reflect/*``, ``regexp``, ``regexp/*``, ``slices``, ``sort``, ``strconv``, ``strings``, ``sync``, ``sync/*``, ``syscall``, ``syscall/*``, ``testing``, ``testing/*``, ``text/*``, ``time``, ``time/*``, ``unicode``, ``unicode/*``, ``unsafe``",16,584, `beego `_,"``github.com/astaxie/beego*``, ``github.com/beego/beego*``",63,63, @@ -26,7 +26,7 @@ Go framework & library support `fasthttp `_,``github.com/valyala/fasthttp*``,50,5, `go-pg `_,``github.com/go-pg/pg*``,,6, `go-restful `_,``github.com/emicklei/go-restful*``,7,, - `golang.org/x/net `_,``golang.org/x/net*``,,21, + `golang.org/x/net `_,``golang.org/x/net*``,2,21, `goproxy `_,``github.com/elazarl/goproxy*``,2,2, `gorilla/mux `_,``github.com/gorilla/mux*``,1,, `json-iterator `_,``github.com/json-iterator/go*``,,4, @@ -38,5 +38,6 @@ Go framework & library support `protobuf `_,"``github.com/golang/protobuf*``, ``google.golang.org/protobuf*``",,16, `yaml `_,``gopkg.in/yaml*``,,9, `zap `_,``go.uber.org/zap*``,,11, - Totals,,254,902,25 + Others,"``github.com/gobwas/ws``, ``github.com/gorilla/websocket``, ``nhooyr.io/websocket``",7,, + Totals,,267,902,25 diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 86a6976ddc7ca..bdc66d5132249 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.4.md b/go/ql/consistency-queries/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/go/ql/consistency-queries/codeql-pack.release.yml b/go/ql/consistency-queries/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/go/ql/consistency-queries/codeql-pack.release.yml +++ b/go/ql/consistency-queries/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 66c00f275bd7b..84c6cd451e2ed 100644 --- a/go/ql/consistency-queries/qlpack.yml +++ b/go/ql/consistency-queries/qlpack.yml @@ -1,5 +1,5 @@ name: codeql-go-consistency-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 875c2809beb31..ed4e9b3750f83 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.1.3 + +### Minor Analysis Improvements + +* There was a bug which meant that the built-in function `clear` was considered as a sanitizer in some cases when it shouldn't have been. This has now been fixed, which may lead to more alerts. + ## 1.1.2 ### Minor Analysis Improvements diff --git a/go/ql/lib/change-notes/2024-07-08-fix-clear-sanitizer.md b/go/ql/lib/change-notes/released/1.1.3.md similarity index 81% rename from go/ql/lib/change-notes/2024-07-08-fix-clear-sanitizer.md rename to go/ql/lib/change-notes/released/1.1.3.md index 711287f6a89ae..d97cd24d93ca8 100644 --- a/go/ql/lib/change-notes/2024-07-08-fix-clear-sanitizer.md +++ b/go/ql/lib/change-notes/released/1.1.3.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.1.3 + +### Minor Analysis Improvements + * There was a bug which meant that the built-in function `clear` was considered as a sanitizer in some cases when it shouldn't have been. This has now been fixed, which may lead to more alerts. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 53ab127707fc1..35e710ab1bf0d 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.2 +lastReleaseVersion: 1.1.3 diff --git a/go/ql/lib/ext/github.com.gobwas.ws.model.yml b/go/ql/lib/ext/github.com.gobwas.ws.model.yml new file mode 100644 index 0000000000000..bb03c8220c883 --- /dev/null +++ b/go/ql/lib/ext/github.com.gobwas.ws.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/go-all + extensible: sourceModel + data: + - ["github.com/gobwas/ws", "", True, "ReadFrame", "", "", "ReturnValue[0]", "remote", "manual"] + - ["github.com/gobwas/ws", "", True, "ReadHeader", "", "", "ReturnValue[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.gorilla.websocket.model.yml b/go/ql/lib/ext/github.com.gorilla.websocket.model.yml new file mode 100644 index 0000000000000..a4dafa18b0b23 --- /dev/null +++ b/go/ql/lib/ext/github.com.gorilla.websocket.model.yml @@ -0,0 +1,8 @@ +extensions: + - addsTo: + pack: codeql/go-all + extensible: sourceModel + data: + - ["github.com/gorilla/websocket", "", True, "ReadJSON", "", "", "Argument[1]", "remote", "manual"] + - ["github.com/gorilla/websocket", "Conn", True, "ReadJSON", "", "", "Argument[0]", "remote", "manual"] + - ["github.com/gorilla/websocket", "Conn", True, "ReadMessage", "", "", "ReturnValue[1]", "remote", "manual"] diff --git a/go/ql/lib/ext/github.com.revel.revel.model.yml b/go/ql/lib/ext/github.com.revel.revel.model.yml index 42f77a42ba42b..e5907088dff11 100644 --- a/go/ql/lib/ext/github.com.revel.revel.model.yml +++ b/go/ql/lib/ext/github.com.revel.revel.model.yml @@ -30,6 +30,8 @@ extensions: - ["group:revel", "Request", True, "PostFormValue", "", "", "ReturnValue", "remote", "manual"] - ["group:revel", "Request", True, "Referer", "", "", "ReturnValue", "remote", "manual"] - ["group:revel", "Request", True, "UserAgent", "", "", "ReturnValue", "remote", "manual"] + - ["group:revel", "ServerWebSocket", True, "MessageReceive", "", "", "Argument[0]", "remote", "manual"] + - ["group:revel", "ServerWebSocket", True, "MessageReceiveJSON", "", "", "Argument[0]", "remote", "manual"] - addsTo: pack: codeql/go-all extensible: summaryModel diff --git a/go/ql/lib/ext/golang.org.x.net.websocket.model.yml b/go/ql/lib/ext/golang.org.x.net.websocket.model.yml new file mode 100644 index 0000000000000..422d74248a59d --- /dev/null +++ b/go/ql/lib/ext/golang.org.x.net.websocket.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/go-all + extensible: sourceModel + data: + - ["golang.org/x/net/websocket", "Codec", True, "Receive", "", "", "Argument[1]", "remote", "manual"] + - ["golang.org/x/net/websocket", "Conn", True, "Read", "", "", "Argument[0]", "remote", "manual"] diff --git a/go/ql/lib/ext/nhooyr.io.websocket.model.yml b/go/ql/lib/ext/nhooyr.io.websocket.model.yml new file mode 100644 index 0000000000000..bb94c1ce2d4c1 --- /dev/null +++ b/go/ql/lib/ext/nhooyr.io.websocket.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/go-all + extensible: sourceModel + data: + - ["nhooyr.io/websocket", "Conn", True, "Read", "", "", "ReturnValue[1]", "remote", "manual"] + - ["nhooyr.io/websocket", "Conn", True, "Reader", "", "", "ReturnValue[1]", "remote", "manual"] diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 34fec580e8c0c..0393983bbc1e2 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 1.1.3-dev +version: 1.1.4-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 2145fc41a0552..2fcbf2d350f26 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -215,9 +215,6 @@ predicate localMustFlowStep(Node node1, Node node2) { none() } /** Gets the type of `n` used for type pruning. */ DataFlowType getNodeType(Node n) { result = TTodoDataFlowType() and exists(n) } -/** Gets a string representation of a type returned by `getNodeType()`. */ -string ppReprType(DataFlowType t) { none() } - /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. diff --git a/go/ql/lib/semmle/go/frameworks/WebSocket.qll b/go/ql/lib/semmle/go/frameworks/WebSocket.qll index 8d201a1f1a1fb..eb6160214cced 100644 --- a/go/ql/lib/semmle/go/frameworks/WebSocket.qll +++ b/go/ql/lib/semmle/go/frameworks/WebSocket.qll @@ -125,9 +125,11 @@ module WebSocketRequestCall { } /** + * DEPRECATED: Use `WebSocketReader` or `RemoteFlowSource::Range` instead. + * * A message written to a WebSocket, considered as a flow sink for reflected XSS. */ -class WebSocketReaderAsSource extends RemoteFlowSource::Range { +deprecated class WebSocketReaderAsSource extends RemoteFlowSource::Range { WebSocketReaderAsSource() { exists(WebSocketReader r | this = r.getAnOutput().getNode(r.getACall())) } diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index f02101176a929..7248057e4089e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/go/ql/src/change-notes/released/1.0.4.md b/go/ql/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/go/ql/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 27c6eaf86a9bd..36f79d28b5b48 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - go - queries diff --git a/go/ql/test/TestUtilities/PrettyPrintModels.ql b/go/ql/test/TestUtilities/PrettyPrintModels.ql new file mode 100644 index 0000000000000..f303f6abaaa65 --- /dev/null +++ b/go/ql/test/TestUtilities/PrettyPrintModels.ql @@ -0,0 +1,18 @@ +/** + * @kind test-postprocess + */ + +import codeql.dataflow.test.ProvenancePathGraph +import semmle.go.dataflow.ExternalFlow + +external predicate queryResults(string relation, int row, int column, string data); + +external predicate queryRelations(string relation); + +query predicate resultRelations(string relation) { queryRelations(relation) } + +module Res = TranslateProvenanceResults; + +from string relation, int row, int column, string data +where Res::results(relation, row, column, data) +select relation, row, column, data diff --git a/go/ql/test/experimental/CWE-090/LDAPInjection.expected b/go/ql/test/experimental/CWE-090/LDAPInjection.expected index f9dbef7f0c309..514d041628925 100644 --- a/go/ql/test/experimental/CWE-090/LDAPInjection.expected +++ b/go/ql/test/experimental/CWE-090/LDAPInjection.expected @@ -1,18 +1,18 @@ edges -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:59:3:59:11 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:61:3:61:51 | ...+... | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:3:62:33 | slice literal | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:24:62:32 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:66:3:66:11 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:68:3:68:51 | ...+... | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:3:69:33 | slice literal | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:24:69:32 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:73:3:73:11 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:75:3:75:51 | ...+... | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:3:76:33 | slice literal | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:24:76:32 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:80:22:80:30 | untrusted | provenance | Src:MaD:785 | -| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:81:25:81:33 | untrusted | provenance | Src:MaD:785 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:59:3:59:11 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:61:3:61:51 | ...+... | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:3:62:33 | slice literal | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:62:24:62:32 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:66:3:66:11 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:68:3:68:51 | ...+... | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:3:69:33 | slice literal | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:69:24:69:32 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:73:3:73:11 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:75:3:75:51 | ...+... | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:3:76:33 | slice literal | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:76:24:76:32 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:80:22:80:30 | untrusted | provenance | Src:MaD:794 | +| LDAPInjection.go:57:15:57:29 | call to UserAgent | LDAPInjection.go:81:25:81:33 | untrusted | provenance | Src:MaD:794 | | LDAPInjection.go:62:3:62:33 | slice literal [array] | LDAPInjection.go:62:3:62:33 | slice literal | provenance | | | LDAPInjection.go:62:24:62:32 | untrusted | LDAPInjection.go:62:3:62:33 | slice literal [array] | provenance | | | LDAPInjection.go:69:3:69:33 | slice literal [array] | LDAPInjection.go:69:3:69:33 | slice literal | provenance | | diff --git a/go/ql/test/experimental/CWE-203/Timing.expected b/go/ql/test/experimental/CWE-203/Timing.expected index 7082b67f8e7d7..11ccfa802c34b 100644 --- a/go/ql/test/experimental/CWE-203/Timing.expected +++ b/go/ql/test/experimental/CWE-203/Timing.expected @@ -1,9 +1,9 @@ edges -| timing.go:15:18:15:27 | selection of Header | timing.go:15:18:15:45 | call to Get | provenance | Src:MaD:791 MaD:766 | +| timing.go:15:18:15:27 | selection of Header | timing.go:15:18:15:45 | call to Get | provenance | Src:MaD:800 MaD:775 | | timing.go:15:18:15:45 | call to Get | timing.go:17:31:17:42 | headerSecret | provenance | | -| timing.go:28:18:28:27 | selection of Header | timing.go:28:18:28:45 | call to Get | provenance | Src:MaD:791 MaD:766 | +| timing.go:28:18:28:27 | selection of Header | timing.go:28:18:28:45 | call to Get | provenance | Src:MaD:800 MaD:775 | | timing.go:28:18:28:45 | call to Get | timing.go:30:47:30:58 | headerSecret | provenance | | -| timing.go:41:18:41:27 | selection of Header | timing.go:41:18:41:45 | call to Get | provenance | Src:MaD:791 MaD:766 | +| timing.go:41:18:41:27 | selection of Header | timing.go:41:18:41:45 | call to Get | provenance | Src:MaD:800 MaD:775 | | timing.go:41:18:41:45 | call to Get | timing.go:42:25:42:36 | headerSecret | provenance | | nodes | timing.go:15:18:15:27 | selection of Header | semmle.label | selection of Header | diff --git a/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected b/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected index 4a16afdfde60f..e1b5b23f1ddfc 100644 --- a/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected +++ b/go/ql/test/experimental/CWE-287/ImproperLdapAuth.expected @@ -1,5 +1,5 @@ edges -| ImproperLdapAuth.go:18:18:18:24 | selection of URL | ImproperLdapAuth.go:18:18:18:32 | call to Query | provenance | Src:MaD:793 MaD:854 | +| ImproperLdapAuth.go:18:18:18:24 | selection of URL | ImproperLdapAuth.go:18:18:18:32 | call to Query | provenance | Src:MaD:802 MaD:863 | | ImproperLdapAuth.go:18:18:18:32 | call to Query | ImproperLdapAuth.go:28:23:28:34 | bindPassword | provenance | | | ImproperLdapAuth.go:87:18:87:19 | "" | ImproperLdapAuth.go:97:23:97:34 | bindPassword | provenance | | nodes diff --git a/go/ql/test/experimental/CWE-369/DivideByZero.expected b/go/ql/test/experimental/CWE-369/DivideByZero.expected index 50d0fd6f74914..f9e0a4905cb5c 100644 --- a/go/ql/test/experimental/CWE-369/DivideByZero.expected +++ b/go/ql/test/experimental/CWE-369/DivideByZero.expected @@ -1,24 +1,24 @@ edges -| DivideByZero.go:10:12:10:16 | selection of URL | DivideByZero.go:10:12:10:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:10:12:10:16 | selection of URL | DivideByZero.go:10:12:10:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:10:12:10:24 | call to Query | DivideByZero.go:11:27:11:32 | param1 | provenance | | | DivideByZero.go:11:2:11:33 | ... := ...[0] | DivideByZero.go:12:16:12:20 | value | provenance | | | DivideByZero.go:11:27:11:32 | param1 | DivideByZero.go:11:2:11:33 | ... := ...[0] | provenance | Config | -| DivideByZero.go:17:12:17:16 | selection of URL | DivideByZero.go:17:12:17:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:17:12:17:16 | selection of URL | DivideByZero.go:17:12:17:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:17:12:17:24 | call to Query | DivideByZero.go:18:11:18:24 | type conversion | provenance | | | DivideByZero.go:18:11:18:24 | type conversion | DivideByZero.go:19:16:19:20 | value | provenance | | -| DivideByZero.go:24:12:24:16 | selection of URL | DivideByZero.go:24:12:24:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:24:12:24:16 | selection of URL | DivideByZero.go:24:12:24:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:24:12:24:24 | call to Query | DivideByZero.go:25:31:25:36 | param1 | provenance | | | DivideByZero.go:25:2:25:45 | ... := ...[0] | DivideByZero.go:26:16:26:20 | value | provenance | | | DivideByZero.go:25:31:25:36 | param1 | DivideByZero.go:25:2:25:45 | ... := ...[0] | provenance | Config | -| DivideByZero.go:31:12:31:16 | selection of URL | DivideByZero.go:31:12:31:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:31:12:31:16 | selection of URL | DivideByZero.go:31:12:31:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:31:12:31:24 | call to Query | DivideByZero.go:32:33:32:38 | param1 | provenance | | | DivideByZero.go:32:2:32:43 | ... := ...[0] | DivideByZero.go:33:16:33:20 | value | provenance | | | DivideByZero.go:32:33:32:38 | param1 | DivideByZero.go:32:2:32:43 | ... := ...[0] | provenance | Config | -| DivideByZero.go:38:12:38:16 | selection of URL | DivideByZero.go:38:12:38:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:38:12:38:16 | selection of URL | DivideByZero.go:38:12:38:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:38:12:38:24 | call to Query | DivideByZero.go:39:32:39:37 | param1 | provenance | | | DivideByZero.go:39:2:39:46 | ... := ...[0] | DivideByZero.go:40:16:40:20 | value | provenance | | | DivideByZero.go:39:32:39:37 | param1 | DivideByZero.go:39:2:39:46 | ... := ...[0] | provenance | Config | -| DivideByZero.go:54:12:54:16 | selection of URL | DivideByZero.go:54:12:54:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| DivideByZero.go:54:12:54:16 | selection of URL | DivideByZero.go:54:12:54:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | DivideByZero.go:54:12:54:24 | call to Query | DivideByZero.go:55:11:55:24 | type conversion | provenance | | | DivideByZero.go:55:11:55:24 | type conversion | DivideByZero.go:57:17:57:21 | value | provenance | | nodes diff --git a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected index 848e57fe9b8b1..324734afd6c8c 100644 --- a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected +++ b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected @@ -1,24 +1,24 @@ edges -| test.go:59:16:59:44 | call to FormValue | test.go:128:20:128:27 | definition of filename | provenance | Src:MaD:781 | -| test.go:60:15:60:26 | selection of Body | test.go:158:19:158:22 | definition of file | provenance | Src:MaD:786 | -| test.go:61:24:61:35 | selection of Body | test.go:169:28:169:31 | definition of file | provenance | Src:MaD:786 | -| test.go:62:13:62:24 | selection of Body | test.go:181:17:181:20 | definition of file | provenance | Src:MaD:786 | -| test.go:64:8:64:19 | selection of Body | test.go:208:12:208:15 | definition of file | provenance | Src:MaD:786 | -| test.go:66:8:66:19 | selection of Body | test.go:233:12:233:15 | definition of file | provenance | Src:MaD:786 | -| test.go:68:17:68:28 | selection of Body | test.go:258:21:258:24 | definition of file | provenance | Src:MaD:786 | -| test.go:70:13:70:24 | selection of Body | test.go:283:17:283:20 | definition of file | provenance | Src:MaD:786 | -| test.go:72:16:72:27 | selection of Body | test.go:308:20:308:23 | definition of file | provenance | Src:MaD:786 | -| test.go:74:7:74:18 | selection of Body | test.go:333:11:333:14 | definition of file | provenance | Src:MaD:786 | -| test.go:76:9:76:20 | selection of Body | test.go:358:13:358:16 | definition of file | provenance | Src:MaD:786 | -| test.go:78:18:78:29 | selection of Body | test.go:384:22:384:25 | definition of file | provenance | Src:MaD:786 | -| test.go:80:5:80:16 | selection of Body | test.go:412:9:412:12 | definition of file | provenance | Src:MaD:786 | -| test.go:82:7:82:18 | selection of Body | test.go:447:11:447:14 | definition of file | provenance | Src:MaD:786 | -| test.go:84:15:84:26 | selection of Body | test.go:440:19:440:21 | definition of src | provenance | Src:MaD:786 | -| test.go:85:16:85:27 | selection of Body | test.go:472:20:472:23 | definition of file | provenance | Src:MaD:786 | -| test.go:87:16:87:27 | selection of Body | test.go:499:20:499:23 | definition of file | provenance | Src:MaD:786 | -| test.go:89:17:89:28 | selection of Body | test.go:526:21:526:24 | definition of file | provenance | Src:MaD:786 | -| test.go:91:15:91:26 | selection of Body | test.go:555:19:555:22 | definition of file | provenance | Src:MaD:786 | -| test.go:93:5:93:16 | selection of Body | test.go:580:9:580:12 | definition of file | provenance | Src:MaD:786 | +| test.go:59:16:59:44 | call to FormValue | test.go:128:20:128:27 | definition of filename | provenance | Src:MaD:790 | +| test.go:60:15:60:26 | selection of Body | test.go:158:19:158:22 | definition of file | provenance | Src:MaD:795 | +| test.go:61:24:61:35 | selection of Body | test.go:169:28:169:31 | definition of file | provenance | Src:MaD:795 | +| test.go:62:13:62:24 | selection of Body | test.go:181:17:181:20 | definition of file | provenance | Src:MaD:795 | +| test.go:64:8:64:19 | selection of Body | test.go:208:12:208:15 | definition of file | provenance | Src:MaD:795 | +| test.go:66:8:66:19 | selection of Body | test.go:233:12:233:15 | definition of file | provenance | Src:MaD:795 | +| test.go:68:17:68:28 | selection of Body | test.go:258:21:258:24 | definition of file | provenance | Src:MaD:795 | +| test.go:70:13:70:24 | selection of Body | test.go:283:17:283:20 | definition of file | provenance | Src:MaD:795 | +| test.go:72:16:72:27 | selection of Body | test.go:308:20:308:23 | definition of file | provenance | Src:MaD:795 | +| test.go:74:7:74:18 | selection of Body | test.go:333:11:333:14 | definition of file | provenance | Src:MaD:795 | +| test.go:76:9:76:20 | selection of Body | test.go:358:13:358:16 | definition of file | provenance | Src:MaD:795 | +| test.go:78:18:78:29 | selection of Body | test.go:384:22:384:25 | definition of file | provenance | Src:MaD:795 | +| test.go:80:5:80:16 | selection of Body | test.go:412:9:412:12 | definition of file | provenance | Src:MaD:795 | +| test.go:82:7:82:18 | selection of Body | test.go:447:11:447:14 | definition of file | provenance | Src:MaD:795 | +| test.go:84:15:84:26 | selection of Body | test.go:440:19:440:21 | definition of src | provenance | Src:MaD:795 | +| test.go:85:16:85:27 | selection of Body | test.go:472:20:472:23 | definition of file | provenance | Src:MaD:795 | +| test.go:87:16:87:27 | selection of Body | test.go:499:20:499:23 | definition of file | provenance | Src:MaD:795 | +| test.go:89:17:89:28 | selection of Body | test.go:526:21:526:24 | definition of file | provenance | Src:MaD:795 | +| test.go:91:15:91:26 | selection of Body | test.go:555:19:555:22 | definition of file | provenance | Src:MaD:795 | +| test.go:93:5:93:16 | selection of Body | test.go:580:9:580:12 | definition of file | provenance | Src:MaD:795 | | test.go:128:20:128:27 | definition of filename | test.go:130:33:130:40 | filename | provenance | | | test.go:128:20:128:27 | definition of filename | test.go:143:51:143:58 | filename | provenance | | | test.go:130:2:130:41 | ... := ...[0] | test.go:132:12:132:12 | f | provenance | | @@ -31,7 +31,7 @@ edges | test.go:145:12:145:19 | call to Open | test.go:147:37:147:38 | rc | provenance | | | test.go:158:19:158:22 | definition of file | test.go:159:25:159:28 | file | provenance | | | test.go:159:2:159:29 | ... := ...[0] | test.go:160:48:160:52 | file1 | provenance | | -| test.go:159:25:159:28 | file | test.go:159:2:159:29 | ... := ...[0] | provenance | MaD:658 | +| test.go:159:25:159:28 | file | test.go:159:2:159:29 | ... := ...[0] | provenance | MaD:667 | | test.go:160:2:160:69 | ... := ...[0] | test.go:163:26:163:29 | file | provenance | | | test.go:160:32:160:53 | call to NewReader | test.go:160:2:160:69 | ... := ...[0] | provenance | Config | | test.go:160:48:160:52 | file1 | test.go:160:32:160:53 | call to NewReader | provenance | MaD:46 | @@ -39,7 +39,7 @@ edges | test.go:163:26:163:29 | file | test.go:163:3:163:36 | ... := ...[0] | provenance | MaD:8 | | test.go:169:28:169:31 | definition of file | test.go:170:25:170:28 | file | provenance | | | test.go:170:2:170:29 | ... := ...[0] | test.go:171:57:171:61 | file2 | provenance | | -| test.go:170:25:170:28 | file | test.go:170:2:170:29 | ... := ...[0] | provenance | MaD:658 | +| test.go:170:25:170:28 | file | test.go:170:2:170:29 | ... := ...[0] | provenance | MaD:667 | | test.go:171:2:171:78 | ... := ...[0] | test.go:175:26:175:29 | file | provenance | | | test.go:171:41:171:62 | call to NewReader | test.go:171:2:171:78 | ... := ...[0] | provenance | Config | | test.go:171:57:171:61 | file2 | test.go:171:41:171:62 | call to NewReader | provenance | MaD:46 | diff --git a/go/ql/test/experimental/CWE-74/DsnInjection.expected b/go/ql/test/experimental/CWE-74/DsnInjection.expected index e91036cc7129c..901f9fed3682c 100644 --- a/go/ql/test/experimental/CWE-74/DsnInjection.expected +++ b/go/ql/test/experimental/CWE-74/DsnInjection.expected @@ -1,5 +1,5 @@ edges -| Dsn.go:47:10:47:30 | call to FormValue | Dsn.go:49:102:49:105 | name | provenance | Src:MaD:781 | +| Dsn.go:47:10:47:30 | call to FormValue | Dsn.go:49:102:49:105 | name | provenance | Src:MaD:790 | | Dsn.go:49:11:49:106 | []type{args} [array] | Dsn.go:49:11:49:106 | call to Sprintf | provenance | MaD:248 | | Dsn.go:49:11:49:106 | call to Sprintf | Dsn.go:50:29:50:33 | dbDSN | provenance | | | Dsn.go:49:102:49:105 | name | Dsn.go:49:11:49:106 | []type{args} [array] | provenance | | diff --git a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected index 8b05d1a1b245b..28eb20587b685 100644 --- a/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected +++ b/go/ql/test/experimental/CWE-79/HTMLTemplateEscapingPassthrough.expected @@ -1,28 +1,28 @@ edges | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | HTMLTemplateEscapingPassthrough.go:30:39:30:39 | a | provenance | | -| HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | HTMLTemplateEscapingPassthrough.go:36:40:36:40 | a | provenance | | -| HTMLTemplateEscapingPassthrough.go:35:23:35:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:35:23:35:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:35:9:35:38 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | HTMLTemplateEscapingPassthrough.go:41:40:41:40 | a | provenance | | -| HTMLTemplateEscapingPassthrough.go:40:19:40:33 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:40:19:40:33 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:40:9:40:34 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | HTMLTemplateEscapingPassthrough.go:47:41:47:41 | c | provenance | | -| HTMLTemplateEscapingPassthrough.go:46:29:46:43 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:46:29:46:43 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:46:11:46:44 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | HTMLTemplateEscapingPassthrough.go:51:44:51:44 | d | provenance | | -| HTMLTemplateEscapingPassthrough.go:50:23:50:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:50:23:50:37 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:50:11:50:38 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | HTMLTemplateEscapingPassthrough.go:55:44:55:44 | e | provenance | | -| HTMLTemplateEscapingPassthrough.go:54:26:54:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:54:26:54:40 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:54:11:54:41 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | HTMLTemplateEscapingPassthrough.go:59:38:59:38 | b | provenance | | -| HTMLTemplateEscapingPassthrough.go:58:24:58:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:58:24:58:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:58:11:58:39 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | HTMLTemplateEscapingPassthrough.go:63:44:63:44 | f | provenance | | -| HTMLTemplateEscapingPassthrough.go:62:27:62:41 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:62:27:62:41 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:62:11:62:42 | type conversion | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | HTMLTemplateEscapingPassthrough.go:67:38:67:38 | g | provenance | | -| HTMLTemplateEscapingPassthrough.go:66:24:66:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | provenance | Src:MaD:785 | -| HTMLTemplateEscapingPassthrough.go:75:17:75:31 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:76:38:76:44 | escaped | provenance | Src:MaD:785 | -| HTMLTemplateEscapingPassthrough.go:81:10:81:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:84:38:84:40 | src | provenance | Src:MaD:785 | -| HTMLTemplateEscapingPassthrough.go:89:10:89:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | provenance | Src:MaD:785 | +| HTMLTemplateEscapingPassthrough.go:66:24:66:38 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:66:11:66:39 | type conversion | provenance | Src:MaD:794 | +| HTMLTemplateEscapingPassthrough.go:75:17:75:31 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:76:38:76:44 | escaped | provenance | Src:MaD:794 | +| HTMLTemplateEscapingPassthrough.go:81:10:81:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:84:38:84:40 | src | provenance | Src:MaD:794 | +| HTMLTemplateEscapingPassthrough.go:89:10:89:24 | call to UserAgent | HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | provenance | Src:MaD:794 | | HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | HTMLTemplateEscapingPassthrough.go:92:38:92:46 | converted | provenance | | | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | HTMLTemplateEscapingPassthrough.go:91:16:91:77 | type conversion | provenance | | -| HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | provenance | MaD:633 | +| HTMLTemplateEscapingPassthrough.go:91:64:91:66 | src | HTMLTemplateEscapingPassthrough.go:91:38:91:67 | call to HTMLEscapeString | provenance | MaD:642 | nodes | HTMLTemplateEscapingPassthrough.go:29:12:29:41 | type conversion | semmle.label | type conversion | | HTMLTemplateEscapingPassthrough.go:29:26:29:40 | call to UserAgent | semmle.label | call to UserAgent | diff --git a/go/ql/test/experimental/CWE-918/SSRF.expected b/go/ql/test/experimental/CWE-918/SSRF.expected index 17779bff56962..1e8f3bcd393cf 100644 --- a/go/ql/test/experimental/CWE-918/SSRF.expected +++ b/go/ql/test/experimental/CWE-918/SSRF.expected @@ -1,9 +1,9 @@ edges -| builtin.go:19:12:19:34 | call to FormValue | builtin.go:22:21:22:62 | ...+... | provenance | Src:MaD:781 | -| builtin.go:83:21:83:31 | call to Referer | builtin.go:88:27:88:40 | untrustedInput | provenance | Src:MaD:784 | -| builtin.go:97:21:97:31 | call to Referer | builtin.go:101:36:101:49 | untrustedInput | provenance | Src:MaD:784 | -| builtin.go:111:21:111:31 | call to Referer | builtin.go:114:15:114:28 | untrustedInput | provenance | Src:MaD:784 | -| builtin.go:129:21:129:31 | call to Referer | builtin.go:132:38:132:51 | untrustedInput | provenance | Src:MaD:784 | +| builtin.go:19:12:19:34 | call to FormValue | builtin.go:22:21:22:62 | ...+... | provenance | Src:MaD:790 | +| builtin.go:83:21:83:31 | call to Referer | builtin.go:88:27:88:40 | untrustedInput | provenance | Src:MaD:793 | +| builtin.go:97:21:97:31 | call to Referer | builtin.go:101:36:101:49 | untrustedInput | provenance | Src:MaD:793 | +| builtin.go:111:21:111:31 | call to Referer | builtin.go:114:15:114:28 | untrustedInput | provenance | Src:MaD:793 | +| builtin.go:129:21:129:31 | call to Referer | builtin.go:132:38:132:51 | untrustedInput | provenance | Src:MaD:793 | | new-tests.go:26:26:26:30 | &... | new-tests.go:31:48:31:56 | selection of word | provenance | Src:MaD:402 | | new-tests.go:26:26:26:30 | &... | new-tests.go:32:48:32:56 | selection of safe | provenance | Src:MaD:402 | | new-tests.go:26:26:26:30 | &... | new-tests.go:35:49:35:57 | selection of word | provenance | Src:MaD:402 | @@ -19,7 +19,7 @@ edges | new-tests.go:39:18:39:30 | call to Param | new-tests.go:47:11:47:46 | ...+... | provenance | Src:MaD:391 | | new-tests.go:49:18:49:30 | call to Query | new-tests.go:50:11:50:46 | ...+... | provenance | Src:MaD:396 | | new-tests.go:62:2:62:39 | ... := ...[0] | new-tests.go:63:17:63:23 | reqBody | provenance | | -| new-tests.go:62:31:62:38 | selection of Body | new-tests.go:62:2:62:39 | ... := ...[0] | provenance | Src:MaD:786 MaD:651 | +| new-tests.go:62:31:62:38 | selection of Body | new-tests.go:62:2:62:39 | ... := ...[0] | provenance | Src:MaD:795 MaD:660 | | new-tests.go:63:17:63:23 | reqBody | new-tests.go:63:26:63:30 | &... | provenance | MaD:187 | | new-tests.go:63:26:63:30 | &... | new-tests.go:68:48:68:56 | selection of word | provenance | | | new-tests.go:63:26:63:30 | &... | new-tests.go:69:48:69:56 | selection of safe | provenance | | @@ -33,13 +33,13 @@ edges | new-tests.go:74:12:74:58 | []type{args} [array] | new-tests.go:74:12:74:58 | call to Sprintf | provenance | MaD:248 | | new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | []type{args} [array] | provenance | | | new-tests.go:74:49:74:57 | selection of word | new-tests.go:74:12:74:58 | call to Sprintf | provenance | FunctionModel | -| new-tests.go:78:18:78:24 | selection of URL | new-tests.go:78:18:78:32 | call to Query | provenance | Src:MaD:793 MaD:854 | -| new-tests.go:78:18:78:32 | call to Query | new-tests.go:78:18:78:46 | call to Get | provenance | MaD:861 | +| new-tests.go:78:18:78:24 | selection of URL | new-tests.go:78:18:78:32 | call to Query | provenance | Src:MaD:802 MaD:863 | +| new-tests.go:78:18:78:32 | call to Query | new-tests.go:78:18:78:46 | call to Get | provenance | MaD:870 | | new-tests.go:78:18:78:46 | call to Get | new-tests.go:79:11:79:46 | ...+... | provenance | | | new-tests.go:81:18:81:67 | call to TrimPrefix | new-tests.go:82:11:82:46 | ...+... | provenance | | -| new-tests.go:81:37:81:43 | selection of URL | new-tests.go:81:37:81:48 | selection of Path | provenance | Src:MaD:793 | -| new-tests.go:81:37:81:48 | selection of Path | new-tests.go:81:18:81:67 | call to TrimPrefix | provenance | MaD:977 | -| new-tests.go:86:10:86:20 | call to Vars | new-tests.go:88:11:88:46 | ...+... | provenance | Src:MaD:445 | +| new-tests.go:81:37:81:43 | selection of URL | new-tests.go:81:37:81:48 | selection of Path | provenance | Src:MaD:802 | +| new-tests.go:81:37:81:48 | selection of Path | new-tests.go:81:18:81:67 | call to TrimPrefix | provenance | MaD:988 | +| new-tests.go:86:10:86:20 | call to Vars | new-tests.go:88:11:88:46 | ...+... | provenance | Src:MaD:447 | | new-tests.go:95:18:95:45 | call to URLParam | new-tests.go:96:11:96:46 | ...+... | provenance | Src:MaD:408 | nodes | builtin.go:19:12:19:34 | call to FormValue | semmle.label | call to FormValue | diff --git a/go/ql/test/library-tests/semmle/go/concepts/HTTP/RemoteFlowSources.ql b/go/ql/test/library-tests/semmle/go/concepts/HTTP/RemoteFlowSources.ql index d56a98686e0cc..9e68fd210ff23 100644 --- a/go/ql/test/library-tests/semmle/go/concepts/HTTP/RemoteFlowSources.ql +++ b/go/ql/test/library-tests/semmle/go/concepts/HTTP/RemoteFlowSources.ql @@ -1,3 +1,3 @@ import go -select any(RemoteFlowSource ufs) +select any(RemoteFlowSource rfs) diff --git a/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected b/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected index 3d7bfa2706722..dd113996a23e6 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/DefaultTaintSanitizer/DefaultSanitizer.expected @@ -1,10 +1,10 @@ edges | Builtin.go:6:2:6:2 | definition of b | Builtin.go:8:9:8:17 | type conversion | provenance | | -| Builtin.go:7:2:7:15 | selection of Body | Builtin.go:6:2:6:2 | definition of b | provenance | Src:MaD:786 MaD:664 | +| Builtin.go:7:2:7:15 | selection of Body | Builtin.go:6:2:6:2 | definition of b | provenance | Src:MaD:795 MaD:673 | | Builtin.go:12:2:12:2 | definition of b | Builtin.go:17:9:17:17 | type conversion | provenance | | -| Builtin.go:13:2:13:15 | selection of Body | Builtin.go:12:2:12:2 | definition of b | provenance | Src:MaD:786 MaD:664 | +| Builtin.go:13:2:13:15 | selection of Body | Builtin.go:12:2:12:2 | definition of b | provenance | Src:MaD:795 MaD:673 | | Builtin.go:21:2:21:2 | definition of b | Builtin.go:24:10:24:18 | type conversion | provenance | | -| Builtin.go:22:2:22:15 | selection of Body | Builtin.go:21:2:21:2 | definition of b | provenance | Src:MaD:786 MaD:664 | +| Builtin.go:22:2:22:15 | selection of Body | Builtin.go:21:2:21:2 | definition of b | provenance | Src:MaD:795 MaD:673 | nodes | Builtin.go:6:2:6:2 | definition of b | semmle.label | definition of b | | Builtin.go:7:2:7:15 | selection of Body | semmle.label | selection of Body | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.expected index ab9512807fea7..30671016dcedf 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest1.expected @@ -1,6 +1,6 @@ edges -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:32:11:32:15 | selection of URL | semmle.label | selection of URL | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected index 18bd5dbb71513..3d4edb7380848 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest2.expected @@ -1,7 +1,7 @@ edges | test.go:27:11:27:63 | call to ExecuteQuery | test.go:28:7:28:11 | query | provenance | Src:MaD:1 | -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:27:11:27:63 | call to ExecuteQuery | semmle.label | call to ExecuteQuery | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected index aa3c2226b5f66..401b39a979a5c 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest3.expected @@ -2,8 +2,8 @@ edges | test.go:9:10:9:40 | call to ReadEnvironment | test.go:11:7:11:29 | ...+... | provenance | Src:MaD:2 | | test.go:15:9:15:32 | call to GetCliArg | test.go:17:7:17:28 | ...+... | provenance | Src:MaD:4 | | test.go:27:11:27:63 | call to ExecuteQuery | test.go:28:7:28:11 | query | provenance | Src:MaD:1 | -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:9:10:9:40 | call to ReadEnvironment | semmle.label | call to ReadEnvironment | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected index d62f8ac21f327..c5d3e018e70ce 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest4.expected @@ -3,8 +3,8 @@ edges | test.go:15:9:15:32 | call to GetCliArg | test.go:17:7:17:28 | ...+... | provenance | Src:MaD:4 | | test.go:21:11:21:36 | call to GetCustom | test.go:23:7:23:30 | ...+... | provenance | Src:MaD:3 | | test.go:27:11:27:63 | call to ExecuteQuery | test.go:28:7:28:11 | query | provenance | Src:MaD:1 | -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:9:10:9:40 | call to ReadEnvironment | semmle.label | call to ReadEnvironment | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected index eb592b9ca4f59..312c91e1c4bf4 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest5.expected @@ -1,8 +1,8 @@ edges | test.go:9:10:9:40 | call to ReadEnvironment | test.go:11:7:11:29 | ...+... | provenance | Src:MaD:3 | | test.go:15:9:15:32 | call to GetCliArg | test.go:17:7:17:28 | ...+... | provenance | Src:MaD:5 | -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:9:10:9:40 | call to ReadEnvironment | semmle.label | call to ReadEnvironment | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected index b60fb225f78c9..7e30904b70cca 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ThreatModels/threat-models-flowtest6.expected @@ -1,8 +1,8 @@ edges | test.go:15:9:15:32 | call to GetCliArg | test.go:17:7:17:28 | ...+... | provenance | Src:MaD:5 | | test.go:27:11:27:63 | call to ExecuteQuery | test.go:28:7:28:11 | query | provenance | Src:MaD:2 | -| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:861 | +| test.go:32:11:32:15 | selection of URL | test.go:32:11:32:23 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:32:11:32:23 | call to Query | test.go:32:11:32:36 | call to Get | provenance | MaD:870 | | test.go:32:11:32:36 | call to Get | test.go:34:7:34:30 | ...+... | provenance | | nodes | test.go:15:9:15:32 | call to GetCliArg | semmle.label | call to GetCliArg | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected index 09272ea52b43d..fd6f8095ccc23 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Beego/ReflectedXss.expected @@ -34,11 +34,11 @@ edges | test.go:205:21:205:58 | call to Substr | test.go:205:14:205:59 | type conversion | provenance | | | test.go:205:34:205:51 | type assertion | test.go:205:21:205:58 | call to Substr | provenance | MaD:294 | | test.go:207:6:207:6 | definition of s | test.go:209:14:209:28 | type conversion | provenance | | -| test.go:208:18:208:33 | selection of Form | test.go:207:6:207:6 | definition of s | provenance | Src:MaD:788 MaD:292 | +| test.go:208:18:208:33 | selection of Form | test.go:207:6:207:6 | definition of s | provenance | Src:MaD:797 MaD:292 | | test.go:223:2:223:34 | ... := ...[0] | test.go:225:31:225:31 | f | provenance | Src:MaD:296 | | test.go:223:2:223:34 | ... := ...[1] | test.go:224:14:224:32 | type conversion | provenance | Src:MaD:296 | | test.go:225:2:225:32 | ... := ...[0] | test.go:226:14:226:20 | content | provenance | | -| test.go:225:31:225:31 | f | test.go:225:2:225:32 | ... := ...[0] | provenance | MaD:651 | +| test.go:225:31:225:31 | f | test.go:225:2:225:32 | ... := ...[0] | provenance | MaD:660 | | test.go:228:2:228:40 | ... := ...[0] | test.go:229:14:229:38 | type conversion | provenance | Src:MaD:297 | | test.go:231:7:231:28 | call to GetString | test.go:232:14:232:22 | type conversion | provenance | Src:MaD:298 | | test.go:234:8:234:35 | call to GetStrings | test.go:235:14:235:26 | type conversion | provenance | Src:MaD:299 | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected index 6702387136711..3122b2d226151 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/BeegoOrm/SqlInjection.expected @@ -1,36 +1,36 @@ edges -| test.go:10:15:10:41 | call to UserAgent | test.go:12:11:12:19 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:13:23:13:31 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:14:14:14:22 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:15:26:15:34 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:16:12:16:20 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:17:24:17:32 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:18:15:18:23 | untrusted | provenance | Src:MaD:785 | -| test.go:10:15:10:41 | call to UserAgent | test.go:19:27:19:35 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:26:12:26:20 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:27:10:27:18 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:28:15:28:23 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:29:14:29:22 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:30:15:30:23 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:31:8:31:16 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:32:11:32:19 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:33:9:33:17 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:34:8:34:16 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:35:8:35:16 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:36:13:36:21 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:37:13:37:21 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:38:12:38:20 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:39:12:39:20 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:40:9:40:17 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:41:12:41:20 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:42:16:42:24 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:42:27:42:35 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:43:12:43:20 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:44:14:44:22 | untrusted | provenance | Src:MaD:785 | -| test.go:24:15:24:41 | call to UserAgent | test.go:44:25:44:33 | untrusted | provenance | Src:MaD:785 | -| test.go:48:15:48:41 | call to UserAgent | test.go:49:12:49:20 | untrusted | provenance | Src:MaD:785 | -| test.go:54:15:54:41 | call to UserAgent | test.go:56:31:56:39 | untrusted | provenance | Src:MaD:785 | -| test.go:60:15:60:41 | call to UserAgent | test.go:62:19:62:27 | untrusted | provenance | Src:MaD:785 | +| test.go:10:15:10:41 | call to UserAgent | test.go:12:11:12:19 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:13:23:13:31 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:14:14:14:22 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:15:26:15:34 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:16:12:16:20 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:17:24:17:32 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:18:15:18:23 | untrusted | provenance | Src:MaD:794 | +| test.go:10:15:10:41 | call to UserAgent | test.go:19:27:19:35 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:26:12:26:20 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:27:10:27:18 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:28:15:28:23 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:29:14:29:22 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:30:15:30:23 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:31:8:31:16 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:32:11:32:19 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:33:9:33:17 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:34:8:34:16 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:35:8:35:16 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:36:13:36:21 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:37:13:37:21 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:38:12:38:20 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:39:12:39:20 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:40:9:40:17 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:41:12:41:20 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:42:16:42:24 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:42:27:42:35 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:43:12:43:20 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:44:14:44:22 | untrusted | provenance | Src:MaD:794 | +| test.go:24:15:24:41 | call to UserAgent | test.go:44:25:44:33 | untrusted | provenance | Src:MaD:794 | +| test.go:48:15:48:41 | call to UserAgent | test.go:49:12:49:20 | untrusted | provenance | Src:MaD:794 | +| test.go:54:15:54:41 | call to UserAgent | test.go:56:31:56:39 | untrusted | provenance | Src:MaD:794 | +| test.go:60:15:60:41 | call to UserAgent | test.go:62:19:62:27 | untrusted | provenance | Src:MaD:794 | nodes | test.go:10:15:10:41 | call to UserAgent | semmle.label | call to UserAgent | | test.go:12:11:12:19 | untrusted | semmle.label | untrusted | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected index 3896eea7e1ba4..963d271c8b680 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Chi/ReflectedXss.expected @@ -1,5 +1,5 @@ edges -| test.go:13:12:13:16 | selection of URL | test.go:13:12:13:21 | selection of Path | provenance | Src:MaD:793 | +| test.go:13:12:13:16 | selection of URL | test.go:13:12:13:21 | selection of Path | provenance | Src:MaD:802 | | test.go:13:12:13:21 | selection of Path | test.go:21:18:21:23 | hidden | provenance | | | test.go:21:18:21:23 | hidden | test.go:21:11:21:24 | type conversion | provenance | | | test.go:22:18:22:45 | call to URLParam | test.go:22:11:22:46 | type conversion | provenance | Src:MaD:408 | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected index ac6d6af509b4c..816efce0892f7 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/OpenRedirect.expected @@ -1,10 +1,10 @@ edges -| test.go:172:11:172:32 | call to Param | test.go:173:20:173:24 | param | provenance | Src:MaD:459 | -| test.go:178:11:178:32 | call to Param | test.go:182:24:182:28 | param | provenance | Src:MaD:459 | +| test.go:172:11:172:32 | call to Param | test.go:173:20:173:24 | param | provenance | Src:MaD:464 | +| test.go:178:11:178:32 | call to Param | test.go:182:24:182:28 | param | provenance | Src:MaD:464 | | test.go:182:24:182:28 | param | test.go:182:20:182:28 | ...+... | provenance | Config | | test.go:190:9:190:26 | star expression | test.go:190:10:190:26 | selection of URL | provenance | Config | | test.go:190:9:190:26 | star expression | test.go:193:21:193:23 | url | provenance | | -| test.go:190:10:190:26 | selection of URL | test.go:190:9:190:26 | star expression | provenance | Src:MaD:793 Config | +| test.go:190:10:190:26 | selection of URL | test.go:190:9:190:26 | star expression | provenance | Src:MaD:802 Config | | test.go:193:21:193:23 | url | test.go:193:21:193:32 | call to String | provenance | Config | nodes | test.go:172:11:172:32 | call to Param | semmle.label | call to Param | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected index d18c24e097eee..8ada23ef521b8 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/ReflectedXss.expected @@ -1,36 +1,36 @@ edges -| test.go:15:11:15:32 | call to Param | test.go:16:16:16:20 | param | provenance | Src:MaD:459 | -| test.go:21:11:21:27 | call to ParamValues | test.go:22:16:22:20 | param | provenance | Src:MaD:460 | -| test.go:27:11:27:37 | call to QueryParam | test.go:28:16:28:20 | param | provenance | Src:MaD:461 | -| test.go:33:11:33:27 | call to QueryParams | test.go:34:16:34:20 | param | provenance | Src:MaD:462 | -| test.go:39:10:39:26 | call to QueryString | test.go:40:16:40:19 | qstr | provenance | Src:MaD:463 | -| test.go:45:9:45:34 | call to FormValue | test.go:46:16:46:18 | val | provenance | Src:MaD:464 | -| test.go:51:2:51:30 | ... := ...[0] | test.go:52:16:52:37 | index expression | provenance | Src:MaD:465 | -| test.go:57:2:57:46 | ... := ...[0] | test.go:58:13:58:22 | fileHeader | provenance | Src:MaD:466 | +| test.go:15:11:15:32 | call to Param | test.go:16:16:16:20 | param | provenance | Src:MaD:464 | +| test.go:21:11:21:27 | call to ParamValues | test.go:22:16:22:20 | param | provenance | Src:MaD:465 | +| test.go:27:11:27:37 | call to QueryParam | test.go:28:16:28:20 | param | provenance | Src:MaD:466 | +| test.go:33:11:33:27 | call to QueryParams | test.go:34:16:34:20 | param | provenance | Src:MaD:467 | +| test.go:39:10:39:26 | call to QueryString | test.go:40:16:40:19 | qstr | provenance | Src:MaD:468 | +| test.go:45:9:45:34 | call to FormValue | test.go:46:16:46:18 | val | provenance | Src:MaD:469 | +| test.go:51:2:51:30 | ... := ...[0] | test.go:52:16:52:37 | index expression | provenance | Src:MaD:470 | +| test.go:57:2:57:46 | ... := ...[0] | test.go:58:13:58:22 | fileHeader | provenance | Src:MaD:471 | | test.go:58:2:58:29 | ... := ...[0] | test.go:60:2:60:5 | file | provenance | | -| test.go:58:13:58:22 | fileHeader | test.go:58:2:58:29 | ... := ...[0] | provenance | MaD:738 | +| test.go:58:13:58:22 | fileHeader | test.go:58:2:58:29 | ... := ...[0] | provenance | MaD:747 | | test.go:59:2:59:7 | definition of buffer | test.go:61:20:61:25 | buffer | provenance | | -| test.go:60:2:60:5 | file | test.go:59:2:59:7 | definition of buffer | provenance | MaD:664 | -| test.go:66:2:66:31 | ... := ...[0] | test.go:67:16:67:41 | index expression | provenance | Src:MaD:467 | -| test.go:72:2:72:31 | ... := ...[0] | test.go:74:13:74:22 | fileHeader | provenance | Src:MaD:467 | +| test.go:60:2:60:5 | file | test.go:59:2:59:7 | definition of buffer | provenance | MaD:673 | +| test.go:66:2:66:31 | ... := ...[0] | test.go:67:16:67:41 | index expression | provenance | Src:MaD:472 | +| test.go:72:2:72:31 | ... := ...[0] | test.go:74:13:74:22 | fileHeader | provenance | Src:MaD:472 | | test.go:74:2:74:29 | ... := ...[0] | test.go:76:2:76:5 | file | provenance | | -| test.go:74:13:74:22 | fileHeader | test.go:74:2:74:29 | ... := ...[0] | provenance | MaD:738 | +| test.go:74:13:74:22 | fileHeader | test.go:74:2:74:29 | ... := ...[0] | provenance | MaD:747 | | test.go:75:2:75:7 | definition of buffer | test.go:77:20:77:25 | buffer | provenance | | -| test.go:76:2:76:5 | file | test.go:75:2:75:7 | definition of buffer | provenance | MaD:664 | -| test.go:82:2:82:32 | ... := ...[0] | test.go:83:16:83:24 | selection of Value | provenance | Src:MaD:468 | -| test.go:88:13:88:25 | call to Cookies | test.go:89:16:89:31 | selection of Value | provenance | Src:MaD:469 | -| test.go:99:11:99:15 | &... | test.go:100:16:100:21 | selection of s | provenance | Src:MaD:458 | +| test.go:76:2:76:5 | file | test.go:75:2:75:7 | definition of buffer | provenance | MaD:673 | +| test.go:82:2:82:32 | ... := ...[0] | test.go:83:16:83:24 | selection of Value | provenance | Src:MaD:473 | +| test.go:88:13:88:25 | call to Cookies | test.go:89:16:89:31 | selection of Value | provenance | Src:MaD:474 | +| test.go:99:11:99:15 | &... | test.go:100:16:100:21 | selection of s | provenance | Src:MaD:463 | | test.go:112:17:112:19 | definition of ctx | test.go:114:16:114:18 | ctx | provenance | | -| test.go:113:21:113:42 | call to Param | test.go:112:17:112:19 | definition of ctx | provenance | Src:MaD:459 MaD:457 | -| test.go:114:16:114:18 | ctx | test.go:114:16:114:33 | call to Get | provenance | MaD:456 | +| test.go:113:21:113:42 | call to Param | test.go:112:17:112:19 | definition of ctx | provenance | Src:MaD:464 MaD:462 | +| test.go:114:16:114:18 | ctx | test.go:114:16:114:33 | call to Get | provenance | MaD:461 | | test.go:114:16:114:33 | call to Get | test.go:114:16:114:42 | type assertion | provenance | | -| test.go:124:11:124:32 | call to Param | test.go:125:16:125:20 | param | provenance | Src:MaD:459 | -| test.go:130:11:130:32 | call to Param | test.go:131:20:131:32 | type conversion | provenance | Src:MaD:459 | -| test.go:136:11:136:32 | call to Param | test.go:137:29:137:41 | type conversion | provenance | Src:MaD:459 | -| test.go:148:11:148:32 | call to Param | test.go:149:30:149:34 | param | provenance | Src:MaD:459 | +| test.go:124:11:124:32 | call to Param | test.go:125:16:125:20 | param | provenance | Src:MaD:464 | +| test.go:130:11:130:32 | call to Param | test.go:131:20:131:32 | type conversion | provenance | Src:MaD:464 | +| test.go:136:11:136:32 | call to Param | test.go:137:29:137:41 | type conversion | provenance | Src:MaD:464 | +| test.go:148:11:148:32 | call to Param | test.go:149:30:149:34 | param | provenance | Src:MaD:464 | | test.go:149:12:149:35 | call to NewReader | test.go:150:31:150:36 | reader | provenance | | -| test.go:149:30:149:34 | param | test.go:149:12:149:35 | call to NewReader | provenance | MaD:955 | -| test.go:164:11:164:32 | call to Param | test.go:165:23:165:35 | type conversion | provenance | Src:MaD:459 | +| test.go:149:30:149:34 | param | test.go:149:12:149:35 | call to NewReader | provenance | MaD:966 | +| test.go:164:11:164:32 | call to Param | test.go:165:23:165:35 | type conversion | provenance | Src:MaD:464 | nodes | test.go:15:11:15:32 | call to Param | semmle.label | call to Param | | test.go:16:16:16:20 | param | semmle.label | param | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected index 4985c7091fc2c..31ee545b275cc 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Echo/TaintedPath.expected @@ -1,6 +1,6 @@ edges -| test.go:221:15:221:38 | call to QueryParam | test.go:222:17:222:24 | filepath | provenance | Src:MaD:461 | -| test.go:225:15:225:38 | call to QueryParam | test.go:226:23:226:30 | filepath | provenance | Src:MaD:461 | +| test.go:221:15:221:38 | call to QueryParam | test.go:222:17:222:24 | filepath | provenance | Src:MaD:466 | +| test.go:225:15:225:38 | call to QueryParam | test.go:226:23:226:30 | filepath | provenance | Src:MaD:466 | nodes | test.go:221:15:221:38 | call to QueryParam | semmle.label | call to QueryParam | | test.go:222:17:222:24 | filepath | semmle.label | filepath | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected index 7714ebdc504c1..39c52eb45303d 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.expected @@ -4,13 +4,13 @@ edges | jsoniter.go:23:20:23:38 | call to getUntrustedBytes | jsoniter.go:31:21:31:34 | untrustedInput | provenance | | | jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:35:27:35:41 | untrustedString | provenance | | | jsoniter.go:24:21:24:40 | call to getUntrustedString | jsoniter.go:39:31:39:45 | untrustedString | provenance | | -| jsoniter.go:27:17:27:30 | untrustedInput | jsoniter.go:27:33:27:37 | &... | provenance | MaD:448 | +| jsoniter.go:27:17:27:30 | untrustedInput | jsoniter.go:27:33:27:37 | &... | provenance | MaD:453 | | jsoniter.go:27:33:27:37 | &... | jsoniter.go:28:15:28:24 | selection of field | provenance | | -| jsoniter.go:31:21:31:34 | untrustedInput | jsoniter.go:31:37:31:42 | &... | provenance | MaD:446 | +| jsoniter.go:31:21:31:34 | untrustedInput | jsoniter.go:31:37:31:42 | &... | provenance | MaD:451 | | jsoniter.go:31:37:31:42 | &... | jsoniter.go:32:15:32:25 | selection of field | provenance | | -| jsoniter.go:35:27:35:41 | untrustedString | jsoniter.go:35:44:35:49 | &... | provenance | MaD:449 | +| jsoniter.go:35:27:35:41 | untrustedString | jsoniter.go:35:44:35:49 | &... | provenance | MaD:454 | | jsoniter.go:35:44:35:49 | &... | jsoniter.go:36:15:36:25 | selection of field | provenance | | -| jsoniter.go:39:31:39:45 | untrustedString | jsoniter.go:39:48:39:53 | &... | provenance | MaD:447 | +| jsoniter.go:39:31:39:45 | untrustedString | jsoniter.go:39:48:39:53 | &... | provenance | MaD:452 | | jsoniter.go:39:48:39:53 | &... | jsoniter.go:40:15:40:25 | selection of field | provenance | | nodes | jsoniter.go:23:20:23:38 | call to getUntrustedBytes | semmle.label | call to getUntrustedBytes | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql index 1d761c2a67956..d55ef5b31d810 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql +++ b/go/ql/test/library-tests/semmle/go/frameworks/Encoding/jsoniter.ql @@ -9,7 +9,7 @@ class UntrustedFunction extends Function { } class RemoteSource extends DataFlow::Node, RemoteFlowSource::Range { - RemoteSource() { this = any(UntrustedFunction f).getACall() } + RemoteSource() { this = any(UntrustedFunction f).getACall().getResult() } } from CommandInjection::Flow::PathNode source, CommandInjection::Flow::PathNode sink diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected index 0b475b751e5ce..bc8d19ba666dd 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/OpenRedirect.expected @@ -1,8 +1,8 @@ edges | EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:27 | selection of Params | provenance | Config | | EndToEnd.go:94:20:94:27 | implicit dereference | EndToEnd.go:94:20:94:32 | selection of Form | provenance | Config | -| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:27 | implicit dereference | provenance | Src:MaD:477 Config | -| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:32 | selection of Form | provenance | Src:MaD:477 Config | +| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:27 | implicit dereference | provenance | Src:MaD:482 Config | +| EndToEnd.go:94:20:94:27 | selection of Params | EndToEnd.go:94:20:94:32 | selection of Form | provenance | Src:MaD:482 Config | | EndToEnd.go:94:20:94:32 | selection of Form | EndToEnd.go:94:20:94:49 | call to Get | provenance | Config | nodes | EndToEnd.go:94:20:94:27 | implicit dereference | semmle.label | implicit dereference | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected index 7d99bcd75e8f6..3d58541bee200 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/ReflectedXss.expected @@ -1,13 +1,13 @@ edges | EndToEnd.go:35:2:35:4 | definition of buf | EndToEnd.go:37:24:37:26 | buf | provenance | | -| EndToEnd.go:36:18:36:25 | selection of Params | EndToEnd.go:36:18:36:30 | selection of Form | provenance | Src:MaD:477 | -| EndToEnd.go:36:18:36:30 | selection of Form | EndToEnd.go:36:18:36:47 | call to Get | provenance | MaD:861 | -| EndToEnd.go:36:18:36:47 | call to Get | EndToEnd.go:35:2:35:4 | definition of buf | provenance | MaD:667 | -| EndToEnd.go:69:22:69:29 | selection of Params | EndToEnd.go:69:22:69:34 | selection of Form | provenance | Src:MaD:477 | -| EndToEnd.go:69:22:69:34 | selection of Form | EndToEnd.go:69:22:69:51 | call to Get | provenance | MaD:861 | -| Revel.go:70:22:70:29 | selection of Params | Revel.go:70:22:70:35 | selection of Query | provenance | Src:MaD:477 | -| examples/booking/app/init.go:36:44:36:48 | selection of URL | examples/booking/app/init.go:36:44:36:53 | selection of Path | provenance | Src:MaD:793 | -| examples/booking/app/init.go:40:49:40:53 | selection of URL | examples/booking/app/init.go:40:49:40:58 | selection of Path | provenance | Src:MaD:793 | +| EndToEnd.go:36:18:36:25 | selection of Params | EndToEnd.go:36:18:36:30 | selection of Form | provenance | Src:MaD:482 | +| EndToEnd.go:36:18:36:30 | selection of Form | EndToEnd.go:36:18:36:47 | call to Get | provenance | MaD:870 | +| EndToEnd.go:36:18:36:47 | call to Get | EndToEnd.go:35:2:35:4 | definition of buf | provenance | MaD:676 | +| EndToEnd.go:69:22:69:29 | selection of Params | EndToEnd.go:69:22:69:34 | selection of Form | provenance | Src:MaD:482 | +| EndToEnd.go:69:22:69:34 | selection of Form | EndToEnd.go:69:22:69:51 | call to Get | provenance | MaD:870 | +| Revel.go:70:22:70:29 | selection of Params | Revel.go:70:22:70:35 | selection of Query | provenance | Src:MaD:482 | +| examples/booking/app/init.go:36:44:36:48 | selection of URL | examples/booking/app/init.go:36:44:36:53 | selection of Path | provenance | Src:MaD:802 | +| examples/booking/app/init.go:40:49:40:53 | selection of URL | examples/booking/app/init.go:40:49:40:58 | selection of Path | provenance | Src:MaD:802 | nodes | EndToEnd.go:35:2:35:4 | definition of buf | semmle.label | definition of buf | | EndToEnd.go:36:18:36:25 | selection of Params | semmle.label | selection of Params | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected index 48d5657b50846..d5ca939601553 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Revel/TaintedPath.expected @@ -1,8 +1,8 @@ edges -| EndToEnd.go:58:18:58:25 | selection of Params | EndToEnd.go:58:18:58:30 | selection of Form | provenance | Src:MaD:477 | -| EndToEnd.go:58:18:58:30 | selection of Form | EndToEnd.go:58:18:58:47 | call to Get | provenance | MaD:861 | -| EndToEnd.go:64:26:64:33 | selection of Params | EndToEnd.go:64:26:64:38 | selection of Form | provenance | Src:MaD:477 | -| EndToEnd.go:64:26:64:38 | selection of Form | EndToEnd.go:64:26:64:55 | call to Get | provenance | MaD:861 | +| EndToEnd.go:58:18:58:25 | selection of Params | EndToEnd.go:58:18:58:30 | selection of Form | provenance | Src:MaD:482 | +| EndToEnd.go:58:18:58:30 | selection of Form | EndToEnd.go:58:18:58:47 | call to Get | provenance | MaD:870 | +| EndToEnd.go:64:26:64:33 | selection of Params | EndToEnd.go:64:26:64:38 | selection of Form | provenance | Src:MaD:482 | +| EndToEnd.go:64:26:64:38 | selection of Form | EndToEnd.go:64:26:64:55 | call to Get | provenance | MaD:870 | nodes | EndToEnd.go:58:18:58:25 | selection of Params | semmle.label | selection of Params | | EndToEnd.go:58:18:58:30 | selection of Form | semmle.label | selection of Form | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected index 1fe7b8c72364f..4b0749e3224ba 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected @@ -6,9 +6,9 @@ edges | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | provenance | | | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | server/main.go:19:56:19:61 | definition of params | provenance | | | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | rpc/notes/service.twirp.go:544:27:544:29 | buf | provenance | | -| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | provenance | Src:MaD:786 MaD:658 | +| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | provenance | Src:MaD:795 MaD:667 | | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | -| rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | provenance | MaD:602 | +| rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | provenance | MaD:611 | | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | provenance | | | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | server/main.go:19:56:19:61 | definition of params | provenance | | | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | provenance | | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.expected b/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.expected new file mode 100644 index 0000000000000..0124cf73218ff --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.expected @@ -0,0 +1,9 @@ +| WebSocketReadWrite.go:27:9:27:16 | selection of Header | +| WebSocketReadWrite.go:31:7:31:10 | definition of xnet | +| WebSocketReadWrite.go:35:3:35:7 | definition of xnet2 | +| WebSocketReadWrite.go:41:3:41:40 | ... := ...[1] | +| WebSocketReadWrite.go:44:3:44:48 | ... := ...[1] | +| WebSocketReadWrite.go:51:7:51:16 | definition of gorillaMsg | +| WebSocketReadWrite.go:55:3:55:10 | definition of gorilla2 | +| WebSocketReadWrite.go:61:3:61:38 | ... := ...[1] | +| WebSocketReadWrite.go:67:3:67:36 | ... := ...[0] | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.ql b/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.ql new file mode 100644 index 0000000000000..9e68fd210ff23 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/frameworks/WebSocket/RemoteFlowSources.ql @@ -0,0 +1,3 @@ +import go + +select any(RemoteFlowSource rfs) diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected index 9c38dc406ea60..c74109cd3a0e8 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/ReflectedXss.expected @@ -1,40 +1,40 @@ edges -| test.go:12:12:12:22 | selection of URL | test.go:12:12:12:30 | call to Query | provenance | Src:MaD:793 MaD:854 | -| test.go:12:12:12:30 | call to Query | test.go:12:12:12:44 | call to Get | provenance | MaD:861 | +| test.go:12:12:12:22 | selection of URL | test.go:12:12:12:30 | call to Query | provenance | Src:MaD:802 MaD:863 | +| test.go:12:12:12:30 | call to Query | test.go:12:12:12:44 | call to Get | provenance | MaD:870 | | test.go:12:12:12:44 | call to Get | test.go:15:42:15:47 | param1 | provenance | | | test.go:15:22:15:48 | call to UnescapeString | test.go:15:15:15:49 | type conversion | provenance | | -| test.go:15:42:15:47 | param1 | test.go:15:22:15:48 | call to UnescapeString | provenance | MaD:588 | +| test.go:15:42:15:47 | param1 | test.go:15:22:15:48 | call to UnescapeString | provenance | MaD:595 | | test.go:17:2:17:36 | ... := ...[0] | test.go:18:15:18:31 | type conversion | provenance | | | test.go:17:2:17:36 | ... := ...[0] | test.go:29:22:29:25 | node | provenance | | -| test.go:17:24:17:35 | selection of Body | test.go:17:2:17:36 | ... := ...[0] | provenance | Src:MaD:786 MaD:583 | +| test.go:17:24:17:35 | selection of Body | test.go:17:2:17:36 | ... := ...[0] | provenance | Src:MaD:795 MaD:590 | | test.go:20:2:20:48 | ... := ...[0] | test.go:21:15:21:32 | type conversion | provenance | | -| test.go:20:36:20:47 | selection of Body | test.go:20:2:20:48 | ... := ...[0] | provenance | Src:MaD:786 MaD:586 | +| test.go:20:36:20:47 | selection of Body | test.go:20:2:20:48 | ... := ...[0] | provenance | Src:MaD:795 MaD:593 | | test.go:23:2:23:50 | ... := ...[0] | test.go:24:15:24:35 | type conversion | provenance | | -| test.go:23:33:23:44 | selection of Body | test.go:23:2:23:50 | ... := ...[0] | provenance | Src:MaD:786 MaD:584 | +| test.go:23:33:23:44 | selection of Body | test.go:23:2:23:50 | ... := ...[0] | provenance | Src:MaD:795 MaD:591 | | test.go:26:2:26:62 | ... := ...[0] | test.go:27:15:27:36 | type conversion | provenance | | -| test.go:26:45:26:56 | selection of Body | test.go:26:2:26:62 | ... := ...[0] | provenance | Src:MaD:786 MaD:585 | +| test.go:26:45:26:56 | selection of Body | test.go:26:2:26:62 | ... := ...[0] | provenance | Src:MaD:795 MaD:592 | | test.go:31:15:31:45 | call to NewTokenizer | test.go:32:15:32:23 | tokenizer | provenance | | | test.go:31:15:31:45 | call to NewTokenizer | test.go:33:15:33:23 | tokenizer | provenance | | | test.go:31:15:31:45 | call to NewTokenizer | test.go:34:17:34:25 | tokenizer | provenance | | | test.go:31:15:31:45 | call to NewTokenizer | test.go:36:15:36:23 | tokenizer | provenance | | | test.go:31:15:31:45 | call to NewTokenizer | test.go:37:22:37:30 | tokenizer | provenance | | -| test.go:31:33:31:44 | selection of Body | test.go:31:15:31:45 | call to NewTokenizer | provenance | Src:MaD:786 MaD:581 | -| test.go:32:15:32:23 | tokenizer | test.go:32:15:32:34 | call to Buffered | provenance | MaD:591 | -| test.go:33:15:33:23 | tokenizer | test.go:33:15:33:29 | call to Raw | provenance | MaD:592 | +| test.go:31:33:31:44 | selection of Body | test.go:31:15:31:45 | call to NewTokenizer | provenance | Src:MaD:795 MaD:588 | +| test.go:32:15:32:23 | tokenizer | test.go:32:15:32:34 | call to Buffered | provenance | MaD:598 | +| test.go:33:15:33:23 | tokenizer | test.go:33:15:33:29 | call to Raw | provenance | MaD:599 | | test.go:34:2:34:35 | ... := ...[1] | test.go:35:15:35:19 | value | provenance | | -| test.go:34:17:34:25 | tokenizer | test.go:34:2:34:35 | ... := ...[1] | provenance | MaD:593 | -| test.go:36:15:36:23 | tokenizer | test.go:36:15:36:30 | call to Text | provenance | MaD:594 | -| test.go:37:22:37:30 | tokenizer | test.go:37:22:37:38 | call to Token | provenance | MaD:595 | +| test.go:34:17:34:25 | tokenizer | test.go:34:2:34:35 | ... := ...[1] | provenance | MaD:600 | +| test.go:36:15:36:23 | tokenizer | test.go:36:15:36:30 | call to Text | provenance | MaD:601 | +| test.go:37:22:37:30 | tokenizer | test.go:37:22:37:38 | call to Token | provenance | MaD:602 | | test.go:37:22:37:38 | call to Token | test.go:37:15:37:44 | type conversion | provenance | | | test.go:39:23:39:77 | call to NewTokenizerFragment | test.go:40:15:40:31 | tokenizerFragment | provenance | | -| test.go:39:49:39:60 | selection of Body | test.go:39:23:39:77 | call to NewTokenizerFragment | provenance | Src:MaD:786 MaD:582 | -| test.go:40:15:40:31 | tokenizerFragment | test.go:40:15:40:42 | call to Buffered | provenance | MaD:591 | +| test.go:39:49:39:60 | selection of Body | test.go:39:23:39:77 | call to NewTokenizerFragment | provenance | Src:MaD:795 MaD:589 | +| test.go:40:15:40:31 | tokenizerFragment | test.go:40:15:40:42 | call to Buffered | provenance | MaD:598 | | test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | provenance | | | test.go:42:6:42:14 | definition of cleanNode | test.go:45:22:45:31 | &... | provenance | | | test.go:42:6:42:14 | definition of cleanNode | test.go:45:23:45:31 | cleanNode | provenance | | | test.go:43:2:43:43 | ... := ...[0] | test.go:44:24:44:34 | taintedNode | provenance | | -| test.go:43:31:43:42 | selection of Body | test.go:43:2:43:43 | ... := ...[0] | provenance | Src:MaD:786 MaD:583 | -| test.go:44:24:44:34 | taintedNode | test.go:42:6:42:14 | definition of cleanNode | provenance | MaD:589 | +| test.go:43:31:43:42 | selection of Body | test.go:43:2:43:43 | ... := ...[0] | provenance | Src:MaD:795 MaD:590 | +| test.go:44:24:44:34 | taintedNode | test.go:42:6:42:14 | definition of cleanNode | provenance | MaD:596 | | test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | provenance | | | test.go:45:22:45:31 | &... | test.go:45:22:45:31 | &... | provenance | | | test.go:45:22:45:31 | &... | test.go:45:23:45:31 | cleanNode | provenance | | @@ -46,8 +46,8 @@ edges | test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:22:50:32 | &... | provenance | | | test.go:47:6:47:15 | definition of cleanNode2 | test.go:50:23:50:32 | cleanNode2 | provenance | | | test.go:48:2:48:44 | ... := ...[0] | test.go:49:26:49:37 | taintedNode2 | provenance | | -| test.go:48:32:48:43 | selection of Body | test.go:48:2:48:44 | ... := ...[0] | provenance | Src:MaD:786 MaD:583 | -| test.go:49:26:49:37 | taintedNode2 | test.go:47:6:47:15 | definition of cleanNode2 | provenance | MaD:590 | +| test.go:48:32:48:43 | selection of Body | test.go:48:2:48:44 | ... := ...[0] | provenance | Src:MaD:795 MaD:590 | +| test.go:49:26:49:37 | taintedNode2 | test.go:47:6:47:15 | definition of cleanNode2 | provenance | MaD:597 | | test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | provenance | | | test.go:50:22:50:32 | &... | test.go:50:22:50:32 | &... | provenance | | | test.go:50:22:50:32 | &... | test.go:50:23:50:32 | cleanNode2 | provenance | | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected index a2ada58cd218b..d68255c95813f 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/XNetHtml/SqlInjection.expected @@ -1,6 +1,6 @@ edges -| test.go:56:2:56:42 | ... := ...[0] | test.go:57:29:57:40 | selection of Value | provenance | Src:MaD:778 | -| test.go:57:29:57:40 | selection of Value | test.go:57:11:57:41 | call to EscapeString | provenance | MaD:580 | +| test.go:56:2:56:42 | ... := ...[0] | test.go:57:29:57:40 | selection of Value | provenance | Src:MaD:787 | +| test.go:57:29:57:40 | selection of Value | test.go:57:11:57:41 | call to EscapeString | provenance | MaD:587 | nodes | test.go:56:2:56:42 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:57:11:57:41 | call to EscapeString | semmle.label | call to EscapeString | diff --git a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.ql b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.ql deleted file mode 100644 index fb09146d5b1a2..0000000000000 --- a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.ql +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @kind path-problem - */ - -import go -import semmle.go.security.TaintedPath -import codeql.dataflow.test.ProvenancePathGraph -import semmle.go.dataflow.ExternalFlow -import ShowProvenance - -from TaintedPath::Flow::PathNode source, TaintedPath::Flow::PathNode sink -where TaintedPath::Flow::flowPath(source, sink) -select sink.getNode(), source, sink, "This path depends on a $@.", source.getNode(), - "user-provided value" diff --git a/go/ql/test/query-tests/Security/CWE-022/TaintedPath.qlref b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.qlref new file mode 100644 index 0000000000000..a908794897257 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-022/TaintedPath.qlref @@ -0,0 +1,2 @@ +query: Security/CWE-022/TaintedPath.ql +postprocess: TestUtilities/PrettyPrintModels.ql diff --git a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.qlref b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.qlref index d25a3dc696b0d..01c3e4f968ab6 100644 --- a/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.qlref +++ b/go/ql/test/query-tests/Security/CWE-022/UnsafeUnzipSymlink.qlref @@ -1 +1,2 @@ -Security/CWE-022/UnsafeUnzipSymlink.ql +query: Security/CWE-022/UnsafeUnzipSymlink.ql +postprocess: TestUtilities/PrettyPrintModels.ql diff --git a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected index 7b7c103a70931..bfcba5f4535b6 100644 --- a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected +++ b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.expected @@ -1,3 +1,8 @@ +#select +| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | Unsanitized archive entry, which may contain '..', is used in a $@. | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | file system operation | +| ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:14:20:14:20 | p | Unsanitized archive entry, which may contain '..', is used in a $@. | ZipSlip.go:14:20:14:20 | p | file system operation | +| tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:16:14:16:34 | call to Dir | Unsanitized archive entry, which may contain '..', is used in a $@. | tarslip.go:16:14:16:34 | call to Dir | file system operation | +| tst.go:23:2:43:2 | range statement[1] | tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | Unsanitized archive entry, which may contain '..', is used in a $@. | tst.go:29:20:29:23 | path | file system operation | edges | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | provenance | | | UnsafeUnzipSymlinkGood.go:61:53:61:61 | candidate | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | provenance | FunctionModel | @@ -7,10 +12,13 @@ edges | UnsafeUnzipSymlinkGood.go:76:70:76:80 | selection of Name | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | provenance | | | ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:12:24:12:29 | selection of Name | provenance | | | ZipSlip.go:12:3:12:30 | ... := ...[0] | ZipSlip.go:14:20:14:20 | p | provenance | | -| ZipSlip.go:12:24:12:29 | selection of Name | ZipSlip.go:12:3:12:30 | ... := ...[0] | provenance | MaD:866 | +| ZipSlip.go:12:24:12:29 | selection of Name | ZipSlip.go:12:3:12:30 | ... := ...[0] | provenance | MaD:1 | | tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:16:23:16:33 | selection of Name | provenance | | -| tarslip.go:16:23:16:33 | selection of Name | tarslip.go:16:14:16:34 | call to Dir | provenance | MaD:881 | +| tarslip.go:16:23:16:33 | selection of Name | tarslip.go:16:14:16:34 | call to Dir | provenance | MaD:2 | | tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | provenance | | +models +| 1 | Summary: path/filepath; ; false; Abs; ; ; Argument[0]; ReturnValue[0]; taint; manual | +| 2 | Summary: path; ; false; Dir; ; ; Argument[0]; ReturnValue; taint; manual | nodes | UnsafeUnzipSymlinkGood.go:52:24:52:32 | definition of candidate | semmle.label | definition of candidate | | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | semmle.label | call to Join | @@ -28,8 +36,3 @@ nodes | tst.go:23:2:43:2 | range statement[1] | semmle.label | range statement[1] | | tst.go:29:20:29:23 | path | semmle.label | path | subpaths -#select -| UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:72:3:72:25 | ... := ...[0] | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | Unsanitized archive entry, which may contain '..', is used in a $@. | UnsafeUnzipSymlinkGood.go:61:31:61:62 | call to Join | file system operation | -| ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:11:2:15:2 | range statement[1] | ZipSlip.go:14:20:14:20 | p | Unsanitized archive entry, which may contain '..', is used in a $@. | ZipSlip.go:14:20:14:20 | p | file system operation | -| tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:15:2:15:30 | ... := ...[0] | tarslip.go:16:14:16:34 | call to Dir | Unsanitized archive entry, which may contain '..', is used in a $@. | tarslip.go:16:14:16:34 | call to Dir | file system operation | -| tst.go:23:2:43:2 | range statement[1] | tst.go:23:2:43:2 | range statement[1] | tst.go:29:20:29:23 | path | Unsanitized archive entry, which may contain '..', is used in a $@. | tst.go:29:20:29:23 | path | file system operation | diff --git a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.qlref b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.qlref index 0ac6382f48ab7..5601b5782c2e7 100644 --- a/go/ql/test/query-tests/Security/CWE-022/ZipSlip.qlref +++ b/go/ql/test/query-tests/Security/CWE-022/ZipSlip.qlref @@ -1 +1,2 @@ -Security/CWE-022/ZipSlip.ql +query: Security/CWE-022/ZipSlip.ql +postprocess: TestUtilities/PrettyPrintModels.ql diff --git a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index 01139ee6e31a0..0071cfbdddd77 100644 --- a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -1,27 +1,27 @@ edges -| ArgumentInjection.go:9:10:9:16 | selection of URL | ArgumentInjection.go:9:10:9:24 | call to Query | provenance | Src:MaD:793 MaD:854 | +| ArgumentInjection.go:9:10:9:16 | selection of URL | ArgumentInjection.go:9:10:9:24 | call to Query | provenance | Src:MaD:802 MaD:863 | | ArgumentInjection.go:9:10:9:24 | call to Query | ArgumentInjection.go:10:31:10:34 | path | provenance | | -| CommandInjection2.go:13:15:13:21 | selection of URL | CommandInjection2.go:13:15:13:29 | call to Query | provenance | Src:MaD:793 MaD:854 | +| CommandInjection2.go:13:15:13:21 | selection of URL | CommandInjection2.go:13:15:13:29 | call to Query | provenance | Src:MaD:802 MaD:863 | | CommandInjection2.go:13:15:13:29 | call to Query | CommandInjection2.go:15:67:15:75 | imageName | provenance | | | CommandInjection2.go:15:34:15:88 | []type{args} [array] | CommandInjection2.go:15:34:15:88 | call to Sprintf | provenance | MaD:248 | | CommandInjection2.go:15:67:15:75 | imageName | CommandInjection2.go:15:34:15:88 | []type{args} [array] | provenance | | | CommandInjection2.go:15:67:15:75 | imageName | CommandInjection2.go:15:34:15:88 | call to Sprintf | provenance | FunctionModel | -| CommandInjection2.go:41:15:41:21 | selection of URL | CommandInjection2.go:41:15:41:29 | call to Query | provenance | Src:MaD:793 MaD:854 | +| CommandInjection2.go:41:15:41:21 | selection of URL | CommandInjection2.go:41:15:41:29 | call to Query | provenance | Src:MaD:802 MaD:863 | | CommandInjection2.go:41:15:41:29 | call to Query | CommandInjection2.go:44:67:44:75 | imageName | provenance | | | CommandInjection2.go:44:34:44:88 | []type{args} [array] | CommandInjection2.go:44:34:44:88 | call to Sprintf | provenance | MaD:248 | | CommandInjection2.go:44:67:44:75 | imageName | CommandInjection2.go:44:34:44:88 | []type{args} [array] | provenance | | | CommandInjection2.go:44:67:44:75 | imageName | CommandInjection2.go:44:34:44:88 | call to Sprintf | provenance | FunctionModel | -| CommandInjection.go:9:13:9:19 | selection of URL | CommandInjection.go:9:13:9:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| CommandInjection.go:9:13:9:19 | selection of URL | CommandInjection.go:9:13:9:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | CommandInjection.go:9:13:9:27 | call to Query | CommandInjection.go:10:22:10:28 | cmdName | provenance | | -| GitSubcommands.go:11:13:11:19 | selection of URL | GitSubcommands.go:11:13:11:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| GitSubcommands.go:11:13:11:19 | selection of URL | GitSubcommands.go:11:13:11:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | GitSubcommands.go:11:13:11:27 | call to Query | GitSubcommands.go:13:31:13:37 | tainted | provenance | | | GitSubcommands.go:11:13:11:27 | call to Query | GitSubcommands.go:14:31:14:37 | tainted | provenance | | | GitSubcommands.go:11:13:11:27 | call to Query | GitSubcommands.go:15:30:15:36 | tainted | provenance | | | GitSubcommands.go:11:13:11:27 | call to Query | GitSubcommands.go:16:35:16:41 | tainted | provenance | | | GitSubcommands.go:11:13:11:27 | call to Query | GitSubcommands.go:17:36:17:42 | tainted | provenance | | -| GitSubcommands.go:33:13:33:19 | selection of URL | GitSubcommands.go:33:13:33:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| GitSubcommands.go:33:13:33:19 | selection of URL | GitSubcommands.go:33:13:33:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | GitSubcommands.go:33:13:33:27 | call to Query | GitSubcommands.go:38:32:38:38 | tainted | provenance | | -| SanitizingDoubleDash.go:9:13:9:19 | selection of URL | SanitizingDoubleDash.go:9:13:9:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| SanitizingDoubleDash.go:9:13:9:19 | selection of URL | SanitizingDoubleDash.go:9:13:9:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:13:25:13:31 | tainted | provenance | | | SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:14:23:14:33 | slice expression | provenance | | | SanitizingDoubleDash.go:9:13:9:27 | call to Query | SanitizingDoubleDash.go:39:31:39:37 | tainted | provenance | | @@ -56,7 +56,7 @@ edges | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | SanitizingDoubleDash.go:69:14:69:35 | call to append | provenance | MaD:28 | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | SanitizingDoubleDash.go:69:14:69:35 | call to append | provenance | MaD:29 | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | SanitizingDoubleDash.go:69:14:69:35 | call to append [array] | provenance | MaD:29 | -| SanitizingDoubleDash.go:92:13:92:19 | selection of URL | SanitizingDoubleDash.go:92:13:92:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| SanitizingDoubleDash.go:92:13:92:19 | selection of URL | SanitizingDoubleDash.go:92:13:92:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:95:25:95:31 | tainted | provenance | | | SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:96:24:96:34 | slice expression | provenance | | | SanitizingDoubleDash.go:92:13:92:27 | call to Query | SanitizingDoubleDash.go:100:31:100:37 | tainted | provenance | | diff --git a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected index 192709186ae18..a8e50184fb052 100644 --- a/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected +++ b/go/ql/test/query-tests/Security/CWE-079/ReflectedXss.expected @@ -1,18 +1,18 @@ edges -| ReflectedXss.go:11:15:11:20 | selection of Form | ReflectedXss.go:11:15:11:36 | call to Get | provenance | Src:MaD:788 MaD:861 | +| ReflectedXss.go:11:15:11:20 | selection of Form | ReflectedXss.go:11:15:11:36 | call to Get | provenance | Src:MaD:797 MaD:870 | | ReflectedXss.go:11:15:11:36 | call to Get | ReflectedXss.go:14:44:14:51 | username | provenance | | -| contenttype.go:11:11:11:16 | selection of Form | contenttype.go:11:11:11:28 | call to Get | provenance | Src:MaD:788 MaD:861 | +| contenttype.go:11:11:11:16 | selection of Form | contenttype.go:11:11:11:28 | call to Get | provenance | Src:MaD:797 MaD:870 | | contenttype.go:11:11:11:28 | call to Get | contenttype.go:17:11:17:22 | type conversion | provenance | | -| contenttype.go:49:11:49:16 | selection of Form | contenttype.go:49:11:49:28 | call to Get | provenance | Src:MaD:788 MaD:861 | +| contenttype.go:49:11:49:16 | selection of Form | contenttype.go:49:11:49:28 | call to Get | provenance | Src:MaD:797 MaD:870 | | contenttype.go:49:11:49:28 | call to Get | contenttype.go:53:34:53:37 | data | provenance | | -| contenttype.go:63:10:63:28 | call to FormValue | contenttype.go:64:52:64:55 | data | provenance | Src:MaD:781 | -| contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | provenance | Src:MaD:781 | -| contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | provenance | Src:MaD:781 | -| contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | provenance | Src:MaD:781 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:34:32:37 | file | provenance | Src:MaD:780 | -| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:780 | +| contenttype.go:63:10:63:28 | call to FormValue | contenttype.go:64:52:64:55 | data | provenance | Src:MaD:790 | +| contenttype.go:73:10:73:28 | call to FormValue | contenttype.go:79:11:79:14 | data | provenance | Src:MaD:790 | +| contenttype.go:88:10:88:28 | call to FormValue | contenttype.go:91:4:91:7 | data | provenance | Src:MaD:790 | +| contenttype.go:113:10:113:28 | call to FormValue | contenttype.go:114:50:114:53 | data | provenance | Src:MaD:790 | +| reflectedxsstest.go:31:2:31:44 | ... := ...[0] | reflectedxsstest.go:32:34:32:37 | file | provenance | Src:MaD:789 | +| reflectedxsstest.go:31:2:31:44 | ... := ...[1] | reflectedxsstest.go:34:46:34:60 | selection of Filename | provenance | Src:MaD:789 | | reflectedxsstest.go:32:2:32:38 | ... := ...[0] | reflectedxsstest.go:33:49:33:55 | content | provenance | | -| reflectedxsstest.go:32:34:32:37 | file | reflectedxsstest.go:32:2:32:38 | ... := ...[0] | provenance | MaD:651 | +| reflectedxsstest.go:32:34:32:37 | file | reflectedxsstest.go:32:2:32:38 | ... := ...[0] | provenance | MaD:660 | | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | reflectedxsstest.go:33:17:33:56 | call to Sprintf | provenance | MaD:248 | | reflectedxsstest.go:33:17:33:56 | call to Sprintf | reflectedxsstest.go:33:10:33:57 | type conversion | provenance | | | reflectedxsstest.go:33:49:33:55 | content | reflectedxsstest.go:33:17:33:56 | []type{args} [array] | provenance | | @@ -21,32 +21,32 @@ edges | reflectedxsstest.go:34:17:34:61 | call to Sprintf | reflectedxsstest.go:34:10:34:62 | type conversion | provenance | | | reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | []type{args} [array] | provenance | | | reflectedxsstest.go:34:46:34:60 | selection of Filename | reflectedxsstest.go:34:17:34:61 | call to Sprintf | provenance | FunctionModel | -| reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:39:16:39:21 | reader | provenance | Src:MaD:782 | +| reflectedxsstest.go:38:2:38:35 | ... := ...[0] | reflectedxsstest.go:39:16:39:21 | reader | provenance | Src:MaD:791 | | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:40:14:40:17 | part | provenance | | | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | reflectedxsstest.go:42:2:42:5 | part | provenance | | -| reflectedxsstest.go:39:16:39:21 | reader | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | provenance | MaD:741 | -| reflectedxsstest.go:40:14:40:17 | part | reflectedxsstest.go:40:14:40:28 | call to FileName | provenance | MaD:739 | +| reflectedxsstest.go:39:16:39:21 | reader | reflectedxsstest.go:39:2:39:32 | ... := ...[0] | provenance | MaD:750 | +| reflectedxsstest.go:40:14:40:17 | part | reflectedxsstest.go:40:14:40:28 | call to FileName | provenance | MaD:748 | | reflectedxsstest.go:40:14:40:28 | call to FileName | reflectedxsstest.go:44:46:44:53 | partName | provenance | | | reflectedxsstest.go:41:2:41:10 | definition of byteSlice | reflectedxsstest.go:45:10:45:18 | byteSlice | provenance | | -| reflectedxsstest.go:42:2:42:5 | part | reflectedxsstest.go:41:2:41:10 | definition of byteSlice | provenance | MaD:664 | +| reflectedxsstest.go:42:2:42:5 | part | reflectedxsstest.go:41:2:41:10 | definition of byteSlice | provenance | MaD:673 | | reflectedxsstest.go:44:17:44:54 | []type{args} [array] | reflectedxsstest.go:44:17:44:54 | call to Sprintf | provenance | MaD:248 | | reflectedxsstest.go:44:17:44:54 | call to Sprintf | reflectedxsstest.go:44:10:44:55 | type conversion | provenance | | | reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | []type{args} [array] | provenance | | | reflectedxsstest.go:44:46:44:53 | partName | reflectedxsstest.go:44:17:44:54 | call to Sprintf | provenance | FunctionModel | -| reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:51:14:51:26 | call to Query | provenance | Src:MaD:793 MaD:854 | +| reflectedxsstest.go:51:14:51:18 | selection of URL | reflectedxsstest.go:51:14:51:26 | call to Query | provenance | Src:MaD:802 MaD:863 | | reflectedxsstest.go:51:14:51:26 | call to Query | reflectedxsstest.go:54:11:54:21 | type conversion | provenance | | -| tst.go:14:15:14:20 | selection of Form | tst.go:14:15:14:36 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:14:15:14:20 | selection of Form | tst.go:14:15:14:36 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:14:15:14:36 | call to Get | tst.go:18:32:18:32 | a | provenance | | | tst.go:18:19:18:38 | call to Join | tst.go:18:12:18:39 | type conversion | provenance | | -| tst.go:18:32:18:32 | a | tst.go:18:19:18:38 | call to Join | provenance | MaD:953 | -| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:34 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:18:32:18:32 | a | tst.go:18:19:18:38 | call to Join | provenance | MaD:964 | +| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:34 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:48:14:48:34 | call to Get | tst.go:53:12:53:26 | type conversion | provenance | | -| websocketXss.go:30:7:30:10 | definition of xnet | websocketXss.go:32:24:32:27 | xnet | provenance | | -| websocketXss.go:34:3:34:7 | definition of xnet2 | websocketXss.go:36:24:36:28 | xnet2 | provenance | | -| websocketXss.go:40:3:40:40 | ... := ...[1] | websocketXss.go:41:24:41:29 | nhooyr | provenance | | -| websocketXss.go:46:7:46:16 | definition of gorillaMsg | websocketXss.go:48:24:48:33 | gorillaMsg | provenance | | -| websocketXss.go:50:3:50:10 | definition of gorilla2 | websocketXss.go:52:24:52:31 | gorilla2 | provenance | | -| websocketXss.go:54:3:54:38 | ... := ...[1] | websocketXss.go:55:24:55:31 | gorilla3 | provenance | | +| websocketXss.go:30:7:30:10 | definition of xnet | websocketXss.go:32:24:32:27 | xnet | provenance | Src:MaD:604 | +| websocketXss.go:34:3:34:7 | definition of xnet2 | websocketXss.go:36:24:36:28 | xnet2 | provenance | Src:MaD:603 | +| websocketXss.go:40:3:40:40 | ... := ...[1] | websocketXss.go:41:24:41:29 | nhooyr | provenance | Src:MaD:871 | +| websocketXss.go:46:7:46:16 | definition of gorillaMsg | websocketXss.go:48:24:48:33 | gorillaMsg | provenance | Src:MaD:448 | +| websocketXss.go:50:3:50:10 | definition of gorilla2 | websocketXss.go:52:24:52:31 | gorilla2 | provenance | Src:MaD:449 | +| websocketXss.go:54:3:54:38 | ... := ...[1] | websocketXss.go:55:24:55:31 | gorilla3 | provenance | Src:MaD:450 | nodes | ReflectedXss.go:11:15:11:20 | selection of Form | semmle.label | selection of Form | | ReflectedXss.go:11:15:11:36 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected index 7b4782e9d83d9..1b57d8a4ab658 100644 --- a/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-089/SqlInjection.expected @@ -1,12 +1,12 @@ edges | SqlInjection.go:10:7:11:30 | []type{args} [array] | SqlInjection.go:10:7:11:30 | call to Sprintf | provenance | MaD:248 | | SqlInjection.go:10:7:11:30 | call to Sprintf | SqlInjection.go:12:11:12:11 | q | provenance | | -| SqlInjection.go:11:3:11:9 | selection of URL | SqlInjection.go:11:3:11:17 | call to Query | provenance | Src:MaD:793 MaD:854 | +| SqlInjection.go:11:3:11:9 | selection of URL | SqlInjection.go:11:3:11:17 | call to Query | provenance | Src:MaD:802 MaD:863 | | SqlInjection.go:11:3:11:17 | call to Query | SqlInjection.go:11:3:11:29 | index expression | provenance | | | SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | []type{args} [array] | provenance | | | SqlInjection.go:11:3:11:29 | index expression | SqlInjection.go:10:7:11:30 | call to Sprintf | provenance | FunctionModel | | issue48.go:17:2:17:33 | ... := ...[0] | issue48.go:18:17:18:17 | b | provenance | | -| issue48.go:17:25:17:32 | selection of Body | issue48.go:17:2:17:33 | ... := ...[0] | provenance | Src:MaD:786 MaD:651 | +| issue48.go:17:25:17:32 | selection of Body | issue48.go:17:2:17:33 | ... := ...[0] | provenance | Src:MaD:795 MaD:660 | | issue48.go:18:17:18:17 | b | issue48.go:18:20:18:39 | &... | provenance | MaD:187 | | issue48.go:18:20:18:39 | &... | issue48.go:21:3:21:33 | index expression | provenance | | | issue48.go:20:8:21:34 | []type{args} [array] | issue48.go:20:8:21:34 | call to Sprintf | provenance | MaD:248 | @@ -14,7 +14,7 @@ edges | issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | []type{args} [array] | provenance | | | issue48.go:21:3:21:33 | index expression | issue48.go:20:8:21:34 | call to Sprintf | provenance | FunctionModel | | issue48.go:27:2:27:34 | ... := ...[0] | issue48.go:28:17:28:18 | b2 | provenance | | -| issue48.go:27:26:27:33 | selection of Body | issue48.go:27:2:27:34 | ... := ...[0] | provenance | Src:MaD:786 MaD:651 | +| issue48.go:27:26:27:33 | selection of Body | issue48.go:27:2:27:34 | ... := ...[0] | provenance | Src:MaD:795 MaD:660 | | issue48.go:28:17:28:18 | b2 | issue48.go:28:21:28:41 | &... | provenance | MaD:187 | | issue48.go:28:21:28:41 | &... | issue48.go:31:3:31:31 | selection of Category | provenance | | | issue48.go:30:8:31:32 | []type{args} [array] | issue48.go:30:8:31:32 | call to Sprintf | provenance | MaD:248 | @@ -22,26 +22,26 @@ edges | issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | []type{args} [array] | provenance | | | issue48.go:31:3:31:31 | selection of Category | issue48.go:30:8:31:32 | call to Sprintf | provenance | FunctionModel | | issue48.go:37:17:37:50 | type conversion | issue48.go:37:53:37:73 | &... | provenance | MaD:187 | -| issue48.go:37:24:37:30 | selection of URL | issue48.go:37:24:37:38 | call to Query | provenance | Src:MaD:793 MaD:854 | +| issue48.go:37:24:37:30 | selection of URL | issue48.go:37:24:37:38 | call to Query | provenance | Src:MaD:802 MaD:863 | | issue48.go:37:24:37:38 | call to Query | issue48.go:37:17:37:50 | type conversion | provenance | | | issue48.go:37:53:37:73 | &... | issue48.go:40:3:40:31 | selection of Category | provenance | | | issue48.go:39:8:40:32 | []type{args} [array] | issue48.go:39:8:40:32 | call to Sprintf | provenance | MaD:248 | | issue48.go:39:8:40:32 | call to Sprintf | issue48.go:41:11:41:12 | q5 | provenance | | | issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | []type{args} [array] | provenance | | | issue48.go:40:3:40:31 | selection of Category | issue48.go:39:8:40:32 | call to Sprintf | provenance | FunctionModel | -| main.go:11:11:11:16 | selection of Form | main.go:11:11:11:28 | index expression | provenance | Src:MaD:788 | +| main.go:11:11:11:16 | selection of Form | main.go:11:11:11:28 | index expression | provenance | Src:MaD:797 | | main.go:15:11:15:84 | []type{args} [array] | main.go:15:11:15:84 | call to Sprintf | provenance | MaD:248 | -| main.go:15:63:15:67 | selection of URL | main.go:15:63:15:75 | call to Query | provenance | Src:MaD:793 MaD:854 | +| main.go:15:63:15:67 | selection of URL | main.go:15:63:15:75 | call to Query | provenance | Src:MaD:802 MaD:863 | | main.go:15:63:15:75 | call to Query | main.go:15:63:15:83 | index expression | provenance | | | main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | []type{args} [array] | provenance | | | main.go:15:63:15:83 | index expression | main.go:15:11:15:84 | call to Sprintf | provenance | FunctionModel | | main.go:16:11:16:85 | []type{args} [array] | main.go:16:11:16:85 | call to Sprintf | provenance | MaD:248 | -| main.go:16:63:16:70 | selection of Header | main.go:16:63:16:84 | call to Get | provenance | Src:MaD:791 MaD:766 | +| main.go:16:63:16:70 | selection of Header | main.go:16:63:16:84 | call to Get | provenance | Src:MaD:800 MaD:775 | | main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | []type{args} [array] | provenance | | | main.go:16:63:16:84 | call to Get | main.go:16:11:16:85 | call to Sprintf | provenance | FunctionModel | | main.go:28:17:31:2 | &... [pointer, Category] | main.go:34:3:34:13 | RequestData [pointer, Category] | provenance | | | main.go:28:18:31:2 | struct literal [Category] | main.go:28:17:31:2 | &... [pointer, Category] | provenance | | -| main.go:30:13:30:19 | selection of URL | main.go:30:13:30:27 | call to Query | provenance | Src:MaD:793 MaD:854 | +| main.go:30:13:30:19 | selection of URL | main.go:30:13:30:27 | call to Query | provenance | Src:MaD:802 MaD:863 | | main.go:30:13:30:27 | call to Query | main.go:30:13:30:39 | index expression | provenance | | | main.go:30:13:30:39 | index expression | main.go:28:18:31:2 | struct literal [Category] | provenance | | | main.go:33:7:34:23 | []type{args} [array] | main.go:33:7:34:23 | call to Sprintf | provenance | MaD:248 | @@ -54,7 +54,7 @@ edges | main.go:39:2:39:12 | definition of RequestData [pointer, Category] | main.go:43:3:43:13 | RequestData [pointer, Category] | provenance | | | main.go:40:2:40:12 | RequestData [pointer, Category] | main.go:40:2:40:12 | implicit dereference [Category] | provenance | | | main.go:40:2:40:12 | implicit dereference [Category] | main.go:39:2:39:12 | definition of RequestData [pointer, Category] | provenance | | -| main.go:40:25:40:31 | selection of URL | main.go:40:25:40:39 | call to Query | provenance | Src:MaD:793 MaD:854 | +| main.go:40:25:40:31 | selection of URL | main.go:40:25:40:39 | call to Query | provenance | Src:MaD:802 MaD:863 | | main.go:40:25:40:39 | call to Query | main.go:40:25:40:51 | index expression | provenance | | | main.go:40:25:40:51 | index expression | main.go:40:2:40:12 | implicit dereference [Category] | provenance | | | main.go:42:7:43:23 | []type{args} [array] | main.go:42:7:43:23 | call to Sprintf | provenance | MaD:248 | @@ -67,7 +67,7 @@ edges | main.go:48:2:48:12 | definition of RequestData [pointer, Category] | main.go:52:3:52:13 | RequestData [pointer, Category] | provenance | | | main.go:49:3:49:14 | star expression [Category] | main.go:48:2:48:12 | definition of RequestData [pointer, Category] | provenance | | | main.go:49:4:49:14 | RequestData [pointer, Category] | main.go:49:3:49:14 | star expression [Category] | provenance | | -| main.go:49:28:49:34 | selection of URL | main.go:49:28:49:42 | call to Query | provenance | Src:MaD:793 MaD:854 | +| main.go:49:28:49:34 | selection of URL | main.go:49:28:49:42 | call to Query | provenance | Src:MaD:802 MaD:863 | | main.go:49:28:49:42 | call to Query | main.go:49:28:49:54 | index expression | provenance | | | main.go:49:28:49:54 | index expression | main.go:49:3:49:14 | star expression [Category] | provenance | | | main.go:51:7:52:23 | []type{args} [array] | main.go:51:7:52:23 | call to Sprintf | provenance | MaD:248 | @@ -80,7 +80,7 @@ edges | main.go:57:2:57:12 | definition of RequestData [pointer, Category] | main.go:61:5:61:15 | RequestData [pointer, Category] | provenance | | | main.go:58:3:58:14 | star expression [Category] | main.go:57:2:57:12 | definition of RequestData [pointer, Category] | provenance | | | main.go:58:4:58:14 | RequestData [pointer, Category] | main.go:58:3:58:14 | star expression [Category] | provenance | | -| main.go:58:28:58:34 | selection of URL | main.go:58:28:58:42 | call to Query | provenance | Src:MaD:793 MaD:854 | +| main.go:58:28:58:34 | selection of URL | main.go:58:28:58:42 | call to Query | provenance | Src:MaD:802 MaD:863 | | main.go:58:28:58:42 | call to Query | main.go:58:28:58:54 | index expression | provenance | | | main.go:58:28:58:54 | index expression | main.go:58:3:58:14 | star expression [Category] | provenance | | | main.go:60:7:61:26 | []type{args} [array] | main.go:60:7:61:26 | call to Sprintf | provenance | MaD:248 | @@ -89,7 +89,7 @@ edges | main.go:61:3:61:25 | selection of Category | main.go:60:7:61:26 | call to Sprintf | provenance | FunctionModel | | main.go:61:4:61:15 | star expression [Category] | main.go:61:3:61:25 | selection of Category | provenance | | | main.go:61:5:61:15 | RequestData [pointer, Category] | main.go:61:4:61:15 | star expression [Category] | provenance | | -| mongoDB.go:40:20:40:30 | call to Referer | mongoDB.go:42:28:42:41 | untrustedInput | provenance | Src:MaD:784 | +| mongoDB.go:40:20:40:30 | call to Referer | mongoDB.go:42:28:42:41 | untrustedInput | provenance | Src:MaD:793 | | mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:50:34:50:39 | filter | provenance | | | mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:61:27:61:32 | filter | provenance | | | mongoDB.go:42:19:42:42 | struct literal | mongoDB.go:63:23:63:28 | filter | provenance | | diff --git a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected index 4ae5e467ddf88..923fa5a71d6ae 100644 --- a/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected +++ b/go/ql/test/query-tests/Security/CWE-089/StringBreak.expected @@ -2,10 +2,10 @@ edges | StringBreak.go:10:2:10:40 | ... := ...[0] | StringBreak.go:14:47:14:57 | versionJSON | provenance | | | StringBreakMismatched.go:12:2:12:40 | ... := ...[0] | StringBreakMismatched.go:13:29:13:47 | type conversion | provenance | | | StringBreakMismatched.go:13:13:13:62 | call to Replace | StringBreakMismatched.go:17:26:17:32 | escaped | provenance | | -| StringBreakMismatched.go:13:29:13:47 | type conversion | StringBreakMismatched.go:13:13:13:62 | call to Replace | provenance | MaD:957 | +| StringBreakMismatched.go:13:29:13:47 | type conversion | StringBreakMismatched.go:13:13:13:62 | call to Replace | provenance | MaD:968 | | StringBreakMismatched.go:24:2:24:40 | ... := ...[0] | StringBreakMismatched.go:25:29:25:47 | type conversion | provenance | | | StringBreakMismatched.go:25:13:25:61 | call to Replace | StringBreakMismatched.go:29:27:29:33 | escaped | provenance | | -| StringBreakMismatched.go:25:29:25:47 | type conversion | StringBreakMismatched.go:25:13:25:61 | call to Replace | provenance | MaD:957 | +| StringBreakMismatched.go:25:29:25:47 | type conversion | StringBreakMismatched.go:25:13:25:61 | call to Replace | provenance | MaD:968 | nodes | StringBreak.go:10:2:10:40 | ... := ...[0] | semmle.label | ... := ...[0] | | StringBreak.go:14:47:14:57 | versionJSON | semmle.label | versionJSON | diff --git a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected index e89946bbc4dc2..1f7fa8d7eca80 100644 --- a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected +++ b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected @@ -1,9 +1,9 @@ edges | klog.go:20:3:25:3 | range statement[1] | klog.go:21:27:21:33 | headers | provenance | | -| klog.go:20:30:20:37 | selection of Header | klog.go:20:3:25:3 | range statement[1] | provenance | Src:MaD:791 Config | +| klog.go:20:30:20:37 | selection of Header | klog.go:20:3:25:3 | range statement[1] | provenance | Src:MaD:800 Config | | klog.go:21:4:24:4 | range statement[1] | klog.go:22:15:22:20 | header | provenance | | | klog.go:21:27:21:33 | headers | klog.go:21:4:24:4 | range statement[1] | provenance | Config | -| klog.go:28:13:28:20 | selection of Header | klog.go:28:13:28:41 | call to Get | provenance | Src:MaD:791 Config | +| klog.go:28:13:28:20 | selection of Header | klog.go:28:13:28:41 | call to Get | provenance | Src:MaD:800 Config | | overrides.go:9:9:9:16 | password | overrides.go:13:14:13:23 | call to String | provenance | | | passwords.go:8:12:8:12 | definition of x | passwords.go:9:14:9:14 | x | provenance | | | passwords.go:30:8:30:15 | password | passwords.go:8:12:8:12 | definition of x | provenance | | diff --git a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected index bc62530ad7e07..27d27a1f4cf5f 100644 --- a/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected +++ b/go/ql/test/query-tests/Security/CWE-338/InsecureRandomness/InsecureRandomness.expected @@ -9,7 +9,7 @@ edges | sample.go:33:2:33:6 | definition of nonce | sample.go:37:25:37:29 | nonce | provenance | | | sample.go:33:2:33:6 | definition of nonce | sample.go:37:32:37:36 | nonce | provenance | | | sample.go:34:12:34:40 | call to New | sample.go:35:14:35:19 | random | provenance | | -| sample.go:35:14:35:19 | random | sample.go:33:2:33:6 | definition of nonce | provenance | MaD:660 | +| sample.go:35:14:35:19 | random | sample.go:33:2:33:6 | definition of nonce | provenance | MaD:669 | | sample.go:55:17:55:42 | call to Intn | sample.go:56:29:56:38 | randNumber | provenance | | | sample.go:56:11:56:40 | type conversion | sample.go:58:32:58:43 | type conversion | provenance | | | sample.go:56:18:56:39 | index expression | sample.go:56:11:56:40 | type conversion | provenance | | diff --git a/go/ql/test/query-tests/Security/CWE-347/MissingJwtSignatureCheck.expected b/go/ql/test/query-tests/Security/CWE-347/MissingJwtSignatureCheck.expected index f965acb08c06b..32c78cc4e9db1 100644 --- a/go/ql/test/query-tests/Security/CWE-347/MissingJwtSignatureCheck.expected +++ b/go/ql/test/query-tests/Security/CWE-347/MissingJwtSignatureCheck.expected @@ -1,16 +1,16 @@ edges -| go-jose.v3.go:25:16:25:20 | selection of URL | go-jose.v3.go:25:16:25:28 | call to Query | provenance | Src:MaD:793 MaD:854 | -| go-jose.v3.go:25:16:25:28 | call to Query | go-jose.v3.go:25:16:25:47 | call to Get | provenance | MaD:861 | +| go-jose.v3.go:25:16:25:20 | selection of URL | go-jose.v3.go:25:16:25:28 | call to Query | provenance | Src:MaD:802 MaD:863 | +| go-jose.v3.go:25:16:25:28 | call to Query | go-jose.v3.go:25:16:25:47 | call to Get | provenance | MaD:870 | | go-jose.v3.go:25:16:25:47 | call to Get | go-jose.v3.go:26:15:26:25 | signedToken | provenance | | | go-jose.v3.go:26:15:26:25 | signedToken | go-jose.v3.go:29:19:29:29 | definition of signedToken | provenance | | | go-jose.v3.go:29:19:29:29 | definition of signedToken | go-jose.v3.go:31:37:31:47 | signedToken | provenance | | | go-jose.v3.go:31:2:31:48 | ... := ...[0] | go-jose.v3.go:33:12:33:23 | DecodedToken | provenance | Sink:MaD:415 | | go-jose.v3.go:31:37:31:47 | signedToken | go-jose.v3.go:31:2:31:48 | ... := ...[0] | provenance | MaD:417 | -| golang-jwt-v5.go:28:16:28:20 | selection of URL | golang-jwt-v5.go:28:16:28:28 | call to Query | provenance | Src:MaD:793 MaD:854 | -| golang-jwt-v5.go:28:16:28:28 | call to Query | golang-jwt-v5.go:28:16:28:47 | call to Get | provenance | MaD:861 | +| golang-jwt-v5.go:28:16:28:20 | selection of URL | golang-jwt-v5.go:28:16:28:28 | call to Query | provenance | Src:MaD:802 MaD:863 | +| golang-jwt-v5.go:28:16:28:28 | call to Query | golang-jwt-v5.go:28:16:28:47 | call to Get | provenance | MaD:870 | | golang-jwt-v5.go:28:16:28:47 | call to Get | golang-jwt-v5.go:29:25:29:35 | signedToken | provenance | | | golang-jwt-v5.go:29:25:29:35 | signedToken | golang-jwt-v5.go:32:29:32:39 | definition of signedToken | provenance | | -| golang-jwt-v5.go:32:29:32:39 | definition of signedToken | golang-jwt-v5.go:34:58:34:68 | signedToken | provenance | Sink:MaD:429 | +| golang-jwt-v5.go:32:29:32:39 | definition of signedToken | golang-jwt-v5.go:34:58:34:68 | signedToken | provenance | Sink:MaD:431 | nodes | go-jose.v3.go:25:16:25:20 | selection of URL | semmle.label | selection of URL | | go-jose.v3.go:25:16:25:28 | call to Query | semmle.label | call to Query | diff --git a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected index 9dcdd9c081b82..aea61f57f6b2a 100644 --- a/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected +++ b/go/ql/test/query-tests/Security/CWE-601/BadRedirectCheck/BadRedirectCheck.expected @@ -12,8 +12,8 @@ edges | main.go:68:17:68:24 | argument corresponding to redirect | main.go:73:20:73:27 | redirect | provenance | | | main.go:68:17:68:24 | definition of redirect | main.go:73:20:73:27 | redirect | provenance | | | main.go:73:9:73:28 | call to Clean | main.go:77:25:77:39 | call to getTarget1 | provenance | | -| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | MaD:880 | -| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | MaD:880 | +| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | MaD:891 | +| main.go:73:20:73:27 | redirect | main.go:73:9:73:28 | call to Clean | provenance | MaD:891 | | main.go:76:19:76:21 | argument corresponding to url | main.go:77:36:77:38 | url | provenance | | | main.go:77:36:77:38 | url | main.go:68:17:68:24 | definition of redirect | provenance | | | main.go:77:36:77:38 | url | main.go:77:25:77:39 | call to getTarget1 | provenance | | diff --git a/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected b/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected index 928489005d8ab..3d0e867ca97e2 100644 --- a/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected +++ b/go/ql/test/query-tests/Security/CWE-601/OpenUrlRedirect/OpenUrlRedirect.expected @@ -1,19 +1,19 @@ edges -| OpenUrlRedirect.go:10:23:10:28 | selection of Form | OpenUrlRedirect.go:10:23:10:42 | call to Get | provenance | Src:MaD:788 Config | -| stdlib.go:13:13:13:18 | selection of Form | stdlib.go:13:13:13:32 | call to Get | provenance | Src:MaD:788 Config | +| OpenUrlRedirect.go:10:23:10:28 | selection of Form | OpenUrlRedirect.go:10:23:10:42 | call to Get | provenance | Src:MaD:797 Config | +| stdlib.go:13:13:13:18 | selection of Form | stdlib.go:13:13:13:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:13:13:13:32 | call to Get | stdlib.go:15:30:15:35 | target | provenance | | -| stdlib.go:22:13:22:18 | selection of Form | stdlib.go:22:13:22:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:22:13:22:18 | selection of Form | stdlib.go:22:13:22:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:22:13:22:32 | call to Get | stdlib.go:24:30:24:35 | target | provenance | | -| stdlib.go:31:13:31:18 | selection of Form | stdlib.go:31:13:31:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:31:13:31:18 | selection of Form | stdlib.go:31:13:31:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:31:13:31:32 | call to Get | stdlib.go:35:34:35:39 | target | provenance | | | stdlib.go:35:34:35:39 | target | stdlib.go:35:30:35:39 | ...+... | provenance | Config | -| stdlib.go:44:13:44:18 | selection of Form | stdlib.go:44:13:44:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:44:13:44:18 | selection of Form | stdlib.go:44:13:44:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:44:13:44:32 | call to Get | stdlib.go:46:23:46:28 | target | provenance | | -| stdlib.go:64:13:64:18 | selection of Form | stdlib.go:64:13:64:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:64:13:64:18 | selection of Form | stdlib.go:64:13:64:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:64:13:64:32 | call to Get | stdlib.go:67:23:67:28 | target | provenance | | | stdlib.go:67:23:67:28 | target | stdlib.go:67:23:67:37 | ...+... | provenance | Config | | stdlib.go:67:23:67:37 | ...+... | stdlib.go:67:23:67:40 | ...+... | provenance | Config | -| stdlib.go:89:13:89:18 | selection of Form | stdlib.go:89:13:89:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:89:13:89:18 | selection of Form | stdlib.go:89:13:89:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:89:13:89:32 | call to Get | stdlib.go:90:3:90:8 | target | provenance | | | stdlib.go:90:3:90:8 | target | stdlib.go:90:3:90:25 | ... += ... | provenance | Config | | stdlib.go:90:3:90:25 | ... += ... | stdlib.go:92:23:92:28 | target | provenance | | @@ -28,26 +28,26 @@ edges | stdlib.go:112:4:112:4 | r [pointer, URL] | stdlib.go:112:4:112:4 | implicit dereference [URL] | provenance | | | stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL | provenance | Config | | stdlib.go:112:4:112:8 | implicit dereference | stdlib.go:112:4:112:8 | selection of URL [pointer] | provenance | | -| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:4 | implicit dereference [URL] | provenance | Src:MaD:793 | -| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:8 | implicit dereference | provenance | Src:MaD:793 Config | +| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:4 | implicit dereference [URL] | provenance | Src:MaD:802 | +| stdlib.go:112:4:112:8 | selection of URL | stdlib.go:112:4:112:8 | implicit dereference | provenance | Src:MaD:802 Config | | stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:4 | implicit dereference [URL, pointer] | provenance | | | stdlib.go:112:4:112:8 | selection of URL [pointer] | stdlib.go:112:4:112:8 | implicit dereference | provenance | | | stdlib.go:113:24:113:24 | implicit dereference [URL] | stdlib.go:113:24:113:28 | selection of URL | provenance | | | stdlib.go:113:24:113:24 | r [pointer, URL] | stdlib.go:113:24:113:24 | implicit dereference [URL] | provenance | | -| stdlib.go:113:24:113:28 | selection of URL | stdlib.go:113:24:113:37 | call to String | provenance | Src:MaD:793 Config | -| stdlib.go:146:13:146:18 | selection of Form | stdlib.go:146:13:146:32 | call to Get | provenance | Src:MaD:788 Config | +| stdlib.go:113:24:113:28 | selection of URL | stdlib.go:113:24:113:37 | call to String | provenance | Src:MaD:802 Config | +| stdlib.go:146:13:146:18 | selection of Form | stdlib.go:146:13:146:32 | call to Get | provenance | Src:MaD:797 Config | | stdlib.go:146:13:146:32 | call to Get | stdlib.go:152:23:152:28 | target | provenance | | | stdlib.go:159:10:159:15 | star expression | stdlib.go:159:11:159:15 | selection of URL | provenance | Config | | stdlib.go:159:10:159:15 | star expression | stdlib.go:162:24:162:26 | url | provenance | | -| stdlib.go:159:11:159:15 | selection of URL | stdlib.go:159:10:159:15 | star expression | provenance | Src:MaD:793 Config | +| stdlib.go:159:11:159:15 | selection of URL | stdlib.go:159:10:159:15 | star expression | provenance | Src:MaD:802 Config | | stdlib.go:162:24:162:26 | url | stdlib.go:162:24:162:35 | call to String | provenance | Config | -| stdlib.go:173:35:173:39 | selection of URL | stdlib.go:173:35:173:52 | call to RequestURI | provenance | Src:MaD:793 Config | +| stdlib.go:173:35:173:39 | selection of URL | stdlib.go:173:35:173:52 | call to RequestURI | provenance | Src:MaD:802 Config | | stdlib.go:173:35:173:52 | call to RequestURI | stdlib.go:173:24:173:52 | ...+... | provenance | Config | -| stdlib.go:182:13:182:33 | call to FormValue | stdlib.go:184:23:184:28 | target | provenance | Src:MaD:781 | +| stdlib.go:182:13:182:33 | call to FormValue | stdlib.go:184:23:184:28 | target | provenance | Src:MaD:790 | | stdlib.go:190:3:190:8 | definition of target | stdlib.go:192:23:192:28 | target | provenance | | | stdlib.go:190:3:190:8 | definition of target | stdlib.go:194:23:194:28 | target | provenance | | | stdlib.go:190:3:190:57 | ... := ...[0] | stdlib.go:190:3:190:8 | definition of target | provenance | | -| stdlib.go:190:36:190:56 | call to FormValue | stdlib.go:190:3:190:57 | ... := ...[0] | provenance | Src:MaD:781 Config | +| stdlib.go:190:36:190:56 | call to FormValue | stdlib.go:190:3:190:57 | ... := ...[0] | provenance | Src:MaD:790 Config | | stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:190:3:190:8 | definition of target | provenance | Config | | stdlib.go:192:23:192:28 | implicit dereference | stdlib.go:192:23:192:33 | selection of Path | provenance | Config | | stdlib.go:192:23:192:28 | target | stdlib.go:192:23:192:28 | implicit dereference | provenance | Config | diff --git a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected index 165b65c5ac797..07c431401623d 100644 --- a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected @@ -1,23 +1,23 @@ edges -| EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | provenance | Src:MaD:791 MaD:766 | +| EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | provenance | Src:MaD:800 MaD:775 | | EmailBad.go:9:10:9:29 | call to Get | EmailBad.go:12:56:12:67 | type conversion | provenance | | -| main.go:29:21:29:31 | call to Referer | main.go:31:57:31:78 | type conversion | provenance | Src:MaD:784 | -| main.go:37:21:37:31 | call to Referer | main.go:41:25:41:38 | untrustedInput | provenance | Src:MaD:784 | -| main.go:41:25:41:38 | untrustedInput | main.go:40:3:40:7 | definition of write | provenance | MaD:663 | -| main.go:46:21:46:31 | call to Referer | main.go:52:46:52:59 | untrustedInput | provenance | Src:MaD:784 | -| main.go:46:21:46:31 | call to Referer | main.go:53:52:53:65 | untrustedInput | provenance | Src:MaD:784 | -| main.go:58:21:58:31 | call to Referer | main.go:60:47:60:60 | untrustedInput | provenance | Src:MaD:784 | +| main.go:29:21:29:31 | call to Referer | main.go:31:57:31:78 | type conversion | provenance | Src:MaD:793 | +| main.go:37:21:37:31 | call to Referer | main.go:41:25:41:38 | untrustedInput | provenance | Src:MaD:793 | +| main.go:41:25:41:38 | untrustedInput | main.go:40:3:40:7 | definition of write | provenance | MaD:672 | +| main.go:46:21:46:31 | call to Referer | main.go:52:46:52:59 | untrustedInput | provenance | Src:MaD:793 | +| main.go:46:21:46:31 | call to Referer | main.go:53:52:53:65 | untrustedInput | provenance | Src:MaD:793 | +| main.go:58:21:58:31 | call to Referer | main.go:60:47:60:60 | untrustedInput | provenance | Src:MaD:793 | | main.go:60:14:60:61 | call to NewContent | main.go:63:16:63:22 | content | provenance | | -| main.go:60:47:60:60 | untrustedInput | main.go:60:14:60:61 | call to NewContent | provenance | MaD:508 | -| main.go:68:21:68:31 | call to Referer | main.go:74:47:74:60 | untrustedInput | provenance | Src:MaD:784 | +| main.go:60:47:60:60 | untrustedInput | main.go:60:14:60:61 | call to NewContent | provenance | MaD:515 | +| main.go:68:21:68:31 | call to Referer | main.go:74:47:74:60 | untrustedInput | provenance | Src:MaD:793 | | main.go:74:14:74:61 | call to NewContent | main.go:76:50:76:56 | content | provenance | | | main.go:74:14:74:61 | call to NewContent | main.go:76:59:76:65 | content | provenance | | | main.go:74:14:74:61 | call to NewContent | main.go:77:16:77:22 | content | provenance | | -| main.go:74:47:74:60 | untrustedInput | main.go:74:14:74:61 | call to NewContent | provenance | MaD:508 | -| main.go:82:21:82:31 | call to Referer | main.go:89:37:89:50 | untrustedInput | provenance | Src:MaD:784 | -| main.go:82:21:82:31 | call to Referer | main.go:91:48:91:61 | untrustedInput | provenance | Src:MaD:784 | +| main.go:74:47:74:60 | untrustedInput | main.go:74:14:74:61 | call to NewContent | provenance | MaD:515 | +| main.go:82:21:82:31 | call to Referer | main.go:89:37:89:50 | untrustedInput | provenance | Src:MaD:793 | +| main.go:82:21:82:31 | call to Referer | main.go:91:48:91:61 | untrustedInput | provenance | Src:MaD:793 | | main.go:91:15:91:62 | call to NewContent | main.go:93:16:93:23 | content2 | provenance | | -| main.go:91:48:91:61 | untrustedInput | main.go:91:15:91:62 | call to NewContent | provenance | MaD:508 | +| main.go:91:48:91:61 | untrustedInput | main.go:91:15:91:62 | call to NewContent | provenance | MaD:515 | nodes | EmailBad.go:9:10:9:17 | selection of Header | semmle.label | selection of Header | | EmailBad.go:9:10:9:29 | call to Get | semmle.label | call to Get | diff --git a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected index 1f5687339be7d..47739bb945b9e 100644 --- a/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-643/XPathInjection.expected @@ -1,16 +1,16 @@ edges -| XPathInjection.go:13:14:13:19 | selection of Form | XPathInjection.go:13:14:13:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| XPathInjection.go:13:14:13:19 | selection of Form | XPathInjection.go:13:14:13:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | XPathInjection.go:13:14:13:35 | call to Get | XPathInjection.go:16:29:16:91 | ...+... | provenance | | -| tst.go:34:14:34:19 | selection of Form | tst.go:34:14:34:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:34:14:34:19 | selection of Form | tst.go:34:14:34:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:34:14:34:35 | call to Get | tst.go:37:23:37:85 | ...+... | provenance | | | tst.go:34:14:34:35 | call to Get | tst.go:40:24:40:86 | ...+... | provenance | | | tst.go:34:14:34:35 | call to Get | tst.go:43:24:43:82 | ...+... | provenance | | -| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:48:14:48:19 | selection of Form | tst.go:48:14:48:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:48:14:48:35 | call to Get | tst.go:51:26:51:84 | ...+... | provenance | | | tst.go:48:14:48:35 | call to Get | tst.go:54:29:54:87 | ...+... | provenance | | | tst.go:48:14:48:35 | call to Get | tst.go:57:33:57:91 | ...+... | provenance | | | tst.go:48:14:48:35 | call to Get | tst.go:60:30:60:88 | ...+... | provenance | | -| tst.go:65:14:65:19 | selection of Form | tst.go:65:14:65:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:65:14:65:19 | selection of Form | tst.go:65:14:65:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:65:14:65:35 | call to Get | tst.go:68:25:68:83 | ...+... | provenance | | | tst.go:65:14:65:35 | call to Get | tst.go:71:28:71:86 | ...+... | provenance | | | tst.go:65:14:65:35 | call to Get | tst.go:74:25:74:83 | ...+... | provenance | | @@ -19,38 +19,38 @@ edges | tst.go:65:14:65:35 | call to Get | tst.go:83:29:83:87 | ...+... | provenance | | | tst.go:65:14:65:35 | call to Get | tst.go:86:23:86:85 | ...+... | provenance | | | tst.go:65:14:65:35 | call to Get | tst.go:89:22:89:84 | ...+... | provenance | | -| tst.go:94:14:94:19 | selection of Form | tst.go:94:14:94:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:94:14:94:19 | selection of Form | tst.go:94:14:94:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:94:14:94:35 | call to Get | tst.go:97:26:97:84 | ...+... | provenance | | | tst.go:94:14:94:35 | call to Get | tst.go:100:29:100:87 | ...+... | provenance | | | tst.go:94:14:94:35 | call to Get | tst.go:103:33:103:91 | ...+... | provenance | | | tst.go:94:14:94:35 | call to Get | tst.go:106:30:106:88 | ...+... | provenance | | -| tst.go:111:14:111:19 | selection of Form | tst.go:111:14:111:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:111:14:111:19 | selection of Form | tst.go:111:14:111:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:111:14:111:35 | call to Get | tst.go:114:25:114:87 | ...+... | provenance | | | tst.go:111:14:111:35 | call to Get | tst.go:117:26:117:88 | ...+... | provenance | | -| tst.go:122:14:122:19 | selection of Form | tst.go:122:14:122:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:122:14:122:19 | selection of Form | tst.go:122:14:122:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:122:14:122:35 | call to Get | tst.go:126:23:126:126 | ...+... | provenance | | | tst.go:122:14:122:35 | call to Get | tst.go:129:24:129:127 | ...+... | provenance | | | tst.go:122:14:122:35 | call to Get | tst.go:132:27:132:122 | ...+... | provenance | | -| tst.go:123:14:123:19 | selection of Form | tst.go:123:14:123:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:123:14:123:19 | selection of Form | tst.go:123:14:123:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:123:14:123:35 | call to Get | tst.go:126:23:126:126 | ...+... | provenance | | | tst.go:123:14:123:35 | call to Get | tst.go:129:24:129:127 | ...+... | provenance | | | tst.go:123:14:123:35 | call to Get | tst.go:132:27:132:122 | ...+... | provenance | | -| tst.go:140:14:140:19 | selection of Form | tst.go:140:14:140:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:140:14:140:19 | selection of Form | tst.go:140:14:140:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:140:14:140:35 | call to Get | tst.go:143:27:143:89 | ...+... | provenance | | | tst.go:140:14:140:35 | call to Get | tst.go:146:28:146:90 | ...+... | provenance | | -| tst.go:151:14:151:19 | selection of Form | tst.go:151:14:151:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:151:14:151:19 | selection of Form | tst.go:151:14:151:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:151:14:151:35 | call to Get | tst.go:155:33:155:136 | ...+... | provenance | | | tst.go:151:14:151:35 | call to Get | tst.go:158:18:158:121 | ...+... | provenance | | | tst.go:151:14:151:35 | call to Get | tst.go:164:31:164:126 | ...+... | provenance | | | tst.go:151:14:151:35 | call to Get | tst.go:173:21:173:116 | ...+... | provenance | | | tst.go:151:14:151:35 | call to Get | tst.go:182:27:182:122 | ...+... | provenance | | -| tst.go:152:14:152:19 | selection of Form | tst.go:152:14:152:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:152:14:152:19 | selection of Form | tst.go:152:14:152:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:152:14:152:35 | call to Get | tst.go:155:33:155:136 | ...+... | provenance | | | tst.go:152:14:152:35 | call to Get | tst.go:158:18:158:121 | ...+... | provenance | | | tst.go:152:14:152:35 | call to Get | tst.go:164:31:164:126 | ...+... | provenance | | | tst.go:152:14:152:35 | call to Get | tst.go:173:21:173:116 | ...+... | provenance | | | tst.go:152:14:152:35 | call to Get | tst.go:182:27:182:122 | ...+... | provenance | | -| tst.go:193:14:193:19 | selection of Form | tst.go:193:14:193:35 | call to Get | provenance | Src:MaD:788 MaD:861 | +| tst.go:193:14:193:19 | selection of Form | tst.go:193:14:193:35 | call to Get | provenance | Src:MaD:797 MaD:870 | | tst.go:193:14:193:35 | call to Get | tst.go:198:23:198:85 | ...+... | provenance | | nodes | XPathInjection.go:13:14:13:19 | selection of Form | semmle.label | selection of Form | diff --git a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index 4e64101e82d7a..f575ad436dcf1 100644 --- a/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/go/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -1,12 +1,12 @@ edges -| RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | provenance | Src:MaD:781 | -| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:17 | tainted | provenance | Src:MaD:781 | +| RequestForgery.go:8:12:8:34 | call to FormValue | RequestForgery.go:11:24:11:65 | ...+... | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:14:11:14:17 | tainted | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:18:12:18:18 | tainted | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:21:34:21:40 | tainted | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:24:66:24:72 | tainted | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:27:11:27:29 | ...+... | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:29:11:29:40 | ...+... | provenance | Src:MaD:790 | +| tst.go:10:13:10:35 | call to FormValue | tst.go:36:11:36:17 | tainted | provenance | Src:MaD:790 | | tst.go:35:2:35:2 | definition of u [pointer] | tst.go:36:2:36:2 | u [pointer] | provenance | | | tst.go:36:2:36:2 | implicit dereference | tst.go:35:2:35:2 | definition of u [pointer] | provenance | | | tst.go:36:2:36:2 | implicit dereference | tst.go:36:2:36:2 | u | provenance | | @@ -18,15 +18,15 @@ edges | tst.go:36:11:36:17 | tainted | tst.go:36:2:36:2 | u | provenance | Config | | tst.go:36:11:36:17 | tainted | tst.go:37:11:37:11 | u | provenance | Config | | tst.go:37:11:37:11 | u | tst.go:37:11:37:20 | call to String | provenance | MaD:238 | -| websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:107:21:107:31 | call to Referer | websocket.go:110:15:110:28 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | provenance | Src:MaD:784 | -| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | provenance | Src:MaD:784 | +| websocket.go:60:21:60:31 | call to Referer | websocket.go:65:27:65:40 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:74:21:74:31 | call to Referer | websocket.go:78:36:78:49 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:88:21:88:31 | call to Referer | websocket.go:91:31:91:44 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:107:21:107:31 | call to Referer | websocket.go:110:15:110:28 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:126:21:126:31 | call to Referer | websocket.go:129:38:129:51 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:154:21:154:31 | call to Referer | websocket.go:155:31:155:44 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:160:21:160:31 | call to Referer | websocket.go:162:31:162:44 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:195:21:195:31 | call to Referer | websocket.go:197:18:197:31 | untrustedInput | provenance | Src:MaD:793 | +| websocket.go:202:21:202:31 | call to Referer | websocket.go:204:11:204:24 | untrustedInput | provenance | Src:MaD:793 | nodes | RequestForgery.go:8:12:8:34 | call to FormValue | semmle.label | call to FormValue | | RequestForgery.go:11:24:11:65 | ...+... | semmle.label | ...+... | diff --git a/java/kotlin-extractor/src/main/java/com/semmle/extractor/java/OdasaOutput.java b/java/kotlin-extractor/src/main/java/com/semmle/extractor/java/OdasaOutput.java index 435dc85513ee8..ef7df5d4053be 100644 --- a/java/kotlin-extractor/src/main/java/com/semmle/extractor/java/OdasaOutput.java +++ b/java/kotlin-extractor/src/main/java/com/semmle/extractor/java/OdasaOutput.java @@ -78,13 +78,11 @@ public class OdasaOutput { } public OdasaOutput(boolean trackClassOrigins, Compression compression, Logger log) { - String trapFolderVar = Env.systemEnv().getFirstNonEmpty("CODEQL_EXTRACTOR_JAVA_TRAP_DIR", - Var.TRAP_FOLDER.name()); + String trapFolderVar = Env.systemEnv().get("CODEQL_EXTRACTOR_JAVA_TRAP_DIR"); if (trapFolderVar == null) { throw new ResourceError("CODEQL_EXTRACTOR_JAVA_TRAP_DIR was not set"); } - String sourceArchiveVar = Env.systemEnv().getFirstNonEmpty("CODEQL_EXTRACTOR_JAVA_SOURCE_ARCHIVE_DIR", - Var.SOURCE_ARCHIVE.name()); + String sourceArchiveVar = Env.systemEnv().get("CODEQL_EXTRACTOR_JAVA_SOURCE_ARCHIVE_DIR"); if (sourceArchiveVar == null) { throw new ResourceError("CODEQL_EXTRACTOR_JAVA_SOURCE_ARCHIVE_DIR was not set"); } diff --git a/java/kotlin-extractor/src/main/java/com/semmle/util/process/Env.java b/java/kotlin-extractor/src/main/java/com/semmle/util/process/Env.java index 2edfbb3e16475..564887f5fda1b 100644 --- a/java/kotlin-extractor/src/main/java/com/semmle/util/process/Env.java +++ b/java/kotlin-extractor/src/main/java/com/semmle/util/process/Env.java @@ -256,8 +256,6 @@ public enum Var { */ ODASA_SRC, ODASA_DB, - TRAP_FOLDER, - SOURCE_ARCHIVE, ODASA_OUTPUT, ODASA_SUBPROJECT_THREADS, diff --git a/java/ql/automodel/src/CHANGELOG.md b/java/ql/automodel/src/CHANGELOG.md index 6e2e78d0a6373..7ef174ca56a50 100644 --- a/java/ql/automodel/src/CHANGELOG.md +++ b/java/ql/automodel/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/java/ql/automodel/src/change-notes/released/1.0.4.md b/java/ql/automodel/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/java/ql/automodel/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/java/ql/automodel/src/codeql-pack.release.yml b/java/ql/automodel/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/java/ql/automodel/src/codeql-pack.release.yml +++ b/java/ql/automodel/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/java/ql/automodel/src/qlpack.yml b/java/ql/automodel/src/qlpack.yml index ad247f25bf1bd..59878324d3d25 100644 --- a/java/ql/automodel/src/qlpack.yml +++ b/java/ql/automodel/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-automodel-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - java - automodel diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index d4ceec95093c6..07b324f259c57 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,24 @@ +## 2.0.0 + +### Breaking Changes + +* The Java extractor no longer supports the `SEMMLE_DIST` legacy environment variable. + +### Deprecated APIs + +* The predicate `isAndroid` from the module `semmle.code.java.security.AndroidCertificatePinningQuery` has been deprecated. Use `semmle.code.java.frameworks.android.Android::inAndroidApplication(File)` instead. + +### New Features + +* Kotlin support is now out of beta, and generally available +* Kotlin versions up to 2.0.2*x* are now supported. + +### Minor Analysis Improvements + +* Added a path-injection sink for `hudson.FilePath.exists()`. +* Added summary models for `org.apache.commons.io.IOUtils.toByteArray`. +* Java build-mode `none` analyses now only report a warning on the CodeQL status page when there are significant analysis problems-- defined as 5% of expressions lacking a type, or 5% of call targets being unknown. Other messages reported on the status page are downgraded from warnings to notes and so are less prominent, but are still available for review. + ## 1.1.2 ### Minor Analysis Improvements diff --git a/java/ql/lib/change-notes/2024-06-12-isandroid-deprecated.md b/java/ql/lib/change-notes/2024-06-12-isandroid-deprecated.md deleted file mode 100644 index 3c1ab0de8e25c..0000000000000 --- a/java/ql/lib/change-notes/2024-06-12-isandroid-deprecated.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The predicate `isAndroid` from the module `semmle.code.java.security.AndroidCertificatePinningQuery` has been deprecated. Use `semmle.code.java.frameworks.android.Android::inAndroidApplication(File)` instead. diff --git a/java/ql/lib/change-notes/2024-06-14-reverse-dns-separate-threat-model-kind.md b/java/ql/lib/change-notes/2024-06-14-reverse-dns-separate-threat-model-kind.md new file mode 100644 index 0000000000000..f5e39a0b5ea54 --- /dev/null +++ b/java/ql/lib/change-notes/2024-06-14-reverse-dns-separate-threat-model-kind.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* We previously considered reverse DNS resolutions (IP address -> domain name) as sources of untrusted data, since compromised/malicious DNS servers could potentially return malicious responses to arbitrary requests. We have now removed this source from the default set of untrusted sources and made a new threat model kind for them, called "reverse-dns". You can optionally include other threat models as appropriate when using the CodeQL CLI and in GitHub code scanning. For more information, see [Analyzing your code with CodeQL queries](https://docs.github.com/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries#including-model-packs-to-add-potential-sources-of-tainted-data>) and [Customizing your advanced setup for code scanning](https://docs.github.com/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#extending-codeql-coverage-with-threat-models). diff --git a/java/ql/lib/change-notes/2024-06-19-kotlin-2.0.20.md b/java/ql/lib/change-notes/2024-06-19-kotlin-2.0.20.md deleted file mode 100644 index f9023051191b8..0000000000000 --- a/java/ql/lib/change-notes/2024-06-19-kotlin-2.0.20.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Kotlin versions up to 2.0.2\ *x* are now supported. diff --git a/java/ql/lib/change-notes/2024-06-25-java-tools-status.md b/java/ql/lib/change-notes/2024-06-25-java-tools-status.md deleted file mode 100644 index 67a72a12bb736..0000000000000 --- a/java/ql/lib/change-notes/2024-06-25-java-tools-status.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Java build-mode `none` analyses now only report a warning on the CodeQL status page when there are significant analysis problems-- defined as 5% of expressions lacking a type, or 5% of call targets being unknown. Other messages reported on the status page are downgraded from warnings to notes and so are less prominent, but are still available for review. diff --git a/java/ql/lib/change-notes/2024-07-03-env-var-semmle-dist.md b/java/ql/lib/change-notes/2024-07-03-env-var-semmle-dist.md deleted file mode 100644 index 372bed1eb6623..0000000000000 --- a/java/ql/lib/change-notes/2024-07-03-env-var-semmle-dist.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The Java extractor no longer supports the `SEMMLE_DIST` legacy environment variable. diff --git a/java/ql/lib/change-notes/2024-07-11-FilePath-exists-sink.md b/java/ql/lib/change-notes/2024-07-11-FilePath-exists-sink.md deleted file mode 100644 index 0c8f80cb71551..0000000000000 --- a/java/ql/lib/change-notes/2024-07-11-FilePath-exists-sink.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added a path-injection sink for `hudson.FilePath.exists()`. diff --git a/java/ql/lib/change-notes/2024-07-11-kotlin-ga.md b/java/ql/lib/change-notes/2024-07-11-kotlin-ga.md deleted file mode 100644 index 24d6c5d7d76c0..0000000000000 --- a/java/ql/lib/change-notes/2024-07-11-kotlin-ga.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Kotlin support is now out of beta, and generally available diff --git a/java/ql/lib/change-notes/2024-07-11-toByteArray-summary.md b/java/ql/lib/change-notes/2024-07-11-toByteArray-summary.md deleted file mode 100644 index b24905cb9e735..0000000000000 --- a/java/ql/lib/change-notes/2024-07-11-toByteArray-summary.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added summary models for `org.apache.commons.io.IOUtils.toByteArray`. diff --git a/java/ql/lib/change-notes/2024-07-16-add-models-for-the-lastaflute-framework.md b/java/ql/lib/change-notes/2024-07-16-add-models-for-the-lastaflute-framework.md new file mode 100644 index 0000000000000..b5f924cdb6767 --- /dev/null +++ b/java/ql/lib/change-notes/2024-07-16-add-models-for-the-lastaflute-framework.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Adds models for request handlers using the `org.lastaflute.web` web framework. diff --git a/java/ql/lib/change-notes/2024-07-24-url-fields-inherit-taint.md b/java/ql/lib/change-notes/2024-07-24-url-fields-inherit-taint.md new file mode 100644 index 0000000000000..80851dbc65598 --- /dev/null +++ b/java/ql/lib/change-notes/2024-07-24-url-fields-inherit-taint.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added flow through some methods of the class `java.net.URL` by ensuring that the fields of a URL are tainted. diff --git a/java/ql/lib/change-notes/2024-07-25-env-vars.md b/java/ql/lib/change-notes/2024-07-25-env-vars.md new file mode 100644 index 0000000000000..8c58be3b41264 --- /dev/null +++ b/java/ql/lib/change-notes/2024-07-25-env-vars.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* The Java and Kotlin extractors no longer support the `SOURCE_ARCHIVE` and `TRAP_FOLDER` legacy environment variable. diff --git a/java/ql/lib/change-notes/released/2.0.0.md b/java/ql/lib/change-notes/released/2.0.0.md new file mode 100644 index 0000000000000..3f451d0e5bbab --- /dev/null +++ b/java/ql/lib/change-notes/released/2.0.0.md @@ -0,0 +1,20 @@ +## 2.0.0 + +### Breaking Changes + +* The Java extractor no longer supports the `SEMMLE_DIST` legacy environment variable. + +### Deprecated APIs + +* The predicate `isAndroid` from the module `semmle.code.java.security.AndroidCertificatePinningQuery` has been deprecated. Use `semmle.code.java.frameworks.android.Android::inAndroidApplication(File)` instead. + +### New Features + +* Kotlin support is now out of beta, and generally available +* Kotlin versions up to 2.0.2*x* are now supported. + +### Minor Analysis Improvements + +* Added a path-injection sink for `hudson.FilePath.exists()`. +* Added summary models for `org.apache.commons.io.IOUtils.toByteArray`. +* Java build-mode `none` analyses now only report a warning on the CodeQL status page when there are significant analysis problems-- defined as 5% of expressions lacking a type, or 5% of call targets being unknown. Other messages reported on the status page are downgraded from warnings to notes and so are less prominent, but are still available for review. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 53ab127707fc1..0abe6ccede0f5 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.2 +lastReleaseVersion: 2.0.0 diff --git a/java/ql/lib/ext/org.apache.commons.lang3.model.yml b/java/ql/lib/ext/org.apache.commons.lang3.model.yml index 26cb6deec1427..541db005f0b6f 100644 --- a/java/ql/lib/ext/org.apache.commons.lang3.model.yml +++ b/java/ql/lib/ext/org.apache.commons.lang3.model.yml @@ -3,6 +3,9 @@ extensions: pack: codeql/java-all extensible: sinkModel data: + # Note these sinks do not use the sink kind `regex-use[0]` because the regex injection query needs to select them separately from + # other `regex-use[0]` sinks in order to avoid FPs. As a result, these sinks are currently not used in the polynomial ReDoS query. + # TODO: refactor the `regex-use%` sink kind so that the polynomial ReDoS query can also use these sinks. - ["org.apache.commons.lang3", "RegExUtils", False, "removeAll", "(String,String)", "", "Argument[1]", "regex-use", "manual"] - ["org.apache.commons.lang3", "RegExUtils", False, "removeFirst", "(String,String)", "", "Argument[1]", "regex-use", "manual"] - ["org.apache.commons.lang3", "RegExUtils", False, "removePattern", "(String,String)", "", "Argument[1]", "regex-use", "manual"] diff --git a/java/ql/lib/ext/org.lastaflute.web.model.yml b/java/ql/lib/ext/org.lastaflute.web.model.yml new file mode 100644 index 0000000000000..cecb87bcfbdba --- /dev/null +++ b/java/ql/lib/ext/org.lastaflute.web.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: sourceModel + data: + - ["org.lastaflute.web", "Execute", False, "", "", "Annotated", "Parameter", "remote", "manual"] \ No newline at end of file diff --git a/java/ql/lib/ext/org.lastaflute.web.ruts.multipart.model.yml b/java/ql/lib/ext/org.lastaflute.web.ruts.multipart.model.yml new file mode 100644 index 0000000000000..994f4c36a55f3 --- /dev/null +++ b/java/ql/lib/ext/org.lastaflute.web.ruts.multipart.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/java-all + extensible: summaryModel + data: + - ["org.lastaflute.web.ruts.multipart", "MultipartFormFile", True, "getContentType", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.lastaflute.web.ruts.multipart", "MultipartFormFile", True, "getFileData", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.lastaflute.web.ruts.multipart", "MultipartFormFile", True, "getFileName", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.lastaflute.web.ruts.multipart", "MultipartFormFile", True, "getInputStream", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] \ No newline at end of file diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 9d64327d6d8f3..470dfa1989884 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 1.1.3-dev +version: 2.0.1-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll index f2b2f8c20086b..c97a97f27972a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSources.qll @@ -119,21 +119,6 @@ private predicate variableStep(Expr tracked, VarAccess sink) { ) } -private class ReverseDnsSource extends RemoteFlowSource { - ReverseDnsSource() { - // Try not to trigger on `localhost`. - exists(MethodCall m | m = this.asExpr() | - m.getMethod() instanceof ReverseDnsMethod and - not exists(MethodCall l | - (variableStep(l, m.getQualifier()) or l = m.getQualifier()) and - (l.getMethod().getName() = "getLocalHost" or l.getMethod().getName() = "getLoopbackAddress") - ) - ) - } - - override string getSourceType() { result = "reverse DNS lookup" } -} - private class MessageBodyReaderParameterSource extends RemoteFlowSource { MessageBodyReaderParameterSource() { exists(MessageBodyReaderRead m | @@ -388,6 +373,24 @@ class AndroidJavascriptInterfaceMethodParameter extends RemoteFlowSource { } } +/** A node with input that comes from a reverse DNS lookup. */ +abstract class ReverseDnsUserInput extends UserInput { + override string getThreatModel() { result = "reverse-dns" } +} + +private class ReverseDnsSource extends ReverseDnsUserInput { + ReverseDnsSource() { + // Try not to trigger on `localhost`. + exists(MethodCall m | m = this.asExpr() | + m.getMethod() instanceof ReverseDnsMethod and + not exists(MethodCall l | + (variableStep(l, m.getQualifier()) or l = m.getQualifier()) and + (l.getMethod().getName() = "getLocalHost" or l.getMethod().getName() = "getLoopbackAddress") + ) + ) + } +} + /** * A data flow source node for an API, which should be considered * supported for a modeling perspective. diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index 773c480b7e741..e7d34d166b120 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -22,6 +22,7 @@ private module Frameworks { private import semmle.code.java.frameworks.IoJsonWebToken private import semmle.code.java.frameworks.jackson.JacksonSerializability private import semmle.code.java.frameworks.InputStream + private import semmle.code.java.frameworks.Networking private import semmle.code.java.frameworks.Properties private import semmle.code.java.frameworks.Protobuf private import semmle.code.java.frameworks.ThreadLocal diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll index e455b8cdb4dd9..84b31f14e98d1 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowPrivate.qll @@ -356,8 +356,12 @@ RefType getErasedRepr(Type t) { t instanceof NullType and result instanceof TypeObject } -class DataFlowType extends SrcRefType { +final private class SrcRefTypeFinal = SrcRefType; + +class DataFlowType extends SrcRefTypeFinal { DataFlowType() { this = getErasedRepr(_) } + + string toString() { result = ppReprType(this) } } pragma[nomagic] @@ -371,7 +375,7 @@ DataFlowType getNodeType(Node n) { } /** Gets a string representation of a type returned by `getErasedRepr`. */ -string ppReprType(DataFlowType t) { +private string ppReprType(SrcRefType t) { if t.(BoxedType).getPrimitiveType().getName() = "double" then result = "Number" else result = t.toString() diff --git a/java/ql/lib/semmle/code/java/frameworks/Networking.qll b/java/ql/lib/semmle/code/java/frameworks/Networking.qll index f86cecd5b4ee7..1139d0d006211 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Networking.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Networking.qll @@ -3,6 +3,8 @@ */ import semmle.code.java.Type +private import semmle.code.java.dataflow.DataFlow +private import semmle.code.java.dataflow.FlowSteps /** The type `java.net.URLConnection`. */ class TypeUrlConnection extends RefType { @@ -24,6 +26,11 @@ class TypeUrl extends RefType { TypeUrl() { this.hasQualifiedName("java.net", "URL") } } +/** Specifies that if a `URL` is tainted, then so are its synthetic fields. */ +private class UrlFieldsInheritTaint extends DataFlow::SyntheticFieldContent, TaintInheritingContent { + UrlFieldsInheritTaint() { this.getField().matches("java.net.URL.%") } +} + /** The type `java.net.URLDecoder`. */ class TypeUrlDecoder extends RefType { TypeUrlDecoder() { this.hasQualifiedName("java.net", "URLDecoder") } diff --git a/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll b/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll index b5a195e748a69..763b96f5a02d3 100644 --- a/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll +++ b/java/ql/lib/semmle/code/java/regex/RegexFlowConfigs.qll @@ -13,9 +13,17 @@ private class ExploitableStringLiteral extends StringLiteral { /** * Holds if `kind` is an external sink kind that is relevant for regex flow. - * `full` is true if sinks with this kind match against the full string of its input. - * `strArg` is the index of the argument to methods with this sink kind that contan the string to be matched against, - * where -1 is the qualifier; or -2 if no such argument exists. + * `full` is true if sinks with this kind match against the full string of its + * input. + * `strArg` is the index of the argument to methods with this sink kind that + * contain the string to be matched against, where -1 is the qualifier; or -2 + * if no such argument exists. + * + * Note that `regex-use` is deliberately not a possible value for `kind` here, + * as it is used for regular expression injection sinks that need to be selected + * separately from existing `regex-use[0]` sinks. + * TODO: refactor the `regex-use%` sink kind so that the polynomial ReDoS query + * can also use the `regex-use` sinks. */ private predicate regexSinkKindInfo(string kind, boolean full, int strArg) { sinkModel(_, _, _, _, _, _, _, kind, _, _) and diff --git a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll index d46d35ab0cc15..ef1e5f9983c58 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveLoggingQuery.qll @@ -7,6 +7,9 @@ import semmle.code.java.security.SensitiveActions import semmle.code.java.frameworks.android.Compose private import semmle.code.java.security.Sanitizers +/** A data flow source node for sensitive logging sources. */ +abstract class SensitiveLoggerSource extends DataFlow::Node { } + /** A variable that may hold sensitive information, judging by its name. */ class VariableWithSensitiveName extends Variable { VariableWithSensitiveName() { @@ -26,6 +29,10 @@ class CredentialExpr extends VarAccess { } } +private class CredentialExprSource extends SensitiveLoggerSource { + CredentialExprSource() { this.asExpr() instanceof CredentialExpr } +} + /** An instantiation of a (reflexive, transitive) subtype of `java.lang.reflect.Type`. */ private class TypeType extends RefType { pragma[nomagic] @@ -42,7 +49,7 @@ private class TypeType extends RefType { deprecated class SensitiveLoggerConfiguration extends TaintTracking::Configuration { SensitiveLoggerConfiguration() { this = "SensitiveLoggerConfiguration" } - override predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CredentialExpr } + override predicate isSource(DataFlow::Node source) { source instanceof SensitiveLoggerSource } override predicate isSink(DataFlow::Node sink) { sinkNode(sink, "log-injection") } @@ -59,7 +66,7 @@ deprecated class SensitiveLoggerConfiguration extends TaintTracking::Configurati /** A data-flow configuration for identifying potentially-sensitive data flowing to a log output. */ module SensitiveLoggerConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source.asExpr() instanceof CredentialExpr } + predicate isSource(DataFlow::Node source) { source instanceof SensitiveLoggerSource } predicate isSink(DataFlow::Node sink) { sinkNode(sink, "log-injection") } diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 30ac37246bbda..687e54f3d9b5e 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.1.1 + +### Minor Analysis Improvements + +* The heuristic to enable certain Android queries has been improved. Now it ignores Android Manifests which don't define an activity, content provider or service. We also only consider files which are under a folder containing such an Android Manifest for these queries. This should remove some false positive alerts. + ## 1.1.0 ### Major Analysis Improvements diff --git a/java/ql/src/change-notes/2024-07-23-java-sensitivelogging-source.md b/java/ql/src/change-notes/2024-07-23-java-sensitivelogging-source.md new file mode 100644 index 0000000000000..ff8a3e12ee4a8 --- /dev/null +++ b/java/ql/src/change-notes/2024-07-23-java-sensitivelogging-source.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added the extensible abstract class `SensitiveLoggerSource`. Now this class can be extended to add more sources to the `java/sensitive-log` query or for customizations overrides. \ No newline at end of file diff --git a/java/ql/src/change-notes/2024-07-07-android-application-heuristic-updated.md b/java/ql/src/change-notes/released/1.1.1.md similarity index 88% rename from java/ql/src/change-notes/2024-07-07-android-application-heuristic-updated.md rename to java/ql/src/change-notes/released/1.1.1.md index fbf24383c192d..e8403c4e15af7 100644 --- a/java/ql/src/change-notes/2024-07-07-android-application-heuristic-updated.md +++ b/java/ql/src/change-notes/released/1.1.1.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 1.1.1 + +### Minor Analysis Improvements + * The heuristic to enable certain Android queries has been improved. Now it ignores Android Manifests which don't define an activity, content provider or service. We also only consider files which are under a folder containing such an Android Manifest for these queries. This should remove some false positive alerts. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 2ac15439f561a..1a19084be3f75 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.0 +lastReleaseVersion: 1.1.1 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 65236db5e5526..e34220277ab7e 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.1.1-dev +version: 1.1.2-dev groups: - java - queries diff --git a/java/ql/test/TestUtilities/PrettyPrintModels.ql b/java/ql/test/TestUtilities/PrettyPrintModels.ql new file mode 100644 index 0000000000000..79442c4439516 --- /dev/null +++ b/java/ql/test/TestUtilities/PrettyPrintModels.ql @@ -0,0 +1,18 @@ +/** + * @kind test-postprocess + */ + +import codeql.dataflow.test.ProvenancePathGraph +import semmle.code.java.dataflow.ExternalFlow + +external predicate queryResults(string relation, int row, int column, string data); + +external predicate queryRelations(string relation); + +query predicate resultRelations(string relation) { queryRelations(relation) } + +module Res = TranslateProvenanceResults; + +from string relation, int row, int column, string data +where Res::results(relation, row, column, data) +select relation, row, column, data diff --git a/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected b/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected index 9b1f0897b5656..b17be2a3db256 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-601/SpringUrlRedirect.expected @@ -19,18 +19,18 @@ edges | SpringUrlRedirect.java:104:39:104:56 | redirectUrl : String | SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | provenance | | | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | provenance | | | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:108:68:108:78 | httpHeaders | provenance | | -| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49240 | -| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49481 | +| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49245 | +| SpringUrlRedirect.java:106:37:106:47 | redirectUrl : String | SpringUrlRedirect.java:106:9:106:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49486 | | SpringUrlRedirect.java:112:39:112:56 | redirectUrl : String | SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | provenance | | | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | provenance | | | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:116:37:116:47 | httpHeaders | provenance | | -| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49240 | -| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49481 | +| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49245 | +| SpringUrlRedirect.java:114:37:114:47 | redirectUrl : String | SpringUrlRedirect.java:114:9:114:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49486 | | SpringUrlRedirect.java:120:33:120:50 | redirectUrl : String | SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | provenance | | | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | provenance | | | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | SpringUrlRedirect.java:124:49:124:59 | httpHeaders | provenance | | -| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49240 | -| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49481 | +| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders | provenance | MaD:49245 | +| SpringUrlRedirect.java:122:37:122:47 | redirectUrl : String | SpringUrlRedirect.java:122:9:122:19 | httpHeaders [post update] : HttpHeaders [, ] : String | provenance | MaD:49486 | | SpringUrlRedirect.java:128:33:128:50 | redirectUrl : String | SpringUrlRedirect.java:130:44:130:54 | redirectUrl : String | provenance | | | SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | SpringUrlRedirect.java:132:49:132:59 | httpHeaders | provenance | | | SpringUrlRedirect.java:130:33:130:55 | create(...) : URI | SpringUrlRedirect.java:130:9:130:19 | httpHeaders : HttpHeaders | provenance | Config | diff --git a/java/ql/test/library-tests/dataflow/taintsources/A.java b/java/ql/test/library-tests/dataflow/taintsources/A.java index 25320b315ad50..f28834e583750 100644 --- a/java/ql/test/library-tests/dataflow/taintsources/A.java +++ b/java/ql/test/library-tests/dataflow/taintsources/A.java @@ -43,7 +43,12 @@ public void test(ResultSet rs) throws SQLException { }; sink(new URL("test").openConnection().getInputStream()); // $hasRemoteValueFlow sink(new Socket("test", 1234).getInputStream()); // $hasRemoteValueFlow - sink(InetAddress.getByName("test").getHostName()); // $hasRemoteValueFlow + sink(InetAddress.getByName("test").getHostName()); // $hasReverseDnsValueFlow + sink(InetAddress.getLocalHost().getHostName()); + sink(InetAddress.getLoopbackAddress().getHostName()); + sink(InetAddress.getByName("test").getCanonicalHostName()); // $hasReverseDnsValueFlow + sink(InetAddress.getLocalHost().getCanonicalHostName()); + sink(InetAddress.getLoopbackAddress().getCanonicalHostName()); sink(System.in); // $hasLocalValueFlow sink(new FileInputStream("test")); // $hasLocalValueFlow diff --git a/java/ql/test/library-tests/dataflow/taintsources/local.ql b/java/ql/test/library-tests/dataflow/taintsources/local.ql index 1cbe8dbbf6c47..d4a08d836bb60 100644 --- a/java/ql/test/library-tests/dataflow/taintsources/local.ql +++ b/java/ql/test/library-tests/dataflow/taintsources/local.ql @@ -2,16 +2,12 @@ import java import semmle.code.java.dataflow.FlowSources import TestUtilities.InlineExpectationsTest -class LocalSource extends DataFlow::Node instanceof UserInput { - LocalSource() { not this instanceof RemoteFlowSource } -} - predicate isTestSink(DataFlow::Node n) { exists(MethodCall ma | ma.getMethod().hasName("sink") | n.asExpr() = ma.getAnArgument()) } module LocalValueConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node n) { n instanceof LocalSource } + predicate isSource(DataFlow::Node n) { n instanceof LocalUserInput } predicate isSink(DataFlow::Node n) { isTestSink(n) } } @@ -19,7 +15,7 @@ module LocalValueConfig implements DataFlow::ConfigSig { module LocalValueFlow = DataFlow::Global; module LocalTaintConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node n) { n instanceof LocalSource } + predicate isSource(DataFlow::Node n) { n instanceof LocalUserInput } predicate isSink(DataFlow::Node n) { isTestSink(n) } } diff --git a/java/ql/test/library-tests/dataflow/taintsources/reversedns.expected b/java/ql/test/library-tests/dataflow/taintsources/reversedns.expected new file mode 100644 index 0000000000000..48de9172b362f --- /dev/null +++ b/java/ql/test/library-tests/dataflow/taintsources/reversedns.expected @@ -0,0 +1,2 @@ +failures +testFailures diff --git a/java/ql/test/library-tests/dataflow/taintsources/reversedns.ql b/java/ql/test/library-tests/dataflow/taintsources/reversedns.ql new file mode 100644 index 0000000000000..8ec5acab5e54a --- /dev/null +++ b/java/ql/test/library-tests/dataflow/taintsources/reversedns.ql @@ -0,0 +1,47 @@ +import java +import semmle.code.java.dataflow.FlowSources +import TestUtilities.InlineExpectationsTest + +predicate isTestSink(DataFlow::Node n) { + exists(MethodCall ma | ma.getMethod().hasName("sink") | n.asExpr() = ma.getAnArgument()) +} + +module ReverseDnsValueConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node n) { n instanceof ReverseDnsUserInput } + + predicate isSink(DataFlow::Node n) { isTestSink(n) } +} + +module ReverseDnsValueFlow = DataFlow::Global; + +module ReverseDnsTaintConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node n) { n instanceof ReverseDnsUserInput } + + predicate isSink(DataFlow::Node n) { isTestSink(n) } +} + +module ReverseDnsTaintFlow = TaintTracking::Global; + +module ReverseDnsFlowTest implements TestSig { + string getARelevantTag() { result = ["hasReverseDnsValueFlow", "hasReverseDnsTaintFlow"] } + + predicate hasActualResult(Location location, string element, string tag, string value) { + tag = "hasReverseDnsValueFlow" and + exists(DataFlow::Node sink | ReverseDnsValueFlow::flowTo(sink) | + sink.getLocation() = location and + element = sink.toString() and + value = "" + ) + or + tag = "hasReverseDnsTaintFlow" and + exists(DataFlow::Node src, DataFlow::Node sink | + ReverseDnsTaintFlow::flow(src, sink) and not ReverseDnsValueFlow::flow(src, sink) + | + sink.getLocation() = location and + element = sink.toString() and + value = "" + ) + } +} + +import MakeTest diff --git a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java index 7f36d66d136b2..1172ce88f3f50 100644 --- a/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java +++ b/java/ql/test/library-tests/frameworks/jdk/java.net/Test.java @@ -90,6 +90,14 @@ public void test() throws Exception { out = in.toURL(); sink(out); // $ hasTaintFlow } + { + // manual test for `URI.toURL().getPath()`; checks that if a `URL` is tainted, then so are its synthetic fields + // java.net;URL;False;getPath;();;Argument[this].SyntheticField[java.net.URL.path];ReturnValue;taint;ai-manual + URL out = null; + URI in = (URI) source(); + out = in.toURL(); + sink(out.getPath()); // $ hasTaintFlow + } { // "java.net;URL;false;URL;(String);;Argument[0];Argument[this];taint;manual" URL out = null; @@ -97,6 +105,14 @@ public void test() throws Exception { out = new URL(in); sink(out); // $ hasTaintFlow } + { + // manual test for `URL(String).getPath()`; checks that if a `URL` is tainted, then so are its synthetic fields + // java.net;URL;False;getPath;();;Argument[this].SyntheticField[java.net.URL.path];ReturnValue;taint;ai-manual + URL out = null; + String in = (String) source(); + out = new URL(in); + sink(out.getPath()); // $ hasTaintFlow + } { // "java.net;URL;false;URL;(URL,String);;Argument[0];Argument[this];taint;ai-generated" URL out = null; diff --git a/java/ql/test/library-tests/frameworks/lastaflute/Test.java b/java/ql/test/library-tests/frameworks/lastaflute/Test.java new file mode 100644 index 0000000000000..a10f4ebbdaaa6 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/lastaflute/Test.java @@ -0,0 +1,27 @@ +import java.io.IOException; + +import org.lastaflute.web.Execute; +import org.lastaflute.web.ruts.multipart.MultipartFormFile; + +public class Test { + + void sink(Object o) { + } + + public class TestForm { + public MultipartFormFile file; + } + + @Execute + public String index(TestForm form) throws IOException { + MultipartFormFile file = form.file; + + sink(file.getFileData()); // $hasTaintFlow + sink(file.getInputStream()); // $hasTaintFlow + + return "index.jsp"; + } + +} + + diff --git a/java/ql/test/library-tests/frameworks/lastaflute/options b/java/ql/test/library-tests/frameworks/lastaflute/options new file mode 100644 index 0000000000000..439b07f08ed2d --- /dev/null +++ b/java/ql/test/library-tests/frameworks/lastaflute/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/lastaflute \ No newline at end of file diff --git a/java/ql/test/library-tests/frameworks/lastaflute/test.expected b/java/ql/test/library-tests/frameworks/lastaflute/test.expected new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/java/ql/test/library-tests/frameworks/lastaflute/test.ql b/java/ql/test/library-tests/frameworks/lastaflute/test.ql new file mode 100644 index 0000000000000..a62fdf67dfcf6 --- /dev/null +++ b/java/ql/test/library-tests/frameworks/lastaflute/test.ql @@ -0,0 +1,11 @@ +import java +import semmle.code.java.dataflow.FlowSources +import TestUtilities.InlineFlowTest + +module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node n) { n instanceof RemoteFlowSource } + + predicate isSink(DataFlow::Node n) { DefaultFlowConfig::isSink(n) } +} + +import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java index f8b37428e25b5..d8cd210b70cfa 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java @@ -5,12 +5,14 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.InetAddress; import java.net.URL; import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; + +import javax.servlet.http.HttpServletRequest; import javax.xml.transform.stream.StreamResult; + import org.apache.commons.io.FileUtils; import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.DirectoryScanner; @@ -24,10 +26,10 @@ public class Test { - private InetAddress address; + private HttpServletRequest request; public Object source() { - return address.getHostName(); + return request.getParameter("source"); } void test() throws IOException { @@ -166,8 +168,8 @@ void test(AntClassLoader acl) { new LargeText((File) source(), null, false, false); // $ hasTaintFlow } - void doGet6(String root, InetAddress address) throws IOException { - String temp = address.getHostName(); + void doGet6(String root, HttpServletRequest request) throws IOException { + String temp = request.getParameter("source"); // GOOD: Use `contains` and `startsWith` to check if the path is safe if (!temp.contains("..") && temp.startsWith(root + "/")) { File file = new File(temp); diff --git a/java/ql/test/query-tests/security/CWE-078/ExecTainted.expected b/java/ql/test/query-tests/security/CWE-078/ExecTainted.expected index 6e71e15445406..8cff41743e99f 100644 --- a/java/ql/test/query-tests/security/CWE-078/ExecTainted.expected +++ b/java/ql/test/query-tests/security/CWE-078/ExecTainted.expected @@ -1,23 +1,33 @@ +#select +| Test.java:7:44:7:69 | ... + ... | Test.java:57:27:57:39 | args : String[] | Test.java:7:25:7:70 | new ..[] { .. } | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | +| Test.java:10:29:10:74 | new String[] | Test.java:57:27:57:39 | args : String[] | Test.java:10:29:10:74 | new String[] | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | +| Test.java:18:29:18:31 | cmd | Test.java:57:27:57:39 | args : String[] | Test.java:18:29:18:31 | cmd | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | +| Test.java:24:29:24:32 | cmd1 | Test.java:57:27:57:39 | args : String[] | Test.java:24:29:24:32 | cmd1 | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | +| Test.java:29:44:29:64 | ... + ... | Test.java:57:27:57:39 | args : String[] | Test.java:29:25:29:65 | new ..[] { .. } | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | edges | Test.java:6:35:6:44 | arg : String | Test.java:7:44:7:69 | ... + ... : String | provenance | | | Test.java:6:35:6:44 | arg : String | Test.java:10:61:10:73 | ... + ... : String | provenance | | | Test.java:6:35:6:44 | arg : String | Test.java:16:13:16:25 | ... + ... : String | provenance | | | Test.java:6:35:6:44 | arg : String | Test.java:22:15:22:27 | ... + ... : String | provenance | | -| Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | Test.java:7:25:7:70 | new ..[] { .. } | provenance | Sink:MaD:42682 | +| Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | Test.java:7:25:7:70 | new ..[] { .. } | provenance | Sink:MaD:2 | | Test.java:7:44:7:69 | ... + ... : String | Test.java:7:25:7:70 | new ..[] { .. } : String[] [[]] : String | provenance | | -| Test.java:10:29:10:74 | {...} : String[] [[]] : String | Test.java:10:29:10:74 | new String[] | provenance | Sink:MaD:42682 | +| Test.java:10:29:10:74 | {...} : String[] [[]] : String | Test.java:10:29:10:74 | new String[] | provenance | Sink:MaD:2 | | Test.java:10:61:10:73 | ... + ... : String | Test.java:10:29:10:74 | {...} : String[] [[]] : String | provenance | | -| Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | Test.java:18:29:18:31 | cmd | provenance | Sink:MaD:42681 | -| Test.java:16:13:16:25 | ... + ... : String | Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | provenance | MaD:43744 | -| Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | Test.java:24:29:24:32 | cmd1 | provenance | Sink:MaD:42682 | +| Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | Test.java:18:29:18:31 | cmd | provenance | Sink:MaD:1 | +| Test.java:16:13:16:25 | ... + ... : String | Test.java:16:5:16:7 | cmd [post update] : ArrayList [] : String | provenance | MaD:3 | +| Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | Test.java:24:29:24:32 | cmd1 | provenance | Sink:MaD:2 | | Test.java:22:15:22:27 | ... + ... : String | Test.java:22:5:22:8 | cmd1 [post update] : String[] [[]] : String | provenance | | | Test.java:28:38:28:47 | arg : String | Test.java:29:44:29:64 | ... + ... : String | provenance | | -| Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | Test.java:29:25:29:65 | new ..[] { .. } | provenance | Sink:MaD:42682 | +| Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | Test.java:29:25:29:65 | new ..[] { .. } | provenance | Sink:MaD:2 | | Test.java:29:44:29:64 | ... + ... : String | Test.java:29:25:29:65 | new ..[] { .. } : String[] [[]] : String | provenance | | | Test.java:57:27:57:39 | args : String[] | Test.java:60:20:60:22 | arg : String | provenance | | | Test.java:57:27:57:39 | args : String[] | Test.java:61:23:61:25 | arg : String | provenance | | | Test.java:60:20:60:22 | arg : String | Test.java:6:35:6:44 | arg : String | provenance | | | Test.java:61:23:61:25 | arg : String | Test.java:28:38:28:47 | arg : String | provenance | | +models +| 1 | Sink: java.lang; ProcessBuilder; false; ProcessBuilder; (List); ; Argument[0]; command-injection; ai-manual | +| 2 | Sink: java.lang; ProcessBuilder; false; ProcessBuilder; (String[]); ; Argument[0]; command-injection; ai-manual | +| 3 | Summary: java.util; Collection; true; add; ; ; Argument[0]; Argument[this].Element; value; manual | nodes | Test.java:6:35:6:44 | arg : String | semmle.label | arg : String | | Test.java:7:25:7:70 | new ..[] { .. } | semmle.label | new ..[] { .. } | @@ -40,9 +50,3 @@ nodes | Test.java:60:20:60:22 | arg : String | semmle.label | arg : String | | Test.java:61:23:61:25 | arg : String | semmle.label | arg : String | subpaths -#select -| Test.java:7:44:7:69 | ... + ... | Test.java:57:27:57:39 | args : String[] | Test.java:7:25:7:70 | new ..[] { .. } | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | -| Test.java:10:29:10:74 | new String[] | Test.java:57:27:57:39 | args : String[] | Test.java:10:29:10:74 | new String[] | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | -| Test.java:18:29:18:31 | cmd | Test.java:57:27:57:39 | args : String[] | Test.java:18:29:18:31 | cmd | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | -| Test.java:24:29:24:32 | cmd1 | Test.java:57:27:57:39 | args : String[] | Test.java:24:29:24:32 | cmd1 | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | -| Test.java:29:44:29:64 | ... + ... | Test.java:57:27:57:39 | args : String[] | Test.java:29:25:29:65 | new ..[] { .. } | This command line depends on a $@. | Test.java:57:27:57:39 | args | user-provided value | diff --git a/java/ql/test/query-tests/security/CWE-078/ExecTainted.qlref b/java/ql/test/query-tests/security/CWE-078/ExecTainted.qlref index 1de765a2fdf1f..2ab35baf1bdfc 100644 --- a/java/ql/test/query-tests/security/CWE-078/ExecTainted.qlref +++ b/java/ql/test/query-tests/security/CWE-078/ExecTainted.qlref @@ -1 +1,2 @@ -Security/CWE/CWE-078/ExecTainted.ql +query: Security/CWE/CWE-078/ExecTainted.ql +postprocess: TestUtilities/PrettyPrintModels.ql diff --git a/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected b/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected index 5bc7b07286c76..0e603bfc7caab 100644 --- a/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected +++ b/java/ql/test/query-tests/security/CWE-090/LdapInjection.expected @@ -90,50 +90,50 @@ edges | LdapInjection.java:196:32:196:78 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | provenance | | | LdapInjection.java:199:5:199:5 | s : SearchRequest | LdapInjection.java:200:14:200:14 | s | provenance | Sink:MaD:1933 | | LdapInjection.java:199:17:199:42 | uBadSearchRequestSetFilter : String | LdapInjection.java:199:5:199:5 | s : SearchRequest | provenance | Config | -| LdapInjection.java:229:30:229:54 | sBad : String | LdapInjection.java:230:36:230:55 | ... + ... | provenance | Sink:MaD:49370 | -| LdapInjection.java:229:57:229:83 | sBadDN : String | LdapInjection.java:230:14:230:33 | ... + ... | provenance | Sink:MaD:49370 | -| LdapInjection.java:234:30:234:54 | sBad : String | LdapInjection.java:235:88:235:107 | ... + ... | provenance | Sink:MaD:49360 | +| LdapInjection.java:229:30:229:54 | sBad : String | LdapInjection.java:230:36:230:55 | ... + ... | provenance | Sink:MaD:49375 | +| LdapInjection.java:229:57:229:83 | sBadDN : String | LdapInjection.java:230:14:230:33 | ... + ... | provenance | Sink:MaD:49375 | +| LdapInjection.java:234:30:234:54 | sBad : String | LdapInjection.java:235:88:235:107 | ... + ... | provenance | Sink:MaD:49365 | | LdapInjection.java:234:57:234:92 | sBadDNLNBuilder : String | LdapInjection.java:235:48:235:76 | ... + ... : String | provenance | | -| LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | LdapInjection.java:235:20:235:85 | build(...) | provenance | Config Sink:MaD:49360 | +| LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | LdapInjection.java:235:20:235:85 | build(...) | provenance | Config Sink:MaD:49365 | | LdapInjection.java:235:48:235:76 | ... + ... : String | LdapInjection.java:235:20:235:77 | newInstance(...) : LdapNameBuilder | provenance | Config | -| LdapInjection.java:239:30:239:54 | sBad : String | LdapInjection.java:240:100:240:119 | ... + ... | provenance | Sink:MaD:49372 | +| LdapInjection.java:239:30:239:54 | sBad : String | LdapInjection.java:240:100:240:119 | ... + ... | provenance | Sink:MaD:49377 | | LdapInjection.java:239:57:239:95 | sBadDNLNBuilderAdd : String | LdapInjection.java:240:57:240:88 | ... + ... : String | provenance | | -| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | provenance | Config Sink:MaD:49357 | -| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | provenance | Config Sink:MaD:49372 | +| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | provenance | Config Sink:MaD:49362 | +| LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | LdapInjection.java:240:23:240:97 | build(...) | provenance | Config Sink:MaD:49377 | | LdapInjection.java:240:57:240:88 | ... + ... : String | LdapInjection.java:240:23:240:89 | add(...) : LdapNameBuilder | provenance | Config | | LdapInjection.java:244:30:244:63 | sBadLdapQuery : String | LdapInjection.java:245:47:245:75 | ... + ... : String | provenance | | -| LdapInjection.java:245:47:245:75 | ... + ... : String | LdapInjection.java:245:15:245:76 | filter(...) | provenance | Config Sink:MaD:49369 | +| LdapInjection.java:245:47:245:75 | ... + ... : String | LdapInjection.java:245:15:245:76 | filter(...) | provenance | Config Sink:MaD:49374 | | LdapInjection.java:249:30:249:60 | sBadFilter : String | LdapInjection.java:250:86:250:111 | ... + ... : String | provenance | | | LdapInjection.java:249:63:249:98 | sBadDNLdapUtils : String | LdapInjection.java:250:34:250:62 | ... + ... : String | provenance | | -| LdapInjection.java:250:34:250:62 | ... + ... : String | LdapInjection.java:250:12:250:63 | newLdapName(...) | provenance | Config Sink:MaD:49368 | -| LdapInjection.java:250:86:250:111 | ... + ... : String | LdapInjection.java:250:66:250:112 | new HardcodedFilter(...) | provenance | Config Sink:MaD:49368 | +| LdapInjection.java:250:34:250:62 | ... + ... : String | LdapInjection.java:250:12:250:63 | newLdapName(...) | provenance | Config Sink:MaD:49373 | +| LdapInjection.java:250:86:250:111 | ... + ... : String | LdapInjection.java:250:66:250:112 | new HardcodedFilter(...) | provenance | Config Sink:MaD:49373 | | LdapInjection.java:254:30:254:63 | sBadLdapQuery : String | LdapInjection.java:255:56:255:84 | ... + ... : String | provenance | | -| LdapInjection.java:255:56:255:84 | ... + ... : String | LdapInjection.java:255:24:255:85 | filter(...) | provenance | Config Sink:MaD:49371 | +| LdapInjection.java:255:56:255:84 | ... + ... : String | LdapInjection.java:255:24:255:85 | filter(...) | provenance | Config Sink:MaD:49376 | | LdapInjection.java:259:30:259:64 | sBadLdapQuery2 : String | LdapInjection.java:260:51:260:80 | ... + ... : String | provenance | | -| LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | LdapInjection.java:261:24:261:24 | q | provenance | Sink:MaD:49371 | +| LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | LdapInjection.java:261:24:261:24 | q | provenance | Sink:MaD:49376 | | LdapInjection.java:260:51:260:80 | ... + ... : String | LdapInjection.java:260:19:260:81 | filter(...) : LdapQuery | provenance | Config | | LdapInjection.java:265:30:265:73 | sBadLdapQueryWithFilter : String | LdapInjection.java:266:76:266:114 | ... + ... : String | provenance | | -| LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:266:24:266:116 | filter(...) | provenance | Config Sink:MaD:49371 | +| LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:266:24:266:116 | filter(...) | provenance | Config Sink:MaD:49376 | | LdapInjection.java:266:76:266:114 | ... + ... : String | LdapInjection.java:266:56:266:115 | new HardcodedFilter(...) : HardcodedFilter | provenance | Config | | LdapInjection.java:270:30:270:74 | sBadLdapQueryWithFilter2 : String | LdapInjection.java:271:68:271:107 | ... + ... : String | provenance | | | LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:272:56:272:56 | f : HardcodedFilter | provenance | | | LdapInjection.java:271:68:271:107 | ... + ... : String | LdapInjection.java:271:48:271:108 | new HardcodedFilter(...) : HardcodedFilter | provenance | Config | -| LdapInjection.java:272:56:272:56 | f : HardcodedFilter | LdapInjection.java:272:24:272:57 | filter(...) | provenance | Config Sink:MaD:49371 | +| LdapInjection.java:272:56:272:56 | f : HardcodedFilter | LdapInjection.java:272:24:272:57 | filter(...) | provenance | Config Sink:MaD:49376 | | LdapInjection.java:276:31:276:68 | sBadLdapQueryBase : String | LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | provenance | | -| LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | LdapInjection.java:277:12:277:66 | base(...) | provenance | Config Sink:MaD:49368 | +| LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | LdapInjection.java:277:12:277:66 | base(...) | provenance | Config Sink:MaD:49373 | | LdapInjection.java:277:42:277:58 | sBadLdapQueryBase : String | LdapInjection.java:277:12:277:59 | base(...) : LdapQueryBuilder | provenance | Config | | LdapInjection.java:281:31:281:71 | sBadLdapQueryComplex : String | LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | provenance | | | LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | provenance | Config | -| LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | LdapInjection.java:282:24:282:98 | is(...) | provenance | Config Sink:MaD:49371 | +| LdapInjection.java:282:24:282:87 | where(...) : ConditionCriteria | LdapInjection.java:282:24:282:98 | is(...) | provenance | Config Sink:MaD:49376 | | LdapInjection.java:282:54:282:73 | sBadLdapQueryComplex : String | LdapInjection.java:282:24:282:74 | base(...) : LdapQueryBuilder | provenance | Config | | LdapInjection.java:286:31:286:69 | sBadFilterToString : String | LdapInjection.java:287:38:287:71 | ... + ... : String | provenance | | -| LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:287:18:287:83 | toString(...) | provenance | Config Sink:MaD:49370 | +| LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:287:18:287:83 | toString(...) | provenance | Config Sink:MaD:49375 | | LdapInjection.java:287:38:287:71 | ... + ... : String | LdapInjection.java:287:18:287:72 | new HardcodedFilter(...) : HardcodedFilter | provenance | Config | | LdapInjection.java:291:31:291:67 | sBadFilterEncode : String | LdapInjection.java:293:25:293:56 | ... + ... : String | provenance | | | LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | LdapInjection.java:293:66:293:66 | s : StringBuffer | provenance | Config | | LdapInjection.java:293:25:293:56 | ... + ... : String | LdapInjection.java:293:5:293:57 | new HardcodedFilter(...) : HardcodedFilter | provenance | Config | | LdapInjection.java:293:66:293:66 | s : StringBuffer | LdapInjection.java:294:18:294:18 | s : StringBuffer | provenance | | -| LdapInjection.java:294:18:294:18 | s : StringBuffer | LdapInjection.java:294:18:294:29 | toString(...) | provenance | MaD:42727 Sink:MaD:49370 | +| LdapInjection.java:294:18:294:18 | s : StringBuffer | LdapInjection.java:294:18:294:29 | toString(...) | provenance | MaD:42727 Sink:MaD:49375 | | LdapInjection.java:314:30:314:54 | aBad : String | LdapInjection.java:316:36:316:55 | ... + ... | provenance | Sink:MaD:47462 | | LdapInjection.java:314:57:314:83 | aBadDN : String | LdapInjection.java:316:14:316:33 | ... + ... | provenance | Sink:MaD:47462 | | LdapInjection.java:320:30:320:54 | aBad : String | LdapInjection.java:322:65:322:84 | ... + ... | provenance | Sink:MaD:47462 | diff --git a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.ql b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.ql deleted file mode 100644 index 1175b67693961..0000000000000 --- a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.ql +++ /dev/null @@ -1,14 +0,0 @@ -/** - * @kind path-problem - */ - -import java -import semmle.code.java.security.HttpsUrlsQuery -import codeql.dataflow.test.ProvenancePathGraph -import semmle.code.java.dataflow.ExternalFlow -import ShowProvenance - -from HttpStringToUrlOpenMethodFlow::PathNode source, HttpStringToUrlOpenMethodFlow::PathNode sink -where HttpStringToUrlOpenMethodFlow::flowPath(source, sink) -select sink.getNode(), source, sink, "URL may have been constructed with HTTP protocol, using $@.", - source.getNode(), "this HTTP URL" diff --git a/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.qlref b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.qlref new file mode 100644 index 0000000000000..b05c8153ebe6e --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-311/CWE-319/HttpsUrls.qlref @@ -0,0 +1,2 @@ +query: Security/CWE/CWE-319/HttpsUrls.ql +postprocess: TestUtilities/PrettyPrintModels.ql diff --git a/java/ql/test/stubs/lastaflute/org/lastaflute/web/Execute.java b/java/ql/test/stubs/lastaflute/org/lastaflute/web/Execute.java new file mode 100644 index 0000000000000..3765a03e15e9f --- /dev/null +++ b/java/ql/test/stubs/lastaflute/org/lastaflute/web/Execute.java @@ -0,0 +1,5 @@ +package org.lastaflute.web; + +public @interface Execute { + +} diff --git a/java/ql/test/stubs/lastaflute/org/lastaflute/web/ruts/multipart/MultipartFormFile.java b/java/ql/test/stubs/lastaflute/org/lastaflute/web/ruts/multipart/MultipartFormFile.java new file mode 100644 index 0000000000000..af4626df670af --- /dev/null +++ b/java/ql/test/stubs/lastaflute/org/lastaflute/web/ruts/multipart/MultipartFormFile.java @@ -0,0 +1,14 @@ +package org.lastaflute.web.ruts.multipart; + +import java.io.InputStream; +import java.io.IOException; + +public interface MultipartFormFile { + byte[] getFileData() throws IOException; + + InputStream getInputStream() throws IOException; + + String getFileName(); + + String getContentType(); +} diff --git a/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/diagnostics.expected b/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/diagnostics.expected index 72108d0ebb540..54ac43a4ad745 100644 --- a/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/diagnostics.expected +++ b/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/diagnostics.expected @@ -1,15 +1,14 @@ { - "timestamp": "2023-03-23T12:04:41.317+00:00", - "source": { - "id": "js/internal-error", - "name": "Internal error", - "extractorName": "javascript" - }, - "markdownMessage": "Internal error: com.semmle.util.exception.CatastrophicError: The TypeScript parser wrapper crashed with exit code 1", - "severity": "unknown", - "visibility": { - "cliSummaryTable": true, - "statusPage": false, - "telemetry": true - } -} \ No newline at end of file + "markdownMessage": "Internal error: com.semmle.util.exception.CatastrophicError: The TypeScript parser wrapper crashed with exit code 1", + "severity": "unknown", + "source": { + "extractorName": "javascript", + "id": "js/internal-error", + "name": "Internal error" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} diff --git a/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/test.py b/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/test.py index 3f6c33bf31c1d..25a95e763ee81 100644 --- a/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/test.py +++ b/javascript/ql/integration-tests/all-platforms/diagnostics/internal-error/test.py @@ -1,7 +1,2 @@ -import os -from create_database_utils import * -from diagnostics_test_utils import * - -run_codeql_database_create([], lang="javascript", runFunction = runUnsuccessfully, db = None) - -check_diagnostics() +def test(codeql, javascript): + codeql.database.create(_assert_failure=True) diff --git a/javascript/ql/integration-tests/all-platforms/diagnostics/syntax-error/test.py b/javascript/ql/integration-tests/all-platforms/diagnostics/syntax-error/test.py index 886c058d8f5a6..382607f69a73a 100644 --- a/javascript/ql/integration-tests/all-platforms/diagnostics/syntax-error/test.py +++ b/javascript/ql/integration-tests/all-platforms/diagnostics/syntax-error/test.py @@ -1,7 +1,2 @@ -import os -from create_database_utils import * -from diagnostics_test_utils import * - -run_codeql_database_create([], lang="javascript", runFunction = runSuccessfully, db = None) - -check_diagnostics() +def test(codeql, javascript): + codeql.database.create() diff --git a/javascript/ql/integration-tests/all-platforms/no-types/test.py b/javascript/ql/integration-tests/all-platforms/no-types/test.py index 12ea27fbc0ccc..2c3862227aa94 100755 --- a/javascript/ql/integration-tests/all-platforms/no-types/test.py +++ b/javascript/ql/integration-tests/all-platforms/no-types/test.py @@ -1,3 +1,2 @@ -from create_database_utils import * - -run_codeql_database_create([], lang="javascript", extra_args=["-Oskip_types=true"]) +def test(codeql, javascript): + codeql.database.create(extractor_option="skip_types=true") diff --git a/javascript/ql/integration-tests/all-platforms/qlpack.yml b/javascript/ql/integration-tests/all-platforms/qlpack.yml deleted file mode 100644 index 9f076584585a9..0000000000000 --- a/javascript/ql/integration-tests/all-platforms/qlpack.yml +++ /dev/null @@ -1,4 +0,0 @@ -dependencies: - codeql/javascript-all: '*' - codeql/javascript-queries: '*' -warnOnImplicitThis: true diff --git a/javascript/ql/integration-tests/legacy b/javascript/ql/integration-tests/legacy deleted file mode 100644 index 52478f0a7ef58..0000000000000 --- a/javascript/ql/integration-tests/legacy +++ /dev/null @@ -1 +0,0 @@ -These tests are still run with the legacy test runner diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index c5df4d5fa2764..182f9a9685c5d 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.1.1 + +No user-facing changes. + ## 1.1.0 ### Major Analysis Improvements diff --git a/javascript/ql/lib/change-notes/released/1.1.1.md b/javascript/ql/lib/change-notes/released/1.1.1.md new file mode 100644 index 0000000000000..7fb56d3661051 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/1.1.1.md @@ -0,0 +1,3 @@ +## 1.1.1 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 2ac15439f561a..1a19084be3f75 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.0 +lastReleaseVersion: 1.1.1 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 23b7ec9240a6c..f7bdd033b1c9c 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 1.1.1-dev +version: 1.1.2-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index a3d09c1e02bad..0f30798ecd180 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 1.1.0 + +### New Queries + +* Added a new query, `js/insecure-helmet-configuration`, to detect instances where Helmet middleware is configured with important security features disabled. + +### Minor Analysis Improvements + +* Added a new query, `js/functionality-from-untrusted-domain`, which detects uses in HTML and JavaScript scripts from untrusted domains, including the `polyfill.io` content delivery network + * it can be extended to detect other compromised scripts using user-provided data extensions of the `untrustedDomain` predicate, which takes one string argument with the domain to warn on (and will warn on any subdomains too). +* Modified existing query, `js/functionality-from-untrusted-source`, to allow adding this new query, but reusing the same logic + * Added the ability to use data extensions to require SRI on CDN hostnames using the `isCdnDomainWithCheckingRequired` predicate, which takes one string argument of the full hostname to require SRI for. +* Created a new library, `semmle.javascript.security.FunctionalityFromUntrustedSource`, to support both queries. + ## 1.0.3 ### Minor Analysis Improvements diff --git a/javascript/ql/src/change-notes/2024-06-19-insecure-helmet-config.md b/javascript/ql/src/change-notes/2024-06-19-insecure-helmet-config.md deleted file mode 100644 index bee7ccb8fb94c..0000000000000 --- a/javascript/ql/src/change-notes/2024-06-19-insecure-helmet-config.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: newQuery ---- -* Added a new query, `js/insecure-helmet-configuration`, to detect instances where Helmet middleware is configured with important security features disabled. diff --git a/javascript/ql/src/change-notes/2024-07-08-functionality-from-untrusted-domain.md b/javascript/ql/src/change-notes/released/1.1.0.md similarity index 79% rename from javascript/ql/src/change-notes/2024-07-08-functionality-from-untrusted-domain.md rename to javascript/ql/src/change-notes/released/1.1.0.md index 48a524c0d98f3..81883a0d44f05 100644 --- a/javascript/ql/src/change-notes/2024-07-08-functionality-from-untrusted-domain.md +++ b/javascript/ql/src/change-notes/released/1.1.0.md @@ -1,6 +1,11 @@ ---- -category: minorAnalysis ---- +## 1.1.0 + +### New Queries + +* Added a new query, `js/insecure-helmet-configuration`, to detect instances where Helmet middleware is configured with important security features disabled. + +### Minor Analysis Improvements + * Added a new query, `js/functionality-from-untrusted-domain`, which detects uses in HTML and JavaScript scripts from untrusted domains, including the `polyfill.io` content delivery network * it can be extended to detect other compromised scripts using user-provided data extensions of the `untrustedDomain` predicate, which takes one string argument with the domain to warn on (and will warn on any subdomains too). * Modified existing query, `js/functionality-from-untrusted-source`, to allow adding this new query, but reusing the same logic diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 06fa75b96cbce..2ac15439f561a 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.1.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 96db5feb0c84d..bd70dd01c26ff 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 1.0.4-dev +version: 1.1.1-dev groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index d38834ba2efad..9f92ac20b2551 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.4.md b/misc/suite-helpers/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index a8a38a7cbd3a9..b09efa35a30e2 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.4-dev +version: 1.0.5-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 65d784e6456f1..382efff551c65 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.0.4 + +### Minor Analysis Improvements + +* Additional modelling to detect direct writes to the `Set-Cookie` header has been added for several web frameworks. + ## 1.0.3 ### Minor Analysis Improvements diff --git a/python/ql/lib/change-notes/2024-06-24-cookie-header-writes.md b/python/ql/lib/change-notes/2024-06-24-cookie-header-writes.md deleted file mode 100644 index 583e0f44c0593..0000000000000 --- a/python/ql/lib/change-notes/2024-06-24-cookie-header-writes.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Additional modelling has been added to detect cookie writes from direct writes to the `Set-Cookie` header have been added for several web frameworks. \ No newline at end of file diff --git a/python/ql/lib/change-notes/released/1.0.4.md b/python/ql/lib/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..9da90a6cc3316 --- /dev/null +++ b/python/ql/lib/change-notes/released/1.0.4.md @@ -0,0 +1,5 @@ +## 1.0.4 + +### Minor Analysis Improvements + +* Additional modelling to detect direct writes to the `Set-Cookie` header has been added for several web frameworks. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index f72b0c14f5b69..f25441dbef5e2 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 1.0.4-dev +version: 1.0.5-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll index 38436d99e147c..218dbdae30255 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowPrivate.qll @@ -534,7 +534,7 @@ newtype TDataFlowType = TAnyFlow() class DataFlowType extends TDataFlowType { /** Gets a textual representation of this element. */ - string toString() { result = "DataFlowType" } + string toString() { result = "" } } /** A node that performs a type cast. */ @@ -578,9 +578,6 @@ DataFlowType getNodeType(Node node) { exists(node) } -/** Gets a string representation of a type returned by `getErasedRepr`. */ -string ppReprType(DataFlowType t) { none() } - //-------- // Extra flow //-------- diff --git a/python/ql/lib/semmle/python/security/dataflow/CookieInjectionCustomizations.qll b/python/ql/lib/semmle/python/security/dataflow/CookieInjectionCustomizations.qll new file mode 100644 index 0000000000000..dd3792182de8f --- /dev/null +++ b/python/ql/lib/semmle/python/security/dataflow/CookieInjectionCustomizations.qll @@ -0,0 +1,48 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * "cookie injection" + * vulnerabilities, as well as extension points for adding your own. + */ + +private import python +private import semmle.python.dataflow.new.DataFlow +private import semmle.python.Concepts +private import semmle.python.dataflow.new.RemoteFlowSources + +/** + * Provides default sources, sinks and sanitizers for detecting + * "cookie injection" + * vulnerabilities, as well as extension points for adding your own. + */ +module CookieInjection { + /** + * A data flow source for "cookie injection" vulnerabilities. + */ + abstract class Source extends DataFlow::Node { } + + /** + * A data flow sink for "cookie injection" vulnerabilities. + */ + abstract class Sink extends DataFlow::Node { } + + /** + * A sanitizer for "cookie injection" vulnerabilities. + */ + abstract class Sanitizer extends DataFlow::Node { } + + /** + * A source of remote user input, considered as a flow source. + */ + class RemoteFlowSourceAsSource extends Source, RemoteFlowSource { } + + /** + * A write to a cookie, considered as a sink. + */ + class CookieWriteSink extends Sink { + CookieWriteSink() { + exists(Http::Server::CookieWrite cw | + this = [cw.getNameArg(), cw.getValueArg(), cw.getHeaderArg()] + ) + } + } +} diff --git a/python/ql/lib/semmle/python/security/dataflow/CookieInjectionQuery.qll b/python/ql/lib/semmle/python/security/dataflow/CookieInjectionQuery.qll new file mode 100644 index 0000000000000..2b089fb277936 --- /dev/null +++ b/python/ql/lib/semmle/python/security/dataflow/CookieInjectionQuery.qll @@ -0,0 +1,26 @@ +/** + * Provides a taint-tracking configuration for detecting "cookie injection" vulnerabilities. + * + * Note, for performance reasons: only import this file if + * `CookieInjectionFlow` is needed, otherwise + * `CookieInjectionCustomizations` should be imported instead. + */ + +private import python +import semmle.python.dataflow.new.DataFlow +import semmle.python.dataflow.new.TaintTracking +import CookieInjectionCustomizations::CookieInjection + +/** + * A taint-tracking configuration for detecting "cookie injection" vulnerabilities. + */ +module CookieInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } +} + +/** Global taint-tracking for detecting "cookie injection" vulnerabilities. */ +module CookieInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 1015dd241444d..b386509bd9793 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 ### Minor Analysis Improvements diff --git a/python/ql/src/Security/CWE-020/CookieInjection.qhelp b/python/ql/src/Security/CWE-020/CookieInjection.qhelp new file mode 100644 index 0000000000000..72dfc4db4568e --- /dev/null +++ b/python/ql/src/Security/CWE-020/CookieInjection.qhelp @@ -0,0 +1,27 @@ + + + + +

    Constructing cookies from user input can allow an attacker to control a user's cookie. +This may lead to a session fixation attack. Additionally, client code may not expect a cookie to contain attacker-controlled data, and fail to sanitize it for common vulnerabilities such as Cross Site Scripting (XSS). +An attacker manipulating the raw cookie header may additionally be able to set cookie attributes such as HttpOnly to insecure values. +

    +
    + + +

    Do not use raw user input to construct cookies.

    +
    + + +

    In the following cases, a cookie is constructed for a Flask response using user input. The first uses set_cookie, +and the second sets a cookie's raw value through the set-cookie header.

    + +
    + + +
  • Wikipedia - Session Fixation.
  • +
    + +
    diff --git a/python/ql/src/Security/CWE-020/CookieInjection.ql b/python/ql/src/Security/CWE-020/CookieInjection.ql new file mode 100644 index 0000000000000..944db480ec8f4 --- /dev/null +++ b/python/ql/src/Security/CWE-020/CookieInjection.ql @@ -0,0 +1,20 @@ +/** + * @name Construction of a cookie using user-supplied input. + * @description Constructing cookies from user input may allow an attacker to perform a Cookie Poisoning attack. + * @kind path-problem + * @problem.severity warning + * @precision high + * @security-severity 5.0 + * @id py/cookie-injection + * @tags security + * external/cwe/cwe-20 + */ + +import python +import semmle.python.security.dataflow.CookieInjectionQuery +import CookieInjectionFlow::PathGraph + +from CookieInjectionFlow::PathNode source, CookieInjectionFlow::PathNode sink +where CookieInjectionFlow::flowPath(source, sink) +select sink.getNode(), source, sink, "Cookie is constructed from a $@.", source.getNode(), + "user-supplied input" diff --git a/python/ql/src/experimental/Security/CWE-614/CookieInjection.py b/python/ql/src/Security/CWE-020/examples/CookieInjection.py similarity index 50% rename from python/ql/src/experimental/Security/CWE-614/CookieInjection.py rename to python/ql/src/Security/CWE-020/examples/CookieInjection.py index 55d211bafc1af..5e1c5a3ee8ef7 100644 --- a/python/ql/src/experimental/Security/CWE-614/CookieInjection.py +++ b/python/ql/src/Security/CWE-020/examples/CookieInjection.py @@ -2,15 +2,15 @@ @app.route("/1") -def true(): +def set_cookie(): resp = make_response() - resp.set_cookie(request.args["name"], + resp.set_cookie(request.args["name"], # BAD: User input is used to set the cookie's name and value value=request.args["name"]) return resp @app.route("/2") -def flask_make_response(): - resp = make_response("hello") - resp.headers['Set-Cookie'] = f"{request.args['name']}={request.args['name']};" +def set_cookie_header(): + resp = make_response() + resp.headers['Set-Cookie'] = f"{request.args['name']}={request.args['name']};" # BAD: User input is used to set the raw cookie header. return resp diff --git a/python/ql/src/change-notes/2024-07-19-cookie-injection.md b/python/ql/src/change-notes/2024-07-19-cookie-injection.md new file mode 100644 index 0000000000000..ceefa99c886ba --- /dev/null +++ b/python/ql/src/change-notes/2024-07-19-cookie-injection.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* The `py/cookie-injection` query, originally contributed to the experimental query pack by @jorgectf, has been promoted to the main query pack. This query finds instances of cookies being constructed from user input. \ No newline at end of file diff --git a/python/ql/src/change-notes/released/1.0.4.md b/python/ql/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/python/ql/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/python/ql/src/experimental/Security/CWE-614/CookieInjection.qhelp b/python/ql/src/experimental/Security/CWE-614/CookieInjection.qhelp deleted file mode 100644 index 4b5ec11726c4f..0000000000000 --- a/python/ql/src/experimental/Security/CWE-614/CookieInjection.qhelp +++ /dev/null @@ -1,28 +0,0 @@ - - - - -

    Constructing cookies from user input may allow an attacker to perform a Cookie Poisoning attack. -It is possible, however, to perform other parameter-like attacks through cookie poisoning techniques, -such as SQL Injection, Directory Traversal, or Stealth Commanding, etc. Additionally, -cookie injection may relate to attempts to perform Access of Administrative Interface. -

    -
    - - -

    Do not use raw user input to construct cookies.

    -
    - - -

    This example shows two ways of adding a cookie to a Flask response. The first way uses set_cookie's -and the second sets a cookie's raw value through a header, both using user-supplied input.

    - -
    - - -
  • Imperva: Cookie injection.
  • -
    - -
    diff --git a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql b/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql deleted file mode 100644 index 4193e37dee245..0000000000000 --- a/python/ql/src/experimental/Security/CWE-614/CookieInjection.ql +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @name Construction of a cookie using user-supplied input. - * @description Constructing cookies from user input may allow an attacker to perform a Cookie Poisoning attack. - * @kind path-problem - * @problem.severity error - * @id py/cookie-injection - * @tags security - * experimental - * external/cwe/cwe-614 - */ - -// determine precision above -import python -import semmle.python.dataflow.new.DataFlow -import experimental.semmle.python.Concepts -import experimental.semmle.python.CookieHeader -import experimental.semmle.python.security.injection.CookieInjection -import CookieInjectionFlow::PathGraph - -from CookieInjectionFlow::PathNode source, CookieInjectionFlow::PathNode sink, string insecure -where - CookieInjectionFlow::flowPath(source, sink) and - if exists(sink.getNode().(CookieSink)) - then insecure = ",and its " + sink.getNode().(CookieSink).getFlag() + " flag is not properly set." - else insecure = "." -select sink.getNode(), source, sink, "Cookie is constructed from a $@" + insecure, source.getNode(), - "user-supplied input" diff --git a/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll b/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll deleted file mode 100644 index 5d31b9f8b511d..0000000000000 --- a/python/ql/src/experimental/semmle/python/security/injection/CookieInjection.qll +++ /dev/null @@ -1,41 +0,0 @@ -import python -import experimental.semmle.python.Concepts -import semmle.python.dataflow.new.DataFlow -import semmle.python.dataflow.new.TaintTracking -import semmle.python.dataflow.new.RemoteFlowSources - -class CookieSink extends DataFlow::Node { - string flag; - - CookieSink() { - exists(Cookie cookie | - this in [cookie.getNameArg(), cookie.getValueArg()] and - ( - not cookie.isSecure() and - flag = "secure" - or - not cookie.isHttpOnly() and - flag = "httponly" - or - not cookie.isSameSite() and - flag = "samesite" - ) - ) - } - - string getFlag() { result = flag } -} - -/** - * A taint-tracking configuration for detecting Cookie injections. - */ -private module CookieInjectionConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node source) { source instanceof RemoteFlowSource } - - predicate isSink(DataFlow::Node sink) { - exists(Cookie c | sink in [c.getNameArg(), c.getValueArg()]) - } -} - -/** Global taint-tracking for detecting "Cookie injections" vulnerabilities. */ -module CookieInjectionFlow = TaintTracking::Global; diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index e12dd98749562..6c6bf5f7798f0 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - python - queries diff --git a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected b/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected deleted file mode 100644 index 80dcbae21773d..0000000000000 --- a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.expected +++ /dev/null @@ -1,51 +0,0 @@ -edges -| django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | provenance | | -| django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | provenance | | -| flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:1:26:1:32 | ControlFlowNode for request | provenance | | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:21:24:27 | ControlFlowNode for request | provenance | | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:24:49:24:55 | ControlFlowNode for request | provenance | | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:37:32:43 | ControlFlowNode for request | provenance | | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | flask_bad.py:32:60:32:66 | ControlFlowNode for request | provenance | | -| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | provenance | AdditionalTaintStep | -| flask_bad.py:24:21:24:27 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | provenance | AdditionalTaintStep | -| flask_bad.py:24:49:24:55 | ControlFlowNode for request | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | provenance | AdditionalTaintStep | -| flask_bad.py:32:37:32:43 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | provenance | AdditionalTaintStep | -| flask_bad.py:32:60:32:66 | ControlFlowNode for request | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | provenance | AdditionalTaintStep | -nodes -| django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | -| django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | -| flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | semmle.label | ControlFlowNode for ImportMember | -| flask_bad.py:1:26:1:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| flask_bad.py:24:21:24:27 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | -| flask_bad.py:24:49:24:55 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | semmle.label | ControlFlowNode for Subscript | -| flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | -| flask_bad.py:32:37:32:43 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -| flask_bad.py:32:60:32:66 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | -subpaths -#select -| django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its httponly flag is not properly set. | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its samesite flag is not properly set. | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its secure flag is not properly set. | django_bad.py:19:21:19:55 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its httponly flag is not properly set. | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its samesite flag is not properly set. | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | Cookie is constructed from a $@,and its secure flag is not properly set. | django_bad.py:20:21:20:56 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its httponly flag is not properly set. | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its samesite flag is not properly set. | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its secure flag is not properly set. | django_bad.py:27:33:27:67 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its httponly flag is not properly set. | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its samesite flag is not properly set. | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | user-supplied input | -| django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | django_bad.py:27:30:27:124 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its secure flag is not properly set. | django_bad.py:27:71:27:106 | ControlFlowNode for Attribute() | user-supplied input | -| flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its httponly flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its samesite flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:21:24:40 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its secure flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its httponly flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its samesite flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:24:49:24:69 | ControlFlowNode for Subscript | Cookie is constructed from a $@,and its secure flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its httponly flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its samesite flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | -| flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | flask_bad.py:32:34:32:98 | ControlFlowNode for Fstring | Cookie is constructed from a $@,and its secure flag is not properly set. | flask_bad.py:1:26:1:32 | ControlFlowNode for ImportMember | user-supplied input | diff --git a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.qlref b/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.qlref deleted file mode 100644 index 5710a3322dec5..0000000000000 --- a/python/ql/test/experimental/query-tests/Security/CWE-614/CookieInjection.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE-614/CookieInjection.ql diff --git a/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.expected b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.expected new file mode 100644 index 0000000000000..366de37b86775 --- /dev/null +++ b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.expected @@ -0,0 +1,4 @@ +argumentToEnsureNotTaintedNotMarkedAsSpurious +untaintedArgumentToEnsureTaintedNotMarkedAsMissing +testFailures +failures diff --git a/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.ql b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.ql new file mode 100644 index 0000000000000..8524da5fe7dbc --- /dev/null +++ b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/InlineTaintTest.ql @@ -0,0 +1,2 @@ +import experimental.meta.InlineTaintTest +import MakeInlineTaintTest diff --git a/python/ql/test/library-tests/dataflow/tainttracking/isinstance/test.py b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/test.py new file mode 100644 index 0000000000000..edd9eba2c243d --- /dev/null +++ b/python/ql/test/library-tests/dataflow/tainttracking/isinstance/test.py @@ -0,0 +1,11 @@ +def impossible_flow(cond: bool): + TAINTED_STRING = "ts" + x = (TAINTED_STRING, 42) if cond else "SAFE" + + if isinstance(x, str): + # tainted-flow to here is impossible, replicated from path-flow seen in a real + # repo. + ensure_not_tainted(x) # $ SPURIOUS: tainted + else: + ensure_tainted(x) # $ tainted + ensure_tainted(x[0]) # $ tainted diff --git a/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.expected b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.expected new file mode 100644 index 0000000000000..cf3a06ac7c8f1 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.expected @@ -0,0 +1,28 @@ +edges +| django_tests.py:4:25:4:31 | ControlFlowNode for request | django_tests.py:6:21:6:31 | ControlFlowNode for Attribute | provenance | AdditionalTaintStep | +| django_tests.py:4:25:4:31 | ControlFlowNode for request | django_tests.py:7:21:7:31 | ControlFlowNode for Attribute | provenance | AdditionalTaintStep | +| django_tests.py:6:21:6:31 | ControlFlowNode for Attribute | django_tests.py:6:21:6:43 | ControlFlowNode for Attribute() | provenance | dict.get | +| django_tests.py:7:21:7:31 | ControlFlowNode for Attribute | django_tests.py:7:21:7:44 | ControlFlowNode for Attribute() | provenance | dict.get | +| django_tests.py:11:26:11:32 | ControlFlowNode for request | django_tests.py:13:33:13:43 | ControlFlowNode for Attribute | provenance | AdditionalTaintStep | +| django_tests.py:11:26:11:32 | ControlFlowNode for request | django_tests.py:13:59:13:69 | ControlFlowNode for Attribute | provenance | AdditionalTaintStep | +| django_tests.py:13:33:13:43 | ControlFlowNode for Attribute | django_tests.py:13:33:13:55 | ControlFlowNode for Attribute() | provenance | dict.get | +| django_tests.py:13:33:13:55 | ControlFlowNode for Attribute() | django_tests.py:13:30:13:100 | ControlFlowNode for Fstring | provenance | | +| django_tests.py:13:59:13:69 | ControlFlowNode for Attribute | django_tests.py:13:59:13:82 | ControlFlowNode for Attribute() | provenance | dict.get | +| django_tests.py:13:59:13:82 | ControlFlowNode for Attribute() | django_tests.py:13:30:13:100 | ControlFlowNode for Fstring | provenance | | +nodes +| django_tests.py:4:25:4:31 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| django_tests.py:6:21:6:31 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| django_tests.py:6:21:6:43 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| django_tests.py:7:21:7:31 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| django_tests.py:7:21:7:44 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| django_tests.py:11:26:11:32 | ControlFlowNode for request | semmle.label | ControlFlowNode for request | +| django_tests.py:13:30:13:100 | ControlFlowNode for Fstring | semmle.label | ControlFlowNode for Fstring | +| django_tests.py:13:33:13:43 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| django_tests.py:13:33:13:55 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| django_tests.py:13:59:13:69 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| django_tests.py:13:59:13:82 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +subpaths +#select +| django_tests.py:6:21:6:43 | ControlFlowNode for Attribute() | django_tests.py:4:25:4:31 | ControlFlowNode for request | django_tests.py:6:21:6:43 | ControlFlowNode for Attribute() | Cookie is constructed from a $@. | django_tests.py:4:25:4:31 | ControlFlowNode for request | user-supplied input | +| django_tests.py:7:21:7:44 | ControlFlowNode for Attribute() | django_tests.py:4:25:4:31 | ControlFlowNode for request | django_tests.py:7:21:7:44 | ControlFlowNode for Attribute() | Cookie is constructed from a $@. | django_tests.py:4:25:4:31 | ControlFlowNode for request | user-supplied input | +| django_tests.py:13:30:13:100 | ControlFlowNode for Fstring | django_tests.py:11:26:11:32 | ControlFlowNode for request | django_tests.py:13:30:13:100 | ControlFlowNode for Fstring | Cookie is constructed from a $@. | django_tests.py:11:26:11:32 | ControlFlowNode for request | user-supplied input | diff --git a/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.qlref b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.qlref new file mode 100644 index 0000000000000..a405c564b1bfb --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/CookieInjection.qlref @@ -0,0 +1 @@ +Security/CWE-020/CookieInjection.ql \ No newline at end of file diff --git a/python/ql/test/query-tests/Security/CWE-020-CookieInjection/django_tests.py b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/django_tests.py new file mode 100644 index 0000000000000..e070f5cab82b8 --- /dev/null +++ b/python/ql/test/query-tests/Security/CWE-020-CookieInjection/django_tests.py @@ -0,0 +1,20 @@ +import django.http +from django.urls import path + +def django_response_bad(request): + resp = django.http.HttpResponse() + resp.set_cookie(request.GET.get("name"), # BAD: Cookie is constructed from user input + request.GET.get("value")) + return resp + + +def django_response_bad2(request): + response = django.http.HttpResponse() + response['Set-Cookie'] = f"{request.GET.get('name')}={request.GET.get('value')}; SameSite=None;" # BAD: Cookie header is constructed from user input. + return response + +# fake setup, you can't actually run this +urlpatterns = [ + path("response_bad", django_response_bad), + path("response_bd2", django_response_bad2) +] \ No newline at end of file diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index 140cdd2cdba66..865dc997f3a61 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 ### Minor Analysis Improvements diff --git a/ruby/ql/lib/change-notes/released/1.0.4.md b/ruby/ql/lib/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll index 7bde4c8f9ac96..6fef4d1222c68 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowPrivate.qll @@ -2077,9 +2077,6 @@ DataFlowType getNodeType(Node n) { result = TUnknownDataFlowType() } -/** Gets a string representation of a `DataFlowType`. */ -string ppReprType(DataFlowType t) { none() } - pragma[inline] private predicate compatibleTypesNonSymRefl(DataFlowType t1, DataFlowType t2) { t1 != TUnknownDataFlowType() and diff --git a/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingCustomizations.qll b/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingCustomizations.qll new file mode 100644 index 0000000000000..92ba8492c5ac4 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingCustomizations.qll @@ -0,0 +1,238 @@ +/** + * Provides default sources, sinks and sanitizers for detecting + * "use of a broken or weak cryptographic hashing algorithm on sensitive data" + * vulnerabilities, as well as extension points for adding your own. + */ + +private import ruby +private import codeql.ruby.Concepts +private import codeql.ruby.security.SensitiveActions +private import codeql.ruby.dataflow.BarrierGuards +private import codeql.ruby.dataflow.SSA + +private module SensitiveDataSources { + /** + * A data flow source of sensitive data, such as secrets, certificates, or passwords. + * + * Extend this class to refine existing API models. If you want to model new APIs, + * extend `SensitiveDataSource::Range` instead. + */ + class SensitiveDataSource extends DataFlow::Node instanceof SensitiveDataSource::Range { + /** + * Gets the classification of the sensitive data. + */ + SensitiveDataClassification getClassification() { result = super.getClassification() } + } + + /** Provides a class for modeling new sources of sensitive data, such as secrets, certificates, or passwords. */ + module SensitiveDataSource { + /** + * A data flow source of sensitive data, such as secrets, certificates, or passwords. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `SensitiveDataSource` instead. + */ + abstract class Range extends DataFlow::Node { + /** + * Gets the classification of the sensitive data. + */ + abstract SensitiveDataClassification getClassification(); + } + } + + /** + * A call to a method that may return sensitive data. + */ + class SensitiveMethodCall extends SensitiveDataSource::Range instanceof SensitiveCall { + override SensitiveDataClassification getClassification() { + result = SensitiveCall.super.getClassification() + } + } + + /** + * An assignment to a variable that may contain sensitive data. + */ + class SensitiveVariableAssignment extends SensitiveDataSource::Range, DataFlow::SsaDefinitionNode { + SensitiveNode sensitiveNode; + + SensitiveVariableAssignment() { + this.getDefinition().(Ssa::WriteDefinition).getWriteAccess() = sensitiveNode.asExpr() + } + + override SensitiveDataClassification getClassification() { + result = sensitiveNode.getClassification() + } + } + + /** + * A read from a hash value that may return sensitive data. + */ + class SensitiveHashValueAccess extends SensitiveDataSource::Range instanceof SensitiveNode { + SensitiveHashValueAccess() { + this.asExpr() instanceof Cfg::CfgNodes::ExprNodes::ElementReferenceCfgNode + } + + override SensitiveDataClassification getClassification() { + result = SensitiveNode.super.getClassification() + } + } + + /** + * A parameter node that may contain sensitive data. + */ + class SensitiveParameter extends SensitiveDataSource::Range, DataFlow::ParameterNode instanceof SensitiveNode + { + override SensitiveDataClassification getClassification() { + result = SensitiveNode.super.getClassification() + } + } +} + +/** + * Provides default sources, sinks and sanitizers for detecting + * "use of a broken or weak cryptographic hashing algorithm on sensitive data" + * vulnerabilities on sensitive data that does NOT require computationally expensive + * hashing, as well as extension points for adding your own. + * + * Also see the `ComputationallyExpensiveHashFunction` module. + */ +module NormalHashFunction { + /** + * A data flow source for "use of a broken or weak cryptographic hashing algorithm on + * sensitive data" vulnerabilities. + */ + abstract class Source extends DataFlow::Node { + Source() { not this instanceof ComputationallyExpensiveHashFunction::Source } + + /** Gets the classification of the sensitive data. */ + abstract string getClassification(); + } + + /** + * A data flow sink for "use of a broken or weak cryptographic hashing algorithm on + * sensitive data" vulnerabilities. + */ + abstract class Sink extends DataFlow::Node { + /** + * Gets the name of the weak hashing algorithm. + */ + abstract string getAlgorithmName(); + } + + /** + * A sanitizer for "use of a broken or weak cryptographic hashing algorithm on + * sensitive data" vulnerabilities. + */ + abstract class Sanitizer extends DataFlow::Node { } + + /** + * A source of sensitive data, considered as a flow source. + */ + class SensitiveDataSourceAsSource extends Source instanceof SensitiveDataSources::SensitiveDataSource + { + override SensitiveDataClassification getClassification() { + result = SensitiveDataSources::SensitiveDataSource.super.getClassification() + } + } + + /** The input to a hashing operation using a weak algorithm, considered as a flow sink. */ + class WeakHashingOperationInputSink extends Sink { + Cryptography::HashingAlgorithm algorithm; + + WeakHashingOperationInputSink() { + exists(Cryptography::CryptographicOperation operation | + algorithm = operation.getAlgorithm() and + algorithm.isWeak() and + this = operation.getAnInput() + ) + } + + override string getAlgorithmName() { result = algorithm.getName() } + } +} + +/** + * Provides default sources, sinks and sanitizers for detecting + * "use of a broken or weak cryptographic hashing algorithm on sensitive data" + * vulnerabilities on sensitive data that DOES require computationally expensive + * hashing, as well as extension points for adding your own. + * + * Also see the `NormalHashFunction` module. + */ +module ComputationallyExpensiveHashFunction { + /** + * A data flow source of sensitive data that requires computationally expensive + * hashing for "use of a broken or weak cryptographic hashing algorithm on sensitive + * data" vulnerabilities. + */ + abstract class Source extends DataFlow::Node { + /** Gets the classification of the sensitive data. */ + abstract string getClassification(); + } + + /** + * A data flow sink for sensitive data that requires computationally expensive + * hashing for "use of a broken or weak cryptographic hashing algorithm on sensitive + * data" vulnerabilities. + */ + abstract class Sink extends DataFlow::Node { + /** + * Gets the name of the weak hashing algorithm. + */ + abstract string getAlgorithmName(); + + /** + * Holds if this sink is for a computationally expensive hash function (meaning that + * hash function is just weak in some other regard. + */ + abstract predicate isComputationallyExpensive(); + } + + /** + * A sanitizer of sensitive data that requires computationally expensive + * hashing for "use of a broken or weak cryptographic hashing + * algorithm on sensitive data" vulnerabilities. + */ + abstract class Sanitizer extends DataFlow::Node { } + + /** + * A source of passwords, considered as a flow source. + */ + class PasswordSourceAsSource extends Source instanceof SensitiveDataSources::SensitiveDataSource { + PasswordSourceAsSource() { + this.(SensitiveDataSources::SensitiveDataSource).getClassification() = + SensitiveDataClassification::password() + } + + override SensitiveDataClassification getClassification() { + result = SensitiveDataSources::SensitiveDataSource.super.getClassification() + } + } + + /** + * The input to a password hashing operation using a weak algorithm, considered as a + * flow sink. + */ + class WeakPasswordHashingOperationInputSink extends Sink { + Cryptography::CryptographicAlgorithm algorithm; + + WeakPasswordHashingOperationInputSink() { + ( + algorithm instanceof Cryptography::PasswordHashingAlgorithm and + algorithm.isWeak() + or + algorithm instanceof Cryptography::HashingAlgorithm // Note that HashingAlgorithm and PasswordHashingAlgorithm are disjoint + ) and + exists(Cryptography::CryptographicOperation operation | + algorithm = operation.getAlgorithm() and + this = operation.getAnInput() + ) + } + + override string getAlgorithmName() { result = algorithm.getName() } + + override predicate isComputationallyExpensive() { + algorithm instanceof Cryptography::PasswordHashingAlgorithm + } + } +} diff --git a/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingQuery.qll b/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingQuery.qll new file mode 100644 index 0000000000000..dd9c389b4c348 --- /dev/null +++ b/ruby/ql/lib/codeql/ruby/security/WeakSensitiveDataHashingQuery.qll @@ -0,0 +1,87 @@ +/** + * Provides a taint-tracking configuration for detecting use of a broken or weak + * cryptographic hashing algorithm on sensitive data. + * + * Note, for performance reasons: only import this file if + * `WeakSensitiveDataHashing::Configuration` is needed, otherwise + * `WeakSensitiveDataHashingCustomizations` should be imported instead. + */ + +private import ruby +private import codeql.ruby.Concepts +private import codeql.ruby.TaintTracking +private import codeql.ruby.dataflow.RemoteFlowSources +private import codeql.ruby.dataflow.BarrierGuards +private import codeql.ruby.security.SensitiveActions + +/** + * Provides a taint-tracking configuration for detecting use of a broken or weak + * cryptographic hash function on sensitive data, that does NOT require a + * computationally expensive hash function. + */ +module NormalHashFunction { + import WeakSensitiveDataHashingCustomizations::NormalHashFunction + + private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + } + + /** Global taint-tracking for detecting "use of a broken or weak cryptographic hashing algorithm on sensitive data" vulnerabilities. */ + module Flow = TaintTracking::Global; +} + +/** + * Provides a taint-tracking configuration for detecting use of a broken or weak + * cryptographic hashing algorithm on passwords. + * + * Passwords has stricter requirements on the hashing algorithm used (must be + * computationally expensive to prevent brute-force attacks). + */ +module ComputationallyExpensiveHashFunction { + import WeakSensitiveDataHashingCustomizations::ComputationallyExpensiveHashFunction + + /** + * Passwords has stricter requirements on the hashing algorithm used (must be + * computationally expensive to prevent brute-force attacks). + */ + private module Config implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { source instanceof Source } + + predicate isSink(DataFlow::Node sink) { sink instanceof Sink } + + predicate isBarrier(DataFlow::Node node) { node instanceof Sanitizer } + } + + /** Global taint-tracking for detecting "use of a broken or weak cryptographic hashing algorithm on passwords" vulnerabilities. */ + module Flow = TaintTracking::Global; +} + +/** + * Global taint-tracking for detecting both variants of "use of a broken or weak + * cryptographic hashing algorithm on sensitive data" vulnerabilities. + * + * See convenience predicates `normalHashFunctionFlowPath` and + * `computationallyExpensiveHashFunctionFlowPath`. + */ +module WeakSensitiveDataHashingFlow = + DataFlow::MergePathGraph; + +/** Holds if data can flow from `source` to `sink` with `NormalHashFunction::Flow`. */ +predicate normalHashFunctionFlowPath( + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink +) { + NormalHashFunction::Flow::flowPath(source.asPathNode1(), sink.asPathNode1()) +} + +/** Holds if data can flow from `source` to `sink` with `ComputationallyExpensiveHashFunction::Flow`. */ +predicate computationallyExpensiveHashFunctionFlowPath( + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink +) { + ComputationallyExpensiveHashFunction::Flow::flowPath(source.asPathNode2(), sink.asPathNode2()) +} diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index caf4ecc62ec4b..6cee97698704c 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 1.0.4-dev +version: 1.0.5-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 766deb435824b..ac5d0c7525c02 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2024-06-18-weak-sensitive-data-hashing-query.md b/ruby/ql/src/change-notes/2024-06-18-weak-sensitive-data-hashing-query.md new file mode 100644 index 0000000000000..6fffd21d616c6 --- /dev/null +++ b/ruby/ql/src/change-notes/2024-06-18-weak-sensitive-data-hashing-query.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `rb/weak-sensitive-data-hashing`, to detect cases where sensitive data is hashed using a weak cryptographic hashing algorithm. diff --git a/ruby/ql/src/change-notes/released/1.0.4.md b/ruby/ql/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index c6503d479c3e9..c1c895167bcd0 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - ruby - queries diff --git a/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.qhelp b/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.qhelp new file mode 100644 index 0000000000000..422cbb835141e --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.qhelp @@ -0,0 +1,104 @@ + + + +

    + Using a broken or weak cryptographic hash function can leave data + vulnerable, and should not be used in security related code. +

    + +

    + A strong cryptographic hash function should be resistant to: +

    +
      +
    • + pre-image attacks: if you know a hash value h(x), + you should not be able to easily find the input x. +
    • +
    • + collision attacks: if you know a hash value h(x), + you should not be able to easily find a different input y + with the same hash value h(x) = h(y). +
    • +
    +

    + In cases with a limited input space, such as for passwords, the hash + function also needs to be computationally expensive to be resistant to + brute-force attacks. Passwords should also have an unique salt applied + before hashing, but that is not considered by this query. +

    + +

    + As an example, both MD5 and SHA-1 are known to be vulnerable to collision attacks. +

    + +

    + Since it's OK to use a weak cryptographic hash function in a non-security + context, this query only alerts when these are used to hash sensitive + data (such as passwords, certificates, usernames). +

    + +

    + Use of broken or weak cryptographic algorithms that are not hashing algorithms, is + handled by the rb/weak-cryptographic-algorithm query. +

    + +
    + + +

    + Ensure that you use a strong, modern cryptographic hash function: +

    + +
      +
    • + such as Argon2, scrypt, bcrypt, or PBKDF2 for passwords and other data with limited input space. +
    • +
    • + such as SHA-2, or SHA-3 in other cases. +
    • +
    + +
    + + +

    + The following example shows two functions for checking whether the hash + of a certificate matches a known value -- to prevent tampering. + + The first function uses MD5 that is known to be vulnerable to collision attacks. + + The second function uses SHA-256 that is a strong cryptographic hashing function. +

    + + + +
    + +

    + The following example shows two functions for hashing passwords. + + The first function uses SHA-256 to hash passwords. Although SHA-256 is a + strong cryptographic hash function, it is not suitable for password + hashing since it is not computationally expensive. +

    + + + + +

    + The second function uses Argon2 (through the argon2 + gem), which is a strong password hashing algorithm (and + includes a per-password salt by default). +

    + + + +
    + + +
  • OWASP: Password Storage Cheat Sheet
  • +
    + +
    diff --git a/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.ql b/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.ql new file mode 100644 index 0000000000000..64d9615837df1 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-327/WeakSensitiveDataHashing.ql @@ -0,0 +1,43 @@ +/** + * @name Use of a broken or weak cryptographic hashing algorithm on sensitive data + * @description Using broken or weak cryptographic hashing algorithms can compromise security. + * @kind path-problem + * @problem.severity warning + * @security-severity 7.5 + * @precision high + * @id rb/weak-sensitive-data-hashing + * @tags security + * external/cwe/cwe-327 + * external/cwe/cwe-328 + * external/cwe/cwe-916 + */ + +import ruby +import codeql.ruby.security.WeakSensitiveDataHashingQuery +import WeakSensitiveDataHashingFlow::PathGraph + +from + WeakSensitiveDataHashingFlow::PathNode source, WeakSensitiveDataHashingFlow::PathNode sink, + string ending, string algorithmName, string classification +where + normalHashFunctionFlowPath(source, sink) and + algorithmName = sink.getNode().(NormalHashFunction::Sink).getAlgorithmName() and + classification = source.getNode().(NormalHashFunction::Source).getClassification() and + ending = "." + or + computationallyExpensiveHashFunctionFlowPath(source, sink) and + algorithmName = sink.getNode().(ComputationallyExpensiveHashFunction::Sink).getAlgorithmName() and + classification = + source.getNode().(ComputationallyExpensiveHashFunction::Source).getClassification() and + ( + sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and + ending = "." + or + not sink.getNode().(ComputationallyExpensiveHashFunction::Sink).isComputationallyExpensive() and + ending = + " for " + classification + + " hashing, since it is not a computationally expensive hash function." + ) +select sink.getNode(), source, sink, + "$@ is used in a hashing algorithm (" + algorithmName + ") that is insecure" + ending, + source.getNode(), "Sensitive data (" + classification + ")" diff --git a/ruby/ql/src/queries/security/cwe-327/examples/weak_certificate_hashing.rb b/ruby/ql/src/queries/security/cwe-327/examples/weak_certificate_hashing.rb new file mode 100644 index 0000000000000..f2456a42b0741 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-327/examples/weak_certificate_hashing.rb @@ -0,0 +1,11 @@ +require 'openssl' + +def certificate_matches_known_hash_bad(certificate, known_hash) + hash = OpenSSL::Digest.new('SHA1').digest certificate + hash == known_hash +end + +def certificate_matches_known_hash_good(certificate, known_hash) + hash = OpenSSL::Digest.new('SHA256').digest certificate + hash == known_hash +end diff --git a/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_bad.rb b/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_bad.rb new file mode 100644 index 0000000000000..db0968f0c3b55 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_bad.rb @@ -0,0 +1,5 @@ +require 'openssl' + +def get_password_hash(password, salt) + OpenSSL::Digest.new('SHA256').digest(password + salt) # BAD +end diff --git a/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_good.rb b/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_good.rb new file mode 100644 index 0000000000000..37a18753aee76 --- /dev/null +++ b/ruby/ql/src/queries/security/cwe-327/examples/weak_password_hashing_good.rb @@ -0,0 +1,9 @@ +require 'argon2' + +def get_initial_hash(password) + Argon2::Password.create(password) +end + +def check_password(password, known_hash) + Argon2::Password.verify_password(password, known_hash) +end diff --git a/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.expected b/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.expected new file mode 100644 index 0000000000000..0ad72554019fa --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.expected @@ -0,0 +1,28 @@ +edges +| weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:6:1:6:1 | x | provenance | | +| weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:10:23:10:30 | password | provenance | | +| weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:11:32:11:39 | password | provenance | | +| weak_hashing.rb:4:1:4:8 | username | weak_hashing.rb:12:23:12:30 | username | provenance | | +| weak_hashing.rb:6:1:6:1 | x | weak_hashing.rb:13:23:13:23 | x | provenance | | +| weak_hashing.rb:30:25:30:38 | password_param | weak_hashing.rb:32:25:32:38 | password_param | provenance | | +nodes +| weak_hashing.rb:3:1:3:8 | password | semmle.label | password | +| weak_hashing.rb:4:1:4:8 | username | semmle.label | username | +| weak_hashing.rb:6:1:6:1 | x | semmle.label | x | +| weak_hashing.rb:10:23:10:30 | password | semmle.label | password | +| weak_hashing.rb:11:32:11:39 | password | semmle.label | password | +| weak_hashing.rb:12:23:12:30 | username | semmle.label | username | +| weak_hashing.rb:13:23:13:23 | x | semmle.label | x | +| weak_hashing.rb:24:23:24:36 | call to get_password | semmle.label | call to get_password | +| weak_hashing.rb:28:23:28:42 | ...[...] | semmle.label | ...[...] | +| weak_hashing.rb:30:25:30:38 | password_param | semmle.label | password_param | +| weak_hashing.rb:32:25:32:38 | password_param | semmle.label | password_param | +subpaths +#select +| weak_hashing.rb:10:23:10:30 | password | weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:10:23:10:30 | password | $@ is used in a hashing algorithm (MD5) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:3:1:3:8 | password | Sensitive data (password) | +| weak_hashing.rb:11:32:11:39 | password | weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:11:32:11:39 | password | $@ is used in a hashing algorithm (SHA1) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:3:1:3:8 | password | Sensitive data (password) | +| weak_hashing.rb:12:23:12:30 | username | weak_hashing.rb:4:1:4:8 | username | weak_hashing.rb:12:23:12:30 | username | $@ is used in a hashing algorithm (MD5) that is insecure. | weak_hashing.rb:4:1:4:8 | username | Sensitive data (id) | +| weak_hashing.rb:13:23:13:23 | x | weak_hashing.rb:3:1:3:8 | password | weak_hashing.rb:13:23:13:23 | x | $@ is used in a hashing algorithm (MD5) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:3:1:3:8 | password | Sensitive data (password) | +| weak_hashing.rb:24:23:24:36 | call to get_password | weak_hashing.rb:24:23:24:36 | call to get_password | weak_hashing.rb:24:23:24:36 | call to get_password | $@ is used in a hashing algorithm (MD5) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:24:23:24:36 | call to get_password | Sensitive data (password) | +| weak_hashing.rb:28:23:28:42 | ...[...] | weak_hashing.rb:28:23:28:42 | ...[...] | weak_hashing.rb:28:23:28:42 | ...[...] | $@ is used in a hashing algorithm (MD5) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:28:23:28:42 | ...[...] | Sensitive data (password) | +| weak_hashing.rb:32:25:32:38 | password_param | weak_hashing.rb:30:25:30:38 | password_param | weak_hashing.rb:32:25:32:38 | password_param | $@ is used in a hashing algorithm (MD5) that is insecure for password hashing, since it is not a computationally expensive hash function. | weak_hashing.rb:30:25:30:38 | password_param | Sensitive data (password) | diff --git a/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.qlref b/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.qlref new file mode 100644 index 0000000000000..dcb5a4e62a7e5 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-327/WeakSensitiveDataHashing.qlref @@ -0,0 +1 @@ +queries/security/cwe-327/WeakSensitiveDataHashing.ql \ No newline at end of file diff --git a/ruby/ql/test/query-tests/security/cwe-327/weak_hashing.rb b/ruby/ql/test/query-tests/security/cwe-327/weak_hashing.rb new file mode 100644 index 0000000000000..cff4263c40d86 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-327/weak_hashing.rb @@ -0,0 +1,33 @@ +require 'openssl' + +password = "abcde" +username = "some_user" +some_data = "foo" +x = password + +Digest::MD5.hexdigest(some_data) # OK: input is not sensitive +Digest::SHA256.hexdigest(password) # OK: strong hash algorithm +Digest::MD5.hexdigest(password) # BAD: weak hash function used for sensitive data +OpenSSL::Digest.digest('SHA1', password) # BAD: weak hash function used for sensitive data +Digest::MD5.hexdigest(username) # BAD: weak hash function used for sensitive data +Digest::MD5.hexdigest(x) # BAD: weak hash function used for sensitive data + +def get_safe_data() + return "hello" +end + +def get_password() + return "changeme" +end + +Digest::MD5.hexdigest(get_safe_data()) # OK: input is not sensitive +Digest::MD5.hexdigest(get_password()) # BAD: weak hash function used for sensitive data + +some_hash = {password: "changeme", foo: "bar"} +Digest::MD5.hexdigest(some_hash[:foo]) # OK: input is not sensitive +Digest::MD5.hexdigest(some_hash[:password]) # BAD: weak hash function used for sensitive data + +def a_method(safe_data, password_param) + Digest::MD5.hexdigest(safe_data) # OK: input is not sensitive + Digest::MD5.hexdigest(password_param) # BAD: weak hash function used for sensitive data +end diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index dab49cbe60775..047afa97e5104 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/1.0.4.md b/shared/controlflow/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/controlflow/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 72d92972d099a..e981c2fed5dc4 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index ae88f0beac819..ca6c7165b9bf0 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/1.0.4.md b/shared/dataflow/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/dataflow/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 6d6a08d371808..bbde158b8a648 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -124,8 +124,6 @@ signature module InputSig { string toString(); } - string ppReprType(DataFlowType t); - /** * Holds if `t1` and `t2` are compatible types. * diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index df081d021750f..f293834d3d711 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -3445,9 +3445,11 @@ module MakeImpl Lang> { AccessPathApproxConsNil() { this = TConsNil(c, t) } + private string ppTyp() { result = t.toString() and result != "" } + override string toString() { - // The `concat` becomes "" if `ppReprType` has no result. - result = "[" + c.toString() + "]" + concat(" : " + ppReprType(t)) + // The `concat` becomes "" if `ppTyp` has no result. + result = "[" + c.toString() + "]" + concat(" : " + this.ppTyp()) } override Content getHead() { result = c } @@ -3668,7 +3670,9 @@ module MakeImpl Lang> { ParamNodeEx getParamNode() { result = p } - override string toString() { result = p + concat(" : " + ppReprType(t)) + " " + ap } + private string ppTyp() { result = t.toString() and result != "" } + + override string toString() { result = p + concat(" : " + this.ppTyp()) + " " + ap } Location getLocation() { result = p.getLocation() } } @@ -3935,10 +3939,12 @@ module MakeImpl Lang> { override int length() { result = 1 + tail_.length() } + private string ppTyp() { result = t.toString() and result != "" } + private string toStringImpl(boolean needsSuffix) { tail_ = TAccessPathNil() and needsSuffix = false and - result = head_.toString() + "]" + concat(" : " + ppReprType(t)) + result = head_.toString() + "]" + concat(" : " + this.ppTyp()) or result = head_ + ", " + tail_.(AccessPathCons).toStringImpl(needsSuffix) or @@ -4087,9 +4093,8 @@ module MakeImpl Lang> { private string ppType() { this instanceof PathNodeSink and result = "" or - exists(DataFlowType t | t = this.(PathNodeMid).getType() | - // The `concat` becomes "" if `ppReprType` has no result. - result = concat(" : " + ppReprType(t)) + exists(string t | t = this.(PathNodeMid).getType().toString() | + if t = "" then result = "" else result = " : " + t ) } @@ -5402,9 +5407,8 @@ module MakeImpl Lang> { private string ppType() { this instanceof PartialPathNodeRev and result = "" or - exists(DataFlowType t | t = this.(PartialPathNodeFwd).getType() | - // The `concat` becomes "" if `ppReprType` has no result. - result = concat(" : " + ppReprType(t)) + exists(string t | t = this.(PartialPathNodeFwd).getType().toString() | + if t = "" then result = "" else result = " : " + t ) } diff --git a/shared/dataflow/codeql/dataflow/test/ProvenancePathGraph.qll b/shared/dataflow/codeql/dataflow/test/ProvenancePathGraph.qll index 0b606dc98dcb1..8a5bdb15be55f 100644 --- a/shared/dataflow/codeql/dataflow/test/ProvenancePathGraph.qll +++ b/shared/dataflow/codeql/dataflow/test/ProvenancePathGraph.qll @@ -9,6 +9,8 @@ module; signature predicate interpretModelForTestSig(QlBuiltins::ExtensionId madId, string model); +signature predicate queryResultsSig(string relation, int row, int column, string data); + signature class PathNodeSig { string toString(); } @@ -28,14 +30,14 @@ signature module PathGraphSig { predicate subpaths(PathNode arg, PathNode par, PathNode ret, PathNode out); } -/** Transforms a `PathGraph` by printing the provenance information. */ -module ShowProvenance< - interpretModelForTestSig/2 interpretModelForTest, PathNodeSig PathNode, - PathGraphSig PathGraph> +private signature predicate provenanceSig(string model); + +private module TranslateModels< + interpretModelForTestSig/2 interpretModelForTest, provenanceSig/1 provenance> { private predicate madIds(string madId) { exists(string model | - PathGraph::edges(_, _, _, model) and + provenance(model) and model.regexpFind("(?<=MaD:)[0-9]*", _, _) = madId ) } @@ -44,14 +46,15 @@ module ShowProvenance< madId = rank[r](string madId0 | madIds(madId0) | madId0 order by madId0.toInt()) } - query predicate models(int r, string model) { + /** Lists the renumbered and pretty-printed models used in the edges relation. */ + predicate models(int r, string model) { exists(QlBuiltins::ExtensionId madId | rankedMadIds(madId.toString(), r) and interpretModelForTest(madId, model) ) } private predicate translateModelsPart(string model1, string model2, int i) { - PathGraph::edges(_, _, _, model1) and + provenance(model1) and exists(string s | model1.splitAt("MaD:", i) = s | model2 = s and i = 0 or @@ -65,17 +68,29 @@ module ShowProvenance< ) } - private predicate translateModels(string model1, string model2) { + predicate translateModels(string model1, string model2) { exists(int i | translateModelsPart(model1, model2, i) and not translateModelsPart(model1, _, i + 1) ) } +} + +/** Transforms a `PathGraph` by printing the provenance information. */ +module ShowProvenance< + interpretModelForTestSig/2 interpretModelForTest, PathNodeSig PathNode, + PathGraphSig PathGraph> +{ + private predicate provenance(string model) { PathGraph::edges(_, _, _, model) } + + private module Models = TranslateModels; + + query predicate models(int r, string model) { Models::models(r, model) } query predicate edges(PathNode a, PathNode b, string key, string val) { exists(string model | PathGraph::edges(a, b, key, model) and - translateModels(model, val) + Models::translateModels(model, val) ) } @@ -83,3 +98,36 @@ module ShowProvenance< query predicate subpaths = PathGraph::subpaths/4; } + +/** Transforms a `PathGraph` by printing the provenance information. */ +module TranslateProvenanceResults< + interpretModelForTestSig/2 interpretModelForTest, queryResultsSig/4 queryResults> +{ + private int provenanceColumn() { result = 5 } + + private predicate provenance(string model) { queryResults("edges", _, provenanceColumn(), model) } + + private module Models = TranslateModels; + + predicate results(string relation, int row, int column, string data) { + queryResults(relation, row, column, data) and + (relation != "edges" or column != provenanceColumn()) + or + exists(string model | + relation = "edges" and + column = provenanceColumn() and + queryResults(relation, row, column, model) and + Models::translateModels(model, data) + ) + or + exists(int r, string model | + Models::models(r, model) and + relation = "models" and + row = r + | + column = 0 and data = r.toString() + or + column = 1 and data = model + ) + } +} diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 16e7e9af0d2cb..4302341cb3b5f 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index 1b49bf2fb0689..8680f86e786b9 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.4.md b/shared/mad/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index d403ecdb05324..bd2c497ea4c26 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -118,7 +118,7 @@ module KindValidation { this = [ // shared - "local", "remote", "file", "commandargs", "database", "environment", + "local", "remote", "file", "commandargs", "database", "environment", "reverse-dns", // Java "android-external-storage-dir", "contentprovider", // C# diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 3f35765b5d4b2..0c16b8a9bddbc 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 5093ac17ebd2f..a33a857c90577 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.4.md b/shared/rangeanalysis/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 27fc3198a4d40..c2f65e2931f01 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index bc4c3b902b9a7..d78925faba07e 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.4.md b/shared/regex/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 37f3735381177..930dfbf4098b6 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 397322fcfd8a9..1a64a39471c85 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/ssa/change-notes/released/1.0.4.md b/shared/ssa/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/ssa/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index ed7467eebf462..e59f7a2e601d6 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 86a6976ddc7ca..bdc66d5132249 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.4.md b/shared/threat-models/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/threat-models/ext/threat-model-grouping.model.yml b/shared/threat-models/ext/threat-model-grouping.model.yml index 7cc650d334154..fcd27205d62ba 100644 --- a/shared/threat-models/ext/threat-model-grouping.model.yml +++ b/shared/threat-models/ext/threat-model-grouping.model.yml @@ -21,3 +21,10 @@ extensions: # Android threat models - ["android-external-storage-dir", "android"] - ["contentprovider", "android"] + + # Threat models that are not grouped with any other threat models. + # (Note that all threat models are a child of "all" implicitly, and we + # make it explicit here just to make sure all threat models are listed.) + - ["database-access-result", "all"] + - ["file-write", "all"] + - ["reverse-dns", "all"] diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 1f80ebd498315..819206dd32a68 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.4-dev +version: 1.0.5-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 6212f4cebc70f..ad8f62a4e9d5c 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.4.md b/shared/tutorial/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 86c983bb08091..c542374804d81 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 4cf16f9cb1e6c..b9366dadb5c1b 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.4.md b/shared/typeflow/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index a7590994015b2..9dbfd6533f478 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 7a288c03bd9b2..d17f150b27b2f 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/1.0.4.md b/shared/typetracking/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/typetracking/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b83dc55905776..c2a176796e89f 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 27be8dccdaad0..d323c0974fe2e 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.4.md b/shared/typos/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 459e9b92621b8..5bbc01323a880 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index b098bee611b18..6042620d77cb8 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/util/change-notes/released/1.0.4.md b/shared/util/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/util/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 4df8f4c4e46ca..964747c8c5992 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 36b6e75f80335..1323436e6b2fe 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.4.md b/shared/xml/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 832ce27a19c19..edaeefea948c4 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 49b8a5aeb8c8f..cd2c2e92ddfd3 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.4.md b/shared/yaml/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 57b7890f9bbcb..da7d8b2956ae7 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.4-dev +version: 1.0.5-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index 0630a303d73dd..21e8b74bb0233 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.1.0 + +### New Features + +* Swift support is now out of beta, and generally available. + +### Minor Analysis Improvements + +* Additional heuristics for sensitive private information have been added to the `SensitiveExprs.qll` library, improving coverage for credit card and social security numbers. This may result in additional results for queries that use sensitive data such as `swift/cleartext-transmission`. + ## 1.0.3 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2024-07-11-swift-ga.md b/swift/ql/lib/change-notes/2024-07-11-swift-ga.md deleted file mode 100644 index e50a30741574f..0000000000000 --- a/swift/ql/lib/change-notes/2024-07-11-swift-ga.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Swift support is now out of beta, and generally available. diff --git a/swift/ql/lib/change-notes/2024-07-24-url-model.md b/swift/ql/lib/change-notes/2024-07-24-url-model.md new file mode 100644 index 0000000000000..ab831ab4593c4 --- /dev/null +++ b/swift/ql/lib/change-notes/2024-07-24-url-model.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* An error in the model for `URL.withUnsafeFileSystemRepresentation(_:)` has been corrected. This may result in new data flow paths being found during analysis. diff --git a/swift/ql/lib/change-notes/released/1.1.0.md b/swift/ql/lib/change-notes/released/1.1.0.md new file mode 100644 index 0000000000000..fd8955658fc52 --- /dev/null +++ b/swift/ql/lib/change-notes/released/1.1.0.md @@ -0,0 +1,9 @@ +## 1.1.0 + +### New Features + +* Swift support is now out of beta, and generally available. + +### Minor Analysis Improvements + +* Additional heuristics for sensitive private information have been added to the `SensitiveExprs.qll` library, improving coverage for credit card and social security numbers. This may result in additional results for queries that use sensitive data such as `swift/cleartext-transmission`. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index 06fa75b96cbce..2ac15439f561a 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.1.0 diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll index 5abc652b3b44a..c84298771fb23 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPrivate.qll @@ -1310,9 +1310,6 @@ DataFlowType getNodeType(Node n) { any() // return the singleton DataFlowType until we support type pruning for Swift } -/** Gets a string representation of a `DataFlowType`. */ -string ppReprType(DataFlowType t) { none() } - /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll index 16a5a2c19ca92..faff53f067494 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowPublic.qll @@ -105,6 +105,7 @@ class ParameterNode extends Node instanceof ParameterNodeImpl { } /** + * A node in the data flow graph which corresponds to an SSA variable definition. */ class SsaDefinitionNode extends Node, TSsaDefinitionNode { Ssa::Definition def; diff --git a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll index ff9aa37769acf..6f4975f07dd51 100644 --- a/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll +++ b/swift/ql/lib/codeql/swift/frameworks/StandardLibrary/Url.qll @@ -119,7 +119,7 @@ private class UrlSummaries extends SummaryModelCsv { ";URL;true;resourceValues(forKeys:);;;Argument[-1];ReturnValue;taint", ";URL;true;setResourceValues(_:);;;Argument[0];Argument[-1];taint", ";URL;true;setTemporaryResourceValue(_:forKey:);;;Argument[-1..0];Argument[-1];taint", - ";URL;true;withUnsafeFileSystemRepresentation(_:);;;Argument[-1],Argument[0].Parameter[0];ReturnValue;taint", + ";URL;true;withUnsafeFileSystemRepresentation(_:);;;Argument[-1];Argument[0].Parameter[0].OptionalSome.CollectionElement;taint", ";URL;true;withUnsafeFileSystemRepresentation(_:);;;Argument[0].ReturnValue;ReturnValue;taint", ";URL;true;resolvingSymlinksInPath();;;Argument[-1];ReturnValue;taint", ";URL;true;appendPathComponent(_:);;;Argument[-1..0];Argument[-1];taint", diff --git a/swift/ql/lib/codeql/swift/security/SensitiveExprs.qll b/swift/ql/lib/codeql/swift/security/SensitiveExprs.qll index 0c712b4fbfdf1..b1cdd64d245d8 100644 --- a/swift/ql/lib/codeql/swift/security/SensitiveExprs.qll +++ b/swift/ql/lib/codeql/swift/security/SensitiveExprs.qll @@ -64,33 +64,10 @@ class SensitivePrivateInfo extends SensitiveDataType, TPrivateInfo { override string toString() { result = "private information" } override string getRegexp() { + // we've had good results for the e-mail heuristic in Swift, which isn't part of the default regex. Add it in. result = - "(?is).*(" + - // Inspired by the list on https://cwe.mitre.org/data/definitions/359.html - // Government identifiers, such as Social Security Numbers - "social.?security|employer.?identification|national.?insurance|resident.?id|" + - "passport.?(num|no)|" + - // Contact information, such as home addresses - "post.?code|zip.?code|home.?addr|" + - // and telephone numbers - "(mob(ile)?|home).?(num|no|tel|phone)|(tel|fax|phone).?(num|no)|telephone|" + - "emergency.?contact|" + - // Geographic location - where the user is (or was) - "l(atitude|ongitude)|nationality|" + - // Financial data - such as credit card numbers, salary, bank accounts, and debts - "(credit|debit|bank|visa).?(card|num|no|acc(ou?)nt)|acc(ou)?nt.?(no|num|credit)|" + - "salary|billing|credit.?(rating|score)|" + - // Communications - e-mail addresses, private e-mail messages, SMS text messages, chat logs, etc. - "e(mail|_mail)|" + - // Health - medical conditions, insurance status, prescription records - "birth.?da(te|y)|da(te|y).?(of.?)?birth|" + - "medical|(health|care).?plan|healthkit|appointment|prescription|" + - "blood.?(type|alcohol|glucose|pressure)|heart.?(rate|rhythm)|body.?(mass|fat)|" + - "menstrua|pregnan|insulin|inhaler|" + - // Relationships - work and family - "employ(er|ee)|spouse|maiden.?name" + - // --- - ").*" + HeuristicNames::maybeSensitiveRegexp(SensitiveDataClassification::private()) + .replaceAll(".*(", ".*(e(mail|_mail)|") } } diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index c6bd37e621525..2b14c18b12831 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 1.0.4-dev +version: 1.1.1-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index f08ae688531c8..ca26ff94f225e 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.4 + +No user-facing changes. + ## 1.0.3 No user-facing changes. diff --git a/swift/ql/src/change-notes/released/1.0.4.md b/swift/ql/src/change-notes/released/1.0.4.md new file mode 100644 index 0000000000000..d0255e750ff92 --- /dev/null +++ b/swift/ql/src/change-notes/released/1.0.4.md @@ -0,0 +1,3 @@ +## 1.0.4 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 06fa75b96cbce..03f7ea71b58ee 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.3 +lastReleaseVersion: 1.0.4 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 62409f64983c1..a6a4598cc7431 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.0.4-dev +version: 1.0.5-dev groups: - swift - queries diff --git a/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift b/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift index b757805380bf5..b6675f42c299b 100644 --- a/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift +++ b/swift/ql/test/library-tests/dataflow/taint/libraries/url.swift @@ -324,7 +324,7 @@ func taintThroughURL() { }) urlTainted.withUnsafeFileSystemRepresentation({ ptr in - sink(any: ptr!) // $ MISSING: tainted=210 + sink(any: ptr!) // $ tainted=210 }) sink(arg: urlTainted.resolvingSymlinksInPath()) // $ tainted=210 diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected index 051f846c5b1dd..83fb7d9c1fe83 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected @@ -69,6 +69,7 @@ edges | SQLite.swift:197:17:197:49 | [...] [Collection element] | SQLite.swift:197:16:197:50 | [...] [Collection element, Collection element] | provenance | | | SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | SQLite.swift:197:17:197:49 | [...] [Collection element] | provenance | | | SQLite.swift:197:32:197:32 | mobilePhoneNumber | SQLite.swift:197:18:197:32 | ... <-(_:_:) ... | provenance | | +| file://:0:0:0:0 | [post] self [data, Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | provenance | | | file://:0:0:0:0 | [post] self [data] | testRealm2.swift:13:6:13:6 | self [Return] [data] | provenance | | | file://:0:0:0:0 | [post] self [data] | testRealm.swift:27:6:27:6 | self [Return] [data] | provenance | | | file://:0:0:0:0 | [post] self [notStoredBankAccountNumber] | testCoreData2.swift:23:13:23:13 | self [Return] [notStoredBankAccountNumber] | provenance | | @@ -82,6 +83,7 @@ edges | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [notStoredBankAccountNumber] | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [password] | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [value] | provenance | | +| file://:0:0:0:0 | value [Collection element] | file://:0:0:0:0 | [post] self [data, Collection element] | provenance | | | sqlite3_c_api.swift:42:69:42:69 | medicalNotes | sqlite3_c_api.swift:46:27:46:27 | insertQuery | provenance | | | sqlite3_c_api.swift:43:49:43:49 | medicalNotes | sqlite3_c_api.swift:47:27:47:27 | updateQuery | provenance | | | testCoreData2.swift:23:13:23:13 | value | file://:0:0:0:0 | value | provenance | | @@ -294,9 +296,38 @@ edges | testGRDB.swift:212:98:212:107 | [...] [Collection element] | testGRDB.swift:212:98:212:107 | [...] | provenance | | | testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] [Collection element] | provenance | | | testRealm2.swift:13:6:13:6 | value | file://:0:0:0:0 | value | provenance | | +| testRealm2.swift:13:6:13:6 | value [Collection element] | file://:0:0:0:0 | value [Collection element] | provenance | | | testRealm2.swift:18:2:18:2 | [post] o [data] | testRealm2.swift:18:2:18:2 | [post] o | provenance | | | testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | provenance | | | testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:18:2:18:2 | [post] o [data] | provenance | | +| testRealm2.swift:24:2:24:2 | [post] o [data] | testRealm2.swift:24:2:24:2 | [post] o | provenance | | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:24:2:24:2 | [post] o [data] | provenance | | +| testRealm2.swift:25:2:25:2 | [post] o [data] | testRealm2.swift:25:2:25:2 | [post] o | provenance | | +| testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:25:2:25:2 | [post] o [data] | provenance | | +| testRealm2.swift:26:2:26:2 | [post] o [data, Collection element] | testRealm2.swift:26:2:26:2 | [post] o | provenance | | +| testRealm2.swift:26:2:26:2 | [post] o [data] | testRealm2.swift:26:2:26:2 | [post] o | provenance | | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) | testRealm2.swift:26:2:26:2 | [post] o [data] | provenance | | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | provenance | | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | testRealm2.swift:26:2:26:2 | [post] o [data, Collection element] | provenance | | +| testRealm2.swift:26:18:26:18 | ssn_int | testRealm2.swift:26:11:26:25 | call to String.init(_:) | provenance | | +| testRealm2.swift:26:18:26:18 | ssn_int | testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | provenance | | +| testRealm2.swift:32:2:32:2 | [post] o [data] | testRealm2.swift:32:2:32:2 | [post] o | provenance | | +| testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:32:2:32:2 | [post] o [data] | provenance | | +| testRealm2.swift:33:2:33:2 | [post] o [data] | testRealm2.swift:33:2:33:2 | [post] o | provenance | | +| testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:33:2:33:2 | [post] o [data] | provenance | | +| testRealm2.swift:34:2:34:2 | [post] o [data, Collection element] | testRealm2.swift:34:2:34:2 | [post] o | provenance | | +| testRealm2.swift:34:2:34:2 | [post] o [data] | testRealm2.swift:34:2:34:2 | [post] o | provenance | | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | provenance | | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) | testRealm2.swift:34:2:34:2 | [post] o [data] | provenance | | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | provenance | | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | testRealm2.swift:34:2:34:2 | [post] o [data, Collection element] | provenance | | +| testRealm2.swift:34:18:34:18 | int_ccn | testRealm2.swift:34:11:34:25 | call to String.init(_:) | provenance | | +| testRealm2.swift:34:18:34:18 | int_ccn | testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | provenance | | | testRealm.swift:27:6:27:6 | value | file://:0:0:0:0 | value | provenance | | | testRealm.swift:34:6:34:6 | value | file://:0:0:0:0 | value | provenance | | | testRealm.swift:41:2:41:2 | [post] a [data] | testRealm.swift:41:2:41:2 | [post] a | provenance | | @@ -413,6 +444,7 @@ nodes | file://:0:0:0:0 | .value | semmle.label | .value | | file://:0:0:0:0 | .value | semmle.label | .value | | file://:0:0:0:0 | .value2 | semmle.label | .value2 | +| file://:0:0:0:0 | [post] self [data, Collection element] | semmle.label | [post] self [data, Collection element] | | file://:0:0:0:0 | [post] self [data] | semmle.label | [post] self [data] | | file://:0:0:0:0 | [post] self [data] | semmle.label | [post] self [data] | | file://:0:0:0:0 | [post] self [notStoredBankAccountNumber] | semmle.label | [post] self [notStoredBankAccountNumber] | @@ -426,6 +458,7 @@ nodes | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | +| file://:0:0:0:0 | value [Collection element] | semmle.label | value [Collection element] | | sqlite3_c_api.swift:42:69:42:69 | medicalNotes | semmle.label | medicalNotes | | sqlite3_c_api.swift:43:49:43:49 | medicalNotes | semmle.label | medicalNotes | | sqlite3_c_api.swift:46:27:46:27 | insertQuery | semmle.label | insertQuery | @@ -716,11 +749,37 @@ nodes | testGRDB.swift:212:98:212:107 | [...] | semmle.label | [...] | | testGRDB.swift:212:98:212:107 | [...] [Collection element] | semmle.label | [...] [Collection element] | | testGRDB.swift:212:99:212:99 | password | semmle.label | password | +| testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | semmle.label | self [Return] [data, Collection element] | | testRealm2.swift:13:6:13:6 | self [Return] [data] | semmle.label | self [Return] [data] | | testRealm2.swift:13:6:13:6 | value | semmle.label | value | +| testRealm2.swift:13:6:13:6 | value [Collection element] | semmle.label | value [Collection element] | | testRealm2.swift:18:2:18:2 | [post] o | semmle.label | [post] o | | testRealm2.swift:18:2:18:2 | [post] o [data] | semmle.label | [post] o [data] | | testRealm2.swift:18:11:18:11 | myPassword | semmle.label | myPassword | +| testRealm2.swift:24:2:24:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:24:2:24:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | semmle.label | socialSecurityNumber | +| testRealm2.swift:25:2:25:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:25:2:25:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:25:11:25:11 | ssn | semmle.label | ssn | +| testRealm2.swift:26:2:26:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:26:2:26:2 | [post] o [data, Collection element] | semmle.label | [post] o [data, Collection element] | +| testRealm2.swift:26:2:26:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | +| testRealm2.swift:26:18:26:18 | ssn_int | semmle.label | ssn_int | +| testRealm2.swift:32:2:32:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:32:2:32:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:32:11:32:11 | creditCardNumber | semmle.label | creditCardNumber | +| testRealm2.swift:33:2:33:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:33:2:33:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:33:11:33:11 | CCN | semmle.label | CCN | +| testRealm2.swift:34:2:34:2 | [post] o | semmle.label | [post] o | +| testRealm2.swift:34:2:34:2 | [post] o [data, Collection element] | semmle.label | [post] o [data, Collection element] | +| testRealm2.swift:34:2:34:2 | [post] o [data] | semmle.label | [post] o [data] | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | +| testRealm2.swift:34:18:34:18 | int_ccn | semmle.label | int_ccn | | testRealm.swift:27:6:27:6 | self [Return] [data] | semmle.label | self [Return] [data] | | testRealm.swift:27:6:27:6 | value | semmle.label | value | | testRealm.swift:34:6:34:6 | self [Return] [password] | semmle.label | self [Return] [password] | @@ -756,6 +815,14 @@ subpaths | testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:104:18:104:20 | .value | | testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | .value2 | testCoreData2.swift:105:18:105:20 | .value2 | | testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:18:2:18:2 | [post] o [data] | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:24:2:24:2 | [post] o [data] | +| testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:25:2:25:2 | [post] o [data] | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:26:2:26:2 | [post] o [data] | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | testRealm2.swift:26:2:26:2 | [post] o [data, Collection element] | +| testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:32:2:32:2 | [post] o [data] | +| testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:33:2:33:2 | [post] o [data] | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:34:2:34:2 | [post] o [data] | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | testRealm2.swift:34:2:34:2 | [post] o [data, Collection element] | | testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:41:2:41:2 | [post] a [data] | | testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:49:2:49:2 | [post] c [data] | | testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:59:2:59:3 | [post] ...! [data] | @@ -890,6 +957,12 @@ subpaths | testGRDB.swift:210:84:210:93 | [...] | testGRDB.swift:210:85:210:85 | password | testGRDB.swift:210:84:210:93 | [...] | This operation stores '[...]' in a database. It may contain unencrypted sensitive data from $@. | testGRDB.swift:210:85:210:85 | password | password | | testGRDB.swift:212:98:212:107 | [...] | testGRDB.swift:212:99:212:99 | password | testGRDB.swift:212:98:212:107 | [...] | This operation stores '[...]' in a database. It may contain unencrypted sensitive data from $@. | testGRDB.swift:212:99:212:99 | password | password | | testRealm2.swift:18:2:18:2 | o | testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:18:2:18:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:18:11:18:11 | myPassword | myPassword | +| testRealm2.swift:24:2:24:2 | o | testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:24:2:24:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:24:11:24:11 | socialSecurityNumber | socialSecurityNumber | +| testRealm2.swift:25:2:25:2 | o | testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:25:2:25:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:25:11:25:11 | ssn | ssn | +| testRealm2.swift:26:2:26:2 | o | testRealm2.swift:26:18:26:18 | ssn_int | testRealm2.swift:26:2:26:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:26:18:26:18 | ssn_int | ssn_int | +| testRealm2.swift:32:2:32:2 | o | testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:32:2:32:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:32:11:32:11 | creditCardNumber | creditCardNumber | +| testRealm2.swift:33:2:33:2 | o | testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:33:2:33:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:33:11:33:11 | CCN | CCN | +| testRealm2.swift:34:2:34:2 | o | testRealm2.swift:34:18:34:18 | int_ccn | testRealm2.swift:34:2:34:2 | [post] o | This operation stores 'o' in a database. It may contain unencrypted sensitive data from $@. | testRealm2.swift:34:18:34:18 | int_ccn | int_ccn | | testRealm.swift:41:2:41:2 | a | testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:41:2:41:2 | [post] a | This operation stores 'a' in a database. It may contain unencrypted sensitive data from $@. | testRealm.swift:41:11:41:11 | myPassword | myPassword | | testRealm.swift:49:2:49:2 | c | testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:49:2:49:2 | [post] c | This operation stores 'c' in a database. It may contain unencrypted sensitive data from $@. | testRealm.swift:49:11:49:11 | myPassword | myPassword | | testRealm.swift:59:2:59:3 | ...! | testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:59:2:59:3 | [post] ...! | This operation stores '...!' in a database. It may contain unencrypted sensitive data from $@. | testRealm.swift:59:12:59:12 | myPassword | myPassword | diff --git a/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected b/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected index 57e4267d9e43a..353d6d0a63151 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/SensitiveExprs.expected @@ -141,6 +141,12 @@ | testGRDB.swift:210:85:210:85 | password | label:password, type:password | | testGRDB.swift:212:99:212:99 | password | label:password, type:password | | testRealm2.swift:18:11:18:11 | myPassword | label:myPassword, type:password | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | label:socialSecurityNumber, type:private information | +| testRealm2.swift:25:11:25:11 | ssn | label:ssn, type:private information | +| testRealm2.swift:26:18:26:18 | ssn_int | label:ssn_int, type:private information | +| testRealm2.swift:32:11:32:11 | creditCardNumber | label:creditCardNumber, type:private information | +| testRealm2.swift:33:11:33:11 | CCN | label:CCN, type:private information | +| testRealm2.swift:34:18:34:18 | int_ccn | label:int_ccn, type:private information | | testRealm.swift:31:20:31:20 | .password | label:password, type:password | | testRealm.swift:41:11:41:11 | myPassword | label:myPassword, type:password | | testRealm.swift:49:11:49:11 | myPassword | label:myPassword, type:password | diff --git a/swift/ql/test/query-tests/Security/CWE-311/testRealm2.swift b/swift/ql/test/query-tests/Security/CWE-311/testRealm2.swift index 2c1850ee62097..f9a325c42bbdf 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/testRealm2.swift +++ b/swift/ql/test/query-tests/Security/CWE-311/testRealm2.swift @@ -13,9 +13,25 @@ class MyRealmSwiftObject3 : Object { var data: String } -func test1(o: MyRealmSwiftObject3, myHarmless: String, myPassword : String) { +func test1(o: MyRealmSwiftObject3, myHarmless: String, myPassword: String) { // ... o.data = myPassword // BAD o.data = myHarmless // ... } + +func test2(o: MyRealmSwiftObject3, ccn: String, socialSecurityNumber: String, ssn: String, ssn_int: Int, userSSN: String, classno: String) { + o.data = socialSecurityNumber // BAD + o.data = ssn // BAD + o.data = String(ssn_int) // BAD + o.data = userSSN // BAD [NOT DETECTED] + o.data = classno // GOOD +} + +func test3(o: MyRealmSwiftObject3, ccn: String, creditCardNumber: String, CCN: String, int_ccn: Int, userCcn: String, succnode: String) { + o.data = creditCardNumber // BAD + o.data = CCN // BAD + o.data = String(int_ccn) // BAD + o.data = userCcn // BAD [NOT DETECTED] + o.data = succnode // GOOD +}